【问题标题】:Web3j - How to get timestamp for contract creation time?Web3j - 如何获取合同创建时间的时间戳?
【发布时间】:2022-11-11 01:24:06
【问题描述】:

我已经使用成功部署了一个合同

Optional<TransactionReceipt> receipt = Contract.deploy(...).send().getTransactionReceipt();

收据不会返回时间戳。 它返回交易哈希和区块号。

我将如何使用 web3j 库来获取合同创建时间的时间戳?

【问题讨论】:

    标签: android ethereum web3-java


    【解决方案1】:

    您从块中获取时间戳(其中包括合约创建交易)。

    let block = await web3.eth.getBlock(nr);
    let date = new Date(Number(block.timestamp) * 1000)
    

    【讨论】:

    • 我需要 Java 库实现 Web3j 的语法。它没有.getBlock 方法
    【解决方案2】:

    如果你有交易收据,你可以得到一个 Date 对象,如下所示。

    TransactionReceipt txnReceipt = ...
    ...
    EthBlock txnBlock = web3j.ethGetBlockByHash(txnReceipt.getBlockHash(),true).send();
    long txnBlockTimestamp = txnBlock.getBlock().getTimestamp().longValueExact() * 1000;
    Date blockDate = new Date(txnBlockTimestamp);
    

    【讨论】:

      猜你喜欢
      • 2013-01-20
      • 1970-01-01
      • 1970-01-01
      • 2014-11-21
      • 1970-01-01
      • 1970-01-01
      • 2021-07-20
      • 1970-01-01
      • 2018-10-05
      相关资源
      最近更新 更多