¿Cómo obtener el número de bloques de contratos implementados con trufa?

Desplegamos nuestros contratos con truffle migrate.

Necesitamos el número de bloque de la transacción de implementación del contrato en la aplicación web.

Podríamos usar web3.eth.getTransaction(txhash).blockNumber()pero no podemos obtener txhash en la aplicación porque los archivos JSON generados por truffle no lo contienen.

¿Cómo puedo recuperar el número de bloque de implementación del contrato en la aplicación front-end?

FE? Si tiene hash de transacción de implementación de contrato o incluso dirección de contrato. Puede pegar el hash de la transacción en etherscan.io para obtener detalles como el número de bloque. marca de tiempo, gas, gasPrice, etc. Si es estricto con el uso de web3, use getTrsancation web3.eth.getTransaction(txhahs).blockNumber()
gracias. FE = front-end (pregunta actualizada) De hecho, puedo ver en etherescan. Pero necesito obtenerlo en mi aplicación web. implementamos con trufa, no pude encontrar txhash en los artefactos JSON generados
¿Se implementó en testnet?
(aclaró la pregunta) es un despliegue en rinkeby.
¿Tiene dirección de contrato?

Respuestas (3)

Mi solución sería esta (si usa web3 versión anterior 1.0.):

  1. Puede calcular la dirección del contrato desplegado conociendo la dirección desde la que envió la transacción de creación del contrato y del nonce correspondiente. ¡ Mira esto !
  2. Ahora puede crear su instancia de contrato ya que tiene el abi y la dirección del contrato.
  3. Desde la instancia del contrato creado, simplemente puede tener txHash de la transacción que lo creó accediendo a este campo:myContractInstance.transactionHash

Solución probada con truffle 4.x, use en su js: let block = await web3.eth.getBlock("latest") console.log(block.number)

Esto recupera el último número de bloque y puede o no estar relacionado con el momento en que se extrajo la transacción que crea el contrato.

Puede obtener la información de la networkssección del json generado a partir de la migración de trufas. Al obtener el recibo del transactionHash, puede obtener el número de bloque, entre otra información.

[Contract].json > networks > [networkID] > transactionHash
alternativamente de la truffle-contractinstancia.
[truffle-contract instance].contractArtifact.networks.[networkId].transactionHash

https://github.com/trufflesuite/truffle-contrato-esquema/pull/19