【问题标题】:Assigning a 'Value' Parameter to an Ethereum Transaction为以太坊交易分配“价值”参数
【发布时间】:2021-11-25 02:55:23
【问题描述】:

我正在尝试为以太坊交易的 value 参数分配 0.05 Ether 的值,如下面的代码中所述。我不明白如何将 50000000000000000 Wei(0.05 Eth)转换为“0x29a2241af62c0000”所描述的格式。请有人告诉我如何将 50000000000000000 wei 转换为这种格式,它到底是什么?

//Sending Ethereum to an address
sendEthButton.addEventListener('click', () => {
  ethereum
    .request({
      method: 'eth_sendTransaction',
      params: [
        {
          from: accounts[0],
          to: '0x2f318C334780961FB129D2a6c30D0763d9a5C970',
          value: '0x29a2241af62c0000',
          gasPrice: '0x09184e72a000',
          gas: '0x2710',
        },
      ],
    })
    .then((txHash) => console.log(txHash))
    .catch((error) => console.error);
});

【问题讨论】:

    标签: solidity smartcontracts metamask


    【解决方案1】:

    0x29a2241af62c000是十进制数187500000000000000的十六进制表达式。

    您可以使用原生 JS 方法toString() 将十进制数转换为十六进制形式。

    '0x' + (50000000000000000).toString(16)
    

    返回

    0xb1a2bc2ec50000
    

    或者如果你想使用 web3,有 numberToHex() 方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-10-02
      • 2019-12-09
      • 1970-01-01
      • 2021-07-27
      • 2018-12-08
      • 2017-01-27
      • 1970-01-01
      • 2020-11-13
      相关资源
      最近更新 更多