我正在构建一个与智能契约对话的UI,并且我正在使用合同方法。
const data = await contract.methods.buyCredits().send({
from: account,
gas: 233000,
value: choice.value,
});但是在几个问题中注意到了sendTransaction的使用。
区别是sendTransaction只是一个原始的合同钱包,钱包到钱包发送的以太-而不是一个合同的方法调用?web3.eth.sendTransaction或合同方法
发布于 2020-12-15 05:01:51
在技术上,您也可以通过sendTransaction调用契约函数,方法是在data字段中指定编码函数--调用(如正式文件中所解释的)。
例如:
const transaction = contract.methods.func(arg1, arg2, arg3);
const receipt = await web3.eth.sendTransaction({
value: someValue,
from: accountAddress,
to: transaction._parent._address,
gas: transaction.estimateGas({from: accountAddress, value: someValue}),
data: transaction.encodeABI()
});当然,正如您的问题所示,您也可以使用send直接执行函数。
https://ethereum.stackexchange.com/questions/91124
复制相似问题