Web3js
發送交易 - 我可以假設當“數據”欄位失去時,“氣體”欄位 應始終為 21000?
我已經實現了將 ETH 從我的賬戶轉移到另一個賬戶的功能:
async function transfer(to, value) { let options = { from : PUBLIC_ADDRESS, to : to, value: value }; options.gas = await web3.eth.estimateGas(options); let signedTransaction = await web3.eth.accounts.signTransaction(options, PRIVATE_KEY); return await web3.eth.sendSignedTransaction(signedTransaction.rawTransaction); }
這純粹是為了 ETH 轉賬;我不想呼叫任何智能合約函式,所以我可以
data
從對像中省略該欄位options
。我注意到它
web3.eth.estimateGas(options)
總是返回 21000。我可以指望這一點,並將我的程式碼簡化為:
let options = { from : PUBLIC_ADDR, to : to, value: value, gas : 21000 };
?
謝謝
如果
to
地址不是智能合約,那麼是的。這是簡單乙太幣轉移的標準氣體成本。如果
to
地址是智能合約,即使你沒有在data
現場發送任何東西,也可能會消耗不同的氣體量。