ink合约-psp22

psp是ink合约生态参考erc标准制定的,psp22协议类似于erc20。本文使用开源框架openbrush-contracts来讲解,该框架汇总并实现了ink中的主要应用协议,减少了自行开发的风险,同时减少了开发复杂度。

1. 概述

psp22中,包含有4大扩展,可根据需要选择:

  1. psp22Burnable:销毁token
  2. psp22Capped:新增token总上限,说白了就是用于mint增发
  3. psp22Metadata:用于存储元数据,如symbol、name、uri等
  4. psp22Mintable:生成新的token
  5. psp22Wrapper:质押挖矿

2. 协议说明

1. psp22基础方法

  1. psp22::totalSupply()
    作用:
    获取总供应量
    参数说明:

  2. psp22::balanceOf(ownerAccountId)
    作用:
    获取账户A的余额
    参数说明:
    ownerAccountId:账户A

  3. psp22::allowance(ownerAccountId, spenderAccountId)
    作用:
    查看账户A授权给账户B的可用余额还有多少
    参数说明:
    ownerAccountId:账户A
    spenderAccountId:账户B

  4. psp22::transfer(toAccountId, balance, data)
    作用:
    当前caller账户,将指定balance交易给账户A
    参数说明:
    toAccountId:账户A
    balance:要转账的余额
    data:附属信息,如备注等内容

  5. psp22::transferFrom(fromAccountId, toAccountId, balance, data)
    作用:
    从账户A转账余额给账户B
    参数说明:
    fromAccountId:账户A
    toAccountId:账户B
    balance:要转账的余额
    data:附属信息,如备注等内容
    备注:该行为只能给合约管理员使用

  6. psp22::approve(spenderAccountId,balance)
    作用:
    caller账户授权给账户A指定余额
    参数说明:
    spenderAccountId:账户A
    balance:授权指定余额

  7. psp22::increaseAllowance(spenderAccountId,balance)
    作用:
    caller账户给账户A新增授权余额
    参数说明:
    spenderAccountId:账户A
    balance:新增的授权余额

  8. psp22::decreaseAllowance(spenderAccountId,balance)
    作用:
    caller账户给账户A降低授权余额
    参数说明:
    spenderAccountId:账户A
    balance:降低的授权余额

2. psp22Burnable扩展方法

  1. psp22Burnable::burn(accountId, balance)
    作用:
    销毁账户A的指定余额
    参数说明:
    accountId:账户A
    balance:指定余额

3. psp22Capped扩展方法

  1. psp22Capped::cap()
    作用:
    获取总容量
    参数说明:

4. psp22Metadata扩展方法

  1. psp22Metadata::tokenName()
    作用:
    获取token名称
    参数说明:

  2. psp22Metadata::tokenSymbol()
    作用:
    获取token标识
    参数说明:

  3. psp22Metadata::tokenDecimals()
    作用:
    获取token精确度
    参数说明:

5. psp22Mintable扩展方法

  1. psp22Mintable::mint(accountId,balance)
    作用:
    账户A铸造指定数量的token
    参数说明:
    accountId:账户A
    balance:成果铸造的数额

6. psp22Wrapper扩展方法

6.1 概述

简单来说,就是质押挖矿。质押一定数量的链token,然后获取一定数量的合约币

6.2 方法说明

  1. psp22Wrapper::depositFor(accountId,balance)
    作用:
    caller账户质押指定数量的token,挖到的收益,转给账户A
    参数说明:
    accountId:账户A
    balance:质押的token

  2. psp22Wrapper::withdrawTo(accountId,balance)
    作用:
    提取质押的token到账户A
    参数说明:
    accountId:账户A
    balance:要提取的质押的token

总结

本文编辑完毕

参考

[1] openbrush-contracts合约开源框架
[2] openbrush-contracts文档
[3] EIP-20: Token Standard

Donate
  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2017-2023 Jason
  • Visitors: | Views:

谢谢打赏~

微信