譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
歡迎閱讀“跟我學Solidity”系列中的又一篇文章。在上一篇文章,我們看到了如何使用函數,并運用了到目前為止所學到的一切來構建一個多簽名錢包。
在本文中,我們將看到如何從一個合約中創建另一個合約,以及如何定義抽象合約和接口。
合約創建
可以通過以太坊交易或在Solidity合約中使用new關鍵字創建合約,new關鍵字將部署該合約的新實例并返回合約地址。
通過Solidity文檔中給出的示例,讓我們仔細看看它是如何工作的。我將name變量設為public,以便我們可以讀取到它的值,并且還會和createToken函數的返回值一起創建一個事件(關于事件,也會有其他的文章介紹):
//SPDX-License-Identifier:GPL-3
functionchangeName(bytes32newName)public{if(msg
Cardano Mithril測試版主網基礎設施部署已完成:金色財經報道,去中心化權益證明區塊鏈Cardano宣布其Mithril測試版主網基礎設施部署已完成,Mithril是一個基于權益證明的簽名協議,可以提升節點同步時間速度和效率,此外數據顯示Cardano無停機正常運行時間已達2129天(即5.83年)。(U.today)[2023/7/27 16:02:46]
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
Kraken已正式啟動NFT市場:金色財經報道,加密貨幣交易所Kraken已正式啟動 NFT市場,支持以太坊、Solana 和 Polygon 鏈上的250多種NFT,Kraken NFT市場表示不會向在平臺上買賣 NFT 的客戶收取gas費,但向內、外轉移NFT和其他加密資產時會產生gas費。[2023/6/9 21:24:46]
functionisTokenTransferOK(addresscurrentOwner,addressnewOwner)publicpurereturns(boolok){returnkeccak256(abi
}
代碼
這次,我們使用Tuffle框架來輔助開發,可以參考快速入門指南進行項目設置。
首先,我們將創建一個新項目并通過執行以下命令對其進行初始化:
>mkdirtoken>cdtoken>truffleinit
寶可夢公司正在招募Web3人才:金色財經報道,任天堂和游戲開發商Game Freak and Creatures的合資公司The Pokémon Company(寶可夢公司)正在尋找已經扎根于Web3行業的人才。
據寶可夢公司招聘信息顯示,該公司需要對包括區塊鏈技術、NFT和/或元宇宙這些Web3領域有深入理解的人才,還要求申請人與Web3和元宇宙技術領域的投資者和企業家網絡密切相關。不過,相關崗位信息沒有透露寶可夢公司的潛在Web3舉措,也不清楚是否會推出NFT或區塊鏈游戲。(Decrypt)[2023/3/11 12:56:42]
打開項目,并更新truffle-config
;
返回命令行終端,輸入truffleconsole以啟動Truffle控制臺,你可以在控制臺中編譯和部署合約:
Typing‘truffleconsole’intheterminaltolaunchtheTruffleconsole.
Binance Pay與加密錢包SafePal達成合作關系:10月19日消息,據幣安官方公告,Binance Pay已與加密錢包SafePal達成合作關系,將新的SafePal迷你應用程序(Mini App)引入Binance應用程序;Mini App允許用戶在不離開Binance應用程序的情況下購買SafePal硬件錢包并訪問其他服務。
據了解,SafePal成立于2018 年,目前為全球超過600萬用戶提供硬件錢包、軟件錢包和瀏覽器擴展錢包產品服務;SafePal也是Binance Labs唯一投資的一家硬件錢包公司。(幣安)[2022/10/19 17:32:25]
使用compile命令編譯合約,使用migrate命令部署合約。
我們現在要做的是檢索已部署的TokenCreator的實例。然后,進行兩次調用createToken函數,并保存每個新創建合約的地址。
Bytyping‘tokenCreator
納米比亞央行:可以接受比特幣作為支付方式:金色財經報道,納米比亞央行BON宣布,它現在以分階段的方式將虛擬資產(VA)和虛擬資產服務提供商(VASP)納入其金融科技創新監管框架。BON在9月底發布的一份聲明中強調,盡管比特幣(BTC)等數字貨幣仍未得到法律認可,但如果零售商和經銷商“愿意參與這種交換或交易”,他們可以接受這種形式的資金。
值得注意的是,該央行表示正在考慮“與其他有關當局協商,努力修改適用的法律法規”。此前,該央行表示它不承認、支持和建議公眾擁有、利用和交易加密貨幣,同時還警告納米比亞人,如果他們丟了錢,將沒有法律追索權。(Finbold)[2022/10/7 18:41:35]
...}
抽象合約
如果合約中的至少一個函數沒有實現,則合約需要標記為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:KENTOKETOKENTOKGlobalTokenDETIK TokenValencia CF Fan Tokenimtoken官方最新版
親愛的BKEXer:?????? ??? BKEXGlobal即將上線REEF,詳情如下:??上線交易對:REEF/USDT充值功能開放時間:已開放交易功能開放時間:2020年12月29日14:.
1900/1/1 0:00:00做交易這么多年,賺也賺過虧也虧過。先總結下虧損的主要原因,有些自己也犯過。杠桿是把雙刃劍,用得好,跑的會比別人快;當然,反過來,用不好,也比其他人死得快.
1900/1/1 0:00:00大家好!QDAODeFiRating和NOAH的ARK平臺不斷收集DeFi項目的有關的信息。我們對建立最佳的DeFi教育系統充滿信心,因此想介紹這種行業中最有前景的創業項目.
1900/1/1 0:00:00區塊鏈服務網絡BSN由國家信息中心頂層規劃,與中國移動、中國銀聯、北京紅棗科技發起建設。自去年10月15日發布以來,BSN已在全球完成106個公共城市節點的部署,BSN部署的國際公共城市節點已覆.
1900/1/1 0:00:00雙方同意達成協議后,總部位于中國的Bitmain聯合創始人之間的長期法律斗爭似乎在隧道盡頭看到了曙光.
1900/1/1 0:00:00作者:秦曉峰 來源:Odaily星球日報有些DeFi項目如果出現問題,可以通過保險挽回損失。但如果保險公司被攻擊了,又該怎么辦?28日晚上,DeFi保險項目CoverProtocol遭遇黑客攻擊.
1900/1/1 0:00:00