比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads
首頁 > PEPE幣 > Info

跟我學 Solidity :合約的創建和繼承_KEN

Author:

Time: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

知情人士:OpenAI允許部分員工將所持股份套現:金色財經報道,據知情人士透露,OpenAI已告訴員工,公司已經敲定了一項收購要約,允許部分員工將所持股份套現。在過去幾個月里,這家總部位于舊金山的初創公司已經就收購要約進行了談判,投資者將以大約270億美元的估值購買OpenAI員工的利潤單位(本質上是未來OpenAI利潤的權利)。(The Information)[2023/4/18 14:09:57]

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

V神:個人和以太坊基金會均使用多簽錢包存儲大部分資金:3月17日消息,以太坊聯合創始人 Vitalik Buterin 在社交媒體上稱,自托管非常重要,社交恢復和多重簽名是實現這一目標的好方法。我個人使用多重簽名錢包來存儲我的大部分資金,以太坊基金會也是如此。一旦社交恢復錢包變得足夠成熟,我的建議是將社交恢復用于存儲個人或組織一小部分資金的熱錢包,以及用于存儲個人或組織儲蓄的冷錢包的多重簽名。[2023/3/17 13:10:07]

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

}

代碼

這次,我們使用Tuffle框架來輔助開發,可以參考快速入門指南進行項目設置。

首先,我們將創建一個新項目并通過執行以下命令對其進行初始化:

調查:近40%的美國投資者在市場不確定下購買更多的加密貨幣:金色財經報道,根據The Balance發布的一項調查,新的研究表明,在市場不確定性的影響下,39%的美國投資者正在尋找新的投資和保護財富的方式,從而選擇購買更多的加密貨幣。盡管如此,41%的調查參與者表示,他們更多地投資于股票,而其中約三分之一的人分別對交易所交易基金(ETF)和指數基金進行了更多投資。與此同時,34%的投資者表示此時他們的投資習慣沒有變化。超過四分之一的受訪投資者承認投資較少。具體來說,近20%的投資者表示,他們在接受調查時對加密貨幣的投資較少。(finbold)[2022/8/5 12:04:55]

>mkdirtoken>cdtoken>truffleinit

打開項目,并更新truffle-config

;

返回命令行終端,輸入truffleconsole以啟動Truffle控制臺,你可以在控制臺中編譯和部署合約:

億萬富翁Chamath Palihapitiya:比特幣正面臨巨大的系統性風險:金色財經報道,億萬富翁、風險投資公司Social Capital創始人Chamath Palihapitiya警告說,比特幣正面臨著巨大的系統性風險,這種風險可能會在未來產生重大影響。 Palihapitiya認為,這些風險主要是由缺乏監管造成的。

他警告說,如果從監管的角度來看,如果現在不采取措施,這些風險可能會對比特幣的未來產生負面影響。(Finbold)[2022/7/14 2:12:53]

Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.

使用compile命令編譯合約,使用migrate命令部署合約。

我們現在要做的是檢索已部署的TokenCreator的實例。然后,進行兩次調用createToken函數,并保存每個新創建合約的地址。

Bytyping‘tokenCreator

The Sandbox發布Alpha Season 3宣傳片:金色財經報道,The Sandbox在其官方社交媒體發布了一段Alpha Season 3宣傳片并配文“即將上線”。據悉,Alpha Season 3 將提供更多與 NFT 交互的方式,為空間帶來實用性,并繼續構建開放元宇宙,玩家將有機會通過創造眾多體驗探索The Sandbox元宇宙。[2022/7/2 1:45:32]

...}

抽象合約

如果合約中的至少一個函數沒有實現,則合約需要標記為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意味著什么?

Tags:KENTOKENTOKTOKEimtoken安全下載appTidex TokenOFIN TokenBabil Token

PEPE幣
關于Hotbit定于12月29日關閉BLACK/EOS、EOSDAC/EOS、DICE/EOS、IQEVPD/EOS、EMT/EOS 交易對的公告_ACK

尊敬的用戶: Hotbit定于香港時間12月29日16:00關閉BLACK/EOS、EOSDAC/EOS、DICE/EOS、IQEVPD/EOS、EMT/EOS交易對.

1900/1/1 0:00:00
Gate.io“旦旦”有賞,動態曬單活動公告_GATE

元旦將至,為回饋平臺用戶,Gate.io特此開啟“旦旦”有賞,動態曬單有賞活動。活動期間,用戶在平臺進行合約交易并曬單發動態,即有機會贏取GT和限量周邊大禮包獎勵,歡迎踴躍參與!活動時間:202.

1900/1/1 0:00:00
覓新|Kylin Network:Polkadot的DeFi基礎設施_ORK

《覓新》是金色財經推出的一檔區塊鏈項目觀察類項目,覆蓋行業各領域項目發展情況,具體設計到項目概況、技術進展、募資情況等,力圖為您呈現熱門新潮的項目合輯.

1900/1/1 0:00:00
【公示】“GUSDT交易賽”12.30獲獎名單_ANK

尊敬的LBank用戶: LBank現公示從12月29日15:00至12月30日15:00交易量排名前三的中獎名單,具體情況如下:*為保證活動公平,LBank嚴禁刷單、對敲等作弊行為.

1900/1/1 0:00:00
12.30比特幣早間行情分析及操作策略_300

12.30比特幣早間行情分析及操作策略多空皆可賺錢,唯有貪婪者例外,一切的交易,情緒起到關鍵性的作用,花全部的時間研究趨勢,永遠不要和趨勢作對,學會跟隨,才能學到精髓,錯誤并不可恥.

1900/1/1 0:00:00
Hotbit 定于2020年12月30日上線MIS (MITH Share)_HOT

尊敬的用戶: Hotbit即將在開啟MIS(MITHShare)數字資產服務,并開放MIS理財產品。預計年化收益:10%;計息:T1.

1900/1/1 0:00:00
ads