Estoy inspeccionando un caso extraño. Estoy monitoreando la red Ropsten para mi proyecto y escribiendo todas las transacciones en la base de datos para buscarlas de una manera mucho más conveniente. Cada par de minutos programo un trabajador que verifica la base de datos en busca de registros con estado pendiente y trato de recuperar los recibos de transacciones de la cadena de bloques. Noté que había algunas transacciones antiguas pero sin ningún recibo de transacción. La búsqueda de hash de transacción en ropsten.etherscan.io no dio resultados. Aquí hay un ejemplo
> var Web3 = require('web3');
> var web3 = new Web3("ws://127.0.0.1:858");
> web3.eth.getTransaction('0xa47ae1f88626e0534382a980aa96db212225abd7570817aecac1f30276ed431e').then(console.log);
{ blockHash: null,
blockNumber: null,
chainId: '0x3',
condition: null,
creates: null,
from: '0x01592cE6b6dcd5D5fe9933d7b6a6786A79274CD3',
gas: 121000,
gasPrice: '4000000000',
hash: '0xa47ae1f88626e0534382a980aa96db212225abd7570817aecac1f30276ed431e',
input: '0x',
nonce: 53,
publicKey: '0x772bac5a49059e6648ab2dfd0d4349ba84c9a3d3d9cd84abf67e4966eebc02145638a8e6d5fd9798072d2bdd27fd2a360192d3587a7e2cb62c193124a65cf413',
r: '0x9ed44eb37c1da71d600afee3c9a1283ed0d259dfe7c1ee00e9a16fd0e2678bed',
raw: '0xf86b3584ee6b28008301d8a89412fa13c638b4b6ceb1ac1c8d072530abd5a18fbc872386f26fc100008029a09ed44eb37c1da71d600afee3c9a1283ed0d259dfe7c1ee00e9a16fd0e2678beda059f1788c8e38373abf4ea0b6ca4ad5c3014dcca29c17657c195405422c8a6913',
s: '0x59f1788c8e38373abf4ea0b6ca4ad5c3014dcca29c17657c195405422c8a6913',
standardV: '0x0',
to: '0x12FA13C638b4b6Ceb1aC1C8d072530AbD5A18FbC',
transactionIndex: null,
v: '0x29',
value: '10000000000000000' }
> web3.eth.getTransactionReceipt('0xa47ae1f88626e0534382a980aa96db212225abd7570817aecac1f30276ed431e').then(console.log);
null
Esta transacción llegó a mi base de datos local a las 2:30 am mi hora local y comencé mi investigación a las 10 am. Cuando comencé mi investigación, estaba pendiente durante al menos 7 horas. Además, Etherscan muestra la transacción pendiente en su página web si la transacción aún no se ha minado, en el caso de esta transacción, Etherscan parece no estar al tanto. Esto es lo que muestra etherscan
https://ropsten.etherscan.io/tx/0xa47ae1f88626e0534382a980aa96db212225abd7570817aecac1f30276ed431e
Como puede ver en los datos de la transacción, tiene la cantidad correcta de gas y el precio del gas: 121k para 4MGwei. ¿Alguien puede explicar este comportamiento?
ACTUALIZAR
La explicación de este comportamiento se responde aquí: ¿ Se "eliminan" y "restablecen" las transacciones pendientes?
web3.eth.getTransactionReceipt
funciona solo para transacciones extraídas con éxito. Al momento de escribir, el
0xa47ae1f88626e0534382a980aa96db212225abd7570817aecac1f30276ed431e
que mencionaste todavía está pendiente (también conocido como no minado todavía) y, por lo tanto, no se puede inspeccionar con el comando anterior.
Prashant Prabhakar Singh
máx.
máx.
Prashant Prabhakar Singh
máx.