比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads

CHI:跟我學 Solidity :工廠模式_DATA

Author:

Time:1900/1/1 0:00:00

譯文出自:登鏈翻譯計劃

譯者:翻譯小組

校對:Tiny熊

歡迎來到學習Solidity系列的另一部分。在上一篇文章,我們討論了如何從智能合約中創建另一個智能合約。今天,我們將研究這種情況下的典型用例。

什么是工廠模式?

工廠模式的想法是擁有一個合約(工廠),該合約將承擔創建其他合約的任務。在基于類的編程中,此模式的主要動機來自單一職責原則(一個類不需要知道如何創建其他類的實例),并且該模式為構造函數提供了一種抽象。

UMLdiagramforfactorymethod

圖片來自Wikipedia.

Curve社區提案擬將抵押WBTC和ETH借貸crvUSD的利率降低40%:7月6日消息,Curve社區提案投票,擬將抵押WBTC和ETH借貸crvUSD的利率降低40%。截至目前投票支持率為100%,投票將于40小時后結束。[2023/7/6 22:21:19]

為什么要在Solidity中使用工廠模式?

在Solidity中,出于以下原因之一,你可能要使用工廠模式:

如果要創建同一合約的多個實例,并且正在尋找一種跟蹤它們并簡化管理的方法。```contractFactory{Childchildren;functioncreateChild(uintdata){Childchild=newChild(data);children

Celer Network新增支持Sui:6月27日消息,跨鏈互操作協議Celer Network宣布新增支持Sui,用戶現可通過cBridge對ETH、WBTC、USDC、USDT和DAI橋接到Sui。[2023/6/27 22:02:55]

}contractChild{uintdata;constructor(uint_data){data=_data;}}*節省部署成本:你可以先部署工廠,之后在使用時再來部署其他合約。*提高合約安全性(請參閱本文).##如何與已部署的智能合約進行交互在深入探討如何實現工廠模式的細節之前,我想澄清一下我們與已部署的智能合約進行交互的方式。工廠模式是用來創建子合約的,并且我們可能希望調用它們的某些函數以更好地管理這些合約。調用部署的智能合約,需要做兩件事:1.合約的ABI(提供有關函數簽名的信息)。如果合約在同一個項目中。你可以使用import關鍵字將其導入。2.部署合約的地址。舉個例子:

DefiLlama創始人將推出NFT借貸項目llamalend:10月10日消息,DeFi數據網站DeFiLlama匿名創始人0xngmi在推特上宣布,NFT借貸項目llamalend即將推出,目前智能合約已完成并在Github開源。

據該合約介紹,llamalend主要用于長尾市場的NFT抵押貸款,即主要面對小型收藏品,具有無清算、現收現付、基于池利用率的固定費率等特征。[2022/10/10 10:29:06]

contractA{addressbAddress;constructor(addressb){bAddress=b;}functioncallHello()externalviewreturns(stringmemory){Bb=B(bAddress);//轉換地址為合約類型returnb

Revolut前高管Deirdre Halligan加入Algorand基金會:7月24日消息,Revolut前全球事務和財富及交易部門主管Deirdre Halligan已經在Algorand基金會任職,該基金會正在都柏林擴張。

據悉,總部位于新加坡的Algorand基金會在都柏林擁有三名全職員工,以及一名董事會成員;其使命是推廣Algorand區塊鏈。

Deirdre Halligan此前是數字銀行Revolut高管團隊中唯一的女性。Revolut在全球擁有超過1億名客戶。Revolut聯合創始人兼首席執行官Nik Storonsky最近批評英國FCA審批銀行牌照的速度緩慢,之后不久Deirdre Halligan選擇離開Revolut。(Businesspost)[2022/7/24 2:34:22]

}contractB{stringgreeting="helloworld";functionsayHello()externalviewreturns(stringmemory){returngreeting;}}

在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意味著什么?

Tags:CHIDREATADATAKIMCHI幣DREAM價格TATA價格worlddatabase

火必交易所
AVE:關于ZT下架BITP的公告_bybit排名

尊敬的ZT用戶: 因BITP全面進入市值成長計劃,經過BITP全球礦工聯盟多次申請及對BITP/USDT交易對的考察,現決定暫停BITP/USDT交易對.

1900/1/1 0:00:00
比特幣:Pantera Capital創始人談比特幣的內在價值和不可替代性_比特幣行情走勢k線圖怎么看

PanteraCapital創始人兼首席執行官DANMOREHEAD最近在斯坦福大學經濟政策研究所發表演講,并回答了一些針對比特幣誤解的問題.

1900/1/1 0:00:00
比特幣:比特幣采礦機制造商Ebang將于2021年推出加密貨幣交易所; 股價上漲_NODE

比特幣采礦設備制造商Ebang周四宣布,它準備在2021年第一季度正式啟動加密貨幣交易所。?在納斯達克上市的采礦設備制造商的股價上漲的消息傳出,上漲至每股6.18美元,直到撰寫本文時降至5.71.

1900/1/1 0:00:00
USH:關于QTUM交易對恢復的公告_CEL

公告編號2021010403各位關心ZBG的投資者們和項目方:ZBG交易平臺現已恢復QTUM/USDT,QTUM/QC交易,維護期間給您帶來不便,敬請諒解.

1900/1/1 0:00:00
OIN:幣虎平臺支持N8V代幣切換的公告_Alibabacoin

尊敬的用戶: 因N8V項目官方將進行代幣切換,切換后的N8V代幣為ERC20通道的N8V。幣虎將支持N8V代幣切換,現已暫時關閉N8V的充提功能,并將于2021年1月5日18:00暫時關閉交易功.

1900/1/1 0:00:00
FIL:技術周刊|以太坊擴容方案Optimism計劃在1月15日主網軟啟動_區塊鏈

本周技術周刊包含以太坊、波卡、Filecoin、BSN的技術類新聞。 以太坊網絡 以太坊2.0質押地址余額超過220萬枚據歐科云鏈OKLink數據,當前以太坊2.0存款合約地址已收到220045.

1900/1/1 0:00:00
ads