译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
欢迎阅读“跟我学Solidity”系列中的又一篇文章。在上一篇文章,我们看到了如何使用函数,并运用了到目前为止所学到的一切来构建一个多签名钱包。
在本文中,我们将看到如何从一个合约中创建另一个合约,以及如何定义抽象合约和接口。
合约创建
可以通过以太坊交易或在Solidity合约中使用new关键字创建合约,new关键字将部署该合约的新实例并返回合约地址。
通过Solidity文档中给出的示例,让我们仔细看看它是如何工作的。我将name变量设为public,以便我们可以读取到它的值,并且还会和createToken函数的返回值一起创建一个事件(关于事件,也会有其他的文章介绍):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
NFT项目y00ts:3月27日起将迁移至Polygon,24小时内完成迁移将获得奖励:3月26日消息,NFT项目y00ts在推特上表示将于3月27日开始迁移至Polygon,用户可以直接从我们的官方网站迁移,在24小时内完成迁移将获得奖励。Gas费用将由Magic Eden提供,质押也将免费。
在最初的24小时内,y00ts团队将在Polygon上根据y00ts数量一比一空投BTC DeGod。快照将于迁移开始24小时后在Polygon上进行。官方将随即选择可获得空投的y00t,ID号将在Discord上公布(附有申领说明)。
此外,为了专注于EVM,y00ts团队反对在SOL上进一步开发y00ts/DeGods。DeGods将于3月31日迁移至以太坊。
此前消息,y00ts创始人Frank III表示,Polygon向y00ts支付了300万美元,以此来促进该项目向Polygon的迁移。[2023/3/26 13:27:27]
functiontransfer(addressnewOwner)public{if(msg
Binance将BUSD集成至Optimism网络,现已开放充提:2月2日,据官方公告,Binance已完成BUSD在Optimism网络上的集成,并已开放BUSD在Optimism网络上的存取款服务。用户现在可以在以太坊、BNB Chain、Avalanche、Polygon、TRON和Optimism网络上转移BUSD。[2023/2/2 11:43:33]
}contractTokenCreator{eventTokenCreated(bytes32name,addresstokenAddress);functioncreateToken(bytes32name)publicreturns(OwnedTokentokenAddress){tokenAddress=newOwnedToken(name);emitTokenCreated(name,address(tokenAddress));}functionchangeName(OwnedTokentokenAddress,bytes32name)public{tokenAddress
数据:BTC非零地址数刚刚达到历史新高:金色财经报道,据glassnode数据,BTC非零地址数刚刚达到42895747的历史新高。[2022/10/23 16:35:52]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代码
这次,我们使用Tuffle框架来辅助开发,可以参考快速入门指南进行项目设置。
首先,我们将创建一个新项目并通过执行以下命令对其进行初始化:
>mkdirtoken>cdtoken>truffleinit
打开项目,并更新truffle-config
;
返回命令行终端,输入truffleconsole以启动Truffle控制台,你可以在控制台中编译和部署合约:
加密交易公司QCP:以太坊合并可能不会立即导致通缩:金色财经报道,随着ETH合并即将到来,人们普遍预计此次升级将使ETH成为一种通货紧缩的加密货币。来自新加坡的加密交易公司QCP Capital的策略师在最近发布的一份报告中称,超级看涨的论点是ETH 2.0将立即预示着ETH通货紧缩供应的新时代。但这并不完全正确,至少现在是这样。虽然合并可能会导致以太坊供应减少,使其成为通缩资产,但网络使用率低可能会延迟预期的看涨效应。而看涨的推动力将来自燃烧率,在加密冬季,看起来并不那么乐观。
根据QCP的数据,矿工目前每年收到500万个ETH(约81亿美元)。过渡后,这一数字估计将下降到每年100万ETH,用于支付给PoS质押者的奖励。(支付的奖励金额取决于质押者的数量,而质押者的数量又与质押收益挂钩)。[2022/9/8 13:17:39]
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
数据:处于亏损状态的以太坊地址数创两年内新高:5月14日消息,据Glassnode数据显示,处于亏损状态的以太坊地址数创两年内新高,为31,101,288.667个地址(7日平均)。[2022/5/15 3:16:44]
使用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意味着什么?
标签:TOKTOKENTOKEKENKols Offering TokenNeutrino System Base Tokenitokenwallet系统操作权限FairyLand Token
Gate.io今日ETH2.0PoS挖矿奖励已发放,用户可以到账单明细中查看详情。Gate.io于12月21日起为ETH2持仓用户按14日平均持仓分发ETH2.0PoS挖矿奖励,当前年均收益率为.
1900/1/1 0:00:00在即将结束的2020年,这一年不管是对于整个世界还是对于整个币圈都是令人难忘的一年,尤其是比特币在今年由多个知名机构入场后让比特币成为了宏观的经济资产.
1900/1/1 0:00:00链闻消息,基于Polkadot构建的区块链CRM平台CereNetwork获得了Web3基金支持,用于进一步开发一站式私有、许可、独立的区块链网络,该网络可以很容易地被任何企业集成.
1900/1/1 0:00:00Gate.io已于2020年12月28日12:00上线Whiteheart(WHITE)交易,Whiteheart(WHITE)充值赛即日开启,总奖池10,000美元,共设100个获奖席位.
1900/1/1 0:00:00作为区块链行业发展的参与者和见证者,KuCoin坚定的认为,区块链核心精神和价值应当被维护,行业里每一个致力于用创新区块链技术改造人类社会乃至人类未来的项目应当被尊重.
1900/1/1 0:00:00尊敬的社区用户:霍比特交易所将于2020年12月29日14:05上线REEF/USDT聚合交易对。由于REEF为聚合交易币对,所以暂时不开放充币和提币,充币和提币开放时间之后将会以公告另行通知.
1900/1/1 0:00:00