wicc和token转账任务的解决思路
任务:
1、开发一个智能合约并部署Testnet
2、合约内容必须用到接口或API,具体要求如下
(1) 设置管理员权限,并制定某个操作只允许管理员执行(如修改管理员)
(2) 普通用户之间可以对WICC和 token 进行互换
(3) 普通用户之间可以对token进行转账
(4) 除了以上方法外,您有其它任何想法都可以写在合约里面
分析任务:
1、开发智能合约,并部署到testnet上。
这个任务,需要几个步骤:
1)以lua来进行编程,形成文件。
文件编辑可以采用各种方法,无论是linux 中的touch 和vim的组合,或者其他的编辑软件,例如xcode,写字板都可以。
2)建立区块链节点
部署智能合约到区块链上,本质上就是通过一个节点来发布这个智能合约,然后矿工打包,把这个智能合约打包的区块之中。
这个节点怎么来呢?
两种方式:
A、自己部署。安装ubuntu软件,安装docker软件,把节点的软件运行在docker的虚容器中,成为一个独立的节点。
B、 使用维基链提供的baas平台,通过网页方式登录到节点来进行部署智能合约。
3) 部署智能合约
可以通过命令行 registercontracttx 来进行注册合约。
通过postman 等rpc工具,调用来进行注册合约。
通过线上钱包插件+维基链提供的工具来注册合约。
注册完成后的显示如下图:
红框框起来的部分就是智能合约内容,只不过是十六进制的数字的而已。
可以通过字符转换工具,转换成我们能看懂的字符。
2、合约内容必须用到接口或API,具体要求如下
(1) 设置管理员权限,并制定某个操作只允许管理员执行(如修改管理员)
A、设定owner为管理员。
B、某个操作前使用MeMlsEqual来判断,地址和owner是否相同。相同则可以执行,不同则不可以执行。
(2) 普通用户之间可以对WICC和 token 进行互换
可以分为两个操作:
一个操作是把wicc转入合约,把token转账给入合约调用者。
需要做的是:
当合约调用者转账wicc给合约的时候:
A、GetCurrTxAccountAddress 查询到合约调用者的地址。
B、通过GetcurrTxPayAmount获得调用者的转账金额。
C、通过TransferToken把转账wicc相对应的数量token转移给合约调用者。(需要提前用getfreetokenacount来查询token数量是否足够。)
另外一个操作是把token转入合约中,转对应的wicc给调用者。
A、通过transfertoken,把token从用户账户中转移到合约账户中。其中用户账户token数量减少,合约账户token数量增加。
B、通过GetCurrTxAccountAddress 查询到合约调用者的地址。
C、通过transferToAddr把转入token对应数量的wicc从合约账户中转移到合约调用账户中。
(3) 普通用户之间可以对token进行转账
A、任何用户都可以调取合约,执行合约内token转账的操作。
B、 通过GetCurrTxAccountAddress 查询到合约调用者的地址。
C、使用TransferToken把合约调用者内的token转移到另外用户账户中。
(4) 除了以上方法外,您有其它任何想法都可以写在合约里面
token和wicc之间转账:A. 增加、减少双方token。B、只减少token,燃烧机制。C、增加用户token,但进行冻结。