wicc和token转账任务的解决思路

2019-04-01  本文已影响0人  树哥区块链

任务:

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,但进行冻结。

上一篇下一篇

猜你喜欢

热点阅读