目前我正在尝试学习以太坊和智能合约。我读了这个教程:Dapps for beginners 我现在只是想知道,是否每次都必须调用合约中的函数(如上面的教程中所示),或者当我将一些以太坊转移到该合约地址时是否可能执行特定函数?
示例: 我执行下面的代码,接收者地址也是有合约的地址。现在应该在接收器函数中执行一个特定函数。
eth.sendTransaction({from:发送者, to:接收者, value:金额})
最佳答案
您应该在智能合约中创建一个无名应付函数。
如果有人在您的合约地址发送原始交易,这将是默认执行的函数。
function() payable public {
}
此外,这里的另一个答案指出您需要知道合约 ABI 才能与合约进行通信,但这不是真的。
您需要知道合约地址、函数名称以及输入输出参数类型。 (您可以使用 Web3 的 method.call 或 method.sendTransaction 发送交易对象中的编码数据并与合约交互。)
ABI 可能有此信息,但 ABI 本身并不是必需的。
关于ethereum - 是否可以仅通过向某个地址进行交易来调用合约函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37704011/