Error de sendSignedTransaction: Error: Error devuelto: transacción de reemplazo subvaluada

Soy un principiante en cosas de Ethereum. Necesito orientación. Por favor, ayuda. Estoy ejecutando una red privada de Ethereum y uso una billetera de niebla. Aquí está mi código de contrato.

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;
    }
}

el valor del contador no estaba cambiando cuando presioné ejecutar incremento decrementfunción el valor del contador no estaba cambiando después de muchos intentos recibí este mensaje de error Recibo el mensaje de error " Error from sendSignedTransaction: Error: Returned error: replacement transaction underpriced"después de investigar un poco descubrí este error de respuesta: transacción de reemplazo subvaluada Tengo una pendiente transacción

web3.eth.transacciones pendientes();

[{
    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
}]

así que aumenté el anuncio web3.eth.getTransactionCount("0x4f7f384236f79a5e3322e33cc7bb2ccd5143a87c")+1; 11

después de eso, nuevamente intento ejecutar la transacción pero nuevamente obtengo estos mensajesingrese la descripción de la imagen aquí

Respuestas (1)

Los nonces están indexados a 0, las transacciones están indexadas a partir de 1 . Esta publicación aquí menciona:

Aparentemente hay un matiz con el nonce... mi error fue que estaba configurando el nonce en web3.eth.getTransactionCount() + 1, lo que dejó una brecha entre el nonce de la transacción anterior y el nonce de la siguiente transacción (los nonce están indexados en 0, las transacciones están indexadas de 1, esa es la raíz del error). Parece que no se le permite incrementar el nonce en 2 y dejar un espacio. Debe ser secuencial.

Instrucciones solicitadas: debe averiguar el valor de nonce de la primera transacción que realiza.

var firstNonce = web3.eth.getTransactionCount(yourSender);.

La publicación que vinculé arriba y aquí muestra cómo configurar el nonce manualmente (y un error común, que getTransactionCountya devuelve un valor uno más alto que el nonce y fue el motivo de mi respuesta)

¿Puede explicar lo que tengo que hacer como ejemplo? Como soy un principiante, tengo dificultades para entender esto.
@swaheed Lo he editado para incluir más detalles. Además, si está utilizando infura, asegúrese de llamar a getTransactionCount solo una vez y de realizar un seguimiento manual del aumento de nonce.