Aptosウォレットとの統合
分散型アプリケーションは多くの場合、ブラウザ拡張機能またはモバイル アプリケーションを通じて実行され、オンチェーン データを読み取り、トランザクションを送信します。Aptosウォレットアダプターは、アプリとウォレットを単一のインターフェイ スとして統合出来ます。
Aptosウォレットアダプターの実装
dappsのウォレット統合で以下の実装が難しい場合があります。
- すべてのエッジケースのサポートとテスト
- さまざまなウォレットAPIの実装と保守
- ウォレット自体がサポートしていない機能をユーザーに提供する
- エコシステム内のさまざまなウォレットをすべて追跡する
ウォレットの作成、実装作業(以下の通り)も簡単ではありません。
- Dappプロジェクトと簡単に統合出来る様な、既知の標準に準拠したウォレットを提供する
- Dappプロジェクトは、アプリ内にウォレットを統合するために時間とリソースを費やす必要がある
- ウォレットはdapp統合の取り組みのみに依存する必要がある
私達がウォレットアダプターの構築を開始した時、ウォレットが簡単に統合出来、dappsが使用および実装できるアダプターを提供したいと考えていました。
そのため,Aptosウォレットアダプターモノリポジトリを提供し、ウォレットとdapps作成者の開発を容易にし、Aptosネットワーク上でのプロジェクトのスムーズな構築プロセスを確保します。Aptosウォレットアダプターは、dappとウォレット間のサービスとして機能し、ウォレット標準に従ってdappがウォレットと対話するためのAPIを公開します。これによりdappは最小限の統合作業で多くのウォレットをサポート出来、ウォレットが既知の標準に従って可視化されていきます。
アダプターの構造
アダプターには、3つの異なるコンポーネントがあります。
- アダプターコアパッケージ
- アダプターReactプロバイダー(DAPP用)
- アダプター テンプレート プラグイン(ウォレット用)
この構造には以下の利点があります。
- モジュール性(懸念事項の分離) - アダプターを3つのコンポーネントに分離する事で設計、実装、展開、使用の自由度が高まります。
- ウォレットはプラグイン実装を作成して所有します。(同じモノリポジトリに全てを含めるのではなく):
- dappsで使用されるパッケージバンドルのサイズを削減します。
- あまり摩擦を起こすことなく、セルフサービスで自分自身をサポートできる様にしましょう。
- バグ/不適切な実装/間違ったファイル構成/の際のビルドの失敗を防ぎます。
- シンプルさ - 主要なロジックがコアパッケージに実装されているため、プロバイダーパッケージは非常に軽量かつ小型に保たれます。
- 柔軟性 - ウォレット作成とカスタム関数の実装用。
エコシステムが新しい標準に移行中、新しいウォレット標準AIP-62に従い、ウォレットアダプターは古いウォレットアダプタ標準と新しいウォレット標準(AIP-62で説明されている)をサポートします。 Dappsはここの統合ガイドに従うことができ、ウォレットはここの統合ガイドに従うことができます。
アダプターコアパッケージ
アダプターコアパッケージは、dappとウォレット間の対話を処理します。それは、
- 標準API(及び様々なウォレットがサポートする様々な機能)を公開します
- 現在のウォレットの状態とインストールされているウォレットを保持します
- アクションなどでイベントを発行します
Dappsはこのパッケージを、(コアパッケージと対話していく)プロバイダーと対話するdappとして 認識 すべきではありません。一部のタイプは、dappで使用するためにコアパッケージから公開されます。
ウォレットは、独自のプラグインクラスを実装する必要があります。このプラグインクラスはコアパッケージに存在する基本的なプラグインクラス(プロパティ+イベント)インターフェイスを拡張します。
ウォレットが基本的なプラグインインターフェイスの一部ではない機能をサポートしている場合、この機能を含める様コアパッケージにプルリクエストを行い、サポート出来る様にする必要があります。ガイダンスとして、ウォレットのコアパッケージのsignTransaction
を参照してください。
アダプターReactプロバイダー
軽量のアダプターReactパッケージは、Dappsをインポートして使用するためのものです。パッケージには、アプリ内で実装して使用するためのProvider
とContext
が含まれています。
Dappでプロバイダーパッケージを使用する方法はDapp構築者用ウォレットアダプターガイドに従って下さい。
アダプターテンプレートプラグイン
アダプターとの統合を検討しているウォレットは、独自のウォレットプラグインを実装する必要があります。プロセスを容易にするために、事前に作成されたクラスが提供され、基本機能 (ウォレット標準に従って)を実装します。
ウォレットアダプター プラグイン テンプレート リポジトリは事前に作成されたクラス、テスト ファイル、いくつかの構成ファイルを保持しており、プラグインをNPMパッケージとして構築して公開する際役立ちます。
テンプレートを使用してウォレットプラグインを実装および公開する方法はウォレット ビルダー向けウォレット アダプターを御覧下さい。