Web3js

Web3 - 將 nonce 分配給智能合約交易

  • August 21, 2019

我有一個智能合約。我想執行它的狀態修改功能之一。

這是程式碼:

const result = await smartContractObject.methods
   .addSomething(_valueToAdd)
   .send( { gas: '5000000', from:masterAccount });

如何手動為此交易分配隨機數?

我需要創建一個 raw_tx 嗎?

我不確定用send方法修改隨機數。您可以改用經典web3.eth.sendTransaction方法(https://web3js.readthedocs.io/en/v1.2.1/web3-eth.html#sendtransaction)。但是,您需要data為此交易提供欄位。

const nonceThatIWant = x;
const txObject = smartContractObject.methods.addSomething(_valueToAdd);
const txData = txObject.encodeABI();
await web3.eth.sendTransaction({
  from:masterAccount,
  nonce: nonceThatIWant,
  data: txData,
  to: smartContractObject._address, //or smartContractObject.address depending on web3 version,

  //rest parameters like gas, value, gasPrice, etc.
});

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