本文作者:区块链行业专业打杂-为理想而活
为什么要升级合约?
根据设计,智能合约是不可变的。另一方面,软件质量在很大程度上取决于升级和修补源代码以生成迭代版本的能力。尽管基于区块链的软件从技术的不变性中获益匪浅,但修复错误和潜在的产品改进仍然需要一定程度的可变性。OpenZeppelinUpgrades通过为智能合约提供易于使用、简单、健壮和可选的升级机制来解决这一明显的矛盾,该机制可以由任何类型的治理控制,无论是多重签名钱包、简单地址还是复杂的DAO。
首次部署
需要部署三个合约,分别是逻辑合约,代理管理合约,代理合约。逻辑合约就是我们自己的业务合约,需要满足OpenZeppelin可升级合约的条件。以下业务合约以逻辑合约为例进行说明。本文使用remix部署合约,如需快速部署请参考:用Hardhat进行升级部署|登链社区
3D角色工作室Superplastic完成2000万美元融资:金色财经报道,3D角色工作室Superplastic完成2000万美元A-4融资,亚马逊风投部门Alexa Fund领投,Google Ventures、Galaxy Digital、Sony Japan、Animoca Brands、Craft Ventures等参投,使Superplastic迄今为止筹集的资金总额达到5800万美元。
Superplastic之前已经在以太坊和与Gucci和Epic Games的Fortnite等品牌合作。(Decrypt)[2023/2/16 12:09:30]
第一步,逻辑合约
首先部署逻辑合约。
OKX将于12月23日开放Gearbox (GEAR) 现货交易:12月21日消息,OKX宣布上线Gearbox(GEAR)现货交易,GEAR存款于12月21日18点(UTC+8)开放,预计GEAR/USDT现货交易将于12月23日开放。受该消息影响,GEAR 24小时涨幅达12.8%,当前暂报0.24美元。[2022/12/21 21:59:28]
//SPDX-License-Identifier:MITpragmasolidity^0
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
Flow链上DeFi基础设施IncrementFi完成100万美元种子轮融资:7月3日消息,基于Flow区块链生态系统的DeFi基础设施IncrementFi宣布完成100万美元种子轮融资,本轮融资由DapperLabs、LatticeCapital、启明创投、QuietVentures、以及若干Flow生态内天使投资人参投。据悉,IncrementFi主要提供流动性和收益解决方案,旗下主要有两款产品,IncrementSwap(一种完全无需许可的去中心化交易所)和IncrementEarn(一种同质化代币的去中心化借贷协议)。Increment愿景是成为Flow生态系统内的DeFi基础设施和流动性引擎,推动Flow链上DeFi应用和创新。[2022/7/3 1:48:16]
}
数据:比特币当前全网未确认交易数量为6,868笔:金色财经消息,据最新数据显示,比特币当前全网未确认交易数量为6,868笔,全网算力为218.35EH/s,24小时交易速率为3.43交易/秒,目前全网难度为29.57T,预测下次难度上调0.24%至29.64T,距离调整还剩4天19小时。[2022/7/2 1:45:30]
选中逻辑合约并部署。
image
image.png
部署新的业务合约,结束后应有三个逻辑合约实例
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
标签:ENTGICLOGICGEARB One Paymenthegic币会不会重新上线Chronologicgearbox币前景
亲爱的用户:HomiEx将于2021年9月7日15:00(UTC8)上线AGLD/USDT聚合交易对.
1900/1/1 0:00:00我们很遗憾告知iOS用户,由于Apple应用商店的条例限制,imToken将在下个iOS版本中,移除DApp浏览器页面的部分功能-DApp列表.
1900/1/1 0:00:00亲爱的大币网(Dcoin)用户:大币网(Dcoin)已完成对永续合约系统功能的升级维护,现已恢复正常交易.
1900/1/1 0:00:00链闻消息,火币集团创新部门HuobiXCenter推出数字身份体系MetaID及其首个上层应用加密星座头像CyberZodiac.
1900/1/1 0:00:00原文标题:《NFT:未来在崛起中分化(二:下篇)》撰文:自在阿飞NFT项目分化的原因价值捕获机制和价值捕获的能力是NFT项目分化的原因部分NFT项目炙手可热,整个市场看起来热闹非凡.
1900/1/1 0:00:00据ZDNet9月7日消息,澳大利亚现买后付巨头Afterpay告诉澳大利亚参议院金融技术委员会,它相信基于澳元的稳定币很快就会出现.
1900/1/1 0:00:00