譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
歡迎閱讀“跟我學Solidity”系列中的又一篇文章。在上一篇文章,我們看到了如何使用函數,并運用了到目前為止所學到的一切來構建一個多簽名錢包。
在本文中,我們將看到如何從一個合約中創建另一個合約,以及如何定義抽象合約和接口。
合約創建
可以通過以太坊交易或在Solidity合約中使用new關鍵字創建合約,new關鍵字將部署該合約的新實例并返回合約地址。
通過Solidity文檔中給出的示例,讓我們仔細看看它是如何工作的。我將name變量設為public,以便我們可以讀取到它的值,并且還會和createToken函數的返回值一起創建一個事件(關于事件,也會有其他的文章介紹):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
Web3游戲Cat Paradise以1500萬美元的估值完成近100萬美元種子輪融資:金色財經報道,基于TON開發的Web3游戲Cat Paradise宣布完成種子輪融資,該輪融資以1500萬美元的估值募集了近100萬美元資金,Mask Network、Moon Capital等機構參投。該公司將利用這筆資金改進現有的鏈上技術,聘請更多熟練的開發人員,并接觸更多的客戶。Cat Paradise是一款數字貓寵物養成類游戲,由游戲開發商Pluto Games開發。[2023/6/20 21:47:56]
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
Blur通過Seaport協議繞過OpenSea黑名單限制,當前交易總額已突破78萬枚ETH:金色財經報道,據加密和 Web3 數據分析師 Panda Jackson 在社交媒體披露,NFT 市場 Blur 已繞過 OpenSea 的黑名單限制。2022 年 11 月,OpenSea 實施新政策,要求執行版稅的數字藏品必須阻止未完全遵守該要求的 NFT 市場,這意味著選擇 OpenSea 的 NFT 藏品不能在 Blur 上交易,而選擇 Blur 則不能在 OpenSea 上強制執行版稅交易。但現在 Blur 找到了另一種方法,使用 OpenSea 的 Seaport(一種去中心化的 Web3 市場協議,由 OpenSea 開發)協議來創建一個新的 NFT 交易系統,Seaport 本身不在 OpenSea 的阻止列表中,因此阻止 Blur 的 NFT 藏品可以進行交易。另據 Dune Analytics 最新數據顯示,Blur 當前交易額已突破 78 萬枚 ETH,交易總量超 165 萬筆。[2023/2/1 11:39:47]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
趙長鵬:我們在印度看不到任何可行的業務:11月21日消息,Binance 創始人趙長鵬在周四的 Techcrunch Crypto 會議上表示,由于嚴格的稅收制度,印度目前不適合其加密貨幣交易平臺的商業環境,他解釋道:“Binance 進入了那些法規利于加密貨幣和商業的國家。”
趙長鵬援引印度激進的稅收環境表示:“如果對每筆交易都要征收 1% 的稅,就不會有那么多交易產生了。訂單簿類型的交易平臺不會有任何交易量。所以我們今天在印度看不到可行的業務。”
據悉,雖然對加密貨幣收入和交易征稅,但印度仍然沒有針對加密貨幣的監管框架。印度財政部長 Nirmala Sitharaman 此前表示,加密貨幣監管將是印度擔任 G20 主席國期間的重點議題之一,印度希望在與其他 G20 國家討論后建立一個由技術驅動的加密貨幣監管框架。[2022/11/21 7:52:53]
}
代碼
這次,我們使用Tuffle框架來輔助開發,可以參考快速入門指南進行項目設置。
以太坊合并進度完成96.54%,全網算力跌破900 TH/S:8月19日消息,據OKLink多鏈瀏覽器“以太坊合并倒計時”數據顯示,當前以太坊合并進度已完成96.54%,按照當前網絡情況計算,合并預計將于9月15日進行。當前以太坊全網算力886.65TH/S,其中Top5礦池擁有520.09TH/S算力,占比全網算力93.56%。[2022/8/19 12:36:19]
首先,我們將創建一個新項目并通過執行以下命令對其進行初始化:
>mkdirtoken>cdtoken>truffleinit
打開項目,并更新truffle-config
;
返回命令行終端,輸入truffleconsole以啟動Truffle控制臺,你可以在控制臺中編譯和部署合約:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
數據:Cardano Plutus智能合約超3000個,ADA錢包突破350萬:8月5日消息,據Cardano Blockchain Insights數據顯示,Cardano Vasil 硬分叉前達到兩個里程碑,截至目前基于 Plutus 腳本的 Cardano 智能合約數量達到 3031 個,該指標展示了 Cardano 允許用戶編寫與區塊鏈交互的應用程序的能力。此外,ADA 錢包已突破 350 萬,截至最新 8 月 4 日數據為 3,505,141 個。
此前消息,原本計劃于 7 月底進行的 Cardano 主網 Vasil 硬分叉升級再次推遲,延遲或將打到數周時間。[2022/8/6 12:05:43]
使用compile命令編譯合約,使用migrate命令部署合約。
我們現在要做的是檢索已部署的TokenCreator的實例。然后,進行兩次調用createToken函數,并保存每個新創建合約的地址。
Bytyping‘tokenCreator
...}
抽象合約
如果合約中的至少一個函數沒有實現,則合約需要標記為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:TOKKENTOKENTOKEBIT Game Tokenwalken幣目前價格為什么這么低3X Long Chainlink Tokendigifinextoken
Gate.io直播間作為行業內首個交易所內置直播功能,通過多樣性的直播形式為平臺用戶帶來具有深度、有趣、開放的信息內容.
1900/1/1 0:00:00原文標題:《另類央行的演進之路》在經濟學里,貨幣是最古老和最有爭議的主題之一。在區塊鏈上,同樣少有比穩定幣更具話題性的領域.
1900/1/1 0:00:00短短幾個小時的時間,DeFi保險代幣Cover先是暴跌99%,再暴漲2000%,這趟死亡過山車讓我這個觀察者不禁嚇出了一身冷汗.
1900/1/1 0:00:00炒幣更賺錢還是挖礦更賺錢,在圈內這是個很有爭議的話題。炒幣的群體中,確實有部分人因為抓住了某個機會,從而獲得財富自由,但炒幣群體里更多人因為各種騷操作而虧錢.
1900/1/1 0:00:00尊敬的XT用戶: XT即將上線FXS,詳情如下:充提時間:2020年12月30日18:00UTC8)交易:2020年12月30日18:00FraxFinance(簡稱Frax)原名Decentr.
1900/1/1 0:00:00親愛的用戶: 紅米交易所將于12月29日18:00上線KSM/USDT聚合交易對。由于為聚合交易幣對,所以暫時不開放充幣和提幣,充幣和提幣開放時間之后將會以公告另行通知.
1900/1/1 0:00:00