譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
歡迎閱讀“跟我學Solidity”系列中的又一篇文章。在上一篇文章,我們看到了如何使用函數,并運用了到目前為止所學到的一切來構建一個多簽名錢包。
在本文中,我們將看到如何從一個合約中創建另一個合約,以及如何定義抽象合約和接口。
合約創建
可以通過以太坊交易或在Solidity合約中使用new關鍵字創建合約,new關鍵字將部署該合約的新實例并返回合約地址。
通過Solidity文檔中給出的示例,讓我們仔細看看它是如何工作的。我將name變量設為public,以便我們可以讀取到它的值,并且還會和createToken函數的返回值一起創建一個事件(關于事件,也會有其他的文章介紹):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
JAN3首席執行官受邀與墨西哥參議員就墨西哥如何采用加密貨幣進行討論:5月1日消息,據Bitcoin Magazine發推表示,JAN3首席執行官、比特幣中國前首席運營官Samson Mow于4月29日與墨西哥參議員兼財政委員會主席討論了關于墨西哥如何采用加密貨幣墨西哥如何采用加密貨幣的問題。
據悉,墨西哥是拉丁美洲最大的經濟體之一,如果成功采用加密貨幣,將為整個地區帶來深遠的影響,對于加密貨幣市場來說是一個重要的里程碑。[2023/5/1 14:36:45]
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
通用互操作性平臺Axelar Network現已集成Kava:據官方消息,通用互操作性平臺Axelar Network宣布集成Kava。用戶可通過其去中心化跨鏈資產轉移應用Satellite,將資產從任何已與Axelar Network連接的區塊鏈網絡轉移到Kava,開發人員可以利用Kava上的DApp生態系統進行構建。[2022/12/23 22:03:09]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代碼
這次,我們使用Tuffle框架來輔助開發,可以參考快速入門指南進行項目設置。
首先,我們將創建一個新項目并通過執行以下命令對其進行初始化:
>mkdirtoken>cdtoken>truffleinit
加拿大第三大養老基金Teachers或在FTX事件中面臨大額投資損失:金色財經報道,加拿大第三大養老基金Teachers在2021年10月份參與了FTX以250億美元估值完成的4.2億美元融資,且在融資公告中被列為第一名,目前該基金拒絕透露投資規模,但指出FTX未被列入其2021年年度報告中超過2億美元的投資清單中。
據悉這并非加拿大養老基金的第一次失誤,加拿大另一家最大的養老金管理公司之一CDPQ此前已注銷其對破產的加密借貸平臺Celsius Network的1.5億美元投資。(環球郵報)[2022/11/9 12:38:12]
打開項目,并更新truffle-config
;
返回命令行終端,輸入truffleconsole以啟動Truffle控制臺,你可以在控制臺中編譯和部署合約:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
元宇宙“數字孿生”軟件公司Sensat完成2050萬美元B輪融資,NGP領投:10月21日消息,總部位于倫敦的元宇宙“數字孿生”軟件公司Sensat宣布完成2050萬美元B輪融資,英國跨國能源巨頭National Grid旗下投資部門National Grid Partners(NGP)領投。
據悉,Sensat曾在2019年完成1000萬美元A輪融資,當時領投方為騰訊。截至目前,該公司的融資總金額約為3550萬美元。Sensat為建筑、采礦、能源和類似行業提供“復制”現實世界的工具,與蓬勃發展的元宇宙市場相呼應,據稱現階段其商業化實施程度領先于Meta。(TechCrunch)[2022/10/21 16:34:29]
使用compile命令編譯合約,使用migrate命令部署合約。
我們現在要做的是檢索已部署的TokenCreator的實例。然后,進行兩次調用createToken函數,并保存每個新創建合約的地址。
Bytyping‘tokenCreator
Interplay推出區塊鏈基金,將重點投資Web 3等領域:金色財經報道,總部位于紐約市的Interplay創始人兼管理合伙人 Mark Peter Davis表示,公司正推出區塊鏈基金,該基金將投資于早期創業公司、代幣、特殊情況和web3中的其他戰略。 該公司的目標是籌集1000萬美元,目前正在與投資者進行對話。
Davis稱,該公司正在推出 Interplay Blockchain 作為一個獨立的垂直領域,與現有的風險投資部門分開,后者對整個科技行業的 B 輪公司進行種子投資。雖然此次發布標志著 Interplay 首次涉足 web3 領域,但風險投資部門參與了 Coinbase 的 A 輪融資,并幫助孵化了加密領域的保險產品。[2022/7/27 2:39:23]
...}
抽象合約
如果合約中的至少一個函數沒有實現,則合約需要標記為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:TOKENTOKEKENTOK3X Short Ethereum Classic TokenSPCT TokenVanity TokenBlack Token
尊敬的用戶: 火幣全球站將于2020年12月31日10:00(GMT8)開啟“HBTC金鏟子挖礦”活動,首批提供800BTC的區塊鏈資產用于DeFi流動性挖礦.
1900/1/1 0:00:00據重慶日報報道,記者從全市區塊鏈發展管理統籌協調機制第一次會議上獲悉,“十四五”期間,重慶市將從規劃布局、產業生態、技術突破、應用融合等方面,加快區塊鏈產業培育和創新應用.
1900/1/1 0:00:00Gate.io今日ETH2.0PoS挖礦獎勵已發放,用戶可以到賬單明細中查看詳情。Gate.io于12月21日起為ETH2持倉用戶按14日平均持倉分發ETH2.0PoS挖礦獎勵,當前年均收益率為.
1900/1/1 0:00:0020世紀初,現代浴室開始與結核病,霍亂和流行性感冒一起爆發,并采用了標準功能,以在廣泛的公共健康問題上促進家庭健康和衛生.
1900/1/1 0:00:00尊敬的用戶: 為支持BCV主網切換,系統將于2020年12月30日00:00(GMT8)進行切換更新,完成后不再支持BCV舊幣(ERC20)充提業務,您帶來的不便.
1900/1/1 0:00:00對于交易所的長遠發展來看,早期部署自身的公鏈體系可以適應市場不斷增長的資產和技術需求,在融合了一些DeFi優勢后,可以進一步增強交易和應用的可組合性.
1900/1/1 0:00:00