全网最佳IP代理服务商- 9.9元开通-稳定的代理服务
如果您从事外贸、海外视频博主、海外推广、海外广告投放,欢迎选择我们。
让您轻易使用国外主流的聊天软件、视频网站以及社交网络等等

clashv2边框厚度

clashv2边框厚度

proxy是智能合约里不可或缺的一种设计模式。对于Ethereum区块链,部署在链上的合约没有办法改变,如果合约遇到了bug将无法修改,这时可升级的合约就体现出了它的价值clash代理协议!。openzeppelin提供了完善的proxy合约框架,先看下proxy目录下的文件:

每个代理、逻辑合约都要包含一个implement address。这是为了插槽位置一致,delegatecall的时候修改可以同步到代理合约。

selector clash。同一个合约里,如果selector clash了,编译会报错,但是如果代理合约和逻辑合约的selector clash了clash代理协议,就会造成一些意想不到的错误。

其中ERC1967可以解决第一个问题,Transparent合约和UUPS合约可以解决第二个问题。Beacon合约用来保存逻辑合约的地址,并且可以对代理合约设置逻辑合约,我还没感受到Beacon合约有什么广泛应用的地方。

ERC1976定义了特殊的slot来存储逻辑合约地址,这个slot是constant类型的clashv2边框厚度,不占据storage存储空间。

因为设置逻辑合约地址的function只有owner才能调用,如果这个function和逻辑合约的function不能冲突,一个自然的想法是所有非owner的地址调用都转发到逻辑合约去处理,这样就避免了冲突。

另一个避免selector clash的方案是把所有function都放置到逻辑合约内部,这样大大降低了代理合约的功能性,但是逻辑合约多了一些控制function。

THE END
喜欢就支持一下吧
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称