TRIN:计算 Solidity 函数的 Gas 消耗

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

Solidity是以太坊区块链默认使用的智能合约语言,本文讨论了Solidity中使用合约和库函数时的gas消耗。

背景

在Datona实验室的身份合约模板开发过程中,我们希望提供一些有用的错误信息,就需要一些字符串操作,如字符串连接,例如:

functionTransferTo(address_address,uintamount)publiconlyOwner{require(amount<=unallocated,concat("Invalidamount.""Available:",stringOfUint(unallocated)));//whatever}

波卡隐私计算平行链Phala正在准备预备主网开发计划:12月13日,波卡上的隐私计算平行链PhalaNetwork发布最新周报,内容显示团队已准备预备主网开发计划。当前全网算力值超过270,000,相当于3857个CPU核心在为Phala提供隐私算力。[2020/12/14 15:07:11]

在Solidity编译器中,字符串连接是很方便的:

stringmemoryresult=string(abi

functionExternal(stringmemorysm0,stringmemorysm1)publicpurereturns(stringmemory){returnstring(abi

流动性池追踪器Uniswaproi创建Curve LP ROI计算器:流动性池追踪器Uniswaproi创始人Federico Nitidi发推称,已经为Curve LP创建投资回报率(ROI)计算器,可以在uniswaproi.com使用。[2020/11/16 20:56:14]

}

这里的函数名有点特别,只是为了这篇文章而取的,每一个函数都实现了字符串连接,我们关注的是不同连接选项的性能。

为了能正常使用函数,我们必须实现一个继承合约:

contractMyContractisBase{//whatever}

声音 | 杜国柱:区块链将有存储、计算、链接三大能力与价值:国家广播电视总局广播电视科学研究院副院长杜国柱在会议致辞中表示,区块链与实体经济的融合得益于区块链行业的快速发展,从赋能实体经济转型升级的角度来看,将有存储、计算、链接三大能力与价值,且在此基础之上发挥其应用服务能力映射实体经济。[2019/3/21]

这些函数可以通过点符号来访问,或者直接省略掉基类合约的名字(你公司的代码标准文档也许有自己的一些规定)

stringmemorysm=Base.Internal("pass","word");stringmemoryxx=Internal("what","ever");

(4)访问组件合约

组件合约被声明为合约的一个组成部分,必须在声明时或在构造函数中创建。

contractComponentisBase{//inheritthebasefunctions}contractMyContractiswhatever{Componentcomponent=newComponent();//whatever}

这些函数必须使用点符号来访问。

stringmemorysm=component.Internal("mean","while");

(5)和(6)访问库合约

免责声明:作为区块链信息平台,本站所发布文章仅代表作者个人观点,与链闻ChainNews立场无关。文章内的信息、意见等均仅供参考,并非作为或被视为实际投资建议。

本文来源于非小号媒体平台:

登链社区

现已在非小号资讯平台发布105篇作品,

非小号开放平台欢迎币圈作者入驻

入驻指南:

/apply_guide/

本文网址:

/news/10146444.html

免责声明:

1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险

2.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

巨鲸的资金涌向哪里,哪里就是热点!

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金星链

[0:62ms0-0:626ms