如何在以太坊上使用 RPC 发送交易?
在文档中我看到了这个:
params: [{
"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"gas": "0x76c0", // 30400,
"gasPrice": "0x9184e72a000", // 10000000000000
"value": "0x9184e72a", // 2441406250
"data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]
我在哪里可以找到这个:
“数据”:“0xd46e.......72445675”
有没有简单的库,我可以只输入金额和交易地址?
Web3.js 是您可以使用的与以太坊交互的事实上的库。关于如何发送交易有很棒的文档。
web3.eth.sendTransaction(transactionObject [, callback])
数据字段是包含消息关联数据的字节字符串,或者在合约创建交易的情况下是初始化代码。消息数据是编码方法及其参数值。您可以使用库 ethereumjs-abi 来编码和解码数据字段。
我已经为 NodeJS 和 Web 浏览器 围绕 Web3 编写了几个包装器。
后者有助于抽象连接和合约开发。
const { connect, useConnection, sendTransaction } = require("web3-wrap");
try {
if(window.web3){
await useConnection(window.web3);
}
else {
await connect();
}
const receipt = await sendTransaction({
to: "0x1234...",
value: 10 // amount to transfer, in wei
});
console.log("Receipt:", receipt);
}
catch(err){
console.error(err && err.message || err);
}
希望有帮助
要进行简单的交易,您可以简单地忽略除“from”、“to”和“value”之外的所有参数,并以这种方式调用该方法:
params: [{
"from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
"to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
"value": "0x9184e72a", // 2441406250
}]
您要求简单的图书馆,只需数量和地址。看来地址是指“收件人”地址。与比特币 rpc 不同,比特币 rpc 只是使用属于钱包的所有地址作为交易源,您应该使用以太坊 rpc 定义准确的“发件人”地址。