Web3js
如何向 metamax 發送簽名交易?
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
您可以嘗試將此欄位留空,並要求庫自動放置最新的隨機數。
PS
let byteCode = await web3.eth.getCode(contractAdress, (data) => { return data })
不是您要查找的數據。我可以建議您使用特殊庫,例如web3.js
或ethers
處理髮送交易。他們有關於發送 tx 的良好文件。範例ethers
:https ://github.com/ethers-io/ethers.js/issues/121#issuecomment-367453923
Nonce 有特定的含義,它不是一個可以留下評論的欄位
"sending own token "
。Nonce 是
from
地址的交易索引。例如,如果這是由 發送的第一筆交易user_address
,nonce 必須為 0。如果是第 9 筆交易,nonce 必須為 8。因此它必須是一個數字,但您給它的是一個字元串。這就是錯誤消息試圖告訴您的內容。順便說一句,您根本不需要手動指定 nonce 欄位。如果您不指定隨機數,它將自動填充可能是正確值的值。