【问题标题】:How to send transactions with multiple wallets in one shot web3.py如何一次性使用多个钱包发送交易 web3.py
【发布时间】:2021-12-30 22:17:58
【问题描述】:

我不知道这是否可行,但我希望能够与多个钱包进行交易,而我可以尝试这样做的唯一方法(据我所知)是遍历每个地址和密钥。我想知道是否有一种方法可以在单独的线程中发送每个事务,以便所有事务同时执行而不是一个接一个地执行? 附言如果您对实现这一目标有更好的想法,请通过各种方式分享。谢谢!

这是我目前为止的循环

adrresses = ["address1", "address2", "address3"]
keys = ["key1", "key2", "key3"]

for addr, key in zip(adrresses, keys):
    txn = router_contract.functions.swapExactTokensForTokensSupportingFeeOnTransferTokens(amountIn, 0, [tokenIn, tokenOut], addr, int(time.time() + 10000))
    swap_txn = txn.buildTransaction({   
        'from': addr,
        'gas': 2500000,
        'gasPrice': web3.toWei('5','gwei'),
        'nonce': web3.eth.get_transaction_count(addr)})  
    signed_txn = web3.eth.account.sign_transaction(swap_txn, key)
    tx_receipt = web3.eth.send_raw_transaction(signed_txn.rawTransaction)
    txHash = str(web3.toHex(tx_receipt))
    print(txHash)
    ```

【问题讨论】:

    标签: multithreading web3py


    【解决方案1】:

    你只有两种方法,如果想在一个事务中运行你的所有这个事务

    1. 您需要部署自己的合约并在一笔交易中完成所有这些调用
    2. 您需要使用“multicall”合约。不同网络的不同地址 https://github.com/joshstevens19/ethereum-multicall#readme 这份合同将一次性接受您所有的电话。

    【讨论】:

    • 谢谢@lesnik 的回答。这比我预期的要好得多。但是,他们没有 python 示例。有没有机会帮我提供一个 python 版本?
    猜你喜欢
    • 2021-10-07
    • 2022-01-04
    • 2018-11-04
    • 2021-05-29
    • 2023-02-21
    • 2021-10-22
    • 2020-10-15
    • 2020-12-15
    • 2023-01-13
    相关资源
    最近更新 更多