如何一次发送多个钱包的交易 web3.py

How to send transactions with multiple wallets in one shot web3.py

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

这是我到目前为止的循环

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)
    ```

你只有两种方式,如果想运行一次交易完成你所有的交易

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