Web3js

如何向 metamax 發送簽名交易?

  • December 22, 2021
let byteCode = await web3.eth.getCode(contractAdress, (data) => {
   return data
})

const txHash = await ethereum.request({
   method: 'eth_sendTransaction',
   params: [
       {
           from: user_address,
           to: main_adress,
           gas: "2000000"
           data: byteCode,
           nonce: "sending own token "
       }
   ],
})

console.log(txHash)

我想使用蜂蜜面具將我的代幣發送到另一個錢包。執行程式碼後,出現錯誤。如果我的解決方案不正確,可以建議或給出驅動版本 web3.js 1.6.1 的工作版本

錯誤詳情

Message: new BigNumber() not a base 16 number: sending own token

Code: BigNumber Error

nonce 是十六進製或十進制格式的數字(或可以解析為 INT 的字元串)。

在此處閱讀有關 nonce 的更多資訊: https ://coinmarketcap.com/alexandria/glossary/nonce

您可以嘗試將此欄位留空,並要求庫自動放置最新的隨機數。

PSlet byteCode = await web3.eth.getCode(contractAdress, (data) => { return data })不是您要查找的數據。我可以建議您使用特殊庫,例如web3.jsethers處理髮送交易。他們有關於發送 tx 的良好文件。範例ethershttps ://github.com/ethers-io/ethers.js/issues/121#issuecomment-367453923

Nonce 有特定的含義,它不是一個可以留下評論的欄位"sending own token "

Nonce 是from地址的交易索引。例如,如果這是由 發送的第一筆交易user_address,nonce 必須為 0。如果是第 9 筆交易,nonce 必須為 8。因此它必須是一個數字,但您給它的是一個字元串。這就是錯誤消息試圖告訴您的內容。

順便說一句,您根本不需要手動指定 nonce 欄位。如果您不指定隨機數,它將自動填充可能是正確值的值。

引用自:https://ethereum.stackexchange.com/questions/117041