譯文出自:登鏈翻譯計劃
譯者:翻譯小組
校對:Tiny熊
歡迎來到學習Solidity系列的另一部分。在上一篇文章,我們討論了如何從智能合約中創建另一個智能合約。今天,我們將研究這種情況下的典型用例。
什么是工廠模式?
工廠模式的想法是擁有一個合約(工廠),該合約將承擔創建其他合約的任務。在基于類的編程中,此模式的主要動機來自單一職責原則(一個類不需要知道如何創建其他類的實例),并且該模式為構造函數提供了一種抽象。
UMLdiagramforfactorymethod
圖片來自Wikipedia.
BALD部署者已移除BALD/ETH池中所有流動性:8月1日消息,據Lookonchain監測顯示,BALD 部署者已經移除了 BALD/ETH 的所有流動性。BALD 部署者將 9,385 ETH 轉為 Base,現在他持有 12,433 ETH,在 2 天內賺取 3,048 ETH(570 萬美元)。[2023/8/1 16:09:57]
為什么要在Solidity中使用工廠模式?
在Solidity中,出于以下原因之一,你可能要使用工廠模式:
如果要創建同一合約的多個實例,并且正在尋找一種跟蹤它們并簡化管理的方法。```contractFactory{Childchildren;functioncreateChild(uintdata){Childchild=newChild(data);children
貝萊德錢包地址提取了1.27萬億枚PEPE到4個地址:金色財經報道,據Lookonchain監測數據顯示,貝萊德錢包地址在2小時前從Binance提取了1.27萬億枚PEPE(約合198萬美元)到4個地址。這4個地址與blackrockfund3.eth使用同一個幣安充幣地址,極有可能是貝萊德新創建的地址,它在4月21日以0.0000002431美元的平均價格購買了1萬億枚PEPE(當時為24.4萬美元),并于5月5日以0.000002627美元的平均價格出售了所有PEPE(當時為263萬美元),利潤約為239萬美元(10倍)。[2023/5/18 15:11:05]
}contractChild{uintdata;constructor(uint_data){data=_data;}}*節省部署成本:你可以先部署工廠,之后在使用時再來部署其他合約。*提高合約安全性(請參閱本文).##如何與已部署的智能合約進行交互在深入探討如何實現工廠模式的細節之前,我想澄清一下我們與已部署的智能合約進行交互的方式。工廠模式是用來創建子合約的,并且我們可能希望調用它們的某些函數以更好地管理這些合約。調用部署的智能合約,需要做兩件事:1.合約的ABI(提供有關函數簽名的信息)。如果合約在同一個項目中。你可以使用import關鍵字將其導入。2.部署合約的地址。舉個例子:
去中心化索引協議The Graph新增支持Base測試網:金色財經報道,據官方推特,去中心化索引協議The Graph新增支持Base測試網,開發人員現在可以構建子圖來索引和查詢Base測試網上的dapp數據。[2023/2/27 12:31:28]
contractA{addressbAddress;constructor(addressb){bAddress=b;}functioncallHello()externalviewreturns(stringmemory){Bb=B(bAddress);//轉換地址為合約類型returnb
}contractB{stringgreeting="helloworld";functionsayHello()externalviewreturns(stringmemory){returngreeting;}}
CFTC專員:TradFi法規在一定程度上可以適用于加密貨幣:金色財經報道,商品期貨交易委員會委員Christy Goldsmith Romero表示,加密貨幣可能對金融穩定構成一些風險,但可能只需要更明確的指導方針,而不是一套全新的規則。
盡管如此,Goldsmith Romero表示,由于數字資產與傳統金融產品不同,我們在進行定制化處理時必須有點謹慎,因為我們不知道這樣做的后果。官員們應該審查傳統金融市場的既定監管方式,看看它們是否可以適用于加密貨幣。同時,國會的澄清將 \"有助于 \"界定哪個政府機構應該負責監管數字資產。在比特幣或其他不是證券的商品和數字資產方面,沒有一個市場監管機構,這是一個監管空白。(coindesk)[2022/10/29 11:54:49]
在Remix中,首先部署合約B,然后復制其地址,并在部署時將其提供給A的構造函數。現在你可以調用`callHello()`函數,你將獲得合約B的`sayHello()`函數的結果。##普通工廠模式在此模式下,我們創建具有創建子合約函數的工廠合約,并且可能還會添加其他函數來有效管理這些合約(例如,查找特定合約或禁用合約)。在create函數中,我們使用`new`關鍵字來部署子合約。
contractFactory{Childpublicchildren;uintdisabledCount;eventChildCreated(addresschildAddress,uintdata);functioncreateChild(uintdata)external{Childchild=newChild(data,children
functiongetChildren()externalviewreturns(Childmemory_children){_children=newChild(children
}}functiondisable(Childchild)external{children
}contractChild{uintdata;boolpublicisEnabled;uintpublicindex;constructor(uint_data,uint_index){data=_data;isEnabled=true;index=_index;}functiondisable()external{isEnabled=false;}}
```
本文來源于非小號媒體平臺:
登鏈社區
現已在非小號資訊平臺發布105篇作品,
非小號開放平臺歡迎幣圈作者入駐
入駐指南:
/apply_guide/
本文網址:
/news/9569964.html
免責聲明:
1.資訊內容不構成投資建議,投資者應獨立決策并自行承擔風險
2.本文版權歸屬原作所有,僅代表作者本人觀點,不代表非小號的觀點或立場
上一篇:
幣安為何推出第三條鏈?這對BNB意味著什么?
尊敬的BiONE用戶: 由于ETH資金費率發生大幅增長,BiONE平臺已對ETH的ETF交易對的資金費率進行了調整,每倍杠桿管理費率調整為0.3%.
1900/1/1 0:00:00被稱為DeFi之王YFI迎來了它的獨立分叉YFHI,還沒上市就受到了圈內火熱追捧! 什么是YFHI? YFHI是經YFI技術獨立分叉并升級成一個去中心化金融(DeFi)平臺.
1900/1/1 0:00:00尊敬的用戶: AOFEX已根據用戶FIL6持倉情況完成1月2日的轉化分發FIL代幣,用戶可在用戶中心-賬戶資產中查看詳情.
1900/1/1 0:00:00昨日比特幣再度上行至34672位置后,多頭力度開始減弱,晚間行情幾次上探均以失敗告終,價格開始向下大幅回落,跌勢一直延續到日內凌晨兩點,低位觸及32306位置才逐漸緩和.
1900/1/1 0:00:00幣圈是一個喧囂嘈雜的地方,幣圈是一個充滿誘惑的地方,很多在工作中較為理性的人一進幣市便方寸大亂;幣圏也是一個不確定性很大的地方,這個世界的變數和搏弈太多太多.
1900/1/1 0:00:001/4比特幣分析與操作策略比特幣這波上漲讓全世界的人都知道了比特幣的存在,新高不斷暫時回調下來很難.
1900/1/1 0:00:00