機能

圧縮NFTの転送

transferV2命令は、圧縮NFTをある所有者から別の所有者に転送するために使用できます。転送を認証するには、現在の所有者またはデリゲート権限(存在する場合)がトランザクションに署名する必要があります。デリゲート権限は、リーフデリゲートまたはコレクションのpermanentTransferDelegateのいずれかです。

この命令は圧縮NFTを更新するため、Bubblegumツリー上のリーフを置き換えることに注意してください。これは、圧縮NFTの整合性を検証するために追加のパラメータを提供する必要があることを意味します。これらのパラメータはリーフを変更するすべての命令に共通であるため、次のFAQでドキュメント化されています。幸いなことに、Metaplex DAS APIを使用してこれらのパラメータを自動的に取得するヘルパーメソッドを使用できます。

トランザクションサイズ

トランザクションサイズエラーが発生した場合は、getAssetWithProof{ truncateCanopy: true }の使用を検討してください。詳細についてはFAQを参照してください。

Bubblegum V2圧縮NFTの転送

命令は以下のパラメータを受け入れます:

  • リーフ所有者: 圧縮NFTの現在の所有者。デフォルトではトランザクションの支払者です。
  • リーフデリゲート: 圧縮NFTの現在の所有者とそのデリゲート権限(存在する場合)。これらのいずれかがトランザクションに署名する必要があります。
  • 権限: トランザクションに署名するオプションの権限。リーフ所有者またはpermanentTransferDelegateにすることができ、デフォルトではトランザクションのpayerです。
  • 新しいリーフ所有者: 圧縮NFTの新しい所有者のアドレス
  • マークルツリー: Bubblegumツリーのアドレス
  • ルート: Bubblegumツリーの現在のルート
  • データハッシュ: 圧縮NFTのメタデータのハッシュ
  • 作成者ハッシュ: 圧縮NFTの作成者のハッシュ
  • ノンス: 圧縮NFTのノンス
  • インデックス: 圧縮NFTのインデックス
  • コレクション: 圧縮NFTのコアコレクション(cNFTがコレクションの一部である場合)

JavaScriptを使用する場合は、最初にgetAssetWithProof関数を使用してパラメータを取得し、それらをtransferV2命令に渡すことをお勧めします。

圧縮NFTの転送

import { getAssetWithProof, transferV2 } from '@metaplex-foundation/mpl-bubblegum';
const assetWithProof = await getAssetWithProof(umi, assetId, {
truncateCanopy: true,
})
// その後、leafOwnerAはそれを使用してNFTをleafOwnerBに転送できます。
const leafOwnerB = generateSigner(umi)
await transferV2(umi, {
// プルーフ付きアセットからのパラメータを渡します。
...assetWithProof,
authority: leafOwnerA,
newLeafOwner: leafOwnerB.publicKey,
// cNFTがコレクションの一部である場合、コアコレクションを渡します。