譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
歡迎閱讀“跟我學Solidity”系列中的又一篇文章。在上一篇文章,我們看到了如何使用函數,并運用了到目前為止所學到的一切來構建一個多簽名錢包。
在本文中,我們將看到如何從一個合約中創建另一個合約,以及如何定義抽象合約和接口。
合約創建
可以通過以太坊交易或在Solidity合約中使用new關鍵字創建合約,new關鍵字將部署該合約的新實例并返回合約地址。
通過Solidity文檔中給出的示例,讓我們仔細看看它是如何工作的。我將name變量設為public,以便我們可以讀取到它的值,并且還會和createToken函數的返回值一起創建一個事件(關于事件,也會有其他的文章介紹):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
Meta:正在更新升級Reels平臺上的獎金支付功能:金色財經報道,Meta Platforms稱,正在更新升級Reels平臺上的獎金支付功能。新功能將向Reels平臺的公共內容創造者支付獎金,具體額度取決于其內容播放數量。[2023/5/9 14:52:51]
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
Nexon創始人在去世后被盜約670萬美元加密貨幣,黑客已被判刑:12月29日消息,韓國游戲巨頭Nexon創始人金正宙的加密賬戶在其去世后曾遭黑客入侵,價值85億韓元(670萬美元)的加密貨幣被盜。金正宙于今年2月份去世,黑客則是在5月份通過非法復制USIM的方式入侵了金正宙在加密交易所Korbit開設的賬戶,他們在10天內通過27筆交易將金正宙的價值85億韓元的比特幣和以太坊等加密資產轉至其他賬戶,Korbit在發現這些可疑交易后告知了調查機關,隨后黑客團伙于10月份被捕,11月被法院判處6年監禁。[2022/12/29 22:13:56]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代碼
這次,我們使用Tuffle框架來輔助開發,可以參考快速入門指南進行項目設置。
Cathie Wood:機構正在利用價格下跌的機會進入比特幣:金色財經報道,Ark Invest首席執行官Cathie Wood表示,機構正在利用價格下跌的機會進入比特幣。[2022/11/5 12:20:37]
首先,我們將創建一個新項目并通過執行以下命令對其進行初始化:
>mkdirtoken>cdtoken>truffleinit
打開項目,并更新truffle-config
;
返回命令行終端,輸入truffleconsole以啟動Truffle控制臺,你可以在控制臺中編譯和部署合約:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
使用compile命令編譯合約,使用migrate命令部署合約。
我們現在要做的是檢索已部署的TokenCreator的實例。然后,進行兩次調用createToken函數,并保存每個新創建合約的地址。
深圳大學首發“深大盒子”數字藏品:金色財經報道,據深圳大學官方公眾號,深大首次發行以“去___不同”為主題的“深大盒子”數字藏品。此外,深圳大學還用上了元宇宙,今年深大新生的“盒子”在元宇宙里均有一個復刻版。[2022/8/11 12:17:47]
Bytyping‘tokenCreator
...}
抽象合約
如果合約中的至少一個函數沒有實現,則合約需要標記為abstract。即使實現了所有函數,合約也可能被標記為abstract。
抽象合約通過使用關鍵字abstract來完成,未實現的函數應具有關鍵字virtual以表示允許多態
abstractcontractA{functionf()publicpurevirtual;}
抽象合約是直接實例化,即使它實現了所有函數。它們可以用作定義特定行為的基礎合約用來給其他合約繼承。實現函數應用override關鍵字修飾。
西藏首個數字藏品成功上線發布:7月22日消息,7月21日,由拉薩市人民政府、西藏自治區經濟和信息化廳和柳梧新區管委會共同指導的西藏首個數字藏品上線發布儀式在拉薩舉行。 據介紹,西藏首個數字藏品《松贊干布之馬首圣銀壺》是基于西藏自治區工藝美術大師、西藏自治區級非物質文化遺產代表性傳承人朵普·次嘎所作原始文物復制品的二創作品。
西藏首個數字藏品《松贊干布之馬首圣銀壺》原物保存在大昭寺,是西藏各民族交往交流交融的見證。數字藏品可實現真實可信的數字化發行、購買、收藏和使用。當日把《松贊干布之馬首圣銀壺》制作成數字藏品,對外發售10000份藏品以18元/份的價格,目前已售罄。(新華網)[2022/7/22 2:31:48]
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:TOKETOKENKENTOKWall Street Decentral TokenSWN TokenBI TokenAston Martin Cognizant Fan Token
尊敬的ZT用戶: PHT“點亮上幣”活動已結束。活動獎勵已于12月30日發放至用戶ZT賬戶中,用戶可登陸自己ZT賬戶,在資產中查看是否已到賬。未達到活動要求的用戶則不予發放獎勵.
1900/1/1 0:00:0012月22日,由中國信息通信研究院、中國通信標準化協會、可信?區塊鏈推進計劃共同主辦的"2020可信區塊鏈峰會"在京舉行.
1900/1/1 0:00:00尊敬的社區用戶: 霍比特交易所將于2020年12月29日14:05上線REEF/USDT聚合交易對.
1900/1/1 0:00:00各位朋友們,你們好,我是老山說幣。在這個市場,如果你處于一直虧損的狀態,不如換個環境。也許正是你的一次改變,會給你帶來不一樣的結果.
1900/1/1 0:00:00各位老鐵大家好,我是你們的朋友巴德。跟著我的客戶都是做了很久的,不是我帶他們收獲了多少,而是我用心在指導,毫無保留的教技術,經常熬夜盯盤。深夜告知客戶出場或進單.
1900/1/1 0:00:0012月30日,去中心化金融平臺Detoken和公司GeneralProtocols宣布推出Anyhedge,這是第一個建立在比特幣現金網絡上的公共defi產品.
1900/1/1 0:00:00