译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
欢迎阅读“跟我学Solidity”系列中的又一篇文章。在上一篇文章,我们看到了如何使用函数,并运用了到目前为止所学到的一切来构建一个多签名钱包。
在本文中,我们将看到如何从一个合约中创建另一个合约,以及如何定义抽象合约和接口。
合约创建
可以通过以太坊交易或在Solidity合约中使用new关键字创建合约,new关键字将部署该合约的新实例并返回合约地址。
通过Solidity文档中给出的示例,让我们仔细看看它是如何工作的。我将name变量设为public,以便我们可以读取到它的值,并且还会和createToken函数的返回值一起创建一个事件(关于事件,也会有其他的文章介绍):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
霍比特HBTC、Bobcat、Easylinkin三方达成战略合作:霍比特HBTC官方消息,与Helium达成战略合作并支持Helium在中国及东南亚地区的去中心化物联网的建设与发展后,霍比特HBTC正式宣布与Bobcat及Easylinkin达成战略合作。
Easylinkin、Bobcat作为Helium官方推荐合作商,将与霍比特HBTC联合发起HNT矿机——Bobcat Miner 300的大中华区首发销售。
Bobcat(山猫)是专为全球Decentralized Network用户而生的物联网服务商。Bobcat团队拥有丰富的Helium HNT获取经验与矿机技术经验。
Easylinkin是一家LoRaWAN 网关制造商,拥有200多项与LPWAN相关的专利,其网关和解决方案已部署在中国和海外100多个城市。
霍比特HBTC为币核集团旗下100%持币者共享的金融服务平台,可为广大用户提供币币、合约、杠杆、期权等多项加密资产业务,并涵盖了平台系统服务-HBTC白标券商、跨链公链-HBTC Chain以及优质项目投资机构-HBTC Labs。[2021/2/3 18:46:42]
functiontransfer(addressnewOwner)public{if(msg
霍比特交易所联合首发上线FAR:据霍比特HBTC官方公告,霍比特HBTC将于12月23日11:00(UTC+8)联合首发上线FAR(Farmland Protocol),并开通FAR/USDT交易对。同时,霍比特HBTC“持仓HBC,7折认购FAR”活动已于12月22日15:00-18:00(UTC+8)正式开启。
Farmland Protocol是采用权益证明机制(POS)共识的跨链DeFi平台,一个帮助各公链资产持有者参与DeFi借贷、交易、挖矿的协议组。Farmland集成了当前最流行的跨链协议,并在此基础上开发了新型跨链协议和社区治理模型,用以生成farmBTC,farmEOS等跨链资产。
详情见原文详情链接。[2020/12/22 16:07:45]
}contractTokenCreator{eventTokenCreated(bytes32name,addresstokenAddress);functioncreateToken(bytes32name)publicreturns(OwnedTokentokenAddress){tokenAddress=newOwnedToken(name);emitTokenCreated(name,address(tokenAddress));}functionchangeName(OwnedTokentokenAddress,bytes32name)public{tokenAddress
霍比特交易所以3.2285USDT价格完成今日HBC回购:据霍比特交易所官方公告,在全新的通证模型规则下,霍比特交易所每日以10倍PE定价从二级市场上回购HBC。今日10倍PE回购价格为3.2285USDT,5倍PE回购价格为1.6142USDT,回购收入为20,724USDT,其中10%的市价回购额为2,072.4USDT。
HBC是霍比特交易所推出的全新通证模型的平台币。霍比特交易所创新地推出了10倍PE定价回购模型和霍比特队长激励模型,此外还启动了“众筹流动性即上币”方案,重新定义交易所上币模式。[2020/8/10]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代码
这次,我们使用Tuffle框架来辅助开发,可以参考快速入门指南进行项目设置。
霍比特交易所运营VP 王亚瑟:霍比特队长奖励累计达520万:7月27日,霍比特交易所运营VP王亚瑟应邀参加了由谜渡举办的“刀锋对话”线上AMA,在谈及近期霍比特庞大的空投体量是否会受到二级市场抛压时,王亚瑟称,截至目前霍比特交易所空投累计已达到约520万,而由于霍比特交易所“100%收入每日回购+全新的10倍PE定价回购模型”,以及霍比特队长对于手中HBC的支配自由度的存在,HBC完全不用惧怕抛压。
霍比特交易所是100%持币者共享的交易平台,推出全新的10倍PE定价回购模型及霍比特队长激励模型,并推出平台资产透明和交易数据可信机制。霍比特交易所由火币、OKEx等56家资本共同投资,主营币币、合约、期权等业务,平台上主流币及合约交易拥有优秀流动性和深度。[2020/7/27]
首先,我们将创建一个新项目并通过执行以下命令对其进行初始化:
>mkdirtoken>cdtoken>truffleinit
打开项目,并更新truffle-config
;
返回命令行终端,输入truffleconsole以启动Truffle控制台,你可以在控制台中编译和部署合约:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
使用compile命令编译合约,使用migrate命令部署合约。
我们现在要做的是检索已部署的TokenCreator的实例。然后,进行两次调用createToken函数,并保存每个新创建合约的地址。
Bytyping‘tokenCreator
...}
抽象合约
如果合约中的至少一个函数没有实现,则合约需要标记为abstract。即使实现了所有函数,合约也可能被标记为abstract。
抽象合约通过使用关键字abstract来完成,未实现的函数应具有关键字virtual以表示允许多态
abstractcontractA{functionf()publicpurevirtual;}
抽象合约是直接实例化,即使它实现了所有函数。它们可以用作定义特定行为的基础合约用来给其他合约继承。实现函数应用override关键字修饰。
abstractcontractA{functionf()publicpurevirtual;}abstractcontractBisA{functionf()publicpureoverride{//functionbody}}
如果派生合约未实现所有未实现的函数,则也需要将其标记为abstract。
接口
接口类似于抽象合约,但是不能实现任何函数。还有其他限制:
它们不能从其他合约继承,但是可以从其他接口继承
所有声明的函数必须是外部的
他们不能声明构造函数
他们不能声明状态变量
使用关键字interface声明接口。
interfaceA{functionf()externalpure;}
接口中声明的所有函数都是隐式的virtual。
结论
本文就是这样。本文参考文档,在接下来的文章中,我们将深入研究智能合约开发。欢迎关注。
本翻译由CellNetwork赞助支持。
来源:https://medium.com/better-programming/learn-solidity-smart-contract-creation-and-inheritance-8424adac3570
参考资料
登链翻译计划:https://github.com/lbc-team/Pioneer
翻译小组:https://learnblockchain.cn/people/412
Tiny熊:https://learnblockchain.cn/people/15
上一篇文章:https://learnblockchain.cn/article/1817
代码:https://gist.github.com/wissalHaji/50af2ffc141fdf8ed6f598c1f516e3f1#file-token-sol
Tuffle框架:https://learnblockchain.cn/docs/truffle/
快速入门指南:https://learnblockchain.cn/docs/truffle/quickstart.html
Ganache:https://www.trufflesuite.com/ganache
本专栏:https://learnblockchain.cn/column/1
这里:https://learnblockchain.cn/docs/web3.js/
文档:https://learnblockchain.cn/docs/solidity/contracts.html#index-1
CellNetwork:https://www.cellnetwork.io/?utm_souce=learnblockchain
本文来源于非小号媒体平台:
登链社区
现已在非小号资讯平台发布105篇作品,
非小号开放平台欢迎币圈作者入驻
入驻指南:
/apply_guide/
本文网址:
/news/9566627.html
免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场
上一篇:
币安为何推出第三条链?这对BNB意味着什么?
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。