{"version":3,"sources":["../../src/programs/token-metadata/generated/types/assetData.ts","../../src/programs/token-metadata/generated/types/collectionDetailsToggle.ts","../../src/programs/token-metadata/generated/types/collectionToggle.ts","../../src/programs/token-metadata/generated/types/createArgs.ts","../../src/programs/token-metadata/generated/types/data.ts","../../src/programs/token-metadata/generated/types/delegateArgs.ts","../../src/programs/token-metadata/generated/types/escrowAuthority.ts","../../src/programs/token-metadata/generated/types/key.ts","../../src/programs/token-metadata/generated/types/mintArgs.ts","../../src/programs/token-metadata/generated/types/payload.ts","../../src/programs/token-metadata/generated/types/programmableConfig.ts","../../src/programs/token-metadata/generated/types/reservation.ts","../../src/programs/token-metadata/generated/types/tokenStandard.ts","../../src/programs/token-metadata/generated/types/updateArgs.ts","../../src/programs/token-metadata/generated/types/usesToggle.ts","../../src/programs/token-metadata/generated/types/ruleSetToggle.ts","../../src/programs/token-metadata/generated/types/authorizationData.ts","../../src/programs/token-metadata/generated/types/payloadType.ts","../../src/programs/token-metadata/generated/types/seedsVec.ts","../../src/programs/token-metadata/generated/types/proofInfo.ts","../../src/programs/token-metadata/generated/types/printSupply.ts","../../src/programs/token-metadata/generated/accounts/metadata.ts","../../src/programs/token-metadata/generated/instructions/updateMetadataAccountV2.ts","../../src/programs/memo/generated/programs/memo.ts","../../src/programs/memo/generated/instructions/addMemo.ts"],"names":["getStructEncoder","getStructDecoder","combineCodec","getDiscriminatedUnionEncoder","getUnitEncoder","getTupleEncoder","getDiscriminatedUnionDecoder","getUnitDecoder","getTupleDecoder","getOptionEncoder","getOptionDecoder","addEncoderSizePrefix","getUtf8Encoder","getU32Encoder","getU16Encoder","getArrayEncoder","addDecoderSizePrefix","getUtf8Decoder","getU32Decoder","getU16Decoder","getArrayDecoder","getAddressEncoder","getAddressDecoder","Key","getU64Encoder","getU64Decoder","TokenStandard","getEnumEncoder","getEnumDecoder","getBooleanEncoder","getBooleanDecoder","getBytesEncoder","getBytesDecoder","getU8Encoder","getU8Decoder","MemoInstruction"],"mappings":"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","file":"index.node.mjs","sourcesContent":["/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  addDecoderSizePrefix,\n  addEncoderSizePrefix,\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getArrayDecoder,\n  getArrayEncoder,\n  getBooleanDecoder,\n  getBooleanEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU16Decoder,\n  getU16Encoder,\n  getU32Decoder,\n  getU32Encoder,\n  getUtf8Decoder,\n  getUtf8Encoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\nimport {\n  getCollectionDecoder,\n  getCollectionDetailsDecoder,\n  getCollectionDetailsEncoder,\n  getCollectionEncoder,\n  getCreatorDecoder,\n  getCreatorEncoder,\n  getTokenStandardDecoder,\n  getTokenStandardEncoder,\n  getUsesDecoder,\n  getUsesEncoder,\n  type Collection,\n  type CollectionArgs,\n  type CollectionDetails,\n  type CollectionDetailsArgs,\n  type Creator,\n  type CreatorArgs,\n  type TokenStandard,\n  type TokenStandardArgs,\n  type Uses,\n  type UsesArgs,\n} from '.';\n\nexport type AssetData = {\n  name: string;\n  symbol: string;\n  uri: string;\n  sellerFeeBasisPoints: number;\n  creators: Option<Array<Creator>>;\n  primarySaleHappened: boolean;\n  isMutable: boolean;\n  tokenStandard: TokenStandard;\n  collection: Option<Collection>;\n  uses: Option<Uses>;\n  collectionDetails: Option<CollectionDetails>;\n  ruleSet: Option<Address>;\n};\n\nexport type AssetDataArgs = {\n  name: string;\n  symbol: string;\n  uri: string;\n  sellerFeeBasisPoints: number;\n  creators: OptionOrNullable<Array<CreatorArgs>>;\n  primarySaleHappened: boolean;\n  isMutable: boolean;\n  tokenStandard: TokenStandardArgs;\n  collection: OptionOrNullable<CollectionArgs>;\n  uses: OptionOrNullable<UsesArgs>;\n  collectionDetails: OptionOrNullable<CollectionDetailsArgs>;\n  ruleSet: OptionOrNullable<Address>;\n};\n\nexport function getAssetDataEncoder(): Encoder<AssetDataArgs> {\n  return getStructEncoder([\n    ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['symbol', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['uri', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['sellerFeeBasisPoints', getU16Encoder()],\n    ['creators', getOptionEncoder(getArrayEncoder(getCreatorEncoder()))],\n    ['primarySaleHappened', getBooleanEncoder()],\n    ['isMutable', getBooleanEncoder()],\n    ['tokenStandard', getTokenStandardEncoder()],\n    ['collection', getOptionEncoder(getCollectionEncoder())],\n    ['uses', getOptionEncoder(getUsesEncoder())],\n    ['collectionDetails', getOptionEncoder(getCollectionDetailsEncoder())],\n    ['ruleSet', getOptionEncoder(getAddressEncoder())],\n  ]);\n}\n\nexport function getAssetDataDecoder(): Decoder<AssetData> {\n  return getStructDecoder([\n    ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['symbol', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['uri', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['sellerFeeBasisPoints', getU16Decoder()],\n    ['creators', getOptionDecoder(getArrayDecoder(getCreatorDecoder()))],\n    ['primarySaleHappened', getBooleanDecoder()],\n    ['isMutable', getBooleanDecoder()],\n    ['tokenStandard', getTokenStandardDecoder()],\n    ['collection', getOptionDecoder(getCollectionDecoder())],\n    ['uses', getOptionDecoder(getUsesDecoder())],\n    ['collectionDetails', getOptionDecoder(getCollectionDetailsDecoder())],\n    ['ruleSet', getOptionDecoder(getAddressDecoder())],\n  ]);\n}\n\nexport function getAssetDataCodec(): Codec<AssetDataArgs, AssetData> {\n  return combineCodec(getAssetDataEncoder(), getAssetDataDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport {\n  getCollectionDetailsDecoder,\n  getCollectionDetailsEncoder,\n  type CollectionDetails,\n  type CollectionDetailsArgs,\n} from '.';\n\nexport type CollectionDetailsToggle =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [CollectionDetails] };\n\nexport type CollectionDetailsToggleArgs =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [CollectionDetailsArgs] };\n\nexport function getCollectionDetailsToggleEncoder(): Encoder<CollectionDetailsToggleArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['None', getUnitEncoder()],\n    ['Clear', getUnitEncoder()],\n    [\n      'Set',\n      getStructEncoder([\n        ['fields', getTupleEncoder([getCollectionDetailsEncoder()])],\n      ]),\n    ],\n  ]);\n}\n\nexport function getCollectionDetailsToggleDecoder(): Decoder<CollectionDetailsToggle> {\n  return getDiscriminatedUnionDecoder([\n    ['None', getUnitDecoder()],\n    ['Clear', getUnitDecoder()],\n    [\n      'Set',\n      getStructDecoder([\n        ['fields', getTupleDecoder([getCollectionDetailsDecoder()])],\n      ]),\n    ],\n  ]);\n}\n\nexport function getCollectionDetailsToggleCodec(): Codec<\n  CollectionDetailsToggleArgs,\n  CollectionDetailsToggle\n> {\n  return combineCodec(\n    getCollectionDetailsToggleEncoder(),\n    getCollectionDetailsToggleDecoder()\n  );\n}\n\n// Data Enum Helpers.\nexport function collectionDetailsToggle(\n  kind: 'None'\n): GetDiscriminatedUnionVariant<CollectionDetailsToggleArgs, '__kind', 'None'>;\nexport function collectionDetailsToggle(\n  kind: 'Clear'\n): GetDiscriminatedUnionVariant<CollectionDetailsToggleArgs, '__kind', 'Clear'>;\nexport function collectionDetailsToggle(\n  kind: 'Set',\n  data: GetDiscriminatedUnionVariantContent<\n    CollectionDetailsToggleArgs,\n    '__kind',\n    'Set'\n  >['fields']\n): GetDiscriminatedUnionVariant<CollectionDetailsToggleArgs, '__kind', 'Set'>;\nexport function collectionDetailsToggle<\n  K extends CollectionDetailsToggleArgs['__kind'],\n  Data,\n>(kind: K, data?: Data) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isCollectionDetailsToggle<\n  K extends CollectionDetailsToggle['__kind'],\n>(\n  kind: K,\n  value: CollectionDetailsToggle\n): value is CollectionDetailsToggle & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport {\n  getCollectionDecoder,\n  getCollectionEncoder,\n  type Collection,\n  type CollectionArgs,\n} from '.';\n\nexport type CollectionToggle =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [Collection] };\n\nexport type CollectionToggleArgs =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [CollectionArgs] };\n\nexport function getCollectionToggleEncoder(): Encoder<CollectionToggleArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['None', getUnitEncoder()],\n    ['Clear', getUnitEncoder()],\n    [\n      'Set',\n      getStructEncoder([['fields', getTupleEncoder([getCollectionEncoder()])]]),\n    ],\n  ]);\n}\n\nexport function getCollectionToggleDecoder(): Decoder<CollectionToggle> {\n  return getDiscriminatedUnionDecoder([\n    ['None', getUnitDecoder()],\n    ['Clear', getUnitDecoder()],\n    [\n      'Set',\n      getStructDecoder([['fields', getTupleDecoder([getCollectionDecoder()])]]),\n    ],\n  ]);\n}\n\nexport function getCollectionToggleCodec(): Codec<\n  CollectionToggleArgs,\n  CollectionToggle\n> {\n  return combineCodec(\n    getCollectionToggleEncoder(),\n    getCollectionToggleDecoder()\n  );\n}\n\n// Data Enum Helpers.\nexport function collectionToggle(\n  kind: 'None'\n): GetDiscriminatedUnionVariant<CollectionToggleArgs, '__kind', 'None'>;\nexport function collectionToggle(\n  kind: 'Clear'\n): GetDiscriminatedUnionVariant<CollectionToggleArgs, '__kind', 'Clear'>;\nexport function collectionToggle(\n  kind: 'Set',\n  data: GetDiscriminatedUnionVariantContent<\n    CollectionToggleArgs,\n    '__kind',\n    'Set'\n  >['fields']\n): GetDiscriminatedUnionVariant<CollectionToggleArgs, '__kind', 'Set'>;\nexport function collectionToggle<\n  K extends CollectionToggleArgs['__kind'],\n  Data,\n>(kind: K, data?: Data) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isCollectionToggle<K extends CollectionToggle['__kind']>(\n  kind: K,\n  value: CollectionToggle\n): value is CollectionToggle & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU8Decoder,\n  getU8Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\nimport {\n  getAssetDataDecoder,\n  getAssetDataEncoder,\n  getPrintSupplyDecoder,\n  getPrintSupplyEncoder,\n  type AssetData,\n  type AssetDataArgs,\n  type PrintSupply,\n  type PrintSupplyArgs,\n} from '.';\n\nexport type CreateArgs = {\n  __kind: 'V1';\n  assetData: AssetData;\n  decimals: Option<number>;\n  printSupply: Option<PrintSupply>;\n};\n\nexport type CreateArgsArgs = {\n  __kind: 'V1';\n  assetData: AssetDataArgs;\n  decimals: OptionOrNullable<number>;\n  printSupply: OptionOrNullable<PrintSupplyArgs>;\n};\n\nexport function getCreateArgsEncoder(): Encoder<CreateArgsArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      'V1',\n      getStructEncoder([\n        ['assetData', getAssetDataEncoder()],\n        ['decimals', getOptionEncoder(getU8Encoder())],\n        ['printSupply', getOptionEncoder(getPrintSupplyEncoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getCreateArgsDecoder(): Decoder<CreateArgs> {\n  return getDiscriminatedUnionDecoder([\n    [\n      'V1',\n      getStructDecoder([\n        ['assetData', getAssetDataDecoder()],\n        ['decimals', getOptionDecoder(getU8Decoder())],\n        ['printSupply', getOptionDecoder(getPrintSupplyDecoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getCreateArgsCodec(): Codec<CreateArgsArgs, CreateArgs> {\n  return combineCodec(getCreateArgsEncoder(), getCreateArgsDecoder());\n}\n\n// Data Enum Helpers.\nexport function createArgs(\n  kind: 'V1',\n  data: GetDiscriminatedUnionVariantContent<CreateArgsArgs, '__kind', 'V1'>\n): GetDiscriminatedUnionVariant<CreateArgsArgs, '__kind', 'V1'>;\nexport function createArgs<K extends CreateArgsArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isCreateArgs<K extends CreateArgs['__kind']>(\n  kind: K,\n  value: CreateArgs\n): value is CreateArgs & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  addDecoderSizePrefix,\n  addEncoderSizePrefix,\n  combineCodec,\n  getArrayDecoder,\n  getArrayEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU16Decoder,\n  getU16Encoder,\n  getU32Decoder,\n  getU32Encoder,\n  getUtf8Decoder,\n  getUtf8Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\nimport {\n  getCreatorDecoder,\n  getCreatorEncoder,\n  type Creator,\n  type CreatorArgs,\n} from '.';\n\nexport type Data = {\n  name: string;\n  symbol: string;\n  uri: string;\n  sellerFeeBasisPoints: number;\n  creators: Option<Array<Creator>>;\n};\n\nexport type DataArgs = {\n  name: string;\n  symbol: string;\n  uri: string;\n  sellerFeeBasisPoints: number;\n  creators: OptionOrNullable<Array<CreatorArgs>>;\n};\n\nexport function getDataEncoder(): Encoder<DataArgs> {\n  return getStructEncoder([\n    ['name', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['symbol', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['uri', addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder())],\n    ['sellerFeeBasisPoints', getU16Encoder()],\n    ['creators', getOptionEncoder(getArrayEncoder(getCreatorEncoder()))],\n  ]);\n}\n\nexport function getDataDecoder(): Decoder<Data> {\n  return getStructDecoder([\n    ['name', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['symbol', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['uri', addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder())],\n    ['sellerFeeBasisPoints', getU16Decoder()],\n    ['creators', getOptionDecoder(getArrayDecoder(getCreatorDecoder()))],\n  ]);\n}\n\nexport function getDataCodec(): Codec<DataArgs, Data> {\n  return combineCodec(getDataEncoder(), getDataDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU64Decoder,\n  getU64Encoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\nimport {\n  getAuthorizationDataDecoder,\n  getAuthorizationDataEncoder,\n  type AuthorizationData,\n  type AuthorizationDataArgs,\n} from '.';\n\nexport type DelegateArgs =\n  | { __kind: 'CollectionV1'; authorizationData: Option<AuthorizationData> }\n  | {\n      __kind: 'SaleV1';\n      amount: bigint;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'TransferV1';\n      amount: bigint;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | { __kind: 'DataV1'; authorizationData: Option<AuthorizationData> }\n  | {\n      __kind: 'UtilityV1';\n      amount: bigint;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'StakingV1';\n      amount: bigint;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | { __kind: 'StandardV1'; amount: bigint }\n  | {\n      __kind: 'LockedTransferV1';\n      amount: bigint;\n      lockedAddress: Address;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'ProgrammableConfigV1';\n      authorizationData: Option<AuthorizationData>;\n    }\n  | { __kind: 'AuthorityItemV1'; authorizationData: Option<AuthorizationData> }\n  | { __kind: 'DataItemV1'; authorizationData: Option<AuthorizationData> }\n  | { __kind: 'CollectionItemV1'; authorizationData: Option<AuthorizationData> }\n  | {\n      __kind: 'ProgrammableConfigItemV1';\n      authorizationData: Option<AuthorizationData>;\n    }\n  | { __kind: 'PrintDelegateV1'; authorizationData: Option<AuthorizationData> };\n\nexport type DelegateArgsArgs =\n  | {\n      __kind: 'CollectionV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'SaleV1';\n      amount: number | bigint;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'TransferV1';\n      amount: number | bigint;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'DataV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'UtilityV1';\n      amount: number | bigint;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'StakingV1';\n      amount: number | bigint;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | { __kind: 'StandardV1'; amount: number | bigint }\n  | {\n      __kind: 'LockedTransferV1';\n      amount: number | bigint;\n      lockedAddress: Address;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'ProgrammableConfigV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AuthorityItemV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'DataItemV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'CollectionItemV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'ProgrammableConfigItemV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'PrintDelegateV1';\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    };\n\nexport function getDelegateArgsEncoder(): Encoder<DelegateArgsArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      'CollectionV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'SaleV1',\n      getStructEncoder([\n        ['amount', getU64Encoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'TransferV1',\n      getStructEncoder([\n        ['amount', getU64Encoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'DataV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'UtilityV1',\n      getStructEncoder([\n        ['amount', getU64Encoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'StakingV1',\n      getStructEncoder([\n        ['amount', getU64Encoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    ['StandardV1', getStructEncoder([['amount', getU64Encoder()]])],\n    [\n      'LockedTransferV1',\n      getStructEncoder([\n        ['amount', getU64Encoder()],\n        ['lockedAddress', getAddressEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'ProgrammableConfigV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AuthorityItemV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'DataItemV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'CollectionItemV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'ProgrammableConfigItemV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'PrintDelegateV1',\n      getStructEncoder([\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getDelegateArgsDecoder(): Decoder<DelegateArgs> {\n  return getDiscriminatedUnionDecoder([\n    [\n      'CollectionV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'SaleV1',\n      getStructDecoder([\n        ['amount', getU64Decoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'TransferV1',\n      getStructDecoder([\n        ['amount', getU64Decoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'DataV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'UtilityV1',\n      getStructDecoder([\n        ['amount', getU64Decoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'StakingV1',\n      getStructDecoder([\n        ['amount', getU64Decoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    ['StandardV1', getStructDecoder([['amount', getU64Decoder()]])],\n    [\n      'LockedTransferV1',\n      getStructDecoder([\n        ['amount', getU64Decoder()],\n        ['lockedAddress', getAddressDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'ProgrammableConfigV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AuthorityItemV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'DataItemV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'CollectionItemV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'ProgrammableConfigItemV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'PrintDelegateV1',\n      getStructDecoder([\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getDelegateArgsCodec(): Codec<DelegateArgsArgs, DelegateArgs> {\n  return combineCodec(getDelegateArgsEncoder(), getDelegateArgsDecoder());\n}\n\n// Data Enum Helpers.\nexport function delegateArgs(\n  kind: 'CollectionV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'CollectionV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'CollectionV1'>;\nexport function delegateArgs(\n  kind: 'SaleV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'SaleV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'SaleV1'>;\nexport function delegateArgs(\n  kind: 'TransferV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'TransferV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'TransferV1'>;\nexport function delegateArgs(\n  kind: 'DataV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'DataV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'DataV1'>;\nexport function delegateArgs(\n  kind: 'UtilityV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'UtilityV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'UtilityV1'>;\nexport function delegateArgs(\n  kind: 'StakingV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'StakingV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'StakingV1'>;\nexport function delegateArgs(\n  kind: 'StandardV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'StandardV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'StandardV1'>;\nexport function delegateArgs(\n  kind: 'LockedTransferV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'LockedTransferV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'LockedTransferV1'>;\nexport function delegateArgs(\n  kind: 'ProgrammableConfigV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'ProgrammableConfigV1'\n  >\n): GetDiscriminatedUnionVariant<\n  DelegateArgsArgs,\n  '__kind',\n  'ProgrammableConfigV1'\n>;\nexport function delegateArgs(\n  kind: 'AuthorityItemV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'AuthorityItemV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'AuthorityItemV1'>;\nexport function delegateArgs(\n  kind: 'DataItemV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'DataItemV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'DataItemV1'>;\nexport function delegateArgs(\n  kind: 'CollectionItemV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'CollectionItemV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'CollectionItemV1'>;\nexport function delegateArgs(\n  kind: 'ProgrammableConfigItemV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'ProgrammableConfigItemV1'\n  >\n): GetDiscriminatedUnionVariant<\n  DelegateArgsArgs,\n  '__kind',\n  'ProgrammableConfigItemV1'\n>;\nexport function delegateArgs(\n  kind: 'PrintDelegateV1',\n  data: GetDiscriminatedUnionVariantContent<\n    DelegateArgsArgs,\n    '__kind',\n    'PrintDelegateV1'\n  >\n): GetDiscriminatedUnionVariant<DelegateArgsArgs, '__kind', 'PrintDelegateV1'>;\nexport function delegateArgs<K extends DelegateArgsArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isDelegateArgs<K extends DelegateArgs['__kind']>(\n  kind: K,\n  value: DelegateArgs\n): value is DelegateArgs & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\n\nexport type EscrowAuthority =\n  | { __kind: 'TokenOwner' }\n  | { __kind: 'Creator'; fields: readonly [Address] };\n\nexport type EscrowAuthorityArgs = EscrowAuthority;\n\nexport function getEscrowAuthorityEncoder(): Encoder<EscrowAuthorityArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['TokenOwner', getUnitEncoder()],\n    [\n      'Creator',\n      getStructEncoder([['fields', getTupleEncoder([getAddressEncoder()])]]),\n    ],\n  ]);\n}\n\nexport function getEscrowAuthorityDecoder(): Decoder<EscrowAuthority> {\n  return getDiscriminatedUnionDecoder([\n    ['TokenOwner', getUnitDecoder()],\n    [\n      'Creator',\n      getStructDecoder([['fields', getTupleDecoder([getAddressDecoder()])]]),\n    ],\n  ]);\n}\n\nexport function getEscrowAuthorityCodec(): Codec<\n  EscrowAuthorityArgs,\n  EscrowAuthority\n> {\n  return combineCodec(getEscrowAuthorityEncoder(), getEscrowAuthorityDecoder());\n}\n\n// Data Enum Helpers.\nexport function escrowAuthority(\n  kind: 'TokenOwner'\n): GetDiscriminatedUnionVariant<EscrowAuthorityArgs, '__kind', 'TokenOwner'>;\nexport function escrowAuthority(\n  kind: 'Creator',\n  data: GetDiscriminatedUnionVariantContent<\n    EscrowAuthorityArgs,\n    '__kind',\n    'Creator'\n  >['fields']\n): GetDiscriminatedUnionVariant<EscrowAuthorityArgs, '__kind', 'Creator'>;\nexport function escrowAuthority<K extends EscrowAuthorityArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isEscrowAuthority<K extends EscrowAuthority['__kind']>(\n  kind: K,\n  value: EscrowAuthority\n): value is EscrowAuthority & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getEnumDecoder,\n  getEnumEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n} from '@solana/kit';\n\nexport enum Key {\n  Uninitialized,\n  EditionV1,\n  MasterEditionV1,\n  ReservationListV1,\n  MetadataV1,\n  ReservationListV2,\n  MasterEditionV2,\n  EditionMarker,\n  UseAuthorityRecord,\n  CollectionAuthorityRecord,\n  TokenOwnedEscrow,\n  TokenRecord,\n  MetadataDelegate,\n  EditionMarkerV2,\n  HolderDelegate,\n}\n\nexport type KeyArgs = Key;\n\nexport function getKeyEncoder(): Encoder<KeyArgs> {\n  return getEnumEncoder(Key);\n}\n\nexport function getKeyDecoder(): Decoder<Key> {\n  return getEnumDecoder(Key);\n}\n\nexport function getKeyCodec(): Codec<KeyArgs, Key> {\n  return combineCodec(getKeyEncoder(), getKeyDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU64Decoder,\n  getU64Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n  type Option,\n  type OptionOrNullable,\n} from \"@solana/kit\";\nimport {\n  getAuthorizationDataDecoder,\n  getAuthorizationDataEncoder,\n  type AuthorizationData,\n  type AuthorizationDataArgs,\n} from \".\";\n\nexport type MetadataMintArgs = {\n  __kind: \"V1\";\n  amount: bigint;\n  authorizationData: Option<AuthorizationData>;\n};\n\nexport type MintArgsArgs = {\n  __kind: \"V1\";\n  amount: number | bigint;\n  authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n};\n\nexport function getMintArgsEncoder(): Encoder<MintArgsArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      \"V1\",\n      getStructEncoder([\n        [\"amount\", getU64Encoder()],\n        [\"authorizationData\", getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getMintArgsDecoder(): Decoder<MetadataMintArgs> {\n  return getDiscriminatedUnionDecoder([\n    [\n      \"V1\",\n      getStructDecoder([\n        [\"amount\", getU64Decoder()],\n        [\"authorizationData\", getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getMintArgsCodec(): Codec<MintArgsArgs, MetadataMintArgs> {\n  return combineCodec(getMintArgsEncoder(), getMintArgsDecoder());\n}\n\n// Data Enum Helpers.\nexport function mintArgs(\n  kind: \"V1\",\n  data: GetDiscriminatedUnionVariantContent<MintArgsArgs, \"__kind\", \"V1\">,\n): GetDiscriminatedUnionVariant<MintArgsArgs, \"__kind\", \"V1\">;\nexport function mintArgs<K extends MintArgsArgs[\"__kind\"], Data>(kind: K, data?: Data) {\n  return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isMintArgs<K extends MetadataMintArgs[\"__kind\"]>(\n  kind: K,\n  value: MetadataMintArgs,\n): value is MetadataMintArgs & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  addDecoderSizePrefix,\n  addEncoderSizePrefix,\n  combineCodec,\n  getMapDecoder,\n  getMapEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU32Decoder,\n  getU32Encoder,\n  getUtf8Decoder,\n  getUtf8Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n} from '@solana/kit';\nimport {\n  getPayloadTypeDecoder,\n  getPayloadTypeEncoder,\n  type PayloadType,\n  type PayloadTypeArgs,\n} from '.';\n\nexport type Payload = { map: Map<string, PayloadType> };\n\nexport type PayloadArgs = { map: Map<string, PayloadTypeArgs> };\n\nexport function getPayloadEncoder(): Encoder<PayloadArgs> {\n  return getStructEncoder([\n    [\n      'map',\n      getMapEncoder(\n        addEncoderSizePrefix(getUtf8Encoder(), getU32Encoder()),\n        getPayloadTypeEncoder()\n      ),\n    ],\n  ]);\n}\n\nexport function getPayloadDecoder(): Decoder<Payload> {\n  return getStructDecoder([\n    [\n      'map',\n      getMapDecoder(\n        addDecoderSizePrefix(getUtf8Decoder(), getU32Decoder()),\n        getPayloadTypeDecoder()\n      ),\n    ],\n  ]);\n}\n\nexport function getPayloadCodec(): Codec<PayloadArgs, Payload> {\n  return combineCodec(getPayloadEncoder(), getPayloadDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\n\nexport type ProgrammableConfig = { __kind: 'V1'; ruleSet: Option<Address> };\n\nexport type ProgrammableConfigArgs = {\n  __kind: 'V1';\n  ruleSet: OptionOrNullable<Address>;\n};\n\nexport function getProgrammableConfigEncoder(): Encoder<ProgrammableConfigArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      'V1',\n      getStructEncoder([['ruleSet', getOptionEncoder(getAddressEncoder())]]),\n    ],\n  ]);\n}\n\nexport function getProgrammableConfigDecoder(): Decoder<ProgrammableConfig> {\n  return getDiscriminatedUnionDecoder([\n    [\n      'V1',\n      getStructDecoder([['ruleSet', getOptionDecoder(getAddressDecoder())]]),\n    ],\n  ]);\n}\n\nexport function getProgrammableConfigCodec(): Codec<\n  ProgrammableConfigArgs,\n  ProgrammableConfig\n> {\n  return combineCodec(\n    getProgrammableConfigEncoder(),\n    getProgrammableConfigDecoder()\n  );\n}\n\n// Data Enum Helpers.\nexport function programmableConfig(\n  kind: 'V1',\n  data: GetDiscriminatedUnionVariantContent<\n    ProgrammableConfigArgs,\n    '__kind',\n    'V1'\n  >\n): GetDiscriminatedUnionVariant<ProgrammableConfigArgs, '__kind', 'V1'>;\nexport function programmableConfig<\n  K extends ProgrammableConfigArgs['__kind'],\n  Data,\n>(kind: K, data?: Data) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isProgrammableConfig<K extends ProgrammableConfig['__kind']>(\n  kind: K,\n  value: ProgrammableConfig\n): value is ProgrammableConfig & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU64Decoder,\n  getU64Encoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n} from '@solana/kit';\n\nexport type Reservation = {\n  address: Address;\n  spotsRemaining: bigint;\n  totalSpots: bigint;\n};\n\nexport type ReservationArgs = {\n  address: Address;\n  spotsRemaining: number | bigint;\n  totalSpots: number | bigint;\n};\n\nexport function getReservationEncoder(): Encoder<ReservationArgs> {\n  return getStructEncoder([\n    ['address', getAddressEncoder()],\n    ['spotsRemaining', getU64Encoder()],\n    ['totalSpots', getU64Encoder()],\n  ]);\n}\n\nexport function getReservationDecoder(): Decoder<Reservation> {\n  return getStructDecoder([\n    ['address', getAddressDecoder()],\n    ['spotsRemaining', getU64Decoder()],\n    ['totalSpots', getU64Decoder()],\n  ]);\n}\n\nexport function getReservationCodec(): Codec<ReservationArgs, Reservation> {\n  return combineCodec(getReservationEncoder(), getReservationDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { combineCodec, getEnumDecoder, getEnumEncoder, type Codec, type Decoder, type Encoder } from \"@solana/kit\";\n\nexport enum TokenStandard {\n  NonFungible,\n  FungibleAsset,\n  Fungible,\n  NonFungibleEdition,\n  ProgrammableNonFungible,\n  ProgrammableNonFungibleEdition,\n}\n\nexport type TokenStandardArgs = TokenStandard;\n\nexport function getTokenStandardEncoder(): Encoder<TokenStandardArgs> {\n  return getEnumEncoder(TokenStandard);\n}\n\nexport function getTokenStandardDecoder(): Decoder<TokenStandard> {\n  return getEnumDecoder(TokenStandard);\n}\n\nexport function getTokenStandardCodec(): Codec<TokenStandardArgs, TokenStandard> {\n  return combineCodec(getTokenStandardEncoder(), getTokenStandardDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getBooleanDecoder,\n  getBooleanEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n  type Option,\n  type OptionOrNullable,\n} from '@solana/kit';\nimport {\n  getAuthorizationDataDecoder,\n  getAuthorizationDataEncoder,\n  getCollectionDetailsToggleDecoder,\n  getCollectionDetailsToggleEncoder,\n  getCollectionToggleDecoder,\n  getCollectionToggleEncoder,\n  getDataDecoder,\n  getDataEncoder,\n  getRuleSetToggleDecoder,\n  getRuleSetToggleEncoder,\n  getTokenStandardDecoder,\n  getTokenStandardEncoder,\n  getUsesToggleDecoder,\n  getUsesToggleEncoder,\n  type AuthorizationData,\n  type AuthorizationDataArgs,\n  type CollectionDetailsToggle,\n  type CollectionDetailsToggleArgs,\n  type CollectionToggle,\n  type CollectionToggleArgs,\n  type Data,\n  type DataArgs,\n  type RuleSetToggle,\n  type RuleSetToggleArgs,\n  type TokenStandard,\n  type TokenStandardArgs,\n  type UsesToggle,\n  type UsesToggleArgs,\n} from '.';\n\nexport type UpdateArgs =\n  | {\n      __kind: 'V1';\n      newUpdateAuthority: Option<Address>;\n      data: Option<Data>;\n      primarySaleHappened: Option<boolean>;\n      isMutable: Option<boolean>;\n      collection: CollectionToggle;\n      collectionDetails: CollectionDetailsToggle;\n      uses: UsesToggle;\n      ruleSet: RuleSetToggle;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsUpdateAuthorityV2';\n      newUpdateAuthority: Option<Address>;\n      data: Option<Data>;\n      primarySaleHappened: Option<boolean>;\n      isMutable: Option<boolean>;\n      collection: CollectionToggle;\n      collectionDetails: CollectionDetailsToggle;\n      uses: UsesToggle;\n      ruleSet: RuleSetToggle;\n      tokenStandard: Option<TokenStandard>;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsAuthorityItemDelegateV2';\n      newUpdateAuthority: Option<Address>;\n      primarySaleHappened: Option<boolean>;\n      isMutable: Option<boolean>;\n      tokenStandard: Option<TokenStandard>;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsCollectionDelegateV2';\n      collection: CollectionToggle;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsDataDelegateV2';\n      data: Option<Data>;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsProgrammableConfigDelegateV2';\n      ruleSet: RuleSetToggle;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsDataItemDelegateV2';\n      data: Option<Data>;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsCollectionItemDelegateV2';\n      collection: CollectionToggle;\n      authorizationData: Option<AuthorizationData>;\n    }\n  | {\n      __kind: 'AsProgrammableConfigItemDelegateV2';\n      ruleSet: RuleSetToggle;\n      authorizationData: Option<AuthorizationData>;\n    };\n\nexport type UpdateArgsArgs =\n  | {\n      __kind: 'V1';\n      newUpdateAuthority: OptionOrNullable<Address>;\n      data: OptionOrNullable<DataArgs>;\n      primarySaleHappened: OptionOrNullable<boolean>;\n      isMutable: OptionOrNullable<boolean>;\n      collection: CollectionToggleArgs;\n      collectionDetails: CollectionDetailsToggleArgs;\n      uses: UsesToggleArgs;\n      ruleSet: RuleSetToggleArgs;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsUpdateAuthorityV2';\n      newUpdateAuthority: OptionOrNullable<Address>;\n      data: OptionOrNullable<DataArgs>;\n      primarySaleHappened: OptionOrNullable<boolean>;\n      isMutable: OptionOrNullable<boolean>;\n      collection: CollectionToggleArgs;\n      collectionDetails: CollectionDetailsToggleArgs;\n      uses: UsesToggleArgs;\n      ruleSet: RuleSetToggleArgs;\n      tokenStandard: OptionOrNullable<TokenStandardArgs>;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsAuthorityItemDelegateV2';\n      newUpdateAuthority: OptionOrNullable<Address>;\n      primarySaleHappened: OptionOrNullable<boolean>;\n      isMutable: OptionOrNullable<boolean>;\n      tokenStandard: OptionOrNullable<TokenStandardArgs>;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsCollectionDelegateV2';\n      collection: CollectionToggleArgs;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsDataDelegateV2';\n      data: OptionOrNullable<DataArgs>;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsProgrammableConfigDelegateV2';\n      ruleSet: RuleSetToggleArgs;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsDataItemDelegateV2';\n      data: OptionOrNullable<DataArgs>;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsCollectionItemDelegateV2';\n      collection: CollectionToggleArgs;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    }\n  | {\n      __kind: 'AsProgrammableConfigItemDelegateV2';\n      ruleSet: RuleSetToggleArgs;\n      authorizationData: OptionOrNullable<AuthorizationDataArgs>;\n    };\n\nexport function getUpdateArgsEncoder(): Encoder<UpdateArgsArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      'V1',\n      getStructEncoder([\n        ['newUpdateAuthority', getOptionEncoder(getAddressEncoder())],\n        ['data', getOptionEncoder(getDataEncoder())],\n        ['primarySaleHappened', getOptionEncoder(getBooleanEncoder())],\n        ['isMutable', getOptionEncoder(getBooleanEncoder())],\n        ['collection', getCollectionToggleEncoder()],\n        ['collectionDetails', getCollectionDetailsToggleEncoder()],\n        ['uses', getUsesToggleEncoder()],\n        ['ruleSet', getRuleSetToggleEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsUpdateAuthorityV2',\n      getStructEncoder([\n        ['newUpdateAuthority', getOptionEncoder(getAddressEncoder())],\n        ['data', getOptionEncoder(getDataEncoder())],\n        ['primarySaleHappened', getOptionEncoder(getBooleanEncoder())],\n        ['isMutable', getOptionEncoder(getBooleanEncoder())],\n        ['collection', getCollectionToggleEncoder()],\n        ['collectionDetails', getCollectionDetailsToggleEncoder()],\n        ['uses', getUsesToggleEncoder()],\n        ['ruleSet', getRuleSetToggleEncoder()],\n        ['tokenStandard', getOptionEncoder(getTokenStandardEncoder())],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsAuthorityItemDelegateV2',\n      getStructEncoder([\n        ['newUpdateAuthority', getOptionEncoder(getAddressEncoder())],\n        ['primarySaleHappened', getOptionEncoder(getBooleanEncoder())],\n        ['isMutable', getOptionEncoder(getBooleanEncoder())],\n        ['tokenStandard', getOptionEncoder(getTokenStandardEncoder())],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsCollectionDelegateV2',\n      getStructEncoder([\n        ['collection', getCollectionToggleEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsDataDelegateV2',\n      getStructEncoder([\n        ['data', getOptionEncoder(getDataEncoder())],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsProgrammableConfigDelegateV2',\n      getStructEncoder([\n        ['ruleSet', getRuleSetToggleEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsDataItemDelegateV2',\n      getStructEncoder([\n        ['data', getOptionEncoder(getDataEncoder())],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsCollectionItemDelegateV2',\n      getStructEncoder([\n        ['collection', getCollectionToggleEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n    [\n      'AsProgrammableConfigItemDelegateV2',\n      getStructEncoder([\n        ['ruleSet', getRuleSetToggleEncoder()],\n        ['authorizationData', getOptionEncoder(getAuthorizationDataEncoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getUpdateArgsDecoder(): Decoder<UpdateArgs> {\n  return getDiscriminatedUnionDecoder([\n    [\n      'V1',\n      getStructDecoder([\n        ['newUpdateAuthority', getOptionDecoder(getAddressDecoder())],\n        ['data', getOptionDecoder(getDataDecoder())],\n        ['primarySaleHappened', getOptionDecoder(getBooleanDecoder())],\n        ['isMutable', getOptionDecoder(getBooleanDecoder())],\n        ['collection', getCollectionToggleDecoder()],\n        ['collectionDetails', getCollectionDetailsToggleDecoder()],\n        ['uses', getUsesToggleDecoder()],\n        ['ruleSet', getRuleSetToggleDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsUpdateAuthorityV2',\n      getStructDecoder([\n        ['newUpdateAuthority', getOptionDecoder(getAddressDecoder())],\n        ['data', getOptionDecoder(getDataDecoder())],\n        ['primarySaleHappened', getOptionDecoder(getBooleanDecoder())],\n        ['isMutable', getOptionDecoder(getBooleanDecoder())],\n        ['collection', getCollectionToggleDecoder()],\n        ['collectionDetails', getCollectionDetailsToggleDecoder()],\n        ['uses', getUsesToggleDecoder()],\n        ['ruleSet', getRuleSetToggleDecoder()],\n        ['tokenStandard', getOptionDecoder(getTokenStandardDecoder())],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsAuthorityItemDelegateV2',\n      getStructDecoder([\n        ['newUpdateAuthority', getOptionDecoder(getAddressDecoder())],\n        ['primarySaleHappened', getOptionDecoder(getBooleanDecoder())],\n        ['isMutable', getOptionDecoder(getBooleanDecoder())],\n        ['tokenStandard', getOptionDecoder(getTokenStandardDecoder())],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsCollectionDelegateV2',\n      getStructDecoder([\n        ['collection', getCollectionToggleDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsDataDelegateV2',\n      getStructDecoder([\n        ['data', getOptionDecoder(getDataDecoder())],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsProgrammableConfigDelegateV2',\n      getStructDecoder([\n        ['ruleSet', getRuleSetToggleDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsDataItemDelegateV2',\n      getStructDecoder([\n        ['data', getOptionDecoder(getDataDecoder())],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsCollectionItemDelegateV2',\n      getStructDecoder([\n        ['collection', getCollectionToggleDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n    [\n      'AsProgrammableConfigItemDelegateV2',\n      getStructDecoder([\n        ['ruleSet', getRuleSetToggleDecoder()],\n        ['authorizationData', getOptionDecoder(getAuthorizationDataDecoder())],\n      ]),\n    ],\n  ]);\n}\n\nexport function getUpdateArgsCodec(): Codec<UpdateArgsArgs, UpdateArgs> {\n  return combineCodec(getUpdateArgsEncoder(), getUpdateArgsDecoder());\n}\n\n// Data Enum Helpers.\nexport function updateArgs(\n  kind: 'V1',\n  data: GetDiscriminatedUnionVariantContent<UpdateArgsArgs, '__kind', 'V1'>\n): GetDiscriminatedUnionVariant<UpdateArgsArgs, '__kind', 'V1'>;\nexport function updateArgs(\n  kind: 'AsUpdateAuthorityV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsUpdateAuthorityV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsUpdateAuthorityV2'\n>;\nexport function updateArgs(\n  kind: 'AsAuthorityItemDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsAuthorityItemDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsAuthorityItemDelegateV2'\n>;\nexport function updateArgs(\n  kind: 'AsCollectionDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsCollectionDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsCollectionDelegateV2'\n>;\nexport function updateArgs(\n  kind: 'AsDataDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsDataDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<UpdateArgsArgs, '__kind', 'AsDataDelegateV2'>;\nexport function updateArgs(\n  kind: 'AsProgrammableConfigDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsProgrammableConfigDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsProgrammableConfigDelegateV2'\n>;\nexport function updateArgs(\n  kind: 'AsDataItemDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsDataItemDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsDataItemDelegateV2'\n>;\nexport function updateArgs(\n  kind: 'AsCollectionItemDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsCollectionItemDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsCollectionItemDelegateV2'\n>;\nexport function updateArgs(\n  kind: 'AsProgrammableConfigItemDelegateV2',\n  data: GetDiscriminatedUnionVariantContent<\n    UpdateArgsArgs,\n    '__kind',\n    'AsProgrammableConfigItemDelegateV2'\n  >\n): GetDiscriminatedUnionVariant<\n  UpdateArgsArgs,\n  '__kind',\n  'AsProgrammableConfigItemDelegateV2'\n>;\nexport function updateArgs<K extends UpdateArgsArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isUpdateArgs<K extends UpdateArgs['__kind']>(\n  kind: K,\n  value: UpdateArgs\n): value is UpdateArgs & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport { getUsesDecoder, getUsesEncoder, type Uses, type UsesArgs } from '.';\n\nexport type UsesToggle =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [Uses] };\n\nexport type UsesToggleArgs =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [UsesArgs] };\n\nexport function getUsesToggleEncoder(): Encoder<UsesToggleArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['None', getUnitEncoder()],\n    ['Clear', getUnitEncoder()],\n    [\n      'Set',\n      getStructEncoder([['fields', getTupleEncoder([getUsesEncoder()])]]),\n    ],\n  ]);\n}\n\nexport function getUsesToggleDecoder(): Decoder<UsesToggle> {\n  return getDiscriminatedUnionDecoder([\n    ['None', getUnitDecoder()],\n    ['Clear', getUnitDecoder()],\n    [\n      'Set',\n      getStructDecoder([['fields', getTupleDecoder([getUsesDecoder()])]]),\n    ],\n  ]);\n}\n\nexport function getUsesToggleCodec(): Codec<UsesToggleArgs, UsesToggle> {\n  return combineCodec(getUsesToggleEncoder(), getUsesToggleDecoder());\n}\n\n// Data Enum Helpers.\nexport function usesToggle(\n  kind: 'None'\n): GetDiscriminatedUnionVariant<UsesToggleArgs, '__kind', 'None'>;\nexport function usesToggle(\n  kind: 'Clear'\n): GetDiscriminatedUnionVariant<UsesToggleArgs, '__kind', 'Clear'>;\nexport function usesToggle(\n  kind: 'Set',\n  data: GetDiscriminatedUnionVariantContent<\n    UsesToggleArgs,\n    '__kind',\n    'Set'\n  >['fields']\n): GetDiscriminatedUnionVariant<UsesToggleArgs, '__kind', 'Set'>;\nexport function usesToggle<K extends UsesToggleArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isUsesToggle<K extends UsesToggle['__kind']>(\n  kind: K,\n  value: UsesToggle\n): value is UsesToggle & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\n\nexport type RuleSetToggle =\n  | { __kind: 'None' }\n  | { __kind: 'Clear' }\n  | { __kind: 'Set'; fields: readonly [Address] };\n\nexport type RuleSetToggleArgs = RuleSetToggle;\n\nexport function getRuleSetToggleEncoder(): Encoder<RuleSetToggleArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['None', getUnitEncoder()],\n    ['Clear', getUnitEncoder()],\n    [\n      'Set',\n      getStructEncoder([['fields', getTupleEncoder([getAddressEncoder()])]]),\n    ],\n  ]);\n}\n\nexport function getRuleSetToggleDecoder(): Decoder<RuleSetToggle> {\n  return getDiscriminatedUnionDecoder([\n    ['None', getUnitDecoder()],\n    ['Clear', getUnitDecoder()],\n    [\n      'Set',\n      getStructDecoder([['fields', getTupleDecoder([getAddressDecoder()])]]),\n    ],\n  ]);\n}\n\nexport function getRuleSetToggleCodec(): Codec<\n  RuleSetToggleArgs,\n  RuleSetToggle\n> {\n  return combineCodec(getRuleSetToggleEncoder(), getRuleSetToggleDecoder());\n}\n\n// Data Enum Helpers.\nexport function ruleSetToggle(\n  kind: 'None'\n): GetDiscriminatedUnionVariant<RuleSetToggleArgs, '__kind', 'None'>;\nexport function ruleSetToggle(\n  kind: 'Clear'\n): GetDiscriminatedUnionVariant<RuleSetToggleArgs, '__kind', 'Clear'>;\nexport function ruleSetToggle(\n  kind: 'Set',\n  data: GetDiscriminatedUnionVariantContent<\n    RuleSetToggleArgs,\n    '__kind',\n    'Set'\n  >['fields']\n): GetDiscriminatedUnionVariant<RuleSetToggleArgs, '__kind', 'Set'>;\nexport function ruleSetToggle<K extends RuleSetToggleArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isRuleSetToggle<K extends RuleSetToggle['__kind']>(\n  kind: K,\n  value: RuleSetToggle\n): value is RuleSetToggle & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getStructDecoder,\n  getStructEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n} from '@solana/kit';\nimport {\n  getPayloadDecoder,\n  getPayloadEncoder,\n  type Payload,\n  type PayloadArgs,\n} from '.';\n\nexport type AuthorizationData = { payload: Payload };\n\nexport type AuthorizationDataArgs = { payload: PayloadArgs };\n\nexport function getAuthorizationDataEncoder(): Encoder<AuthorizationDataArgs> {\n  return getStructEncoder([['payload', getPayloadEncoder()]]);\n}\n\nexport function getAuthorizationDataDecoder(): Decoder<AuthorizationData> {\n  return getStructDecoder([['payload', getPayloadDecoder()]]);\n}\n\nexport function getAuthorizationDataCodec(): Codec<\n  AuthorizationDataArgs,\n  AuthorizationData\n> {\n  return combineCodec(\n    getAuthorizationDataEncoder(),\n    getAuthorizationDataDecoder()\n  );\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getU64Decoder,\n  getU64Encoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\nimport {\n  getProofInfoDecoder,\n  getProofInfoEncoder,\n  getSeedsVecDecoder,\n  getSeedsVecEncoder,\n  type ProofInfo,\n  type ProofInfoArgs,\n  type SeedsVec,\n  type SeedsVecArgs,\n} from '.';\n\nexport type PayloadType =\n  | { __kind: 'Pubkey'; fields: readonly [Address] }\n  | { __kind: 'Seeds'; fields: readonly [SeedsVec] }\n  | { __kind: 'MerkleProof'; fields: readonly [ProofInfo] }\n  | { __kind: 'Number'; fields: readonly [bigint] };\n\nexport type PayloadTypeArgs =\n  | { __kind: 'Pubkey'; fields: readonly [Address] }\n  | { __kind: 'Seeds'; fields: readonly [SeedsVecArgs] }\n  | { __kind: 'MerkleProof'; fields: readonly [ProofInfoArgs] }\n  | { __kind: 'Number'; fields: readonly [number | bigint] };\n\nexport function getPayloadTypeEncoder(): Encoder<PayloadTypeArgs> {\n  return getDiscriminatedUnionEncoder([\n    [\n      'Pubkey',\n      getStructEncoder([['fields', getTupleEncoder([getAddressEncoder()])]]),\n    ],\n    [\n      'Seeds',\n      getStructEncoder([['fields', getTupleEncoder([getSeedsVecEncoder()])]]),\n    ],\n    [\n      'MerkleProof',\n      getStructEncoder([['fields', getTupleEncoder([getProofInfoEncoder()])]]),\n    ],\n    [\n      'Number',\n      getStructEncoder([['fields', getTupleEncoder([getU64Encoder()])]]),\n    ],\n  ]);\n}\n\nexport function getPayloadTypeDecoder(): Decoder<PayloadType> {\n  return getDiscriminatedUnionDecoder([\n    [\n      'Pubkey',\n      getStructDecoder([['fields', getTupleDecoder([getAddressDecoder()])]]),\n    ],\n    [\n      'Seeds',\n      getStructDecoder([['fields', getTupleDecoder([getSeedsVecDecoder()])]]),\n    ],\n    [\n      'MerkleProof',\n      getStructDecoder([['fields', getTupleDecoder([getProofInfoDecoder()])]]),\n    ],\n    [\n      'Number',\n      getStructDecoder([['fields', getTupleDecoder([getU64Decoder()])]]),\n    ],\n  ]);\n}\n\nexport function getPayloadTypeCodec(): Codec<PayloadTypeArgs, PayloadType> {\n  return combineCodec(getPayloadTypeEncoder(), getPayloadTypeDecoder());\n}\n\n// Data Enum Helpers.\nexport function payloadType(\n  kind: 'Pubkey',\n  data: GetDiscriminatedUnionVariantContent<\n    PayloadTypeArgs,\n    '__kind',\n    'Pubkey'\n  >['fields']\n): GetDiscriminatedUnionVariant<PayloadTypeArgs, '__kind', 'Pubkey'>;\nexport function payloadType(\n  kind: 'Seeds',\n  data: GetDiscriminatedUnionVariantContent<\n    PayloadTypeArgs,\n    '__kind',\n    'Seeds'\n  >['fields']\n): GetDiscriminatedUnionVariant<PayloadTypeArgs, '__kind', 'Seeds'>;\nexport function payloadType(\n  kind: 'MerkleProof',\n  data: GetDiscriminatedUnionVariantContent<\n    PayloadTypeArgs,\n    '__kind',\n    'MerkleProof'\n  >['fields']\n): GetDiscriminatedUnionVariant<PayloadTypeArgs, '__kind', 'MerkleProof'>;\nexport function payloadType(\n  kind: 'Number',\n  data: GetDiscriminatedUnionVariantContent<\n    PayloadTypeArgs,\n    '__kind',\n    'Number'\n  >['fields']\n): GetDiscriminatedUnionVariant<PayloadTypeArgs, '__kind', 'Number'>;\nexport function payloadType<K extends PayloadTypeArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isPayloadType<K extends PayloadType['__kind']>(\n  kind: K,\n  value: PayloadType\n): value is PayloadType & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  addDecoderSizePrefix,\n  addEncoderSizePrefix,\n  combineCodec,\n  getArrayDecoder,\n  getArrayEncoder,\n  getBytesDecoder,\n  getBytesEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU32Decoder,\n  getU32Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type SeedsVec = { seeds: Array<ReadonlyUint8Array> };\n\nexport type SeedsVecArgs = SeedsVec;\n\nexport function getSeedsVecEncoder(): Encoder<SeedsVecArgs> {\n  return getStructEncoder([\n    [\n      'seeds',\n      getArrayEncoder(addEncoderSizePrefix(getBytesEncoder(), getU32Encoder())),\n    ],\n  ]);\n}\n\nexport function getSeedsVecDecoder(): Decoder<SeedsVec> {\n  return getStructDecoder([\n    [\n      'seeds',\n      getArrayDecoder(addDecoderSizePrefix(getBytesDecoder(), getU32Decoder())),\n    ],\n  ]);\n}\n\nexport function getSeedsVecCodec(): Codec<SeedsVecArgs, SeedsVec> {\n  return combineCodec(getSeedsVecEncoder(), getSeedsVecDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  fixDecoderSize,\n  fixEncoderSize,\n  getArrayDecoder,\n  getArrayEncoder,\n  getBytesDecoder,\n  getBytesEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type ReadonlyUint8Array,\n} from '@solana/kit';\n\nexport type ProofInfo = { proof: Array<ReadonlyUint8Array> };\n\nexport type ProofInfoArgs = ProofInfo;\n\nexport function getProofInfoEncoder(): Encoder<ProofInfoArgs> {\n  return getStructEncoder([\n    ['proof', getArrayEncoder(fixEncoderSize(getBytesEncoder(), 32))],\n  ]);\n}\n\nexport function getProofInfoDecoder(): Decoder<ProofInfo> {\n  return getStructDecoder([\n    ['proof', getArrayDecoder(fixDecoderSize(getBytesDecoder(), 32))],\n  ]);\n}\n\nexport function getProofInfoCodec(): Codec<ProofInfoArgs, ProofInfo> {\n  return combineCodec(getProofInfoEncoder(), getProofInfoDecoder());\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getDiscriminatedUnionDecoder,\n  getDiscriminatedUnionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getTupleDecoder,\n  getTupleEncoder,\n  getU64Decoder,\n  getU64Encoder,\n  getUnitDecoder,\n  getUnitEncoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type GetDiscriminatedUnionVariant,\n  type GetDiscriminatedUnionVariantContent,\n} from '@solana/kit';\n\nexport type PrintSupply =\n  | { __kind: 'Zero' }\n  | { __kind: 'Limited'; fields: readonly [bigint] }\n  | { __kind: 'Unlimited' };\n\nexport type PrintSupplyArgs =\n  | { __kind: 'Zero' }\n  | { __kind: 'Limited'; fields: readonly [number | bigint] }\n  | { __kind: 'Unlimited' };\n\nexport function getPrintSupplyEncoder(): Encoder<PrintSupplyArgs> {\n  return getDiscriminatedUnionEncoder([\n    ['Zero', getUnitEncoder()],\n    [\n      'Limited',\n      getStructEncoder([['fields', getTupleEncoder([getU64Encoder()])]]),\n    ],\n    ['Unlimited', getUnitEncoder()],\n  ]);\n}\n\nexport function getPrintSupplyDecoder(): Decoder<PrintSupply> {\n  return getDiscriminatedUnionDecoder([\n    ['Zero', getUnitDecoder()],\n    [\n      'Limited',\n      getStructDecoder([['fields', getTupleDecoder([getU64Decoder()])]]),\n    ],\n    ['Unlimited', getUnitDecoder()],\n  ]);\n}\n\nexport function getPrintSupplyCodec(): Codec<PrintSupplyArgs, PrintSupply> {\n  return combineCodec(getPrintSupplyEncoder(), getPrintSupplyDecoder());\n}\n\n// Data Enum Helpers.\nexport function printSupply(\n  kind: 'Zero'\n): GetDiscriminatedUnionVariant<PrintSupplyArgs, '__kind', 'Zero'>;\nexport function printSupply(\n  kind: 'Limited',\n  data: GetDiscriminatedUnionVariantContent<\n    PrintSupplyArgs,\n    '__kind',\n    'Limited'\n  >['fields']\n): GetDiscriminatedUnionVariant<PrintSupplyArgs, '__kind', 'Limited'>;\nexport function printSupply(\n  kind: 'Unlimited'\n): GetDiscriminatedUnionVariant<PrintSupplyArgs, '__kind', 'Unlimited'>;\nexport function printSupply<K extends PrintSupplyArgs['__kind'], Data>(\n  kind: K,\n  data?: Data\n) {\n  return Array.isArray(data)\n    ? { __kind: kind, fields: data }\n    : { __kind: kind, ...(data ?? {}) };\n}\n\nexport function isPrintSupply<K extends PrintSupply['__kind']>(\n  kind: K,\n  value: PrintSupply\n): value is PrintSupply & { __kind: K } {\n  return value.__kind === kind;\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  assertAccountExists,\n  assertAccountsExist,\n  combineCodec,\n  decodeAccount,\n  fetchEncodedAccount,\n  fetchEncodedAccounts,\n  getAddressDecoder,\n  getAddressEncoder,\n  getBooleanDecoder,\n  getBooleanEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU8Decoder,\n  getU8Encoder,\n  type Account,\n  type Address,\n  type Codec,\n  type Decoder,\n  type EncodedAccount,\n  type Encoder,\n  type FetchAccountConfig,\n  type FetchAccountsConfig,\n  type MaybeAccount,\n  type MaybeEncodedAccount,\n  type Option,\n  type OptionOrNullable,\n} from \"@solana/kit\";\nimport {\n  getCollectionDecoder,\n  getCollectionDetailsDecoder,\n  getCollectionDetailsEncoder,\n  getCollectionEncoder,\n  getDataDecoder,\n  getDataEncoder,\n  getKeyDecoder,\n  getKeyEncoder,\n  getProgrammableConfigDecoder,\n  getProgrammableConfigEncoder,\n  getTokenStandardDecoder,\n  getTokenStandardEncoder,\n  getUsesDecoder,\n  getUsesEncoder,\n  type Collection,\n  type CollectionArgs,\n  type CollectionDetails,\n  type CollectionDetailsArgs,\n  type Data,\n  type DataArgs,\n  type Key,\n  type KeyArgs,\n  type ProgrammableConfig,\n  type ProgrammableConfigArgs,\n  type TokenStandard,\n  type TokenStandardArgs,\n  type Uses,\n  type UsesArgs,\n} from \"../types\";\n\nexport type Metadata = {\n  key: Key;\n  updateAuthority: Address;\n  mint: Address;\n  data: Data;\n  primarySaleHappened: boolean;\n  isMutable: boolean;\n  editionNonce: Option<number>;\n  tokenStandard: Option<TokenStandard>;\n  collection: Option<Collection>;\n  uses: Option<Uses>;\n  collectionDetails: Option<CollectionDetails>;\n  programmableConfig: Option<ProgrammableConfig>;\n};\n\nexport type MetadataArgs = {\n  key: KeyArgs;\n  updateAuthority: Address;\n  mint: Address;\n  data: DataArgs;\n  primarySaleHappened: boolean;\n  isMutable: boolean;\n  editionNonce: OptionOrNullable<number>;\n  tokenStandard: OptionOrNullable<TokenStandardArgs>;\n  collection: OptionOrNullable<CollectionArgs>;\n  uses: OptionOrNullable<UsesArgs>;\n  collectionDetails: OptionOrNullable<CollectionDetailsArgs>;\n  programmableConfig: OptionOrNullable<ProgrammableConfigArgs>;\n};\n\nexport function getMetadataEncoder(): Encoder<MetadataArgs> {\n  return getStructEncoder([\n    [\"key\", getKeyEncoder()],\n    [\"updateAuthority\", getAddressEncoder()],\n    [\"mint\", getAddressEncoder()],\n    [\"data\", getDataEncoder()],\n    [\"primarySaleHappened\", getBooleanEncoder()],\n    [\"isMutable\", getBooleanEncoder()],\n    [\"editionNonce\", getOptionEncoder(getU8Encoder())],\n    [\"tokenStandard\", getOptionEncoder(getTokenStandardEncoder())],\n    [\"collection\", getOptionEncoder(getCollectionEncoder())],\n    [\"uses\", getOptionEncoder(getUsesEncoder())],\n    [\"collectionDetails\", getOptionEncoder(getCollectionDetailsEncoder())],\n    [\"programmableConfig\", getOptionEncoder(getProgrammableConfigEncoder())],\n  ]);\n}\n\nexport function getMetadataDecoder(): Decoder<Metadata> {\n  return getStructDecoder([\n    [\"key\", getKeyDecoder()],\n    [\"updateAuthority\", getAddressDecoder()],\n    [\"mint\", getAddressDecoder()],\n    [\"data\", getDataDecoder()],\n    [\"primarySaleHappened\", getBooleanDecoder()],\n    [\"isMutable\", getBooleanDecoder()],\n    [\"editionNonce\", getOptionDecoder(getU8Decoder())],\n    [\"tokenStandard\", getOptionDecoder(getTokenStandardDecoder())],\n    [\"collection\", getOptionDecoder(getCollectionDecoder())],\n    [\"uses\", getOptionDecoder(getUsesDecoder())],\n    [\"collectionDetails\", getOptionDecoder(getCollectionDetailsDecoder())],\n    [\"programmableConfig\", getOptionDecoder(getProgrammableConfigDecoder())],\n  ]);\n}\n\nexport function getMetadataCodec(): Codec<MetadataArgs, Metadata> {\n  return combineCodec(getMetadataEncoder(), getMetadataDecoder());\n}\n\nexport function decodeMetadata<TAddress extends string = string>(\n  encodedAccount: EncodedAccount<TAddress>,\n): Account<Metadata, TAddress>;\nexport function decodeMetadata<TAddress extends string = string>(\n  encodedAccount: MaybeEncodedAccount<TAddress>,\n): MaybeAccount<Metadata, TAddress>;\nexport function decodeMetadata<TAddress extends string = string>(\n  encodedAccount: EncodedAccount<TAddress> | MaybeEncodedAccount<TAddress>,\n): Account<Metadata, TAddress> | MaybeAccount<Metadata, TAddress> {\n  return decodeAccount(encodedAccount as MaybeEncodedAccount<TAddress>, getMetadataDecoder());\n}\n\nexport async function fetchMetadata<TAddress extends string = string>(\n  rpc: Parameters<typeof fetchEncodedAccount>[0],\n  address: Address<TAddress>,\n  config?: FetchAccountConfig,\n): Promise<Account<Metadata, TAddress>> {\n  const maybeAccount = await fetchMaybeMetadata(rpc, address, config);\n  assertAccountExists(maybeAccount);\n  return maybeAccount;\n}\n\nexport async function fetchMaybeMetadata<TAddress extends string = string>(\n  rpc: Parameters<typeof fetchEncodedAccount>[0],\n  address: Address<TAddress>,\n  config?: FetchAccountConfig,\n): Promise<MaybeAccount<Metadata, TAddress>> {\n  const maybeAccount = await fetchEncodedAccount(rpc, address, config);\n  return decodeMetadata(maybeAccount);\n}\n\nexport async function fetchAllMetadata(\n  rpc: Parameters<typeof fetchEncodedAccounts>[0],\n  addresses: Array<Address>,\n  config?: FetchAccountsConfig,\n): Promise<Account<Metadata>[]> {\n  const maybeAccounts = await fetchAllMaybeMetadata(rpc, addresses, config);\n  assertAccountsExist(maybeAccounts);\n  return maybeAccounts;\n}\n\nexport async function fetchAllMaybeMetadata(\n  rpc: Parameters<typeof fetchEncodedAccounts>[0],\n  addresses: Array<Address>,\n  config?: FetchAccountsConfig,\n): Promise<MaybeAccount<Metadata>[]> {\n  const maybeAccounts = await fetchEncodedAccounts(rpc, addresses, config);\n  return maybeAccounts.map((maybeAccount) => decodeMetadata(maybeAccount));\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getAddressDecoder,\n  getAddressEncoder,\n  getBooleanDecoder,\n  getBooleanEncoder,\n  getOptionDecoder,\n  getOptionEncoder,\n  getStructDecoder,\n  getStructEncoder,\n  getU8Decoder,\n  getU8Encoder,\n  transformEncoder,\n  type Address,\n  type Codec,\n  type Decoder,\n  type Encoder,\n  type IAccountMeta,\n  type IAccountSignerMeta,\n  type IInstruction,\n  type IInstructionWithAccounts,\n  type IInstructionWithData,\n  type Option,\n  type OptionOrNullable,\n  type ReadonlySignerAccount,\n  type TransactionSigner,\n  type WritableAccount,\n} from \"@solana/kit\";\nimport { getAccountMetaFactory, ResolvedAccount } from \"../../../shared\";\nimport { TOKEN_METADATA_PROGRAM_ADDRESS } from \"../programs\";\nimport { getDataV2Decoder, getDataV2Encoder, type DataV2, type DataV2Args } from \"../types\";\n\nexport const UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR = 15;\n\nexport function getUpdateMetadataAccountV2DiscriminatorBytes() {\n  return getU8Encoder().encode(UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR);\n}\n\nexport type UpdateMetadataAccountV2Instruction<\n  TProgram extends string = typeof TOKEN_METADATA_PROGRAM_ADDRESS,\n  TAccountMetadata extends string | IAccountMeta<string> = string,\n  TAccountUpdateAuthority extends string | IAccountMeta<string> = string,\n  TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> &\n  IInstructionWithData<Uint8Array> &\n  IInstructionWithAccounts<\n    [\n      TAccountMetadata extends string ? WritableAccount<TAccountMetadata> : TAccountMetadata,\n      TAccountUpdateAuthority extends string\n        ? ReadonlySignerAccount<TAccountUpdateAuthority> & IAccountSignerMeta<TAccountUpdateAuthority>\n        : TAccountUpdateAuthority,\n      ...TRemainingAccounts,\n    ]\n  >;\n\nexport type UpdateMetadataAccountV2InstructionData = {\n  discriminator: number;\n  data: Option<DataV2>;\n  updateAuthority: Option<Address>;\n  primarySaleHappened: Option<boolean>;\n  isMutable: Option<boolean>;\n};\n\nexport type UpdateMetadataAccountV2InstructionDataArgs = {\n  data: OptionOrNullable<DataV2Args>;\n  updateAuthority: OptionOrNullable<Address>;\n  primarySaleHappened: OptionOrNullable<boolean>;\n  isMutable: OptionOrNullable<boolean>;\n};\n\nexport function getUpdateMetadataAccountV2InstructionDataEncoder(): Encoder<UpdateMetadataAccountV2InstructionDataArgs> {\n  return transformEncoder(\n    getStructEncoder([\n      [\"discriminator\", getU8Encoder()],\n      [\"data\", getOptionEncoder(getDataV2Encoder())],\n      [\"updateAuthority\", getOptionEncoder(getAddressEncoder())],\n      [\"primarySaleHappened\", getOptionEncoder(getBooleanEncoder())],\n      [\"isMutable\", getOptionEncoder(getBooleanEncoder())],\n    ]),\n    (value) => ({\n      ...value,\n      discriminator: UPDATE_METADATA_ACCOUNT_V2_DISCRIMINATOR,\n    }),\n  );\n}\n\nexport function getUpdateMetadataAccountV2InstructionDataDecoder(): Decoder<UpdateMetadataAccountV2InstructionData> {\n  return getStructDecoder([\n    [\"discriminator\", getU8Decoder()],\n    [\"data\", getOptionDecoder(getDataV2Decoder())],\n    [\"updateAuthority\", getOptionDecoder(getAddressDecoder())],\n    [\"primarySaleHappened\", getOptionDecoder(getBooleanDecoder())],\n    [\"isMutable\", getOptionDecoder(getBooleanDecoder())],\n  ]);\n}\n\nexport function getUpdateMetadataAccountV2InstructionDataCodec(): Codec<\n  UpdateMetadataAccountV2InstructionDataArgs,\n  UpdateMetadataAccountV2InstructionData\n> {\n  return combineCodec(\n    getUpdateMetadataAccountV2InstructionDataEncoder(),\n    getUpdateMetadataAccountV2InstructionDataDecoder(),\n  );\n}\n\nexport type UpdateMetadataAccountV2Input<\n  TAccountMetadata extends string = string,\n  TAccountUpdateAuthority extends string = string,\n> = {\n  /** Metadata account */\n  metadata: Address<TAccountMetadata>;\n  /** Update authority key */\n  updateAuthority: TransactionSigner<TAccountUpdateAuthority>;\n  data: UpdateMetadataAccountV2InstructionDataArgs[\"data\"];\n  updateAuthorityArg: UpdateMetadataAccountV2InstructionDataArgs[\"updateAuthority\"];\n  primarySaleHappened: UpdateMetadataAccountV2InstructionDataArgs[\"primarySaleHappened\"];\n  isMutable: UpdateMetadataAccountV2InstructionDataArgs[\"isMutable\"];\n};\n\nexport function getUpdateMetadataAccountV2Instruction<\n  TAccountMetadata extends string,\n  TAccountUpdateAuthority extends string,\n  TProgramAddress extends Address = typeof TOKEN_METADATA_PROGRAM_ADDRESS,\n>(\n  input: UpdateMetadataAccountV2Input<TAccountMetadata, TAccountUpdateAuthority>,\n  config?: { programAddress?: TProgramAddress },\n): UpdateMetadataAccountV2Instruction<TProgramAddress, TAccountMetadata, TAccountUpdateAuthority> {\n  // Program address.\n  const programAddress = config?.programAddress ?? TOKEN_METADATA_PROGRAM_ADDRESS;\n\n  // Original accounts.\n  const originalAccounts = {\n    metadata: { value: input.metadata ?? null, isWritable: true },\n    updateAuthority: {\n      value: input.updateAuthority ?? null,\n      isWritable: false,\n    },\n  };\n  const accounts = originalAccounts as Record<keyof typeof originalAccounts, ResolvedAccount>;\n\n  // Original args.\n  const args = { ...input, updateAuthority: input.updateAuthorityArg };\n\n  const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n  const instruction = {\n    accounts: [getAccountMeta(accounts.metadata), getAccountMeta(accounts.updateAuthority)],\n    programAddress,\n    data: getUpdateMetadataAccountV2InstructionDataEncoder().encode(args as UpdateMetadataAccountV2InstructionDataArgs),\n  } as UpdateMetadataAccountV2Instruction<TProgramAddress, TAccountMetadata, TAccountUpdateAuthority>;\n\n  return instruction;\n}\n\nexport type ParsedUpdateMetadataAccountV2Instruction<\n  TProgram extends string = typeof TOKEN_METADATA_PROGRAM_ADDRESS,\n  TAccountMetas extends readonly IAccountMeta[] = readonly IAccountMeta[],\n> = {\n  programAddress: Address<TProgram>;\n  accounts: {\n    /** Metadata account */\n    metadata: TAccountMetas[0];\n    /** Update authority key */\n    updateAuthority: TAccountMetas[1];\n  };\n  data: UpdateMetadataAccountV2InstructionData;\n};\n\nexport function parseUpdateMetadataAccountV2Instruction<\n  TProgram extends string,\n  TAccountMetas extends readonly IAccountMeta[],\n>(\n  instruction: IInstruction<TProgram> & IInstructionWithAccounts<TAccountMetas> & IInstructionWithData<Uint8Array>,\n): ParsedUpdateMetadataAccountV2Instruction<TProgram, TAccountMetas> {\n  if (instruction.accounts.length < 2) {\n    // TODO: Coded error.\n    throw new Error(\"Not enough accounts\");\n  }\n  let accountIndex = 0;\n  const getNextAccount = () => {\n    const accountMeta = instruction.accounts![accountIndex]!;\n    accountIndex += 1;\n    return accountMeta;\n  };\n  return {\n    programAddress: instruction.programAddress,\n    accounts: {\n      metadata: getNextAccount(),\n      updateAuthority: getNextAccount(),\n    },\n    data: getUpdateMetadataAccountV2InstructionDataDecoder().decode(instruction.data),\n  };\n}\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport { type Address } from \"@solana/kit\";\nimport { type ParsedAddMemoInstruction } from \"../instructions\";\n\nexport const MEMO_PROGRAM_ADDRESS =\n  \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\" as Address<\"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\">;\n\nexport enum MemoInstruction {\n  AddMemo,\n}\n\nexport type ParsedMemoInstruction<TProgram extends string = \"MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr\"> = {\n  instructionType: MemoInstruction.AddMemo;\n} & ParsedAddMemoInstruction<TProgram>;\n","/**\n * This code was AUTOGENERATED using the codama library.\n * Please DO NOT EDIT THIS FILE, instead use visitors\n * to add features, then rerun codama to update it.\n *\n * @see https://github.com/codama-idl/codama\n */\n\nimport {\n  combineCodec,\n  getStructDecoder,\n  getStructEncoder,\n  getUtf8Decoder,\n  getUtf8Encoder,\n  type Codec,\n  type Decoder,\n  type Encoder,\n} from \"@solana/codecs\";\nimport type {\n  Address,\n  IAccountMeta,\n  IInstruction,\n  IInstructionWithAccounts,\n  IInstructionWithData,\n  TransactionSigner,\n} from \"@solana/kit\";\nimport { AccountRole } from \"@solana/kit\";\nimport { MEMO_PROGRAM_ADDRESS } from \"../programs\";\n\nexport type AddMemoInstruction<\n  TProgram extends string = typeof MEMO_PROGRAM_ADDRESS,\n  TRemainingAccounts extends readonly IAccountMeta<string>[] = [],\n> = IInstruction<TProgram> & IInstructionWithData<Uint8Array> & IInstructionWithAccounts<TRemainingAccounts>;\n\nexport type AddMemoInstructionData = { memo: string };\n\nexport type AddMemoInstructionDataArgs = AddMemoInstructionData;\n\nexport function getAddMemoInstructionDataEncoder(): Encoder<AddMemoInstructionDataArgs> {\n  return getStructEncoder([[\"memo\", getUtf8Encoder()]]);\n}\n\nexport function getAddMemoInstructionDataDecoder(): Decoder<AddMemoInstructionData> {\n  return getStructDecoder([[\"memo\", getUtf8Decoder()]]);\n}\n\nexport function getAddMemoInstructionDataCodec(): Codec<AddMemoInstructionDataArgs, AddMemoInstructionData> {\n  return combineCodec(getAddMemoInstructionDataEncoder(), getAddMemoInstructionDataDecoder());\n}\n\nexport type AddMemoInput = {\n  memo: AddMemoInstructionDataArgs[\"memo\"];\n  signers?: Array<TransactionSigner>;\n};\n\nexport function getAddMemoInstruction<TProgramAddress extends Address = typeof MEMO_PROGRAM_ADDRESS>(\n  input: AddMemoInput,\n  config?: { programAddress?: TProgramAddress },\n): AddMemoInstruction<TProgramAddress> {\n  // Program address.\n  const programAddress = config?.programAddress ?? MEMO_PROGRAM_ADDRESS;\n\n  // Original args.\n  const args = { ...input };\n\n  // Remaining accounts.\n  const remainingAccounts: IAccountMeta[] = (args.signers ?? []).map((signer) => ({\n    address: signer.address,\n    role: AccountRole.READONLY_SIGNER,\n    signer,\n  }));\n\n  const instruction = {\n    accounts: remainingAccounts,\n    programAddress,\n    data: getAddMemoInstructionDataEncoder().encode(args as AddMemoInstructionDataArgs),\n  } as AddMemoInstruction<TProgramAddress>;\n\n  return instruction;\n}\n\nexport type ParsedAddMemoInstruction<TProgram extends string = typeof MEMO_PROGRAM_ADDRESS> = {\n  programAddress: Address<TProgram>;\n  data: AddMemoInstructionData;\n};\n\nexport function parseAddMemoInstruction<TProgram extends string>(\n  instruction: IInstruction<TProgram> & IInstructionWithData<Uint8Array>,\n): ParsedAddMemoInstruction<TProgram> {\n  return {\n    programAddress: instruction.programAddress,\n    data: getAddMemoInstructionDataDecoder().decode(instruction.data),\n  };\n}\n"]}