当贡献者将资金转移到我的smart合同时,默认余额会自动增加。是否可以在我们的合同中控制此默认属性。
另外,使用with关键字执行的方法会以任何方式影响智能契约的当前余额属性吗?
发布于 2017-08-13 08:32:58
是否可以在我们的合同中控制此默认属性。
不,这将永远是你的合同的以太余额(在魏),但是你可以通过recipient.transfer(amountOfWeiToTransfer);把这些资金寄到其他地方。
使用smart关键字执行的方法会以任何方式影响智能契约的当前余额属性吗?
如果这个函数得到了以太,那么它将增加this.balance,除非您通过recipient.transfer(msg.value);转发确切的金额,正如您可以看到的那样,这对于大众销售来说是常见的,例如在OpenZeppelin库中。
发布于 2017-10-12 12:35:26
如果您可以按照您的意愿控制this.balance,系统就会被明显地破坏,就像您可以执行this.balance = 1000以太一样,在契约中通过稀薄的空气产生乙醚平衡。
您可能会将this.balance与自定义状态变量映射混淆,您可以在契约中将其映射为balance “帐户”,对于每个用户(甚至合同本身),包含您自己的令牌的余额或您的合同为会计目的接收/发送的ETH。
https://ethereum.stackexchange.com/questions/24258
复制相似问题