Python智能合约教程之合约升级【威尼斯人平台】

泡沫雕刻机 | 2020-11-10

威尼斯人平台_在最后一期的技术观点中,我们解释了合同本地应用编程接口,并描述了如何使用智能合同开立ONT/ONG账户。在本期中,我们将讨论如何通过升级应用编程接口升级合同。

合同升级有两个API,即销毁和迁移。它的用法是这样的:让我们清楚地描述一下这两个API所使用的方法。在此之前,朋友们可以在本体智能契约开发工具SmartX中创建新的契约,然后我们就要启动运营商了。

和前面的API介绍一样,我们会在文章的最后得到这个介绍的视频示例。2.upgradepapi方法必须先引入,然后才能在这两个函数中使用。以下两个语句分别介绍了函数Migrate和Destroy。

威尼斯人平台

从ontology . interop . ontology . contract import从ontology . interop . system . contract import destroy 2.1 destroy API destroy API用于密封合同,原合同不会在链中移除。以下是该API的示例代码。from ontology . interop . System . contract import Destroy from ontology . interop . System . runtime import Notifydef Main(operation,args): if operation==' destroy _ contract ' : return destroy _ contract()return Fastdef destroy()3360 destroy()# Call destroy to seal this contract notify([' contract已销毁']) return true。你可以在SmartX上看到这个样例代码的操作结果:将上面的代码粘贴到SmartX编译器中,进行部署;当页面再次部署时,会弹出“合同部署完毕,合同已经部署完毕”,因为链中没有完全相同的合同;3.操作destroy_contract功能,封存合同;4.再次在页面上部署合同。

没有合同可以再次部署。再次插入“合同部署结束,合同已经部署”。这可以证明原合同已经被封在链条里了。

2.2迁移APIMigrate API作为迁移合同,原合同不会被新合同替代,原合同中的数据会自动迁移到新合同中。迁移数据越大,迁移成本越高。

顺利入住后,原合同不再解除。特别注意:合同中的资产会自动移入,必须提前移回。否则合同中的资产不会被收回,相当于被转移到黑洞地址。Migrate函数起源于参数表如下:在某种程度上,我们得到Migrate函数的约定示例代码:from ontology . interop . ontology . contract import Migrate from ontology . interop . system . runtime import notify from ontology . I import address from vmcodedef Main(operation,args): if operation=' Migrate _ contract ' 3360 if len(args)!=7: return Filsavm _ code=args[0]need_storage=args[1]name=args[2]version=args[3]author=args[4]email=args[5]Description=args[6]return Migrate _ contract(AVM _ code,need _ storage,name,version,author,email,Description)return Filsdef Migrate _ contract(Avm _ code,need,email,Description): RES=Migrate(AVM _ code您可以在SmartX: 1上看到这个示例代码的操作结果。

把上面的代码粘贴到SmartX编译器中,放入参数。输入参数时要特别注意以下两点:a .验证链中不存在avm_code,否则不会报错;B .迁移必须有较高的气体限制,因此在运行功能时调整气体限制。

2.成功部署后,可以从控制器获得新的合同哈希。在本例中,be 4606 c 4663081 b 70 f 745 ed 9 fc 64d 4c 0d 9 c 183是新的合同哈希。

-威尼斯人平台。

本文来源:首页-www.divetofino.com