スマートコントラクトのデプロイと管理
MultiBaaSは、スマートコントラクトをデプロイおよび管理するための直感的なプラットフォームを提供します。コントラクトのユーザーインターフェースは2つのセクションに分かれています。Libraryセクションには、スマートコントラクトの定義が含まれています。On-chainセクションでは、オンチェーンのスマートコントラクトと対話できます。
スマートコントラクトライブラリ
ライブラリは、スマートコントラクト定義のリポジトリとして機能します。
ライブラリへの追加
ユーザーは以下の方法でライブラリにコントラクトを追加できます:
-
ABIファイルのアップロード: コントラクトのインターフェースを表すスマートコントラクトABIを直接提供します。コンパイルアーティファクト(solc、Hardhat、またはForge)またはABIをサポートしています。
.jsonファイルとしてアップロードするか、JSON文字列としてテキストエリアに貼り付けることができます。 -
ソースからのコンパイル: 単一ファイルのスマートコントラクトのSolidityソースコードをアップロードします。MultiBaaSはこれをABIとバイトコードファイルにコンパイルします。これにより、ユーザーはコントラクトのインターフェースとデプロイ可能なコードの両方を取得できます。
-
HardhatプラグインとForgeライブラリ: 既存のHardhatまたはForgeワークフローにプラグインとライブラリを追加すると、デプロイスクリプトの実行時にMultiBaaSでスマートコントラクトを自動的にアップロードおよびリンクできます。
-
アドレスからのコントラクト: コントラクトアドレスを入力して「検索」をクリックするだけで、コントラクトの詳細を検出できます。当社のプラットフォームは、Blockscout API、Explorer as a Service(Etherscan)、Sourcifyを含む複数のサービスを活用して、包括的なコントラクト情報を取得します。検索結果には、関数、イベント、エラーの数が表示され、コントラクトタイプ(プロキシまたは実装)が識別され、情報ソースへのリンクが提供されます。この機能により、既存のコントラクトを分析および統合するプロセスが簡素化されます。どのネットワークに対してどのサービス(Blockscout、Etherscan、またはSourcify)が使用されるかの詳細については、サポートされるネットワークページを参照してください。
オンチェーンスマートコントラクト
MultiBaaSのオンチェーンコントラクトは、スマートコントラクト定義に関連付けられたブロックチェーンアドレスを管理します。ライブラリ内の単一の定義を複数のブロックチェーンアドレスにリンクできることに注意することが重要です。
リンクとデプロイ
スマートコントラクトがMultiBaaS内でデプロイまたはリンクされると、MultiBaas Web UIを使用でき、アプリケーションはMultiBaas REST APIおよびSDKを使用してスマートコントラクトと対話できます。
バイトコードからのデプロイ
ユーザーがMultiBaaSでSolidityソースをコンパイルすると、結果のバイトコードをブロックチェーンにデプロイするオプションがあります。デプロイに成功すると、スマートコントラクトにはアドレスが割り当てられます。このアドレスは、ライブラリ内のABIファイルに自動的にリンクされ、ブロックチェーン上のこの特定のインスタンスがそのコントラクト定義を使用していることを示します。
コントラクトをデプロイするには、ナビゲーションバーでContractsを選択します。次に、On-chainをクリックします。左側のサイドメニューでプラスボタンをクリックし、Deploy Contractを選択します。sync eventsを選択し、イベントクエリやWebhookで使用するためにイベントを同期する場合は、オプションで開始ブロック番号を調整します。
アドレスのリンク
ABIファイルをライブラリに追加した後、ユーザーは1つ以上のブロックチェーンアドレスをそのABIにリンクできます。これにより、コントラクトのインターフェースがブロックチェーン上のそのコントラクトの特定のインスタンスに関連付けられます。
コントラクトをリンクするには、ナビゲーションバーでContractsを選択します。次に、On-chainをクリックします。左側のサイドメニューでプラスボタンをクリックし、Link Contractを選択します。イベントクエリで使用するためにイベントを同期する場合は、sync eventsを選択し、オプションで開始ブロック番号を調整します。
型変換
MultiBaaSを使用すると、ユーザーはスマートコントラクト関数を呼び出すときにブロックチェーンとやり取りする際の値の処理方法をカスタマイズでき、スマートコントラクト関数呼び出しからの出力を受信したり、スマートコントラクトによって発行されたイベントを受信したりできます。たとえば、特定の関数またはイベントパラメーターに小数点を追加することで、値の解釈方法を調整できます。これは、Solidityプログラミング言語が浮動小数点型をサポートしていないため便利です。
型変換にアクセスするには:
- Contracts、次にLibraryをクリックします
- 目的のスマートコントラクトのOverviewタブで、型変換を適用する目的の関数をクリックします
- Functionsセクションの右上隅にある設定アイコンをクリックします
- 該当する関数またはイベントの型変換ドロップダウンをクリックし、型変換を選択します
- Updateをクリックして変更を適用します
スマートコントラクトとの対話
概要
スマートコントラクトのラベル、オンチェーンアドレス、イベント同期ステータス、およびパラメーターを取らない公開状態変数と関数がこのタブに表示されます。
関数
関数タブでは、任意の読み取りまたは書き込みスマートコントラクト関数を呼び出すことができます。
イベント
Ethereumブロックチェーンは、イベント(トランザクションログ)を使用してスマートコントラクト内のアクションを通知します。これらのイベントは、アプリケーションが変更を効率的に追跡するのに役立ちます。これらがなければ、アプリケーションは新しいブロックごとに変更を常にチェックする必要があり、これは自明でないアプリケーションには非実用的です。イベントを使用すると、DAppは特定のアドレスイベントをサブスクライブし、それに応じて応答できます(UIの更新など)。
ただし、アプリケーションは依然として状態を維持する必要があり、考慮すべきニュアンスがあります。チェーンの再編成が発生した場合、イベントは元に戻される可能性があり、ネットワークの中断中にアプリケーションが中間イベントを見逃す可能性があります。MultiBaaSは、イベントキャッシングを処理し、REST APIを介してイベントを公開することでこれを簡素化します。また、イベントデータのクエリと集約の計算を実行し、カスタマイズされたビューを作成するためのツールも提供します。MultiBaaSは、高度なイベントインデックスも提供します。