EOS系列九:EOS权限设置

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_33656634/article/details/86574875

在EOS区块链中任何操作都是以账号为发起者,在ADPP智能合约使用过程需要厘清账号权限相关的规则,否则可能没有充分授权导致action调用出错:

1)普通账号:调用智能合约操作的账号。

2)合约账号:部署合约的账号。一个合约账号accout1仅仅是对于部署其上的合约A而言,才算合约账号,对于部署在账号account2上的合约B而言,account1就是一个普通账号。

3)在多个智能合约相互调用的情况中,操作账号是合约账号时。例如:合约账号account1调用部署其上的合约A的actionA1,actionA1中又触发合约B的actionB2,那么需要设置权限,将account1的“eosio.code"”权限授权给自己,从而部署在自己身上的合约操作其他合约B被视为合法使用自己身份来操作合约B。如下:

$ cleos set account permission account1 active '{"threshold": 1,"keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","weight": 1}],"accounts": [{"permission":{"actor":"account1","permission":"eosio.code"},"weight":1}]}' owner -p account1

4)在多个智能合约相互调用的情况中,操作账号是普通账号时。例如:普通账号account0调用部署其上的合约A的actionA1,actionA1中又触发合约B的actionB2,那么需要设置权限,将account0的“eosio.code"”权限授权给合约账号account1,从而部署在account1身上的合约A操作合约B被视为合法使用account0身份来操作合约B。如下:

$ cleos set account permission account0 active '{"threshold": 1,"keys": [{"key": "EOS6MRyAjQq8ud7hVNYcfnVPJqcVpscN5So8BhtHuGYqET5GDW5CV","weight": 1}],"accounts": [{"permission":{"actor":"account1","permission":"eosio.code"},"weight":1}]}' owner -p account0

猜你喜欢

转载自blog.csdn.net/weixin_33656634/article/details/86574875
eos
今日推荐