首先,每个帐户都能发行任意数量的合约(contract),发行合约的命令为:
eosc set contract 帐户名 合约wast文件 合约abi文件
执行合约时需要指定帐户名和动作名,不需要合约名:
eosc push message 帐户名 动作 数据 参数
合约里面可以规定N个动作(action),这个动作是跟帐户名绑定的而不是合约。所以在执行合约里的动作的时候,你不需要指定合约,只需要指定帐户及动作。
官方有个 currency 合约,执行合约的时候需要当前帐户的active权限,这个权限的授予是能过参数来实现的:-p <account>@active
所以要想执行 currency 里的 transfer 动作,完整命令如下:
eosc push message ${account} transfer "{\"from\":\"${account}\",\"to\":\"${account2}\",\"quantity\":50}" -S ${account} -S ${account2} -p ${account}@active
这条命令的执行有个前提,即 ${account} 是当前 wallet 的默认帐户,并成功发布了 currency 合约。
如果你有个帐户 ${account123} 也想执行这个合约,那么首先要把 ${account123} 的私钥导入 wallet,然后命令如下:
eosc push message ${account} transfer "{\"from\":\"${account123}\",\"to\":\"${account2}\",\"quantity\":50}" -S ${account123} -S ${account2} -p ${account123}@active
接下来是广告时间:
Telegram 小组:EOS技术爱好者
我的 Steemit:@pyy
我的简书:http://www.jianshu.com/u/0708f50bcf26
我的知乎:https://www.zhihu.com/people/never-younger
我的公众号:OutOfRange