substrate2.0中的vesting

说明

  • 这个模块用于琐仓操作
  • 这个模块的琐仓释放是线性的
  • 一个人同一时间不能有多次琐仓记录

重要存储

  • 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>, )
    • 逻辑:
      • 锁仓金额达到最低要求
      • 创建锁仓相关存储
      • 向对方账号转账
      • 锁仓

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容