译文出自:登链翻译计划
译者:翻译小组
校对:Tiny熊
欢迎来到学习Solidity系列的另一部分。在上一篇文章,我们讨论了如何从智能合约中创建另一个智能合约。今天,我们将研究这种情况下的典型用例。
什么是工厂模式?
工厂模式的想法是拥有一个合约(工厂),该合约将承担创建其他合约的任务。在基于类的编程中,此模式的主要动机来自单一职责原则(一个类不需要知道如何创建其他类的实例),并且该模式为构造函数提供了一种抽象。
UMLdiagramforfactorymethod
图片来自Wikipedia.
以太坊L2协议Optimism的交易量超过Arbitrum:金色财经报道,基于以太坊的L2协议Optimism和Arbitrum在交易活动方面存在显着差异。自12月中旬以来,Optimism在交易数量方面的表现优于Arbitrum。(TheBlock)[2023/1/18 11:17:51]
为什么要在Solidity中使用工厂模式?
在Solidity中,出于以下原因之一,你可能要使用工厂模式:
如果要创建同一合约的多个实例,并且正在寻找一种跟踪它们并简化管理的方法。```contractFactory{Childchildren;functioncreateChild(uintdata){Childchild=newChild(data);children
阿根廷拟议法案,以优惠税率鼓励公民披露加密资产:1月11日消息,阿根廷经济部起草一项法案,以优惠税率鼓励阿根廷人申报其持有的加密货币。该法案将要求加密货币持有人提交一份披露所持有的加密资产宣誓声明。该法案提出税收激励措施,以鼓励公民申报他们的资产。据悉,在法律生效后90天内自愿申报其持有的加密货币公民仅需对其持有的加密货币的资本利得只缴纳2.5%的税。该税率将每90天递增一次,直到达到15%,即该国的标准资本利得税率。[2023/1/11 11:06:02]
}contractChild{uintdata;constructor(uint_data){data=_data;}}*节省部署成本:你可以先部署工厂,之后在使用时再来部署其他合约。*提高合约安全性(请参阅本文).##如何与已部署的智能合约进行交互在深入探讨如何实现工厂模式的细节之前,我想澄清一下我们与已部署的智能合约进行交互的方式。工厂模式是用来创建子合约的,并且我们可能希望调用它们的某些函数以更好地管理这些合约。调用部署的智能合约,需要做两件事:1.合约的ABI(提供有关函数签名的信息)。如果合约在同一个项目中。你可以使用import关键字将其导入。2.部署合约的地址。举个例子:
Voyager Token VGX短时涨超20%,现报价0.436美元:金色财经报道,Voyager Token VGX过去一小时涨21.1%,现报价0.436美元。行情波动较大,请做好风险控制。[2022/11/24 8:03:58]
contractA{addressbAddress;constructor(addressb){bAddress=b;}functioncallHello()externalviewreturns(stringmemory){Bb=B(bAddress);//转换地址为合约类型returnb
}contractB{stringgreeting="helloworld";functionsayHello()externalviewreturns(stringmemory){returngreeting;}}
Northern Trust 宣布成立数字资产和金融集团:金色财经报道,北方信托(Northern Trust )宣布成立数字资产和金融集团,该集团将由现任全球负责人Justin Chapman领导市场倡导创新和研究。
新团队将负责支持快速增长的数字资产市场的团队与致力于提供跨传统证券服务市场的市场准入和洞察力的团队结合在一起。
Northern Trust资产服务总裁Pete Cherecwich 表示,客户对数字市场的发展和对数字资产的投资以及对股票、固定收益、另类和私人资产等更传统资产类别的配置越来越感兴趣。与其创建单独的业务线,不如将我们对数字市场和传统市场的关注结合在一起,我们可以继续开发真正反映和支持客户不断发展的投资策略的服务和能力。[2022/6/24 1:28:19]
在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意味着什么?
标签:CHIDREDATATACHINdrep币创始人Data Transaction TokenHayya Qatar
资讯简评2020年12月31日08:30左右,BTC价格再度创下新高,达到29300USDT。Coingecko数据显示,此时BTC市值达到5438亿美元.
1900/1/1 0:00:00比特币价格再次突破新高,冲至激动人心的$30,000!借此契机我们将持续3天为站内外全球用户狂撒红包福利,与更多人分享此次令人激动的时刻,共享喜悦.
1900/1/1 0:00:00尊敬的用户:值此新年来临之际,ZD同您一起狂欢,自公告上线之时起,创新试验区将于今日14点、16点、18点、20点上线四轮新年福袋,持有1000ZD即可领取,领完即止.
1900/1/1 0:00:00DeFi数据1.DeFi总市值:201.53亿美元市值前十币种涨跌幅,金色财经制图,数据来源Coingecko2.过去24小时去中心化交易所的交易量:10.7亿美元交易量排名前十的DEX数据来源.
1900/1/1 0:00:00币海引路人:BTC/ETH多头强势回调就是机会USDT7年增发报告:期间共计印钞340次销毁184次净印钞量达212.
1900/1/1 0:00:00尊敬的社区用户:霍比特交易所举行的“猜币价,5折购买BTC”活动获奖用户已经产生,其中锦鲤奖获得者具体如下:序号UID155256********76416243009********88480.
1900/1/1 0:00:00