如果我订立了一个修改状态的智能合同,但它的所有功能都是不变的(它仍然会编译),这意味着我可以免费使用我的智能合同,而无需支付天然气费用。这难道不是矿工的损失吗?以太如何处理这种情况?
发布于 2017-12-23 08:49:02
可以,停那儿吧。调用常数函数并不会创建事务。您的客户只在本地计算结果。
但是,常量函数不能改变状态(因为它们是常数)
发布于 2020-06-24 11:09:57
好吧,如果你能写这样的代码并部署它.是的,它将起作用,但是,这种只能从任何源返回静态数据的合同的用例将非常有限。
据我所知,假设您创建了这样一个契约,它不能返回任何内容(与某事相关的动态数据),因为它在契约中没有任何内容(例如,映射或数组或结构)。
以下是一个例子:
pragma solidity >=0.4.22 <0.7.0;
contract sample {
address user;
constructor () public{
user = msg.sender;
}
function returnUser() public view returns(address){
return user;
}
}好好想想..。这类代码的用例范围?
https://ethereum.stackexchange.com/questions/34221
复制相似问题