关于只读方法调用的gas消耗问题
发布于 2 个月前 作者 kazaff 327 次浏览 来自 智能合约

在编写以太坊智能合约时,大家肯定最关注的是正确性,其次就是方法是否足够的优化,这里指的优化主要是gas消耗。

之前在看web3js的时候,关注到提到的2个方法:call 和 sendTransaction。可以看一下大牛分享的一篇帖子

在合约语法里,也有三个关键字pure、view、constant。它们用来描述合约中指定方法是否修改了合约的状态。所以,按我的理解,应该是所有简单查询合约状态(而不产生修改)的方法,都应该用这三个关键字来修饰。

A:到底,部署到产品环境上后,只读方法在用call()方法是否不会产生gas消耗?(按上面大牛的文章中描述,由于没有在网络中广播,而仅仅是本地节点的数据状态查询,不是不会消耗gas的)

B:若合约的“编辑状态”的方法用call()来调用,会是什么结果?报错?(在IDE里编译合约,会得到一个警告,但依然可以编译) image.png 我猜,这么做的话,这个方法只在本地节点执行,修改的状态是无法得到保存的吧?

回到顶部