PythonとWeb3.pyライブラリを使用してEthereumブロックチェーン上でトランザクションを送信し、そのレシートを待つ方法について説明します。
Web3.pyとは
Web3.pyは、PythonでEthereumとやり取りするためのライブラリです。このライブラリを使用すると、Ethereumネットワークと直接通信し、トランザクションを送信したり、スマートコントラクトとやり取りしたりすることができます。
トランザクションのレシートを待つ
Web3.pyライブラリには、トランザクションがブロックに含まれるのを待つためのメソッドがあります。このメソッドは、トランザクションがブロックに含まれるまでスクリプトの実行を一時停止します。これにより、トランザクションが成功したか失敗したかを確認することができます。
以下に、トランザクションを送信し、そのレシートを待つPythonスクリプトの例を示します。
from web3 import Web3
# Web3インスタンスを作成
web3 = Web3(Web3.HTTPProvider('http://localhost:8545'))
# トランザクションを作成
transaction = {
'to': '0xReceiverAddress',
'value': web3.toWei(1, 'ether'),
'gas': 2000000,
'gasPrice': web3.toWei('50', 'gwei'),
}
# トランザクションを署名
signed_txn = web3.eth.account.sign_transaction(transaction, private_key='YourPrivateKey')
# トランザクションを送信
txn_hash = web3.eth.sendRawTransaction(signed_txn.rawTransaction)
# トランザクションのレシートを待つ
receipt = web3.eth.wait_for_transaction_receipt(txn_hash)
print(receipt)
このスクリプトは、トランザクションがブロックに含まれるまで待ち、その後トランザクションのレシートを表示します。レシートには、トランザクションの詳細(送信者、受信者、送信量など)とトランザクションの結果(成功または失敗)が含まれます。
以上が、PythonとWeb3.pyを使用してEthereumブロックチェーン上でトランザクションを送信し、そのレシートを待つ方法になります。これにより、スクリプトがトランザクションの結果を確認できるようになります。