以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > 火星幣 > 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

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官方最新版

火星幣
BKEX Global 關于上線REEF(Reef Finance)的公告_KEX

親愛的BKEXer:?????? ??? BKEXGlobal即將上線REEF,詳情如下:??上線交易對:REEF/USDT充值功能開放時間:已開放交易功能開放時間:2020年12月29日14:.

1900/1/1 0:00:00
小安論幣:幣圈市場炒幣現貨交易心得總結_WEB

做交易這么多年,賺也賺過虧也虧過。先總結下虧損的主要原因,有些自己也犯過。杠桿是把雙刃劍,用得好,跑的會比別人快;當然,反過來,用不好,也比其他人死得快.

1900/1/1 0:00:00
YGY Finance項目介紹_AIN

大家好!QDAODeFiRating和NOAH的ARK平臺不斷收集DeFi項目的有關的信息。我們對建立最佳的DeFi教育系統充滿信心,因此想介紹這種行業中最有前景的創業項目.

1900/1/1 0:00:00
BSN連獲三大獎項,始終致力推動區塊鏈產業發展和技術創新_BSN

區塊鏈服務網絡BSN由國家信息中心頂層規劃,與中國移動、中國銀聯、北京紅棗科技發起建設。自去年10月15日發布以來,BSN已在全球完成106個公共城市節點的部署,BSN部署的國際公共城市節點已覆.

1900/1/1 0:00:00
比特大陸聯合創始人之間的法律之戰似乎以詹·麥克里(Micree Zhan)接管公司而結束_MINER

雙方同意達成協議后,總部位于中國的Bitmain聯合創始人之間的長期法律斗爭似乎在隧道盡頭看到了曙光.

1900/1/1 0:00:00
從COVER到OVER,攻擊事件復盤_COV

作者:秦曉峰 來源:Odaily星球日報有些DeFi項目如果出現問題,可以通過保險挽回損失。但如果保險公司被攻擊了,又該怎么辦?28日晚上,DeFi保險項目CoverProtocol遭遇黑客攻擊.

1900/1/1 0:00:00
ads