pythonでスマートコントラクトを呼び出す方法
スマートコントラクトを呼び出すには、まず Python のイーサリアム開発ツールキット(Web3.py)をインストールする必要があります。次のコマンドを使用してインストールできます。
pip install web3
インストールが完了したら、以下のステップを使用してスマートコントラクトを呼び出せます。
- Web3ライブラリとコントラクトABIのインポート:Pythonスクリプトに次のコード行を追加します。
from web3 import Web3
from json import loads
- イーサリアムノードへの接続: Web3オブジェクトを作成してイーサリアムノードに接続します。これはローカルノード(localhost)またはリモートノードのいずれかになります。
w3 = Web3(Web3.HTTPProvider('http://localhost:8545'))
- スマートコントラクトのABI(アプリケーションバイナリインターフェース)ファイルを使用してコントラクトを読み込む。
abi = loads('<合约ABI JSON字符串>')
contract = w3.eth.contract(address='<合约地址>', abi=abi)
- myMethodメソッド
result = contract.functions.myMethod(<参数1>, <参数2>).call()
これはmyMethodの戻り値を返します。
- 取引
- 私の方法
transaction = contract.functions.myMethod(<参数1>, <参数2>).transact({'from': '<发送者地址>'})
transaction_receipt = w3.eth.waitForTransactionReceipt(transaction)
これにより取引の領収書が返され、そこには取引の状態やその他の情報が含まれます。
注意、サンプルコードのプレースホルダー(<コントラクトABI JSON文字列>、<コントラクトアドレス>、<パラメータ1>など)は必要に応じて実際の値に置き換えてください。
また、イーサリアムノードがブロックチェーン全体と同期しており、ノードへの接続が正しく構成されていることを確認する必要があります。