見出し画像

【完全保存版】MetaplexのSignerIdentityとKeypairIdentityの違いは?

Metaplexでは「signerIdentity」というものが出てきます。

しかし、テスト環境で実行するには「keypairIdentity」を使う方が楽だと私は思います。

この2つの違いを考えてみましょう。

1 Identityについて

まずは、Identityとはなんでしょう。

今回の文脈においては、ブロックチェーンで実行を行うものというくらいの意味合いです。

つまりどのアカウントで実行するかを指定するのが今回やりたいことです。

2 keypairIdentityとsignerIdentityの違い

Identityの意味さえわかれば、違いも見えてきます。

1 keypairIdentityについて

keypairIdentityとは、その名の通り、keypairをIdentityに設定する関数です。

なお、キーペアとは「秘密鍵と公開鍵」のことです。

キーペアを直接作成することもできますが、それであれば、Signerの方が使い勝手が良いです。

キーペアを使うのは、下のようにして、テストトークンが入った自分のアカウントを使うという用途が多いと思います。

2 signerIdentityについて

SignerIdentityとは、指定したSigner(署名者)Identityに設定する関数です。

https://umi.typedoc.metaplex.com/functions/umi.signerIdentity.html

umiでは、下の書き方がよく出てきます。

「generateSigner」を使って、適当なsignerを作り、それをIdentityに設定しています。

3 keypair とsignerの違いについて

1 keypairについて

keypairとは公開鍵と秘密鍵のことです。

下のようになります。

なお、秘密鍵は「Uint8Array(64)」という型になるのも覚えておきましょう。

「0~255」までの数字64個からなるということです。

2 Signerについて

次に、Signerについてです。

まず、「公開鍵」と「秘密鍵」を持つのは同じです。

「Signer」はそれに追加で、「signMessage」「signTransaction」「signAllTransactions」という関数が実行できます。

これが違いです。

つまり、Signerの方が上位互換ですね。

秘密鍵を持っているので、メッセージの署名トランザクションの署名に対応しています。

https://umi.typedoc.metaplex.com/interfaces/umi.Signer.html

以上が違いになります。

実際に使うときに、使い分けてみてください

サポートをしていただけたらすごく嬉しいです😄 いただけたサポートを励みに、これからもコツコツ頑張っていきます😊