Cómo detectar y reemplazar los detalles de la transacción que se almacenaron en local cuando el usuario vuelve a intentar la transacción con un precio más alto usando Metamask

Para una aplicación web almacené la identificación de transacción de una actividad. si el usuario vuelve a intentar la transacción con un precio de gasolina más alto en metamask (en caso de que la transacción tarde demasiado, metamask ofrece esta opción), ¿existe alguna posibilidad de reemplazar la identificación de transacción actual que almacené con una nueva? ¿Cómo se puede detectar este reintento? ¿Hay algún método web3 para esto?

Respuestas (1)

Si desea que se realice la misma transacción pero solo con un precio de gasolina más alto, no necesitará reemplazar la identificación de la transacción ya que eso no cambia.

Llamar a una función en su front-end con web3.jsusted usaría este código

   function functionYouWantToCall() {
        web3.eth.getAccounts(function(error, result) {
        web3.eth.sendTransaction(
            {from:web3.eth.accounts[0],
            to: YourContractAddress,
            value:  "0", 
            data: "0xTheHashOfTheFuctionYouWantToCall"
                }, function(err, result) {
          if (!err)
            console.log(error); 
        });
    });

    } 

Para encontrar la información que debe poner en el campo de datos, vaya a Remix y luego, en la pestaña Ejecutar, seleccione los detalles, desplácese hacia abajo hasta los hashes de función y seleccione pegar el hash de la función que desea llamar al frente 0x. También asegúrese de ingresar su propia dirección de contrato en el campo de dirección del contrato

pero el reintento genera una nueva identificación de transacción, y la anterior siempre estará en estado pendiente, después de un tiempo esta identificación se eliminará de etherscan, ¿alguna solución para obtener la nueva identificación?
¿Estás haciendo esto con un contrato inteligente que se ha subido a la cadena de bloques?
Sí. hacer con un contrato inteligente cargado
He actualizado mi respuesta, espero que esto debería ayudar