木星链 木星链
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

Matrixport与加密托管公司Copper达成合作,为机构客户提供场外结算服务:5月16日消息,吴忌寒旗下数字资产金融服务平台Matrixport与加密货币托管公司Copper达成合作,为其机构客户提供场外结算服务,其中Matrixport将加入Copper的ClearLoop网络,允许用户通过Matrixport子账户在ClearLoop连接的交易所进行交易时,将他们的资产安全地保存在Copper的基础设施中。[2023/5/16 15:05:35]

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

去中心化期权协议Numoen上线Polygon:3月24日消息,无需许可的去中心化期权协议Numoen已上线Polygon,目前支持的市场包括WETH/USDC、USDC/USDT、GHST/USDC、MATIC/WETH。[2023/3/24 13:24:37]

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

}

代码

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

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

>mkdirtoken>cdtoken>truffleinit

打开项目,并更新truffle-config

BAYC“召唤”铸造的新NFT系列HV-MTL地板价已升至2.4 ETH,交易额超3600 ETH:3月16日消息,“无聊猿”BAYC今日宣布正式启动“召唤(Summoning)”后,下水道通行证Sewer Pass持有者将可以铸造其最新NFT系列HV-MTL。

HV-MTL(Heavy Metal)系列由3万枚“Evo 1”Mechs机甲NFT系列组成,Sewer Pass持有者销毁自己的NFT时可从Power Sources获得该NFT,持有HV-MTL NFT将被允许访问未来的游戏和内容。

据悉HV-MTL上线后被社区发现元数据存在问题(缺少部分特征),不过BAYC在四个小时后宣布问题已经解决。

OpenSea最新数据显示,当前HV-MTL地板价已升至约2.4 ETH,总交易额达到3601 ETH,按照当前价格计算约合600万美元。(Decrypt)[2023/3/16 13:07:53]

;

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

Binance推出纳税申报工具“Binance Tax”以帮助用户纳税:金色财经报道,Binance宣布推出一款纳税申报工具,帮助用户跟踪他们的加密交易,以实现纳税申报目的。Binance Tax允许其用户下载一份税务摘要报告,其中包括其Binance账户全年发生的任何收益或损失。这包括现货交易、加密捐赠和基于区块链的分叉奖励。Binance Tax目前在法国和加拿大处于试点阶段,今年晚些时候将扩展到Binance生态系统的其他全球市场。[2023/2/6 11:50:14]

Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.

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

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

Bytyping‘tokenCreator

韩国央行行长:将进一步加强中央银行开展与数字货币相关的工作:9月29日消息,韩国央行行长李昌镛表示:韩国央行尚未就是否发行央行数字货币做出最终决定。韩国央行正在与许多商业银行一起试验央行数字货币,将进一步加强中央银行开展与数字货币相关的工作。(金十)[2022/9/29 22:38:53]

...}

抽象合约

如果合约中的至少一个函数没有实现,则合约需要标记为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意味着什么?

标签:KENTOKTOKETOKEN最新imtoken官网下载itokenwallet怎么卖币AUTZ TokenBSB Token

屎币热门资讯
FTX:美 SEC 向对冲基金 Virgil Capital 下达资产冻结令

链闻消息,美国证券交易委员会宣布已针对对冲基金VirgilCapital及其创始人秦世得涉嫌证券欺诈一案,向VirgilCapital及其关联公司采取紧急行动,并下达资产冻结令.

1900/1/1 0:00:00
比特币:BSN长话短说之二 | 关于虚拟货币在中国的合法性分析

由区块链服务网络BSN联合火星财经共同策划的《关于区块链和虚拟货币相关法律问题的讨论系列》第一期在火星视频直播播出,主题为“虚拟货币在中国的合法性分析”.

1900/1/1 0:00:00
FEX:AOFEX关于招募全球OTC市商的公告

尊敬的用户:为给全球用户带来更优质的服务,AOFEX现推出全球招募OTC市商计划,面向全球招募优质OTC市商,欢迎全球有实力和经验丰富的OTC市商申请认证.

1900/1/1 0:00:00
BAN:【公示】“GUSDT交易赛”12.28获奖名单

尊敬的LBank用户:LBank现公示从12月27日15:00至12月28日15:00交易量排名前三的中奖名单,具体情况如下:*为保证活动公平,LBank严禁刷单、对敲等作弊行为.

1900/1/1 0:00:00
LON:关于ZBG平台开放LON (Tokenlon)交易的公告

公告编号2020122803各位关心ZBG的投资者们和项目方:ZBG将于HKT2020年12月30日上线LON项目,并开放LON/USDT交易对,具体时间如下,请投资人和项目方提前做好交易准备.

1900/1/1 0:00:00
AST:沸腾 2020:中国加密矿业大悲大喜 明年或新增 60 万台 变数是比特大陆

前言:2020是沸腾的一年。从312暴跌到比特币新高,从DeFi狂潮到Filecoin上线。“一个牛市可以赚10年的钱”,但也有人合约亏损酿成惨案.

1900/1/1 0:00:00