Транзакции Ropsten (тестовая сеть Ethereum) не разрешаются (пока не завершены) с использованием Web3js - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть некоторый код, который взаимодействует с существующим умным контрактом на Ropsten.Я запускал его несколько раз в прошлом, и у меня не было проблем.

Я опубликую полный код и две ошибки, которые я получу, когда попробую внести некоторые изменения в код.

var Tx = require("ethereumjs-tx");
const Web3 = require("web3");
const web3 = new Web3(
  "https://ropsten.infura.io/v3/d55489f8ea264a1484c293b05ed7eb85"
);

const abi = [...];
const contractAddress = "0x15E1ff7d97CB0D7C054D19bCF579e3147FC9009b";
const myAccount = "0x59f568176e21EF86017EfED3660625F4397A2ecE";
const privateKey1 = new Buffer(
  "__PrivateKey__",
  "hex"
);

hashValue = "newly updated value";

const contract = new web3.eth.Contract(abi, contractAddress, {
  from: myAccount
});

web3.eth.getTransactionCount(myAccount, (err, txCount) => {
  //Smart contract data
  const data = contract.methods.setHashValue(hashValue).encodeABI();

  // Build the transaction
  const txObject = {
    nonce: web3.utils.toHex(txCount),
    gasLimit: web3.utils.toHex(1000000),
    gasPrice: 100000,
    data: data,
    from: myAccount,
    to: contractAddress
  };

  // Sign the transaction
  const tx = new Tx(txObject);
  tx.sign(privateKey1);

  const serializedTx = tx.serialize();

  // Broadcast the transaction
  web3.eth
    .sendSignedTransaction("0x" + serializedTx.toString("hex"))
    .on("receipt", console.log);
});

Если я разверну этот код, он создаст транзакцию, которая останетсяв ожидании бесконечно.

Если я запускаю его снова, я получаю Returned error: replacement transaction underpriced.

Если я изменяю код для добавления в одноразовый номер, как это nonce: web3.utils.toHex(txCount + 1) Мне возвращается ошибка, что это известная транзакция (ожидающая транзакция).

Очень расстраивает то, что этот код работал отлично несколько дней назад!

Мне интересно, возможно, я случайно изменил свой модуль Web3 ... и изменение версиисломал что-то.Или есть проблема с Ropsten?Прошлой ночью он не показывал никаких блоков или сделок.

1017 * Две ожидающие транзакции 1019 * 0xc57316782bb34608b16c7f5ebd1cfb4404a0c8f1b0d5b3e6db6a2f973c527bc3 1021 * 0xe0d4c513c03c3dba5e853ac0511ee6cf06be6728ba0e054b703cdc49086aa5f7 1023 * Спасибо!

1 Ответ

0 голосов
/ 05 декабря 2018

Я вручную заменил одноразовое поле на ожидающие одноразовые номера и дал транзакции 20000000000 цен на газ.Это заменило ожидающие транзакции.Внезапно оригинальный код снова работает ...

...