繁体   English   中英

ethereum rpc,发送交易

[英]ethereum rpc , send transaction

如何在ethereum上使用RPC发送事务。

在文档上我看到了这个:

params: [{
  "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155",
  "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567",
  "gas": "0x76c0", // 30400,
  "gasPrice": "0x9184e72a000", // 10000000000000
  "value": "0x9184e72a", // 2441406250
  "data": "0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675"
}]

我在哪里找到这个:

data“:”0xd46e ....... 72445675

是否有任何简单的库我只能输入金额和交易地址?

Web3.js是您可以使用的与以太坊交互的事实上的库。 有很多关于如何发送交易的文档

web3.eth.sendTransaction(transactionObject [, callback])

数据字段是包含消息的关联数据的字节字符串,或者在合同创建事务的情况下是初始化代码。 消息数据是编码方法及其参数值。 您可以使用库ethereumjs-abi对数据字段进行编码和解码。

  1. 如果您只想进行简单的交易,“data”参数不适合您。
  2. 要进行简单的事务,您可以简单地忽略除“from”,“to”和“value”之外的所有参数,并以这种方式调用方法:

    params: [{ "from": "0xb60e8dd61c5d32be8058bb8eb970870f07233155", "to": "0xd46e8dd67c5d32be8058bb8eb970870f07244567", "value": "0x9184e72a", // 2441406250 }]

  3. 您只需要金额和地址就可以找到简单的库。 看来你的意思是“地址”。 与比特币rpc不同,比特币rpc只使用所有地址属于钱包作为交易来源,你应该用ethereum rpc定义精确的“从”地址。

我在Web3上NodeJSWeb浏览器编写了几个包装

后者有助于抽象连接和合同开发。

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);
}

希望它好起来

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM