spl_token_2022_interface/extension/metadata_pointer/
mod.rs

1#[cfg(feature = "serde")]
2use serde::{Deserialize, Serialize};
3use {
4    crate::extension::{Extension, ExtensionType},
5    bytemuck::{Pod, Zeroable},
6    spl_pod::optional_keys::OptionalNonZeroPubkey,
7};
8
9/// Instructions for the `MetadataPointer` extension
10pub mod instruction;
11
12/// Metadata pointer extension data for mints.
13#[repr(C)]
14#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
15#[cfg_attr(feature = "serde", serde(rename_all = "camelCase"))]
16#[derive(Clone, Copy, Debug, Default, PartialEq, Pod, Zeroable)]
17pub struct MetadataPointer {
18    /// Authority that can set the metadata address
19    pub authority: OptionalNonZeroPubkey,
20    /// Account address that holds the metadata
21    pub metadata_address: OptionalNonZeroPubkey,
22}
23
24impl Extension for MetadataPointer {
25    const TYPE: ExtensionType = ExtensionType::MetadataPointer;
26}