Sendrawtransaction

幫助signTransaction

  • May 27, 2021

我需要幫助 com 簽署交易的許多參數。

什麼是“隨機數”?

我如何計算氣體價值?

我如何計算gasPrice?

什麼是數據欄位?

鏈 ID 1 是主網?

我將使用infura。

$transaction = new Transaction([
'nonce' => '0x'.$hexNonce,
'gas' => '0x'.$gas,
'gasPrice' => '0x'.$gasPrice,
'value' => '0x'.$hexValue,
'chainId' => 1,
'data' => '0x0'
]);
{     
    gas: web3.utils.toHex(3000000), 
    gasPrice: web3.utils.toHex(await web3.eth.getGasPrice()), 
    data: contractData, 
    nonce: web3.utils.toHex(await web3.eth.getTransactionCount(address)), 
    to: contractAddress, 
    chainId: chainId,
    from: address
}

gas 使用的氣體的最大限制,如果使用的消耗高於此限制,則恢復交易

gasPrice每個gas 單位的價格,例如(300000 * gasPrice),設置更高的交易可以更快地探勘。

data要在事務中發送的數據。可以是函式呼叫或合約初始化。可以通過使用getData()if using`web3js@0.20encodeAbi()`web3js1.0 獲取

contract.deploy({data:bytecode}).encodeABI(); //create new contract
contract.methods.setModule(args[0], args[1]).encodeABI(); //method calling

來自該地址的交易數量 + 1

發送給誰,可以是合約地址、錢包地址,或者如果創建新合約則留空

如果鏈支持(EIP155),則網路的chainID ID 例如乙太坊主網 = 1,乙太坊 rinkeby = 4,乙太坊 = 2

from交易的發送者

1.) Nonce 基本上是從該帳戶發送的交易量。您不必手動設置它,您可以使用web3.eth.getTransactionCount()

2.) 氣體是用於該交易的氣體量。所以你可以根據你想要做的事情來設置它,如果你正在呼叫一個執行大量計算的合約函式,你可以將 gas 限制設置得更高一點。如果您不確定估算值,您可以使用web3.eth.estimateGas()

3.) gasPrice 是該交易中以 wei 為單位的 gas 價格。你可以隨意設置它,但如果你不這樣做,它預設為最後幾個區塊使用的中值氣體。

4.) 數據是要發送到合約函式呼叫的數據,或者在合約創建的情況下,它是合約的字節碼或初始化程式碼

5.) 鏈ID,可以參考這個文章

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