【问题标题】:How to replace transaction by something other than transaction_hash?如何用 transaction_hash 以外的东西替换事务?
【发布时间】:2021-09-16 17:27:56
【问题描述】:

我正在使用 Python + web3 脚本将事务从 addr1 发送到 addr2。 我想从另一个脚本(家用计算机与服务器)替换此交易,因此我很难获取交易哈希并将 eth.replace_transaction()) 与待处理交易的 gasPrice * 1.125 一起使用。

如何替换交易?我知道它的 nonce 及其源和目标地址,但不知道哈希(因为我错过了使用的确切 gasPrice)。

我可以通过 nonce 和 block 从区块链中获取交易还是有其他方法可以做到这一点?

【问题讨论】:

    标签: python-3.x solidity web3 web3py


    【解决方案1】:

    事务由 nonce 处理,而不是 hash。

    广播具有相同随机数但更高gas的有效交易以替换交易。如果矿工看到两个具有相同 nonce 的有效竞争交易,他们通常会选择一个具有较低 nonce 的交易(但不能保证)。

    【讨论】:

    • 我正在尝试这样做,但我怎样才能获得原始汽油价格? (我有随机数,但没有其他脚本计算的气体)。
    • 您在广播交易之前获得哈希值。请编辑您的问题并添加相关源代码,以便指出如何获取哈希。
    • 当我尝试发送交易时,我得到:“第二次发送 txn 时出错:{'code': -32000, 'message': 'replacement transaction underprice'}”但第一次在我的计算机上使用此脚本没有发送,它使用另一个脚本在我的服务器上发生。所以我无法从我的代码中获取信息,但由于我收到此错误,我知道 nonce 是好的。我的任务是获取已经在 eth 块上挂起的交易的 gasPrice,这样我就可以为我的添加更多。我有这个的 nonce 和 src/dst 地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-09
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 1970-01-01
    • 2022-10-09
    相关资源
    最近更新 更多