最新微软官方MSDN原版Win10系统下载

当前位置:主页 > U盘装系统 > U盘装win7系统 >

Python智能合约教程之合约升级

时间:2023-02-21    来源:开云体育APP下载官方网站    人气:

本文摘要:在上一期的技术视点中,我们讲解了合约原生 API,描写了如何利用智能合约展开ONT / ONG 账户。本期我们将辩论如何通过 Upgrade API 来展开合约升级。合约升级共计2个 API,网卓新闻网,分别为 Destroy 和 Migrate。其用法如下:下面我们明确描写一下这两个 API 的用于方法。 在这之前,小伙伴们可以在本体智能合约开发工具 SmartX 中新建一个合约,回来我们展开操作者。跟以前的 API 介绍一样,在文章最后我们将得出这次介绍的视频示例。

开云体育APP下载官方网站

在上一期的技术视点中,我们讲解了合约原生 API,描写了如何利用智能合约展开ONT / ONG 账户。本期我们将辩论如何通过 Upgrade API 来展开合约升级。合约升级共计2个 API,网卓新闻网,分别为 Destroy 和 Migrate。其用法如下:下面我们明确描写一下这两个 API 的用于方法。

在这之前,小伙伴们可以在本体智能合约开发工具 SmartX 中新建一个合约,回来我们展开操作者。跟以前的 API 介绍一样,在文章最后我们将得出这次介绍的视频示例。2. Upgrade API 用于方法用于这两个函数前必须引进。

下面两条语句分别引进了 Migrate 和 Destroy 这两个函数。from ontology.interop.Ontology.Contract import Migratefrom ontology.interop.System.Contract import Destroy2.1 Destroy APIDestroy API 用作封存合约,原有合约将不会在链上被移除。下面是用于该 API 的示例代码。

from ontology.interop.System.Contract import Destroyfrom ontology.interop.System.Runtime import Notifydef Main(operation, args):if operation == "destroy_contract":return destroy_contract()return Falsedef destroy_contract():Destroy() # 调用destroy 封存此合约Notify(["The contract has been destoryed"])return True在 SmartX 上可以看见该示例代码的运营结果:将以上代码粘贴至 SmartX 编译器并部署;再度页面部署会弹出有「合约部署告终,该合约早已部署过」,因为链上早已不存在完全相同合约;3. 运营 destroy_contract 函数封存合约;4. 再度页面部署合约,不会找到合约可以再度部署,会再行插入「合约部署告终,该合约早已部署过」。这可以证明原本合约早已在链上被封存。2.2 Migrate APIMigrate API 用作迁入合约, 原有合约将不会被新的合约代替,原有合约中的数据也将自动迁入到新的合约。迁入数据量越大,迁入费用越高。

迁入顺利后,原有合约不会被移除。特别注意:合约中的资产会被自动迁入,必须提早并转回头。否则该合约中的资产将无法拿回,相等于被转至黑洞地址。

Migrate 函数的起源于参数列表如下:某种程度,我们得出用于 Migrate 函数的合约示例代码:from ontology.interop.Ontology.Contract import Migratefrom ontology.interop.System.Runtime import Notifyfrom ontology.libont import AddressFromVmCodedef Main(operation, args):if operation == "migrate_contract":if len(args) != 7:return Falseavm_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 Falsedef migrate_contract(avm_code, need_storage, name, version, author, email, description):res = Migrate(avm_code, need_storage, name, version, author, email, description) # 调用Migrate 迁入此合约if res:Notify(["Migrate successfully"])new_contract_hash=AddressFromVmCode(avm_code) # 计算出来新的合约地址Notify(new_contract_hash) # 打印机出有合约地址return Trueelse:return False在 SmartX 上可以看见该示例代码的运营结果:1. 将以上代码粘贴至 SmartX 编译器,放入参数。参数放入时必须特别注意以下两点:a. 要证实 avm_code 在链上不不存在,不然不会报错;b. Migrate 必须较高的 gas limit,所以运营函数时要调整 gas limit。

2. 部署顺利后,可以从控制器获得新的合约哈希。该示例中,be4606c4663081b70f745ed9fc64d4c3b0d9c183 即为新的合约哈希。


本文关键词:开云体育APP下载官方网站,Python,智能,合约,教程,之,升级,在上,一期,的

本文来源:开云体育APP下载官方网站-www.akyxym.com

相关文章

  • “正装蝴蝶效应”彰显“优雅教育魅力”

    “正装蝴蝶效应”彰显“优雅教育魅力”

    简介:中公时事政治频道改版国内国际时事政治热点,并获取时事政治热点政策理解、理论仔细观察、时事大事记及时事政治热点汇总等。今天我们注目...
    2023-02-21 03.02.01
  • 29岁社区主任不幸去世,不能止于痛惜

    29岁社区主任不幸去世,不能止于痛惜

    简介:中公时事政治频道改版国内国际时事政治热点,并获取时事政治热点、时事政治模拟题、时事政治政策理解、大事记以及时事政治汇总等,今天我们...
    2023-02-17 03.02.02
  • 
实行依法治国 建设社会主义法治国家

    实行依法治国 建设社会主义法治国家

    只有把体现人民利益、反映人民愿望、维护人民权益、增进人民福祉落实到依法治国全历程让人民群众真正有获得感、幸福感、宁静感法治才气更充实地体...
    2023-02-07 03.02.01
  • 
【事情部署】尖扎县社会保险服务局召开县委十四届八次全体集会精神

    【事情部署】尖扎县社会保险服务局召开县委十四届八次全体集会精神

    责编:林菁 会上县社保局局长靳占芬转达学习了尖扎县委十四届八次全体集会精神陈昌正书记在全会上所作的事情陈诉和旦增县长的讲话精神并由医保口卖...
    2023-02-07 03.02.01
  • 
社保卡和医保卡是一张卡吗

    社保卡和医保卡是一张卡吗

    医疗保险报销应该是社保中最为常见的保障福利了,在医保报销中许多时候都市提到医保卡,可是对于一些参保人群而言手上只有一张社保卡,怎么回事呢...
    2023-02-07 03.02.01

U盘装win7系统排行榜

更多>>

U盘装系统排行榜

更多>>

系统教程排行榜

更多>>

公众号