火星链 火星链
Ctrl+D收藏火星链

KEN:跟我学 Solidity :合约的创建和继承

作者:

时间:1900/1/1 0:00:00

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

欢迎阅读“跟我学Solidity”系列中的又一篇文章。在上一篇文章,我们看到了如何使用函数,并运用了到目前为止所学到的一切来构建一个多签名钱包。

在本文中,我们将看到如何从一个合约中创建另一个合约,以及如何定义抽象合约和接口。

合约创建

可以通过以太坊交易或在Solidity合约中使用new关键字创建合约,new关键字将部署该合约的新实例并返回合约地址。

通过Solidity文档中给出的示例,让我们仔细看看它是如何工作的。我将name变量设为public,以便我们可以读取到它的值,并且还会和createToken函数的返回值一起创建一个事件(关于事件,也会有其他的文章介绍):

//SPDX-License-Identifier:GPL-3

functionchangeName(bytes32newName)public{if(msg

数据:Ordinals文本类铭文总量突破1000万枚:金色财经报道,据Dune Analytics最新数据显示,比特币NFT协议Ordinals的本文类铸造铭文总量已突破1000万枚,本文撰写时达到10,275,817枚,是当前铸造量最多的Ordinals铭文类型。此外,png图片类铭文当前铸造量为631,407枚、webp图片类铭文铸造量为164,759枚,分列第二和第三位。[2023/6/9 21:25:53]

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

加密奇幻游戏应用TradingLeagues完成350万美元Pre-A轮融资:6月8日消息,加密奇幻游戏应用 TradingLeagues?完成 350 万美元 Pre-A 轮融资,Leo Capital、Jeejeebhoy 家族办公室以及由红杉印度和 Westbridge Capital 创始人 KP Balaraj 家族办公室旗下的 KPB 家族信托基金参投。[2023/6/8 21:23:09]

functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi

}

代码

这次,我们使用Tuffle框架来辅助开发,可以参考快速入门指南进行项目设置。

首先,我们将创建一个新项目并通过执行以下命令对其进行初始化:

>mkdirtoken>cdtoken>truffleinit

Nansen:自Arbitrum One成立以来GMX的合约日志和实体内交易份额约为22%占比最高:3月18日消息,区块链分析公司Nansen发布了自Arbitrum One成立以来链上合约日志和实体内交易份额数据,其中显示GMX占比约为22%排名第一,排名2至5位的分别是:Treasure(19%)、SushiSwap(9%)、Uniswap(6%)和Hop Protocol(5%)。Nansen澄清,关于分配给社区的ARB空投,链上合约日志和实体内交易份额只是涉及Arbitrum链上DAO活动的众多指标之一,并不是ARB代币空投分配的唯一输入点。[2023/3/18 13:11:56]

打开项目,并更新truffle-config

;

返回命令行终端,输入truffleconsole以启动Truffle控制台,你可以在控制台中编译和部署合约:

Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.

Cosmos Hub计划于2月16日进行Rho升级:2月15日消息,Cosmos Hub计划于区块高度14099412(预计在北京时间2023年2月16日9:00)进行主网Rho升级。

据悉,本次升级将是Replicated Security发布之前的最后一次重大升级。当前的Rho版本包含许多小的改进、对测试基础设施的广泛更新以及Global Fee模块的添加。[2023/2/15 12:09:10]

使用compile命令编译合约,使用migrate命令部署合约。

我们现在要做的是检索已部署的TokenCreator的实例。然后,进行两次调用createToken函数,并保存每个新创建合约的地址。

Bytyping‘tokenCreator

...}

抽象合约

如果合约中的至少一个函数没有实现,则合约需要标记为abstract。即使实现了所有函数,合约也可能被标记为abstract。

Solana EVM兼容方案Neon已推迟发布,“早期建设者计划”将纳入其中:12月13日消息,Solana EVM兼容方案Neon发文表示,由于涉及第三方的备案程序,Neon EVM兼容主网的发布已推迟,但关于底层代码和机制等技术准备已就绪,此外Neon基金会计划在本月发布“早期建设者计划”(Early Builders Program),以将开拓性项目纳入Neon EVM。(Medium)[2022/12/13 21:40:57]

抽象合约通过使用关键字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意味着什么?

标签:TOKEKENTOKTOKENValencia CF Fan TokenKENNEL价格WEN TokenReal Estate Token

芝麻开门交易所热门资讯
FIN:关于下线BTT/TRX和WIN/TRX交易对的公告

亲爱的用户:DigiFinex将于2020年12月28日17:00(GMT8)下线BTT/TRX和WIN/TRX交易对.

1900/1/1 0:00:00
TPS:Gate.io今日直播:王者荣耀半决赛、实盘解说等19个节目即将开播

Gate.io直播间作为行业内首个交易所内置直播功能,通过多样性的直播形式为平台用户带来具有深度、有趣、开放的信息内容.

1900/1/1 0:00:00
加密货币:回顾2020这一年,比特币有何变化?

2020年是令人难忘的一年,病让全世界陷入封锁状态,各国的经济发展都放慢了脚步。对加密货币行业来说,这一年是机构入场数量激增的一年,也是DeFi版块戏剧性崛起的一年.

1900/1/1 0:00:00
GBP:币安杠杆平台新增GRT、NBS、GTO、MITH、GBP资产与交易对

亲爱的用户:币安杠杆平台现已增加以下资产:全仓杠杆新增GRT资产,开放GRT/BTC、GRT/USDT、GRT/ETH全仓交易对;逐仓杠杆新增NBS、GTO、MITH、GBP资产.

1900/1/1 0:00:00
HTT:XT关于上线BNB、OKB的公告

尊敬的XT用户:XT将于2020年12月31日12:00开放BNB、OKB充提业务,并于2020年12月31日12:00开放BNB/USDT、OKB/USDT交易.

1900/1/1 0:00:00
WAVES:币安Staking上线COS、WAVES高收益锁仓活动,年化高达29.45%

亲爱的用户:币安Staking平台将于2020年12月30日20:00上线COS、WAVES高收益锁仓活动.

1900/1/1 0:00:00