计算 Solidity 函数的 Gas 消耗

译文出自:登链翻译计划

译者:翻译小组

校对:Tiny熊

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

背景

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

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

区块链隐私计算平台Oasis集成Chainlink作为首选预言机提供商:据Chainlink微博消息,区块链隐私计算平台Oasis正在集成Chainlink作为其首选预言机提供商。通过引用Chainlink的数据和价格预言机,将确保链外信息的完整性,也能增强建立在Oasis网络的智能合约应用。Oasis网络最初将利用Chainlink的价格参考数据,为DeFi应用提供广泛的价格源。[2020/11/17 21:03:03]

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

stringmemoryresult=string(abi

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

}

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

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

contractMyContractisBase{//whatever}

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

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.本文版权归属原作所有,仅代表作者本人观点,不代表非小号的观点或立场

上一篇:

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

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

银河链

火必下载如何在 imToken 中体验 NFT 项目秘宝?

秘宝是公链Nervos的生态团队NervinaLabs推出的面向NFT玩家的项目。用户可以在秘宝中探索各种有意思的NFT,对自己喜爱的NFT进行转让和收藏等操作。秘宝还支持用户使用以太坊钱包地址进行秘宝NFT的接收和转让.

币安app官方下载最新版关于WBF上线FSHIB的公告

尊敬的用户: WBF将在开放区掘金板块上线FSHIB/USDT交易对,具体上线时间如下:充值时间:2021/7/810:45提币时间:2021/7/810:45交易时间:2021/7/810:45 项目介绍: FSHIB是一种随着时间.

Uniswap保证金交易的基本原理

保证金交易基本原理 保证金交易是一种利用杠杆进行交易的方法,就是从第三方使用其当前的资金来借用资产。提供代币时,用户可以提高潜在的可能利润,从而使用户在成功交易中获得更大的利润。在提高资本效率时,用户可以有效利用其资金.

[0:15ms0-2:599ms