紹介
はじめに
Umiのインストール
Umiを使用するには、Umiと使用したいすべての外部プラグインをインストールする必要があります。また、特定のプラグインが不要な場合は、ほとんどのユースケースに適したプラグインセットを含むデフォルトバンドルをインストールできます。
注意: デフォルトバンドルは一部のインターフェースでweb3.jsに依存しているため、そのパッケージもインストールする必要があります。
必要なパッケージ
インストールするには、以下のコマンドを使用してください:
npm i @metaplex-foundation/umi
npm i @metaplex-foundation/umi-bundle-defaults
npm i @solana/web3.js@1
ライブラリ作成者向け
依存関係を大幅に削減するためにUmiのインターフェースを使用したいライブラリ作成者は、メインのUmiライブラリのみをインストールする必要があります。エンドユーザーがUmiライブラリの複数バージョンを持つことがないよう、以下のコマンドを使用してピア依存関係としてインストールすることを強く推奨します:
npm i @metaplex-foundation/umi --save-peer
その後、UmiのContextオブジェクトまたはそのサブセットを使用して、関数で必要なインターフェースを注入できます。
テスト用
また、Umiには、エンドユーザーとライブラリ作成者の両方がコードをテストするのに役立つテストバンドルが付属していることにも注意してください。たとえば、UploaderInterfaceとDownloaderInterfaceの両方で使用されるMockStorage実装が含まれているため、実際のストレージプロバイダーに依存することなく、確実にコードをテストできます。
npm i @metaplex-foundation/umi
npm i @metaplex-foundation/umi-bundle-tests
Umiの基本
このセクションでは、Umiを使い始めるための基本的な手順を説明します:
RPCへの接続
Solanaには、さまざまな目的を果たす異なるクラスター(例:Mainnet-beta、Devnet、Testnetなど)があり、それぞれがRPCリクエストを処理するための専用APIノードを持っています。
UmiをクラスターのRPCエンドポイントが最初の引数として渡されるため、Umiを選択されたクラスターに接続することは、umiインスタンスを作成するのと同じくらい簡単です。
注意: Mainnetに接続する場合は、制限があるパブリックエンドポイント(https://api.mainnet-beta.solana.com)の代わりに、Solana RPCプロバイダーからの専用RPCエンドポイントを使用することを推奨します。
Umiインスタンスを作成するには、createUmi関数をインポートしてRPCエンドポイントを提供します。オプションで、2番目の引数としてコミットメントレベルも指定できます。
import { createUmi } from '@metaplex-foundation/umi-bundle-defaults'
const umi = createUmi('<RPC-Endpoint>', '<Commitment-Level>')
ウォレットの接続
Umiをセットアップする際、トランザクションを送信するためにウォレットを使用または生成する必要があります。これを行うには、テスト用に新しいウォレットを作成、ファイルシステムから既存のウォレットをインポート、またはWebベースのdApps用にwalletAdapterを使用できます。
注意: walletAdapterセクションは、walletAdapterが既にインストールおよび設定されていることを前提として、UmiにそれをPGする必要があるコードのみを提供します。包括的なガイドについては、こちらを参照してください。
注意: UmiインターフェースはSignerの2つのインスタンスを格納します:アプリケーションを使用するidentityと、トランザクションとストレージ料金を支払うpayerです。デフォルトでは、signerIdentityメソッドはpayer属性も更新します。なぜなら、ほとんどの場合、identityもpayerであるからです。
詳細については、Umiコンテキストインターフェースの段落をご覧ください。
プログラムとクライアントの登録
場合によっては、Umiで使用したいプログラムやクライアントを指定する必要があります(例:Coreアセットをミントする場合、UmiにCoreプログラムを使用するよう指示する必要があります)。これは、Umiインスタンスで.use()メソッドを呼び出し、クライアントを渡すことで行えます。
以下は、mpl-token-metadataクライアントをUmiに登録する方法です:
import { mplTokenMetadata } from '@metaplex-foundation/mpl-token-metadata'
const umi = createUmi('https://api.mainnet-beta.solana.com')
.use(mplTokenMetadata())
注意: 複数のクライアントを登録するために、このように.use()呼び出しをチェーンすることもできます:
import { mplTokenMetadata } from '@metaplex-foundation/mpl-token-metadata'
import { mplCandyMachine } from '@metaplex-foundation/mpl-candy-machine'
const umi = createUmi('https://api.mainnet-beta.solana.com')
.use(mplTokenMetadata())
.use(mplCandyMachine())
