译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
欢迎阅读“跟我学Solidity”系列中的又一篇文章。在上一篇文章,我们看到了如何使用函数,并运用了到目前为止所学到的一切来构建一个多签名钱包。
在本文中,我们将看到如何从一个合约中创建另一个合约,以及如何定义抽象合约和接口。
合约创建
可以通过以太坊交易或在Solidity合约中使用new关键字创建合约,new关键字将部署该合约的新实例并返回合约地址。
通过Solidity文档中给出的示例,让我们仔细看看它是如何工作的。我将name变量设为public,以便我们可以读取到它的值,并且还会和createToken函数的返回值一起创建一个事件(关于事件,也会有其他的文章介绍):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
Gate.io“天天理财” 第159期 GT锁仓挖矿赚USDG明日开启:据官方公告,Gate.io 将于3月19日(明日)中午12:00上线《Gate.io“天天理财”第159期 GT锁仓挖矿赚USDG》,总额度 3,000,000 GT,锁仓期限7天。[2021/3/18 18:57:14]
functiontransfer(addressnewOwner)public{if(msg
}contractTokenCreator{eventTokenCreated(bytes32name,addresstokenAddress);functioncreateToken(bytes32name)publicreturns(OwnedTokentokenAddress){tokenAddress=newOwnedToken(name);emitTokenCreated(name,address(tokenAddress));}functionchangeName(OwnedTokentokenAddress,bytes32name)public{tokenAddress
Gate.io 将开通FIC充提服务及已开通BCHA充提服务:据官方公告,Gate.io将全面开通FIC(Filecash)主网币充值和提现服务(目前交易服务已开放);现已开通BCHA(BCHABC)充值和提现服务。风险提示:开通FIC充值服务以后,外部资金可能流入平台,造成FIC流通量上升,请务必注意价格变化,提前调整市场挂单,切勿追高。[2020/11/19 21:21:08]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代码
这次,我们使用Tuffle框架来辅助开发,可以参考快速入门指南进行项目设置。
首先,我们将创建一个新项目并通过执行以下命令对其进行初始化:
>mkdirtoken>cdtoken>truffleinit
Gate.io 理财宝今日USDT锁仓理财12点开启:据官方公告,Gate.io“天天理财” 第38期USDT锁仓理财将于今日中午12点开启,锁仓7天;USDT理财体验金活期福利专场正持续进行中。Gate.io理财宝两大专区含各大主流币种与热门币种理财项目。[2020/11/18 21:10:00]
打开项目,并更新truffle-config
;
返回命令行终端,输入truffleconsole以启动Truffle控制台,你可以在控制台中编译和部署合约:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
使用compile命令编译合约,使用migrate命令部署合约。
我们现在要做的是检索已部署的TokenCreator的实例。然后,进行两次调用createToken函数,并保存每个新创建合约的地址。
GateChain主网v1.0.3新升级 可通过保险账户进行PoS委托挖矿:GateChain主网已进行v1.0.3最新升级,增加通过保险账户进行PoS委托挖矿特性,可解决大额资金参与PoS挖矿的安全担忧。本次主要升级内容为:1.共识协议版本升级到v3,升级高度69834;2.调整每个区块奖励分配给三个选中共识节点的比例为40%、33%、27%,权重小的节点可以获得更多奖励;3.保险账户增加委托交易、转移委托交易、解除委托交易、提取挖矿收益共4种委托类交易类型;4.调整每笔交易的手续费最低为0.01GT。据悉,本次升级后,GateChain将加速主网币映射和开放共识节点建设进度。[2020/7/24]
Bytyping‘tokenCreator
...}
抽象合约
如果合约中的至少一个函数没有实现,则合约需要标记为abstract。即使实现了所有函数,合约也可能被标记为abstract。
抽象合约通过使用关键字abstract来完成,未实现的函数应具有关键字virtual以表示允许多态
动态 | Bitcoin IRA与BiGo达成合作推出以1亿美元投保的加密退休账户:据ambcrypto报道,数字资产IRA公司Bitcoin IRA宣布推出下一代投资退休账户(IRA)服务,用于加密资产。Bitcoin IRA的一个部门与BitGo Trust合作,BitGo Trust是专门为数字资产设立的托管机构。该伙伴关系的主要目标是为其用户基础提供有效的帐户资金,同时保持低费用(钱包费用降低近30%),以及显著增加1亿美元的保险保障。[2019/6/25]
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意味着什么?
标签:TOKENTPSDREUFFTokenariumhttps://etherscan.ioDreamTeamRUFF
本文作者为NewBloc策略分析师Barry,5年外汇黄金市场交易经历。授权金色财经首发。2021年新的周末,比特币仍在突飞猛涨.
美国外国资产控制办公室因未能阻止受制裁国家/地区的用户使用其加密钱包服务而对Bitgo处以罚款。该机构表示,Bitgo处理了183项“明显违反多项制裁程序的加密货币交易”.
亲爱的用户:为更好地服务币安经纪商用户,币安现推出经纪商等级和权益体系。欢迎跟单平台、量化机器人、资管策略方、社区平台、媒体等各流量平台加入币安经纪商.
比特币创下新高,目前再次突破了28000元大关,或将冲击3万美金?我们没上车的怎么做呢?实际上在二级交易市场当中,行情总是存在的当你没有抓住机会上车的情况下,也不要担心.
比特币多头又掀起了一轮风暴,2021到来之际,比特币也用一波酣畅淋漓的大涨来迎接新的一年,并且告别了多灾多难的2020,2020对于我们而言无疑是痛苦且不愿去回首的.
Gate.io上线BasisCash项目治理代币BAS挖矿DeFi理财,抵押BAS挖BAC稳定代币。收益按七日平均持仓发放,当前年化收益率约为500-3000%.