Web3js

發送交易 - 我可以假設當“數據”欄位失去時,“氣體”欄位 應始終為 21000?

  • October 21, 2018

我已經實現了將 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現場發送任何東西,也可能會消耗不同的氣體量。

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