高度

NFTデータのハッシュ化

前のセクションで、Bubblegumマークルツリーのリーフノードはそれぞれ圧縮NFT(cNFT)のデータをハッシュ化することで得られると述べました。しかし、これは正確にはどのように行われるのでしょうか?cNFTのメタデータから始めます。Bubblegum V2の各cNFTは、ミント命令への引数として以下のメタデータ構造でミントされることに注意してください。Bubblegum v1は代わりにMetadataArgsを使用します:

pub struct MetadataArgsV2 {
/// アセットの名前
pub name: String,
/// アセットのシンボル
pub symbol: String,
/// アセットを表すJSONを指すURI
pub uri: String,
/// 二次販売で作成者に行くロイヤリティベーシスポイント(0-10000)
pub seller_fee_basis_points: u16,
/// 不変、一度変更されると、このメタデータのすべての販売は二次とみなされる。
pub primary_sale_happened: bool,
/// データ構造が可変かどうか、デフォルトは不変
pub is_mutable: bool,
/// トークン標準。現在、`NonFungible`のみが許可されている。
pub token_standard: Option<TokenStandard>,
/// 作成者配列
pub creators: Vec<Creator>,
/// コレクション。V2では単に`Pubkey`であり、常に検証済みとみなされる。
pub collection: Option<Pubkey>,
}

cNFTのメタデータは、図に示され以下に説明されているように複数回ハッシュ化されます: