Tiene problemas para transmitir la transacción de BitcoinJS.

Estoy tratando de enviar testnet con bitcoinjs, pero cuando voy a transmitir el hexadecimal, me da un código de error que dice "la tarifa es demasiado alta: 12372928". Ahora, según tengo entendido, la tarifa es la entrada - salida. Sin embargo, incluso si aumento la salida para que coincida con el saldo de la billetera, recibo exactamente el mismo mensaje de error. Aquí está mi código:

        this.setState({
            address: 'mphWVWbPgGKuaMpSpGNA3Ffrpva5cRChqP',
            privateKey: 'cW6dLEqkk2HAbQTSJaHnn4w3kd2iJfhBREccEE3vzrq8kcVE5TqS',
        });      
}

createTransaction = (e) => {
    e.preventDefault()
    const {address, privateKey} = this.state;
    var hashURL = `https://api.blockcypher.com/v1/btc/test3/addrs/${address}`


        axios.get(hashURL).then((response) => {
            this.setState({
                hash: response.data.txrefs[0].tx_hash
            })
        }).then((result) => {

        var tx = new bitcoin.TransactionBuilder(testnet);

        var txId = this.state.hash;

        console.log(txId);

        tx.addInput(txId, 0)

        tx.addOutput(this.state.add, 1000000)

        var keyPair2 = bitcoin.ECPair.fromWIF(privateKey, testnet);

        tx.sign(0, keyPair2);
        console.log(tx.build().toHex());
        }
    )

}

¿Habría alguna forma de configurar manualmente la tarifa para que siempre sea algo así como 0,0001?

Respuestas (1)

La tarifa del minero, por defecto, será igual a las entradas y salidas de su transacción.

Noto algunos problemas con tu código. No especifica una dirección de cambio para enviar la cantidad sobrante. Si tengo una salida no gastada de 100BTC y quiero enviar 10BTC a otra persona, debería tener 1 entrada (la salida no gastada de la transacción anterior) y 2 salidas (la dirección del receptor y la dirección de cambio). Las entradas y salidas se verán así:

Entradas

  • Salida no gastada de 100BTC

Salidas

  • Dirección del receptor con 10BTC
  • Cambiar dirección (su dirección BTC) con 89.999BTC

La tarifa será 0.001BTC desde (in)(100) - (out)(10 + 89.999) = 0.001.

Espero haber podido ayudar.