说明
- 这个模块用于琐仓操作
- 这个模块的琐仓释放是线性的
- 一个人同一时间不能有多次琐仓记录
重要存储
- Vesting: (account_id => VestingInfo)
VestingInfo{locked(琐仓多少金额), per_block (一个块解琐多少金额),starting_block(什么时候开始)}
重要方法
- 给自己执行减琐仓操作
- 代码:
fn vest(origin)
- 逻辑:
- 根据自己琐仓情况(剩余多少),执行更新琐仓操作
- 琐仓剩余0, 那么删除掉琐仓信息
- 代码:
- 给别人执行减锁仓操作
- 代码:
fn vest_other(origin, target: <T::Lookup as StaticLookup>::Source)
- 代码:
与上一个方法基本相同, 只是目标不一样(给别人操作)
上面的两个方法是一种lazy的方式(你想解琐仓,自己去操作)
- 自己给别人转账,并创建锁仓
- 代码:
pub fn vested_transfer( origin, target: <T::Lookup as StaticLookup>::Source, schedule: VestingInfo<BalanceOf<T>, T::BlockNumber>, )
- 逻辑:
- 锁仓金额达到最低要求
- 创建锁仓相关存储
- 向对方账号转账
- 锁仓
- 代码: