I was looking through the docs, and I found the section on creating vesting balance objects. Wouldn't that be a better way of distributing the revenue of a fee backed asset than with a buybay? What are the fees to deposit to a vesting object? Could a FBA deposit to the same VBO that is used for cashback, or would each FBA need to create its own VBO? We could require that a potential hodler of a FBA registers a VBO for it. 95bts once, plus 2bts per withdrawal seems like a better deal than having to place orders for a buyback.
Public Members
uint64_t fee
the cost to register the cheapest non-free account
struct vesting_balance_create_operation
#include <vesting.hpp>
Create a vesting balance.
The chain allows a user to create a vesting balance. Normally, vesting balances are created automatically as part of cashback and worker operations. This operation allows vesting balances to be created manually as well.
Manual creation of vesting balances can be used by a stakeholder to publicly demonstrate that they are committed to the chain. It can also be used as a building block to create transactions that function like public debt. Finally, it is useful for testing vesting balance functionality.
Return
ID of newly created vesting_balance_object
Public Members
account_id_type creator
Who provides funds initially.
account_id_type owner
Who is able to withdraw the balance.
class vesting_balance_object
#include <vesting_balance_object.hpp>
Vesting balance object is a balance that is locked by the blockchain for a period of time.
Public Functions
void deposit(const fc::time_point_sec &now, const asset &amount)
Deposit amount into vesting balance, requiring it to vest before withdrawal.
void deposit_vested(const fc::time_point_sec &now, const asset &amount)
Deposit amount into vesting balance, making the new funds vest immediately.
void withdraw(const fc::time_point_sec &now, const asset &amount)
Used to remove a vesting balance from the VBO. As well as the balance field, coin_seconds_earned and coin_seconds_earned_last_update fields are updated.
The money doesn’t “go” anywhere; the caller is responsible for crediting it to the proper account.
asset get_allowed_withdraw(const time_point_sec &now) const
Get amount of allowed withdrawal.
Public Members
account_id_type owner
Account which owns and may withdraw from this vesting balance.
asset balance
Total amount remaining in this vesting balance Includes the unvested funds, and the vested funds which have not yet been withdrawn
vesting_policy policy
The vesting policy stores details on when funds vest, and controls when they may be withdrawn.
struct vesting_balance_withdraw_operation
#include <vesting.hpp>
Withdraw from a vesting balance.
Withdrawal from a not-completely-mature vesting balance will result in paying fees.
Return
Nothing
Am I missing something?