很多假设的知识都没有得到很好的解释。例如,将外部契约和库导入智能契约。
您可能确切地知道智能契约是做什么的,并且使用起来也很舒服,但实际上导入它的语义是一个障碍。
在早期,我记得复制和粘贴库代码到我的。SOL文件是一个很好的解决方案。
本文描述如何将外部智能契约或库导入到智能契约中。
因为想要
智能合同开发的第一步可能是使用Remix在线IDE。这是一个优秀的编译工具,允许您快速访问Soldesert编译器,因此您可以更快地学习该语言。
一旦您对使用Soldesert有了信心,您就会希望在桌面IDE的本地环境中进行开发。将代码放在项目目录中并在本地运行,可以进行快速开发,使用版本控制和开放源代码。
这就是松露套装的由来。
它将所有代码保存在一个地方,没有太多配置,完成基本工作的学习曲线非常浅。
下一次,当你创建一个新的项目,与一个聪明的合同,开始松露。让我们开始吧,
的节点
松露在Node.js上运行。如果还没有安装,请访问其网站并按照安装说明进行操作。
松露
通过运行以下命令使用节点包管理器(NPM)安装Truffle:
Npminstall——gtruffle
文本编辑器
确保安装了最新的文本编辑器。我使用VS代码。
在安装完所有东西之后,导航到您首选的工作空间,并创建一个新的目录来保存我们的松露项目,然后初始化一个松露项目:
Mkdirmy – projectcdmy – project/truffleinit
在文本编辑器中打开新项目目录。您的文件夹结构应该如图1所示。应该有三个子目录:Contract /、migrations/和test/;和一个文件:松露-配置JS。
Contract/是存放SOLarium智能合同代码的位置。松露知道去哪里找。编译并迁移到区块链的SOL文件。
migration /是我们的迁移逻辑所在的位置。在这里,我们可以描述在部署智能契约时正确部署它们所需的步骤。
测试/是我们编写智能合同的地方,以确保它们按预期工作。
js包含了关于Truffle框架的网络、编译器、文件位置和其他自定义配置的信息,以了解我们的位置。
安装和进口
OpenZeppelin是ETHereum智能合同的黄金标准可重用存储库。在这个项目中,我们将安装repo作为一个依赖项,并导入Ownable契约,这样我们就可以限制对某些功能的访问。
您可能以前见过或使用过类似的模式。初始化智能契约后,味精将返回。发件人地址存储在一个状态变量中,该状态变量指示契约所有者。使用自定义限定符_onlyOwner,一些函数通过要求msg来限制访问。sender等于所有者。
在库根目录下,运行:
@ openzeppelin/合同-扑救
完成之后,您应该会在根目录中看到一个名为node_modules的新文件夹。
在Node_modules中,NPM下载了OpenZeppelin/ contract库,其中包含了OpenZeppelin必须提供的所有合同和库。
我们将使用Ownable合同,该合同来自于项目的根目录@ openzeppelin -坚实/合同/访问/Ownable。索尔。
在合同/文件夹中,创建一个新的Soldesert文件,该文件将被导入到Ownable合同中。我叫它testcontract。SOL。
首先,我们声明一下SOLarium编译器的版本,我们用的是0。6.0;然后我们需要使用找到的路径导入Ownable契约;最后我们需要声明合同,合同应该来自于Ownable。
图2显示了这一切之后的框架智能契约。
PragmaSOLidity ^ 0.6.0;进口“开放飞艇-可靠性/合同/访问/可拥有”索尔”;续
在此契约中编写新特性时,我们可以在公共、私有、内部或外部修饰符之后添加onlyOwner修饰符,以声明该特性只能由所有者运行。
这里有一个简单的例子:
/ / ThisfunctionhasnorestrictionsonwhocancallitfunctionnoRestrictions (public){…/ / whotriestocallitwillresultinareertedtransactionfunctionrestrictedfunctions publiconlyOwner(){…}
为确保智能合约随新增受限制功能一起编译,请运行:
trufflecompile
如果一切顺利,您可以开始将智能契约迁移到本地区块链,编写测试,并部署到公共测试网络!
文章标题:|,即区块链研究实验室,是如何将外部情报合同和图书馆引入soldesert的
文章链接:https://www.btchangqing.cn/32231.html
更新时间:2020年06月05日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。