Я новичок в Ethereum, мне нужно руководство, пожалуйста, помогите. Я использую частную сеть ethereum и использую туманный кошелек, вот мой код контракта.
pragma solidity ^0.4.0;
contract MyFirstContract {
uint256 counter =0;
function increase() public {
counter++;
}
function decrease() public{
counter--;
}
function getCounter() public constant returns (uint256) {
return counter;
}
}
значение счетчика не менялось, когда я нажимаю кнопку «Выполнить » ,increment
или значение счетчика функции не менялось после decrement
многих попыток. Я получил это сообщение об ошибке . сделкаError from sendSignedTransaction: Error: Returned error: replacement transaction underpriced
web3.eth.pendingTransactions();
[{
blockHash: null,
blockNumber: null,
from: "0x4f7f384236f79a5e3322e33cc7bb2ccd5143a87c",
gas: 188189,
gasPrice: 18000000000,
hash: "0x193d30297d98ad9da5958e6295d61bf333050cec901601ccdbf83e9c0b1cb082",
input: "0x60806040526000805534801561001457600080fd5b5060ea806100236000396000f30060806040526004361060525763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166313bdfacd81146057578063d732d95514607b578063e8927fbc14608f575b600080fd5b348015606257600080fd5b50606960a1565b60408051918252519081900360200190f35b348015608657600080fd5b50608d60a7565b005b348015609a57600080fd5b50608d60b3565b60005490565b60008054600019019055565b6000805460010190555600a165627a7a7230582094d5704152e41ee1cb7ab5b820a49845ec5652e2c9c442a8d55da756f6d5cda60029",
nonce: 10,
r: "0x34fa67311a0a29d31139a425c2ab120033d4ab34a6d1a860d6c806f95412f7af",
s: "0x7d831f773e541f73a2371be911ec29b36d803db414ab4712007c4b00d4f10be9",
to: null,
transactionIndex: 0,
v: "0x1b",
value: 0
}]
поэтому я увеличил объявление web3.eth.getTransactionCount("0x4f7f384236f79a5e3322e33cc7bb2ccd5143a87c")+1; 11
после этого я снова пытаюсь выполнить транзакцию, но снова получаю эти сообщения
Nonces индексируются с 0, транзакции индексируются с 1 . В этом посте упоминается:
По-видимому, есть нюанс с одноразовым номером... моя ошибка заключалась в том, что я установил одноразовый номер на web3.eth.getTransactionCount() + 1, что оставило разрыв между одноразовым номером предыдущей транзакции и одноразовым номером следующей транзакции (одноразовые номера индексируются 0, транзакции индексируются от 1, это корень ошибки). Получается, что вам не разрешено увеличивать одноразовый номер на 2 и оставлять пробел. Должен быть последовательным.
Запрошенные инструкции: вам нужно узнать значение одноразового номера первой транзакции, которую вы запускаете.
var firstNonce = web3.eth.getTransactionCount(yourSender);.
Сообщение, на которое я ссылался выше, и здесь показано, как установить одноразовый номер вручную (и распространенная ошибка, которая getTransactionCount
уже возвращает значение на единицу выше, чем одноразовый номер, и была причиной моего ответа)
суахид
Вигнеш Картикеян