Wie könnte ich "sendrawtransaction" in Python schreiben?

Seit ich benutzeweb3 = Web3(HTTPProvider('https://mainnet.infura.io/root@123'))

Deshalb muss ich senddrawtransaction für die Ether-Transaktion verwenden. Was ist nun der Schreibprozess sendrawtransactionin PYTHON?

Und wenn es einen anderen Transaktionsprozess gibt, der dies Httpproviderin Python verwendet, dann erwähnen Sie bitte .

Antworten (3)

Wenn ich Sie richtig verstehe, versuchen Sie nur herauszufinden, wie Sie eine Transaktion mit web3.py senden . Wenn ja, sollte so etwas funktionieren:

web3.eth.sendTransaction({
    'from': '0x...',
    'to': '0x...',
    'value': web3.toWei(1, 'ether'),
})

Sie können eine Transaktion mit Pyethereum unterzeichnen. Siehe die Pyethereum-Antwort hier: Erstellen und signieren Sie OFFLINE-Rohtransaktionen?

Sie können das offizielle Dokument hier einsehen .
Es gibt ein Beispiel wie folgt,

>>> import rlp
>>> from ethereum.transactions import Transaction
>>> tx = Transaction(
    nonce=web3.eth.getTransactionCount(web3.eth.coinbase),
    gasprice=web3.eth.gasPrice,
    startgas=100000,
    to='0xd3cda913deb6f67967b99d67acdfa1712c293601',
    value=12345,
    data=b'',
)
>>> tx.sign(the_private_key_for_the_from_account)
>>> raw_tx = rlp.encode(tx)
>>> raw_tx_hex = web3.toHex(raw_tx)
>>> web3.eth.sendRawTransaction(raw_tx_hex)
'0xe670ec64341771606e55d6b4ca35a1a6b75ee3d5145a99d05921026d1527331'