スマートコントラクトのデプロイ
TxTypeSmartContractDeployは、指定されたアドレスにスマートコントラクトをデプロイする。 このトランザクションタイプでは、以下の変更が行われる。
web3をkaia web3に拡張するために、web3py_extからextendをインポートする。
eth_account、web3py_ext、*cytoolz**から必要なutilsをインポートする。
指定されたkairosテストネットURLでWeb3インスタンスを作成する
また、プロバイダのURLをkairosからquicknodeに変更することができます。
秘密鍵からアカウントを読み込む
秘密鍵から料金支払い者アカウントを読み込む
TxType.TX_TYPE_FEE_DELEGATED_SMART_CONTRACT_DEPLOY型の空のトランザクションを作成する。 empty_txユーティリティを使えば、デフォルトのフィールドが埋められたtxを得ることができる。
fromやdataのような追加フィールドを、mergeユーティリティを使用して空のtxにマージする。
ブロックチェーン・ネットワークにデプロイしたいsolidityコードからコンパイル済みバイトコードを設定する。
fill_transactionを使用して、トランザクション・オブジェクトにガス・リミットなどのパラメータを追加する。
値転送txにユーザーの秘密鍵で署名する。
署名されたTxの署名から署名者のアドレスを復元する。
最後の生取引に手数料支払人の口座で署名する。
署名入りTXの署名から料金支払い者の住所を復元する。
RLPエンコードされたtxはAccount.decode_transactionユーティリティでデコードできます。
ブロックチェーンにtxを送信する。 このハッシュは受信を待つために使用される。
wait_for_transaction_receiptメソッドは、ブロックチェーンで完了した場合、txレシートを返す。