本文作者:区块链行业专业打杂-为理想而活
为什么要升级合约?
根据设计,智能合约是不可变的。另一方面,软件质量在很大程度上取决于升级和修补源代码以生成迭代版本的能力。尽管基于区块链的软件从技术的不变性中获益匪浅,但修复错误和潜在的产品改进仍然需要一定程度的可变性。OpenZeppelinUpgrades通过为智能合约提供易于使用、简单、健壮和可选的升级机制来解决这一明显的矛盾,该机制可以由任何类型的治理控制,无论是多重签名钱包、简单地址还是复杂的DAO。
首次部署
需要部署三个合约,分别是逻辑合约,代理管理合约,代理合约。逻辑合约就是我们自己的业务合约,需要满足OpenZeppelin可升级合约的条件。以下业务合约以逻辑合约为例进行说明。本文使用remix部署合约,如需快速部署请参考:用Hardhat进行升级部署|登链社区
数据:NFT借贷市场Blend占据82%的NFT借贷市场份额:5月25日消息,自 NFT 借贷市场 Blend 于 5 月 1 日推出以来,已经积累了 16.9 万余枚 ETH,约合 3.08 亿美元的交易量。同期所有借贷平台的交易量约合 3.75 亿美元。
根据 DappRadar 数据,同一时期 NFT 市场总交易量达到 4.66 亿美元,此外,Blur 总交易量的 46.2% 来自贷款。自 Blend 推出以来,Blur 的总锁定价值 ( TVL ) 已从 1.19 亿美元增加到 1.46 亿美元。[2023/5/25 10:40:21]
第一步,逻辑合约
首先部署逻辑合约。
//SPDX-License-Identifier:MITpragmasolidity^0
报告:2022年全球Bitcoin持有人增加20%至2.19亿:金色财经报道,Crypto.com Research报告称,2022年全球Bitcoin持有人增加20%至2.19亿。[2023/1/19 11:21:28]
mapping(string=>uint256)privatelogic;eventlogicSetted(stringindexed_key,uint256_value);functionSetLogic(stringmemory_key,uint256_value)external{logic=_value;emitlogicSetted(_key,_value);}functionGetLogic(stringmemory_key)publicviewreturns(uint256){returnlogic;}functionGetInitializeData()publicpurereturns(bytesmemory){returnabi
富达总裁:消费者投资组合中有更多的加密货币空间:金色财经报道,富达机构总裁Michael Durbin在一次金融会议上表示,消费者投资组合中有更多数字资产的空间。富达敦促顾问们在投资比特币时分配 \"有意义的 \"风险预算,以防范不可预测的市场波动。
Durbin表示,\"随着数字资产扩展到加密货币和其他各种包装的代币之外,或者无论监管环境为我们提供什么便利,我们认为这种投资组合建设的资金将会增加,让更多数字资产进入终端消费者投资组合的基础。\"(the block)[2022/10/25 16:37:30]
}
选中逻辑合约并部署。
image
image.png
最大的非交易所鲸鱼7月至今已购入901枚BTC:7月9日消息,Watcher.Guru发推称,全球最大的非交易所比特币鲸鱼7月至今已经购买了901枚BTC(约合1900万美元),现在总共持有132323枚比特币,价值28.6亿美元。[2022/7/9 2:02:22]
部署新的业务合约,结束后应有三个逻辑合约实例
image.png
新的逻辑合约地址:0xb27A31f1b0AF2946B7F582768f03239b1eC07c2c
替换旧的逻辑合约
此时调用部署好的管理合约进行升级,此合约提供了两个升级方法
upgrade,需要传入proxy地址,新的逻辑实现地址。
upgradeAndCall,需要传入roxy地址,新的逻辑实现地址,初始化调用数据。
由于数据是保存在代理合约中,这份数据已经初始化过了,不需要再初始化,所以调用upgrade方法即可,传入参数如下:
代理合约地址:0xddaAd340b0f1Ef65169Ae5E41A8b10776a75482d
新的逻辑合约地址:0xb27A31f1b0AF2946B7F582768f03239b1eC07c2c
测试新逻辑合约
此时升级已完成,也是最后一步。
此时不需要修改任何地方,只需要使用已经传入代理合约地址的AtAddress方法。
image.png
生成后将有四个逻辑合约实例:1.首次部署的逻辑合约,2.代理后的逻辑合约,3.部署的新逻辑合约,4.以升级的逻辑合约
调用生成的新逻辑合约中的GetLogic方法,传入,此时应返回100,这证明您的合约以成功升级,因为旧的逻辑合约传入了,修改后的逻辑合约中GetLogic方法在返回值上加上了,若为99证明升级失败。
至此,可升级的代理合约就部署并测试完成。
参考资料
区块链行业专业打杂-为理想而活:https://learnblockchain.cn/people/1877
用Hardhat进行升级部署|登链社区:https://learnblockchain.cn/article/2908
免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/10311795.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
每周编辑精选WeeklyEditors'Picks
标签:GICLOGICRADINGhegic币值得投资吗LOGIC价格Prometheus TradingBINGO价格
Ampleforth最终成长为市值最高的弹性货币,也是DeFi领域内最安全,经实战考验的协议之一。以去年兴盛的DeFi运动为分界线,加密市场交易支付载体的话语权开始逐渐转移.
1900/1/1 0:00:00金色财经报道,美国证券交易委员会就加密货币投资领域潜伏的局向投资者发出警告,“欺诈者继续利用日益流行的数字资产来引诱散户投资者参与,这往往会导致毁灭性的损失.
1900/1/1 0:00:00亲爱的ZT用户:ZT的ETF专区即将上线HEDGE,ETHHEDGE,ADAHEDGE,并开启HEDGE/USDT,ETHHEDGE/USDT,ADAHEDGE/USDT交易对.
1900/1/1 0:00:00链闻消息,火币集团创新部门HuobiXCenter推出数字身份体系MetaID及其首个上层应用加密星座头像CyberZodiac.
1900/1/1 0:00:00beincrypto9月5日消息,KuCoin首席执行官JohnnyLyu表示,我们正在经历加密货币的复兴。关于过去两年的加密货币发展情况,Lyu表示,“我想每个人都会同意这是一段美好的时光.
1900/1/1 0:00:00链闻消息,据彭博社报道,韩国加密投资机构Hashed计划于本月推出其第二只区块链基金,计划筹集逾2000亿韩元.
1900/1/1 0:00:00