Web3js

rawTx 的“數據”參數是什麼?如何使用 web3 發送 ETH

  • July 16, 2017

我想在 testnet 上使用 web3 發送 eth。源地址為 0xbddf0bf3ac858d7fb8a2bdda55884d61779ba5a9。目的地是 0x8005ceb675d2ff8c989cc95354438b9fab568681。

我在 web3 參考頁面上找到了這個例子。我可以想像如何使用它。但是我不知道什麼是“數據”以及如何計算gasLimit。

var Tx = require('ethereumjs-tx');
var privateKey = new Buffer('xxx', 'hex')

var GAS = web3.eth.estimateGas({
   to: "0x8005ceb675d2ff8c989cc95354438b9fab568681", 
   data: "WHAT IS DATA"
});

var rawTx = {
 nonce: '0x00',
 gasPrice: GAS,
 gasLimit: 'HOW AMOUNT OF GAS SHOULD I SET',
 to: '0x8005ceb675d2ff8c989cc95354438b9fab568681',
 value: '0x01',
 data: 'WHAT IS DATA'
}

var tx = new Tx(rawTx);
tx.sign(privateKey);

var serializedTx = tx.serialize();
web3.eth.sendRawTransaction(serializedTx.toString('hex'), function(err, hash) {
 if (!err)
   console.log(hash);
});

https://github.com/ethereum/wiki/wiki/JavaScript-API#web3ethsendrawtransaction


更新 1

似乎數據是可選值或其他東西……

數據 - 所有有趣的東西都在這裡

乙太坊交易資料結構是什麼?

在比特幣中,交易費用是按交易規模計算的。因此,我認為“數據”與費用有關……

要僅發送 ETH,請設置gasLimit為 21,000 並刪除data(或將其設置為空'')。21,000 gas 的基本費用假定這不是to契約。

Ifto是一個合約並且你想在 上呼叫一個函式to,你可以data根據你想呼叫的函式和它需要的任何參數進行設置。為此, 的值data將根據ABI進行編碼。使用web3.eth.estimateGas可以幫助查看執行該功能需要多少氣體以及它還可能呼叫的任何功能。

data也可以用來簡單地在區塊鏈上儲存字節。如果to不是合約,您可以靜態計算費用(除了基本的 21,000 氣),零字節為 4 氣,非零字節為 68 氣。相關: 霧:“內在氣體太低”是什麼意思?

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