澳门ag真人游戏首页-澳门ag真人游戏厅首页

0651-852508349

在线客服| 微信关注
当前位置: 首页 > 后期工艺 > 画册精装

Solidity智能合同_澳门必中三肖三码官方


本文摘要:contractIstorage{enumrecordstate{statea,stateb}functionsetstate(addressuser,recordstatenewstate)pupconstructor()public{}functionsetstate(addressuser,recordstatenewstate)public{States[user]=SetState函数可更改用户的状态。

枚举

想象一下正在起草Solidity智能合同。属性之一可以用类型或状态来说明。也就是说,在有限的选项集中。

你立刻对自己说。“太好了,我不打算只用来列举对这个状态变量的回答。”一方面,这种方法有一些好处,例如减少可读性。

另一方面,它更容易让你走上可能引起问题的麻烦道路。嗯,如果枚举(ENUM)成员只有PCB在一个合同中,并且没有在其他文档中提及,那么一切都是可能的。

但是,DAPP通常由一些相互连接的合同组成。经常发生完全相同的枚举时,我要争论的问题并不经常发生。

1.枚举成员经常出现在多个合同中。2.在DApp生命周期中展开变更。例如,有两个合同。

成员

首先是存储非常重要的信息。另外,声明并提及了具有枚举定义的模块。

contract I storage { enum recordstate { statea,stateb } function setstate(address user,recordstate new state)pupconstructor()public { } function setstate(address user,record state new state)public { States[user]=SetState函数可更改用户的状态。还有一个最终用户需要交互的协议(非常简单的存储协议中省略了访问控制修改器)。contract storage user { I storage public record storage;constructor(I storage _ record storage)public { record storage=_ record storage;} functionchangestate a()public { record storage . setstate(msg . sender,istorage . record state . States } function change一切都很好调用changeStateA或changeStateB,并通过自己的setState函数对存储合同中的数据进行相应的更改。

但是有一天你意识到你需要一个全新的状态选项来构建新的功能。(威廉莎士比亚,温弗里,希望如此)你叫Statec。

多么好的名字啊!)。首先,在IStorage中添加新的枚举成员,以更改源代码.enum recordstate {statea,stateb,statec}和StorageUser的新方法。functionchangestatec()public { record storage . setstate(msg . sender,istorage.recordstate.statec. }也是负责任的开发人员,负责编写调用新方法的测试,并提供顺畅的报告因为只有重建StorageUser合同的计划,而且不期待重新部署存储,所以很多最重要的数据使用同构形式,很难迁移。

因此,StorageUser用于作为其结构函数参数重新部署到当前存储上。你调用新的changeStateC函数.它结束了如您所见,结局的根本原因,修订后的Storage State对RecordState枚举的3名成员说,但原来的StateC选项没有线索。(阿尔伯特爱因斯坦,Northern Exposure(美国电视连续剧),成功)SetState函数参数StateC无法切换到枚举版本,因此结束。

更重要的是,测试会欺骗你,因为它被用于两个合同的修订版。本质上,网络卓新闻网络,你甚至可以在官方文件中看到关于这个问题的警告。

在整个显式切换中,操作时检查该值是否在枚举范围内。否则,将发生结束的断言。需要学习的教训最好先用普通整数替换上述情况下的枚举。

是的,看起来不那么好,但结果结构更可靠,更可扩展。第二,不要放弃枚举字段中使用的整个想法。

如果这种领域只有一个合同,那就意味着安全。变更时,几乎可以重新分发枚举中使用的所有合同的保证也是安全的。要求您忘记,枚举第一次从IStorage导入到StorageUser合同时经常出现问题,只有在更改初始成员后才会重新部署。只是不要记住,如果你知道要写在合同上,就要经过最糟糕的深思熟虑后再做。

重新部署

约翰肯尼迪。


本文关键词:澳门必中三肖三码官方网站2020,发生,状态,枚举,重新部署

本文来源:澳门必中三肖三码官方-www.dinartazkia.com

客户案例Customer case
  • NASA成功测试两个火箭发动机燃烧室【澳门必中三肖三码官方】
  • 艾康科技:挤压亏损资产深入主营业务-澳门必中三肖三码官方网站2020
  • Rofin
  • PLC数字输出模块的分类:澳门必中三肖三码官方
  • 人工智能知名企业篇-澳门必中三肖三码官方
  • 国内专业高空作业机器人开发商Robot完成预A轮投资2000【澳门必中三肖三码官方】
  • 郑泰电发表2018年业绩报告:建设营业收入274-澳门必中三肖三码官方
  • 如何自由选择客厅装饰画尺寸?_澳门必中三肖三码官方
  • 2012年光伏上市公司Q2财务报告
  • “公里/时间下调费”6大措施进入全面实施落地阶段_澳门必中三肖三码官方网站2020