标签:perm token creat 上线 push a 成员 场景 工作 code
首先,跟大家说声抱歉,由于之前一直在准备EOS上线的一些工作,所以,很长时间没有更新内容。今天正好有时间,也想到了一些题材,就来说一下这个话题。本文完全是个人见解,如有不当之处,欢迎指出。
前提回顾:
相信看这篇教程的人,对我之前的一些账户操作已经进行了了解,如果不了解的,可以移步 https://eosfans.io/topics/372
之前讲了单个账户的权限的增、删、改、查及一系列操作,并没有讲到权限的使用,那么如果我们增加一个权限,但是不会用它,那又有什么意义呢?
所以,今天就来学习一下权限的使用。
说明: 本教程,通过
eosio.token
合约的transfer
来进行演示。
eosio.token
并发放eosio.token
合约eostea
eostea
发放代币hello
hello
账号添加权限hello
hello
账号转账给eostea
hello
账号权限hello
绑定actionhello
账户通过hello
权限转账我所有钱包中的密匙如下:
cleos create account eosio eosio.token EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L EOS8Ar1fUGtZxcJ8Rdkh3rc55Vqg3ariR6fdBV8zxz4WgTW3nT73L
cleos create account eosio hello EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ EOS5G13KtUHdsqbeuR2fcoRW4bUzJhigTcX37Aw39xKdy4NMQD9hZ
cleos create account eosio eostea EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab EOS8aQ3bgYKsipwsuPGzimnH5be9AkHr3N6Y7Knh6pSPoLAV2y6Ab
下面我创建本文的所有测试账号,创建情况如下:
eosio.token
合约cleos set contract eosio.token eosio.token/
cleos push action eosio.token create ‘["eostea","10000000000.0000 TEA","create"]‘ -p eosio.token
cleos push action eosio.token issue ‘["eostea", "10000000000.0000 TEA","issue"]‘ -p eostea
cleos push action eosio.token transfer ‘["eostea","hello","100000000.0000 TEA","transfer"]‘ -p eostea
如图所示:
cleos push action eosio.token transfer ‘["hello","eostea","100.0000 TEA","transfer"]‘ -p hello
可能大家看到这里还是一头雾水,别着急重点马上就来。
hello
添加hello
权限cleos set account permission hello hello ‘{"threshold": 1, "keys":[{"key":"EOS5dFqCCX8nhV5e2RZWTDGFtAw4mJcCjiQC9Fe6zquKwKky2aAEm","weight":1}],"accounts":[],"waits":[]}‘ active
hello
绑定transfer
动作cleos set action permission hello eosio.token transfer hello
权限绑定action
成功,那么有什么用呢?注意见证奇迹的时刻到了。
active
权限转账,然后用hello
权限转账:cleos push action eosio.token transfer ‘["hello","eostea","100.0000 TEA","transfer"]‘ -p hello@active
cleos push action eosio.token transfer ‘["hello","eostea","100.0000 TEA","transfer"]‘ -p hello@hello
大家可以看到我们用hello
权限也成功执行了转账操作。
active
权限对应的密匙。好,那么我把钱包锁起来,只留hello
权限的密匙。大家可以看到,现在我的钱包里只剩下hello
权限对应的密匙了。再次进行转账:
cleos push action eosio.token transfer ‘["hello","eostea","100.0000 TEA","transfer"]‘ -p hello@hello
大家可以看到,这次转账也是成功的。
hello
这个权限本来就能转账呢?那么,我们现在解除hello
和transfer
绑定关系(注意这里是需要active
权限来接触绑定关系),再次转账
cleos set action permission hello eosio.token transfer NULL
cleos push action eosio.token transfer ‘["hello","eostea","100.0000 TEA","transfer"]‘ -p hello@hello
大家可以看到,没有绑定权限,是操作不成功的。
权限和action
的绑定关系,极大的增加了eos网络权限的灵活性,通过单个权限的绑定,我们可以将一个账户的权限分层管理,甚至一个公司的所有人都可以使用一个EOS
账户来进行权限分分离。
下面我拿hello
账号举个例子:
active
,转账,等除拥有者以外的所有操作。这样成功的将整个公司所有成员的账户都容纳进一个账户,足见EOS
账户权限的灵活性。
好了!今天就到这里!!
如需转载请联系作者!!谢谢!!!
原文链接: https://eosfans.io/topics/653
标签:perm token creat 上线 push a 成员 场景 工作 code
原文地址:https://www.cnblogs.com/tclabs/p/9159815.html