asset cdd_vesting_policy::get_allowed_withdraw( const vesting_policy_context& ctx )const
{
   fc::uint128_t cs_earned = compute_coin_seconds_earned( ctx );
   fc::uint128_t withdraw_available = cs_earned / vesting_seconds;
   assert( withdraw_available <= ctx.balance.amount.value );
   return asset( withdraw_available.to_uint64(), ctx.balance.asset_id );
}
Ejemplo n.º 2
0
asset cdd_vesting_policy::get_allowed_withdraw(const vesting_policy_context& ctx)const
{
   if(ctx.now <= start_claim)
      return asset(0, ctx.balance.asset_id);
   fc::uint128_t cs_earned = compute_coin_seconds_earned(ctx);
   fc::uint128_t withdraw_available = cs_earned / std::max(vesting_seconds, 1u);
   assert(withdraw_available <= ctx.balance.amount.value);
   return asset(withdraw_available.to_uint64(), ctx.balance.asset_id);
}
Ejemplo n.º 3
0
void cdd_vesting_policy::update_coin_seconds_earned(const vesting_policy_context& ctx)
{
   coin_seconds_earned = compute_coin_seconds_earned(ctx);
   coin_seconds_earned_last_update = ctx.now;
}