UNPKG

gill

Version:

a modern javascript/typescript client library for interacting with the Solana blockchain

1,307 lines (1,300 loc) 272 kB
'use strict'; var system = require('@solana-program/system'); var computeBudget = require('@solana-program/compute-budget'); var kit = require('@solana/kit'); var addressLookupTable = require('@solana-program/address-lookup-table'); var token2022 = require('@solana-program/token-2022'); var codecs = require('@solana/codecs'); // src/programs/system/reexports.ts function isSetComputeLimitInstruction(instruction) { return kit.isInstructionForProgram(instruction, computeBudget.COMPUTE_BUDGET_PROGRAM_ADDRESS) && kit.isInstructionWithData(instruction) && instruction.data[0] === computeBudget.ComputeBudgetInstruction.SetComputeUnitLimit; } function hasSetComputeLimitInstruction(tx) { return tx.instructions.filter(isSetComputeLimitInstruction).length == 1; } function isSetComputeUnitPriceInstruction(instruction) { return kit.isInstructionForProgram(instruction, computeBudget.COMPUTE_BUDGET_PROGRAM_ADDRESS) && kit.isInstructionWithData(instruction) && instruction.data[0] === computeBudget.ComputeBudgetInstruction.SetComputeUnitPrice; } function hasSetComputeUnitPriceInstruction(tx) { return tx.instructions.filter(isSetComputeUnitPriceInstruction).length == 1; } function checkedAddress(input) { return typeof input == "string" ? input : input.address; } function checkedTransactionSigner(input) { if (typeof input === "string" || "address" in input == false) input = kit.createNoopSigner(input); if (!kit.isTransactionSigner(input)) throw new Error("A signer or address is required"); kit.assertIsTransactionSigner(input); return input; } // src/programs/token/addresses.ts var TOKEN_PROGRAM_ADDRESS = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA"; async function getAssociatedTokenAccountAddress(mint, owner, tokenProgram) { return (await token2022.findAssociatedTokenPda({ mint: checkedAddress(mint), owner: checkedAddress(owner), tokenProgram: checkedTokenProgramAddress(tokenProgram) }))[0]; } function parseTokenProgramAddressOrMoniker(tokenProgram) { if (!kit.isAddress(tokenProgram)) { tokenProgram = tokenProgram.toLowerCase(); } switch (tokenProgram) { case "legacy": case "token": case TOKEN_PROGRAM_ADDRESS: { return TOKEN_PROGRAM_ADDRESS; } case "token22": case "token2022": case "tokenextension": case "tokenextensions": case token2022.TOKEN_2022_PROGRAM_ADDRESS: { return token2022.TOKEN_2022_PROGRAM_ADDRESS; } default: throw Error("Unsupported token program. Try 'TOKEN_PROGRAM_ADDRESS' or 'TOKEN_2022_PROGRAM_ADDRESS'"); } } function assertIsSupportedTokenProgram(tokenProgram) { if (tokenProgram !== TOKEN_PROGRAM_ADDRESS && tokenProgram !== token2022.TOKEN_2022_PROGRAM_ADDRESS) { throw Error("Unsupported token program. Try 'TOKEN_PROGRAM_ADDRESS' or 'TOKEN_2022_PROGRAM_ADDRESS'"); } } function checkedTokenProgramAddress(tokenProgram) { if (!tokenProgram) return TOKEN_PROGRAM_ADDRESS; tokenProgram = parseTokenProgramAddressOrMoniker(tokenProgram); assertIsSupportedTokenProgram(tokenProgram); return tokenProgram; } function createTransaction({ version, feePayer, instructions, latestBlockhash, computeUnitLimit, computeUnitPrice }) { return kit.pipe( kit.createTransactionMessage({ version }), (tx) => { const withLifetime = latestBlockhash ? kit.setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx) : tx; if (typeof feePayer !== "string" && "address" in feePayer && kit.isTransactionSigner(feePayer)) { return kit.setTransactionMessageFeePayerSigner(feePayer, withLifetime); } else return kit.setTransactionMessageFeePayer(feePayer, withLifetime); }, (tx) => { const withComputeLimit = typeof computeUnitLimit !== "undefined" ? kit.appendTransactionMessageInstruction( computeBudget.getSetComputeUnitLimitInstruction({ units: Number(computeUnitLimit) }), tx ) : tx; const withComputePrice = typeof computeUnitPrice !== "undefined" ? kit.appendTransactionMessageInstruction( computeBudget.getSetComputeUnitPriceInstruction({ microLamports: Number(computeUnitPrice) }), withComputeLimit ) : withComputeLimit; return kit.appendTransactionMessageInstructions(instructions, withComputePrice); } ); } // src/core/accounts.ts function getMinimumBalanceForRentExemption(space = 0) { const RENT = { /** * Account storage overhead for calculation of base rent. (aka the number of bytes required to store an account with no data. */ ACCOUNT_STORAGE_OVERHEAD: 128n, /** * Amount of time (in years) a balance must include rent for the account to * be rent exempt. */ DEFAULT_EXEMPTION_THRESHOLD: BigInt(Math.floor(2 * 1e3)) / 1000n, /** * Default rental rate in lamports/byte-year. This calculation is based on: * - 10^9 lamports per SOL * - $1 per SOL * - $0.01 per megabyte day * - $3.65 per megabyte year */ DEFAULT_LAMPORTS_PER_BYTE_YEAR: BigInt( Math.floor(1e9 / 100 * 365 / (1024 * 1024)) ) }; return (RENT.ACCOUNT_STORAGE_OVERHEAD + BigInt(space)) * RENT.DEFAULT_LAMPORTS_PER_BYTE_YEAR * RENT.DEFAULT_EXEMPTION_THRESHOLD / 1n; } function getAssetDataEncoder() { return kit.getStructEncoder([ ["name", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["symbol", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["uri", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["sellerFeeBasisPoints", kit.getU16Encoder()], ["creators", kit.getOptionEncoder(kit.getArrayEncoder(getCreatorEncoder()))], ["primarySaleHappened", kit.getBooleanEncoder()], ["isMutable", kit.getBooleanEncoder()], ["tokenStandard", getTokenStandardEncoder()], ["collection", kit.getOptionEncoder(getCollectionEncoder())], ["uses", kit.getOptionEncoder(getUsesEncoder())], ["collectionDetails", kit.getOptionEncoder(getCollectionDetailsEncoder())], ["ruleSet", kit.getOptionEncoder(kit.getAddressEncoder())] ]); } function getAssetDataDecoder() { return kit.getStructDecoder([ ["name", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["symbol", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["uri", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["sellerFeeBasisPoints", kit.getU16Decoder()], ["creators", kit.getOptionDecoder(kit.getArrayDecoder(getCreatorDecoder()))], ["primarySaleHappened", kit.getBooleanDecoder()], ["isMutable", kit.getBooleanDecoder()], ["tokenStandard", getTokenStandardDecoder()], ["collection", kit.getOptionDecoder(getCollectionDecoder())], ["uses", kit.getOptionDecoder(getUsesDecoder())], ["collectionDetails", kit.getOptionDecoder(getCollectionDetailsDecoder())], ["ruleSet", kit.getOptionDecoder(kit.getAddressDecoder())] ]); } function getAssetDataCodec() { return kit.combineCodec(getAssetDataEncoder(), getAssetDataDecoder()); } function getCollectionEncoder() { return kit.getStructEncoder([ ["verified", kit.getBooleanEncoder()], ["key", kit.getAddressEncoder()] ]); } function getCollectionDecoder() { return kit.getStructDecoder([ ["verified", kit.getBooleanDecoder()], ["key", kit.getAddressDecoder()] ]); } function getCollectionCodec() { return kit.combineCodec(getCollectionEncoder(), getCollectionDecoder()); } function getCollectionDetailsEncoder() { return kit.getDiscriminatedUnionEncoder([ ["V1", kit.getStructEncoder([["size", kit.getU64Encoder()]])], [ "V2", kit.getStructEncoder([["padding", kit.fixEncoderSize(kit.getBytesEncoder(), 8)]]) ] ]); } function getCollectionDetailsDecoder() { return kit.getDiscriminatedUnionDecoder([ ["V1", kit.getStructDecoder([["size", kit.getU64Decoder()]])], [ "V2", kit.getStructDecoder([["padding", kit.fixDecoderSize(kit.getBytesDecoder(), 8)]]) ] ]); } function getCollectionDetailsCodec() { return kit.combineCodec( getCollectionDetailsEncoder(), getCollectionDetailsDecoder() ); } function collectionDetails(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isCollectionDetails(kind, value) { return value.__kind === kind; } function getCollectionDetailsToggleEncoder() { return kit.getDiscriminatedUnionEncoder([ ["None", kit.getUnitEncoder()], ["Clear", kit.getUnitEncoder()], [ "Set", kit.getStructEncoder([ ["fields", kit.getTupleEncoder([getCollectionDetailsEncoder()])] ]) ] ]); } function getCollectionDetailsToggleDecoder() { return kit.getDiscriminatedUnionDecoder([ ["None", kit.getUnitDecoder()], ["Clear", kit.getUnitDecoder()], [ "Set", kit.getStructDecoder([ ["fields", kit.getTupleDecoder([getCollectionDetailsDecoder()])] ]) ] ]); } function getCollectionDetailsToggleCodec() { return kit.combineCodec( getCollectionDetailsToggleEncoder(), getCollectionDetailsToggleDecoder() ); } function collectionDetailsToggle(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isCollectionDetailsToggle(kind, value) { return value.__kind === kind; } function getCollectionToggleEncoder() { return kit.getDiscriminatedUnionEncoder([ ["None", kit.getUnitEncoder()], ["Clear", kit.getUnitEncoder()], [ "Set", kit.getStructEncoder([["fields", kit.getTupleEncoder([getCollectionEncoder()])]]) ] ]); } function getCollectionToggleDecoder() { return kit.getDiscriminatedUnionDecoder([ ["None", kit.getUnitDecoder()], ["Clear", kit.getUnitDecoder()], [ "Set", kit.getStructDecoder([["fields", kit.getTupleDecoder([getCollectionDecoder()])]]) ] ]); } function getCollectionToggleCodec() { return kit.combineCodec( getCollectionToggleEncoder(), getCollectionToggleDecoder() ); } function collectionToggle(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isCollectionToggle(kind, value) { return value.__kind === kind; } function getCreateArgsEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "V1", kit.getStructEncoder([ ["assetData", getAssetDataEncoder()], ["decimals", kit.getOptionEncoder(kit.getU8Encoder())], ["printSupply", kit.getOptionEncoder(getPrintSupplyEncoder())] ]) ] ]); } function getCreateArgsDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "V1", kit.getStructDecoder([ ["assetData", getAssetDataDecoder()], ["decimals", kit.getOptionDecoder(kit.getU8Decoder())], ["printSupply", kit.getOptionDecoder(getPrintSupplyDecoder())] ]) ] ]); } function getCreateArgsCodec() { return kit.combineCodec(getCreateArgsEncoder(), getCreateArgsDecoder()); } function createArgs(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isCreateArgs(kind, value) { return value.__kind === kind; } function getCreatorEncoder() { return kit.getStructEncoder([ ["address", kit.getAddressEncoder()], ["verified", kit.getBooleanEncoder()], ["share", kit.getU8Encoder()] ]); } function getCreatorDecoder() { return kit.getStructDecoder([ ["address", kit.getAddressDecoder()], ["verified", kit.getBooleanDecoder()], ["share", kit.getU8Decoder()] ]); } function getCreatorCodec() { return kit.combineCodec(getCreatorEncoder(), getCreatorDecoder()); } function getDataEncoder() { return kit.getStructEncoder([ ["name", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["symbol", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["uri", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["sellerFeeBasisPoints", kit.getU16Encoder()], ["creators", kit.getOptionEncoder(kit.getArrayEncoder(getCreatorEncoder()))] ]); } function getDataDecoder() { return kit.getStructDecoder([ ["name", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["symbol", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["uri", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["sellerFeeBasisPoints", kit.getU16Decoder()], ["creators", kit.getOptionDecoder(kit.getArrayDecoder(getCreatorDecoder()))] ]); } function getDataCodec() { return kit.combineCodec(getDataEncoder(), getDataDecoder()); } function getDataV2Encoder() { return kit.getStructEncoder([ ["name", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["symbol", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["uri", kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder())], ["sellerFeeBasisPoints", kit.getU16Encoder()], ["creators", kit.getOptionEncoder(kit.getArrayEncoder(getCreatorEncoder()))], ["collection", kit.getOptionEncoder(getCollectionEncoder())], ["uses", kit.getOptionEncoder(getUsesEncoder())] ]); } function getDataV2Decoder() { return kit.getStructDecoder([ ["name", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["symbol", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["uri", kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder())], ["sellerFeeBasisPoints", kit.getU16Decoder()], ["creators", kit.getOptionDecoder(kit.getArrayDecoder(getCreatorDecoder()))], ["collection", kit.getOptionDecoder(getCollectionDecoder())], ["uses", kit.getOptionDecoder(getUsesDecoder())] ]); } function getDataV2Codec() { return kit.combineCodec(getDataV2Encoder(), getDataV2Decoder()); } function getDelegateArgsEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "CollectionV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "SaleV1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "TransferV1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "DataV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "UtilityV1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "StakingV1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], ["StandardV1", kit.getStructEncoder([["amount", kit.getU64Encoder()]])], [ "LockedTransferV1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["lockedAddress", kit.getAddressEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "ProgrammableConfigV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AuthorityItemV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "DataItemV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "CollectionItemV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "ProgrammableConfigItemV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "PrintDelegateV1", kit.getStructEncoder([ ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ] ]); } function getDelegateArgsDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "CollectionV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "SaleV1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "TransferV1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "DataV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "UtilityV1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "StakingV1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], ["StandardV1", kit.getStructDecoder([["amount", kit.getU64Decoder()]])], [ "LockedTransferV1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["lockedAddress", kit.getAddressDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "ProgrammableConfigV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AuthorityItemV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "DataItemV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "CollectionItemV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "ProgrammableConfigItemV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "PrintDelegateV1", kit.getStructDecoder([ ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ] ]); } function getDelegateArgsCodec() { return kit.combineCodec(getDelegateArgsEncoder(), getDelegateArgsDecoder()); } function delegateArgs(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isDelegateArgs(kind, value) { return value.__kind === kind; } function getEscrowAuthorityEncoder() { return kit.getDiscriminatedUnionEncoder([ ["TokenOwner", kit.getUnitEncoder()], [ "Creator", kit.getStructEncoder([["fields", kit.getTupleEncoder([kit.getAddressEncoder()])]]) ] ]); } function getEscrowAuthorityDecoder() { return kit.getDiscriminatedUnionDecoder([ ["TokenOwner", kit.getUnitDecoder()], [ "Creator", kit.getStructDecoder([["fields", kit.getTupleDecoder([kit.getAddressDecoder()])]]) ] ]); } function getEscrowAuthorityCodec() { return kit.combineCodec(getEscrowAuthorityEncoder(), getEscrowAuthorityDecoder()); } function escrowAuthority(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isEscrowAuthority(kind, value) { return value.__kind === kind; } var Key = /* @__PURE__ */ ((Key2) => { Key2[Key2["Uninitialized"] = 0] = "Uninitialized"; Key2[Key2["EditionV1"] = 1] = "EditionV1"; Key2[Key2["MasterEditionV1"] = 2] = "MasterEditionV1"; Key2[Key2["ReservationListV1"] = 3] = "ReservationListV1"; Key2[Key2["MetadataV1"] = 4] = "MetadataV1"; Key2[Key2["ReservationListV2"] = 5] = "ReservationListV2"; Key2[Key2["MasterEditionV2"] = 6] = "MasterEditionV2"; Key2[Key2["EditionMarker"] = 7] = "EditionMarker"; Key2[Key2["UseAuthorityRecord"] = 8] = "UseAuthorityRecord"; Key2[Key2["CollectionAuthorityRecord"] = 9] = "CollectionAuthorityRecord"; Key2[Key2["TokenOwnedEscrow"] = 10] = "TokenOwnedEscrow"; Key2[Key2["TokenRecord"] = 11] = "TokenRecord"; Key2[Key2["MetadataDelegate"] = 12] = "MetadataDelegate"; Key2[Key2["EditionMarkerV2"] = 13] = "EditionMarkerV2"; Key2[Key2["HolderDelegate"] = 14] = "HolderDelegate"; return Key2; })(Key || {}); function getKeyEncoder() { return kit.getEnumEncoder(Key); } function getKeyDecoder() { return kit.getEnumDecoder(Key); } function getKeyCodec() { return kit.combineCodec(getKeyEncoder(), getKeyDecoder()); } function getMintArgsEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "V1", kit.getStructEncoder([ ["amount", kit.getU64Encoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ] ]); } function getMintArgsDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "V1", kit.getStructDecoder([ ["amount", kit.getU64Decoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ] ]); } function getMintArgsCodec() { return kit.combineCodec(getMintArgsEncoder(), getMintArgsDecoder()); } function mintArgs(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isMintArgs(kind, value) { return value.__kind === kind; } function getPayloadEncoder() { return kit.getStructEncoder([ [ "map", kit.getMapEncoder( kit.addEncoderSizePrefix(kit.getUtf8Encoder(), kit.getU32Encoder()), getPayloadTypeEncoder() ) ] ]); } function getPayloadDecoder() { return kit.getStructDecoder([ [ "map", kit.getMapDecoder( kit.addDecoderSizePrefix(kit.getUtf8Decoder(), kit.getU32Decoder()), getPayloadTypeDecoder() ) ] ]); } function getPayloadCodec() { return kit.combineCodec(getPayloadEncoder(), getPayloadDecoder()); } function getProgrammableConfigEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "V1", kit.getStructEncoder([["ruleSet", kit.getOptionEncoder(kit.getAddressEncoder())]]) ] ]); } function getProgrammableConfigDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "V1", kit.getStructDecoder([["ruleSet", kit.getOptionDecoder(kit.getAddressDecoder())]]) ] ]); } function getProgrammableConfigCodec() { return kit.combineCodec( getProgrammableConfigEncoder(), getProgrammableConfigDecoder() ); } function programmableConfig(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isProgrammableConfig(kind, value) { return value.__kind === kind; } function getReservationEncoder() { return kit.getStructEncoder([ ["address", kit.getAddressEncoder()], ["spotsRemaining", kit.getU64Encoder()], ["totalSpots", kit.getU64Encoder()] ]); } function getReservationDecoder() { return kit.getStructDecoder([ ["address", kit.getAddressDecoder()], ["spotsRemaining", kit.getU64Decoder()], ["totalSpots", kit.getU64Decoder()] ]); } function getReservationCodec() { return kit.combineCodec(getReservationEncoder(), getReservationDecoder()); } var TokenStandard = /* @__PURE__ */ ((TokenStandard2) => { TokenStandard2[TokenStandard2["NonFungible"] = 0] = "NonFungible"; TokenStandard2[TokenStandard2["FungibleAsset"] = 1] = "FungibleAsset"; TokenStandard2[TokenStandard2["Fungible"] = 2] = "Fungible"; TokenStandard2[TokenStandard2["NonFungibleEdition"] = 3] = "NonFungibleEdition"; TokenStandard2[TokenStandard2["ProgrammableNonFungible"] = 4] = "ProgrammableNonFungible"; TokenStandard2[TokenStandard2["ProgrammableNonFungibleEdition"] = 5] = "ProgrammableNonFungibleEdition"; return TokenStandard2; })(TokenStandard || {}); function getTokenStandardEncoder() { return kit.getEnumEncoder(TokenStandard); } function getTokenStandardDecoder() { return kit.getEnumDecoder(TokenStandard); } function getTokenStandardCodec() { return kit.combineCodec(getTokenStandardEncoder(), getTokenStandardDecoder()); } function getUpdateArgsEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "V1", kit.getStructEncoder([ ["newUpdateAuthority", kit.getOptionEncoder(kit.getAddressEncoder())], ["data", kit.getOptionEncoder(getDataEncoder())], ["primarySaleHappened", kit.getOptionEncoder(kit.getBooleanEncoder())], ["isMutable", kit.getOptionEncoder(kit.getBooleanEncoder())], ["collection", getCollectionToggleEncoder()], ["collectionDetails", getCollectionDetailsToggleEncoder()], ["uses", getUsesToggleEncoder()], ["ruleSet", getRuleSetToggleEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsUpdateAuthorityV2", kit.getStructEncoder([ ["newUpdateAuthority", kit.getOptionEncoder(kit.getAddressEncoder())], ["data", kit.getOptionEncoder(getDataEncoder())], ["primarySaleHappened", kit.getOptionEncoder(kit.getBooleanEncoder())], ["isMutable", kit.getOptionEncoder(kit.getBooleanEncoder())], ["collection", getCollectionToggleEncoder()], ["collectionDetails", getCollectionDetailsToggleEncoder()], ["uses", getUsesToggleEncoder()], ["ruleSet", getRuleSetToggleEncoder()], ["tokenStandard", kit.getOptionEncoder(getTokenStandardEncoder())], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsAuthorityItemDelegateV2", kit.getStructEncoder([ ["newUpdateAuthority", kit.getOptionEncoder(kit.getAddressEncoder())], ["primarySaleHappened", kit.getOptionEncoder(kit.getBooleanEncoder())], ["isMutable", kit.getOptionEncoder(kit.getBooleanEncoder())], ["tokenStandard", kit.getOptionEncoder(getTokenStandardEncoder())], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsCollectionDelegateV2", kit.getStructEncoder([ ["collection", getCollectionToggleEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsDataDelegateV2", kit.getStructEncoder([ ["data", kit.getOptionEncoder(getDataEncoder())], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsProgrammableConfigDelegateV2", kit.getStructEncoder([ ["ruleSet", getRuleSetToggleEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsDataItemDelegateV2", kit.getStructEncoder([ ["data", kit.getOptionEncoder(getDataEncoder())], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsCollectionItemDelegateV2", kit.getStructEncoder([ ["collection", getCollectionToggleEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ], [ "AsProgrammableConfigItemDelegateV2", kit.getStructEncoder([ ["ruleSet", getRuleSetToggleEncoder()], ["authorizationData", kit.getOptionEncoder(getAuthorizationDataEncoder())] ]) ] ]); } function getUpdateArgsDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "V1", kit.getStructDecoder([ ["newUpdateAuthority", kit.getOptionDecoder(kit.getAddressDecoder())], ["data", kit.getOptionDecoder(getDataDecoder())], ["primarySaleHappened", kit.getOptionDecoder(kit.getBooleanDecoder())], ["isMutable", kit.getOptionDecoder(kit.getBooleanDecoder())], ["collection", getCollectionToggleDecoder()], ["collectionDetails", getCollectionDetailsToggleDecoder()], ["uses", getUsesToggleDecoder()], ["ruleSet", getRuleSetToggleDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsUpdateAuthorityV2", kit.getStructDecoder([ ["newUpdateAuthority", kit.getOptionDecoder(kit.getAddressDecoder())], ["data", kit.getOptionDecoder(getDataDecoder())], ["primarySaleHappened", kit.getOptionDecoder(kit.getBooleanDecoder())], ["isMutable", kit.getOptionDecoder(kit.getBooleanDecoder())], ["collection", getCollectionToggleDecoder()], ["collectionDetails", getCollectionDetailsToggleDecoder()], ["uses", getUsesToggleDecoder()], ["ruleSet", getRuleSetToggleDecoder()], ["tokenStandard", kit.getOptionDecoder(getTokenStandardDecoder())], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsAuthorityItemDelegateV2", kit.getStructDecoder([ ["newUpdateAuthority", kit.getOptionDecoder(kit.getAddressDecoder())], ["primarySaleHappened", kit.getOptionDecoder(kit.getBooleanDecoder())], ["isMutable", kit.getOptionDecoder(kit.getBooleanDecoder())], ["tokenStandard", kit.getOptionDecoder(getTokenStandardDecoder())], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsCollectionDelegateV2", kit.getStructDecoder([ ["collection", getCollectionToggleDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsDataDelegateV2", kit.getStructDecoder([ ["data", kit.getOptionDecoder(getDataDecoder())], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsProgrammableConfigDelegateV2", kit.getStructDecoder([ ["ruleSet", getRuleSetToggleDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsDataItemDelegateV2", kit.getStructDecoder([ ["data", kit.getOptionDecoder(getDataDecoder())], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsCollectionItemDelegateV2", kit.getStructDecoder([ ["collection", getCollectionToggleDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ], [ "AsProgrammableConfigItemDelegateV2", kit.getStructDecoder([ ["ruleSet", getRuleSetToggleDecoder()], ["authorizationData", kit.getOptionDecoder(getAuthorizationDataDecoder())] ]) ] ]); } function getUpdateArgsCodec() { return kit.combineCodec(getUpdateArgsEncoder(), getUpdateArgsDecoder()); } function updateArgs(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isUpdateArgs(kind, value) { return value.__kind === kind; } function getUsesEncoder() { return kit.getStructEncoder([ ["useMethod", getUseMethodEncoder()], ["remaining", kit.getU64Encoder()], ["total", kit.getU64Encoder()] ]); } function getUsesDecoder() { return kit.getStructDecoder([ ["useMethod", getUseMethodDecoder()], ["remaining", kit.getU64Decoder()], ["total", kit.getU64Decoder()] ]); } function getUsesCodec() { return kit.combineCodec(getUsesEncoder(), getUsesDecoder()); } var UseMethod = /* @__PURE__ */ ((UseMethod2) => { UseMethod2[UseMethod2["Burn"] = 0] = "Burn"; UseMethod2[UseMethod2["Multiple"] = 1] = "Multiple"; UseMethod2[UseMethod2["Single"] = 2] = "Single"; return UseMethod2; })(UseMethod || {}); function getUseMethodEncoder() { return kit.getEnumEncoder(UseMethod); } function getUseMethodDecoder() { return kit.getEnumDecoder(UseMethod); } function getUseMethodCodec() { return kit.combineCodec(getUseMethodEncoder(), getUseMethodDecoder()); } function getUsesToggleEncoder() { return kit.getDiscriminatedUnionEncoder([ ["None", kit.getUnitEncoder()], ["Clear", kit.getUnitEncoder()], [ "Set", kit.getStructEncoder([["fields", kit.getTupleEncoder([getUsesEncoder()])]]) ] ]); } function getUsesToggleDecoder() { return kit.getDiscriminatedUnionDecoder([ ["None", kit.getUnitDecoder()], ["Clear", kit.getUnitDecoder()], [ "Set", kit.getStructDecoder([["fields", kit.getTupleDecoder([getUsesDecoder()])]]) ] ]); } function getUsesToggleCodec() { return kit.combineCodec(getUsesToggleEncoder(), getUsesToggleDecoder()); } function usesToggle(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isUsesToggle(kind, value) { return value.__kind === kind; } function getRuleSetToggleEncoder() { return kit.getDiscriminatedUnionEncoder([ ["None", kit.getUnitEncoder()], ["Clear", kit.getUnitEncoder()], [ "Set", kit.getStructEncoder([["fields", kit.getTupleEncoder([kit.getAddressEncoder()])]]) ] ]); } function getRuleSetToggleDecoder() { return kit.getDiscriminatedUnionDecoder([ ["None", kit.getUnitDecoder()], ["Clear", kit.getUnitDecoder()], [ "Set", kit.getStructDecoder([["fields", kit.getTupleDecoder([kit.getAddressDecoder()])]]) ] ]); } function getRuleSetToggleCodec() { return kit.combineCodec(getRuleSetToggleEncoder(), getRuleSetToggleDecoder()); } function ruleSetToggle(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isRuleSetToggle(kind, value) { return value.__kind === kind; } function getAuthorizationDataEncoder() { return kit.getStructEncoder([["payload", getPayloadEncoder()]]); } function getAuthorizationDataDecoder() { return kit.getStructDecoder([["payload", getPayloadDecoder()]]); } function getAuthorizationDataCodec() { return kit.combineCodec( getAuthorizationDataEncoder(), getAuthorizationDataDecoder() ); } function getPayloadTypeEncoder() { return kit.getDiscriminatedUnionEncoder([ [ "Pubkey", kit.getStructEncoder([["fields", kit.getTupleEncoder([kit.getAddressEncoder()])]]) ], [ "Seeds", kit.getStructEncoder([["fields", kit.getTupleEncoder([getSeedsVecEncoder()])]]) ], [ "MerkleProof", kit.getStructEncoder([["fields", kit.getTupleEncoder([getProofInfoEncoder()])]]) ], [ "Number", kit.getStructEncoder([["fields", kit.getTupleEncoder([kit.getU64Encoder()])]]) ] ]); } function getPayloadTypeDecoder() { return kit.getDiscriminatedUnionDecoder([ [ "Pubkey", kit.getStructDecoder([["fields", kit.getTupleDecoder([kit.getAddressDecoder()])]]) ], [ "Seeds", kit.getStructDecoder([["fields", kit.getTupleDecoder([getSeedsVecDecoder()])]]) ], [ "MerkleProof", kit.getStructDecoder([["fields", kit.getTupleDecoder([getProofInfoDecoder()])]]) ], [ "Number", kit.getStructDecoder([["fields", kit.getTupleDecoder([kit.getU64Decoder()])]]) ] ]); } function getPayloadTypeCodec() { return kit.combineCodec(getPayloadTypeEncoder(), getPayloadTypeDecoder()); } function payloadType(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isPayloadType(kind, value) { return value.__kind === kind; } function getSeedsVecEncoder() { return kit.getStructEncoder([ [ "seeds", kit.getArrayEncoder(kit.addEncoderSizePrefix(kit.getBytesEncoder(), kit.getU32Encoder())) ] ]); } function getSeedsVecDecoder() { return kit.getStructDecoder([ [ "seeds", kit.getArrayDecoder(kit.addDecoderSizePrefix(kit.getBytesDecoder(), kit.getU32Decoder())) ] ]); } function getSeedsVecCodec() { return kit.combineCodec(getSeedsVecEncoder(), getSeedsVecDecoder()); } function getProofInfoEncoder() { return kit.getStructEncoder([ ["proof", kit.getArrayEncoder(kit.fixEncoderSize(kit.getBytesEncoder(), 32))] ]); } function getProofInfoDecoder() { return kit.getStructDecoder([ ["proof", kit.getArrayDecoder(kit.fixDecoderSize(kit.getBytesDecoder(), 32))] ]); } function getProofInfoCodec() { return kit.combineCodec(getProofInfoEncoder(), getProofInfoDecoder()); } function getPrintSupplyEncoder() { return kit.getDiscriminatedUnionEncoder([ ["Zero", kit.getUnitEncoder()], [ "Limited", kit.getStructEncoder([["fields", kit.getTupleEncoder([kit.getU64Encoder()])]]) ], ["Unlimited", kit.getUnitEncoder()] ]); } function getPrintSupplyDecoder() { return kit.getDiscriminatedUnionDecoder([ ["Zero", kit.getUnitDecoder()], [ "Limited", kit.getStructDecoder([["fields", kit.getTupleDecoder([kit.getU64Decoder()])]]) ], ["Unlimited", kit.getUnitDecoder()] ]); } function getPrintSupplyCodec() { return kit.combineCodec(getPrintSupplyEncoder(), getPrintSupplyDecoder()); } function printSupply(kind, data) { return Array.isArray(data) ? { __kind: kind, fields: data } : { __kind: kind, ...data ?? {} }; } function isPrintSupply(kind, value) { return value.__kind === kind; } // src/programs/token-metadata/generated/accounts/metadata.ts function getMetadataEncoder() { return kit.getStructEncoder([ ["key", getKeyEncoder()], ["updateAuthority", kit.getAddressEncoder()], ["mint", kit.getAddressEncoder()], ["data", getDataEncoder()], ["primarySaleHappened", kit.getBooleanEncoder()], ["isMutable", kit.getBooleanEncoder()], ["editionNonce", kit.getOptionEncoder(kit.getU8Encoder())], ["tokenStandard", kit.getOptionEncoder(getTokenStandardEncoder())], ["collection", kit.getOptionEncoder(getCollectionEncoder())], ["uses", kit.getOptionEncoder(getUsesEncoder())], ["collectionDetails", kit.getOptionEncoder(getCollectionDetailsEncoder())], ["programmableConfig", kit.getOptionEncoder(getProgrammableConfigEncoder())] ]); } function getMetadataDecoder() { return kit.getStructDecoder([ ["key", getKeyDecoder()], ["updateAuthority", kit.getAddressDecoder()], ["mint", kit.getAddressDecoder()], ["data", getDataDecoder()], ["primarySaleHappened", kit.getBooleanDecoder()], ["isMutable", kit.getBooleanDecoder()], ["editionNonce", kit.getOptionDecoder(kit.getU8Decoder())], ["tokenStandard", kit.getOptionDecoder(getTokenStandardDecoder())], ["collection", kit.getOptionDecoder(getCollectionDecoder())], ["uses", kit.getOptionDecoder(getUsesDecoder())], ["collectionDetails", kit.getOptionDecoder(getCollectionDetailsDecoder())], ["programmableConfig", kit.getOptionDecoder(getProgrammableConfigDecoder())] ]); } function getMetadataCodec() { return kit.combineCodec(getMetadataEncoder(), getMetadataDecoder()); } function decodeMetadata(encodedAccount) { return kit.decodeAccount(encodedAccount, getMetadataDecoder()); } async function fetchMetadata(rpc, address, config) { const maybeAccount = await fetchMaybeMetadata(rpc, address, config); kit.assertAccountExists(maybeAccount); return maybeAccount; } async function fetchMaybeMetadata(rpc, address, config) { const maybeAccount = await kit.fetchEncodedAccount(rpc, address, config); return decodeMetadata(maybeAccount); } async function fetchAllMetadata(rpc, addresses, config) { const maybeAccounts = await fetchAllMaybeMetadata(rpc, addresses, config); kit.assertAccountsExist(maybeAccounts); return maybeAccounts; } async function fetchAllMaybeMetadata(rpc, addresses, config) { const maybeAccounts = await kit.fetchEncodedAccounts(rpc, addresses, config); return maybeAccounts.map((maybeAccount) => decodeMetadata(maybeAccount)); } // src/programs/token-metadata/generated/programs/tokenMetadata.ts var TOKEN_METADATA_PROGRAM_ADDRESS = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"; var TokenMetadataAccount = /* @__PURE__ */ ((TokenMetadataAccount2) => { TokenMetadataAccount2[TokenMetadataAccount2["CollectionAuthorityRecord"] = 0] = "CollectionAuthorityRecord"; TokenMetadataAccount2[TokenMetadataAccount2["MetadataDelegateRecord"] = 1] = "MetadataDelegateRecord"; TokenMetadataAccount2[TokenMetadataAccount2["HolderDelegateRecord"] = 2] = "HolderDelegateRecord"; TokenMetadataAccount2[TokenMetadataAccount2["Edition"] = 3] = "Edition"; TokenMetadataAccount2[TokenMetadataAccount2["EditionMarker"] = 4] = "EditionMarker"; TokenMetadataAccount2[TokenMetadataAccount2["EditionMarkerV2"] = 5] = "EditionMarkerV2"; TokenMetadataAccount2[TokenMetadataAccount2["TokenOwnedEscrow"] = 6] = "TokenOwnedEscrow"; TokenMetadataAccount2[TokenMetadataAccount2["MasterEditionV2"] = 7] = "MasterEditionV2"; TokenMetadataAccount2[TokenMetadataAccount2["MasterEditionV1"] = 8] = "MasterEditionV1"; TokenMetadataAccount2[TokenMetadataAccount2["Metadata"] = 9] = "Metadata"; TokenMetadataAccount2[TokenMetadataAccount2["TokenRecord"] = 10] = "TokenRecord"; TokenMetadataAccount2[TokenMetadataAccount2["ReservationListV2"] = 11] = "ReservationListV2"; TokenMetadataAccount2[TokenMetadataAccount2["ReservationListV1"] = 12] = "ReservationListV1"; TokenMetadataAccount2[TokenMetadataAccount2["UseAuthorityRecord"] = 13] = "UseAuthorityRecord"; return TokenMetadataAccount2; })(TokenMetadataAccount || {}); var TokenMetadataInstruction = /* @__PURE__ */ ((TokenMetadataInstruction2) => { TokenMetadataInstruction2[TokenMetadataInstruction2["CreateMetadataAccount"] = 0] = "CreateMetadataAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["UpdateMetadataAccount"] = 1] = "UpdateMetadataAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedCreateMasterEdition"] = 2] = "DeprecatedCreateMasterEdition"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedMintNewEditionFromMasterEditionViaPrintingToken"] = 3] = "DeprecatedMintNewEditionFromMasterEditionViaPrintingToken"; TokenMetadataInstruction2[TokenMetadataInstruction2["UpdatePrimarySaleHappenedViaToken"] = 4] = "UpdatePrimarySaleHappenedViaToken"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedSetReservationList"] = 5] = "DeprecatedSetReservationList"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedCreateReservationList"] = 6] = "DeprecatedCreateReservationList"; TokenMetadataInstruction2[TokenMetadataInstruction2["SignMetadata"] = 7] = "SignMetadata"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedMintPrintingTokensViaToken"] = 8] = "DeprecatedMintPrintingTokensViaToken"; TokenMetadataInstruction2[TokenMetadataInstruction2["DeprecatedMintPrintingTokens"] = 9] = "DeprecatedMintPrintingTokens"; TokenMetadataInstruction2[TokenMetadataInstruction2["CreateMasterEdition"] = 10] = "CreateMasterEdition"; TokenMetadataInstruction2[TokenMetadataInstruction2["MintNewEditionFromMasterEditionViaToken"] = 11] = "MintNewEditionFromMasterEditionViaToken"; TokenMetadataInstruction2[TokenMetadataInstruction2["ConvertMasterEditionV1ToV2"] = 12] = "ConvertMasterEditionV1ToV2"; TokenMetadataInstruction2[TokenMetadataInstruction2["MintNewEditionFromMasterEditionViaVaultProxy"] = 13] = "MintNewEditionFromMasterEditionViaVaultProxy"; TokenMetadataInstruction2[TokenMetadataInstruction2["PuffMetadata"] = 14] = "PuffMetadata"; TokenMetadataInstruction2[TokenMetadataInstruction2["UpdateMetadataAccountV2"] = 15] = "UpdateMetadataAccountV2"; TokenMetadataInstruction2[TokenMetadataInstruction2["CreateMetadataAccountV2"] = 16] = "CreateMetadataAccountV2"; TokenMetadataInstruction2[TokenMetadataInstruction2["CreateMasterEditionV3"] = 17] = "CreateMasterEditionV3"; TokenMetadataInstruction2[TokenMetadataInstruction2["VerifyCollection"] = 18] = "VerifyCollection"; TokenMetadataInstruction2[TokenMetadataInstruction2["Utilize"] = 19] = "Utilize"; TokenMetadataInstruction2[TokenMetadataInstruction2["ApproveUseAuthority"] = 20] = "ApproveUseAuthority"; TokenMetadataInstruction2[TokenMetadataInstruction2["RevokeUseAuthority"] = 21] = "RevokeUseAuthority"; TokenMetadataInstruction2[TokenMetadataInstruction2["UnverifyCollection"] = 22] = "UnverifyCollection"; TokenMetadataInstruction2[TokenMetadataInstruction2["ApproveCollectionAuthority"] = 23] = "ApproveCollectionAuthority"; TokenMetadataInstruction2[TokenMetadataInstruction2["RevokeCollectionAuthority"] = 24] = "RevokeCollectionAuthority"; TokenMetadataInstruction2[TokenMetadataInstruction2["SetAndVerifyCollection"] = 25] = "SetAndVerifyCollection"; TokenMetadataInstruction2[TokenMetadataInstruction2["FreezeDelegatedAccount"] = 26] = "FreezeDelegatedAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["ThawDelegatedAccount"] = 27] = "ThawDelegatedAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["RemoveCreatorVerification"] = 28] = "RemoveCreatorVerification"; TokenMetadataInstruction2[TokenMetadataInstruction2["BurnNft"] = 29] = "BurnNft"; TokenMetadataInstruction2[TokenMetadataInstruction2["VerifySizedCollectionItem"] = 30] = "VerifySizedCollectionItem"; TokenMetadataInstruction2[TokenMetadataInstruction2["UnverifySizedCollectionItem"] = 31] = "UnverifySizedCollectionItem"; TokenMetadataInstruction2[TokenMetadataInstruction2["SetAndVerifySizedCollectionItem"] = 32] = "SetAndVerifySizedCollectionItem"; TokenMetadataInstruction2[TokenMetadataInstruction2["CreateMetadataAccountV3"] = 33] = "CreateMetadataAccountV3"; TokenMetadataInstruction2[TokenMetadataInstruction2["SetCollectionSize"] = 34] = "SetCollectionSize"; TokenMetadataInstruction2[TokenMetadataInstruction2["SetTokenStandard"] = 35] = "SetTokenStandard"; TokenMetadataInstruction2[TokenMetadataInstruction2["BubblegumSetCollectionSize"] = 36] = "BubblegumSetCollectionSize"; TokenMetadataInstruction2[TokenMetadataInstruction2["BurnEditionNft"] = 37] = "BurnEditionNft"; TokenMetadataInstruction2[TokenMetadataInstruction2["CreateEscrowAccount"] = 38] = "CreateEscrowAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["CloseEscrowAccount"] = 39] = "CloseEscrowAccount"; TokenMetadataInstruction2[TokenMetadataInstruction2["TransferOutOfEscrow"] = 40] = "TransferOutOfEscrow"; TokenMetadataInstruction2[TokenMetadataInstruction2["Burn"] = 41] = "Burn"; TokenMetadataInstruction2[TokenMetadataInstruction2["Create"] = 42] = "Create"; TokenMetadataInstruction2[TokenMetadataInstruction2["Mint"] = 43] = "Mint"; TokenMetadataInstruction2[TokenMetadataInstruction2["Delegate"] = 44] = "Delegate"; TokenMetadataInstruction2[TokenMetadataInstruction2["Revoke"] = 45] = "Revoke"; TokenMetadataInstruction2[TokenMetadataInstruction2["Lock"] = 46] = "Lock"; TokenMetadataInstruction2[TokenMetadataInstruction2["Unlock"] = 47] = "Unlock"; TokenMetadataInstruction2[TokenMetadataInstruction2["Migrate"] = 48] = "Migrate"; TokenMetadataInstruction2[TokenMetadataInstruction2["Transfer"] = 49] = "Transfer"; TokenMetadataInstruction2[TokenMetadataInstruction2["Update"] = 50] = "Update"; TokenMetadataInstruction2[TokenMetadataInstruction2["Use"] = 51] = "Use"; TokenMetadataInstruction2[TokenMetadataInstruction2["Verify"] = 52] = "Verify"; TokenMetadataInstruction2[TokenMetadataInstruction2["Unverify"] = 53] = "Unverify"; TokenMetadataInstruction2[TokenMetadataInstruction2["Collect"] = 54] = "Collect"; TokenMetadataInstruction2[TokenMetadataInstruction2["Print"] = 55] = "Print"; TokenMetadataInstruction2[TokenMetadataInstruction2["Resize"] = 56] = "Resize"; TokenMetadataInstruction2[TokenMetadataInstruction2["CloseAccounts"] = 57] = "CloseAccounts"; return TokenMetadataInstruction2; })(TokenMetadataInstruction || {}); function expectAddress(value) { if (!value) { throw new Error("Expected a Address."); } if (typeof value === "object" && "address" in value) { return value.address; } if (Array.isArray(value)) { return value[0]; } return value; } function getAccountMetaFactory(programAddress, optionalAccountStrategy) { return (account) => { if (!account.value) { if (optionalAccountStrategy === "omitted") return; return Object.freeze({ address: programAddress, role: kit.AccountRole.READONLY }); } const writableRole = account.isWritable ? kit.AccountRole.WRITABLE : kit.AccountRole.READONLY; return Object.freeze({ address: expectAddress(account.value), role: isTransactionSigner3(account.value) ? kit.upgradeRoleToSigner(writableRole) : writableRole, ...isTransactionSigner3(account.value) ? { signer: account.value } : {} }); }; } function isTransactionSigner3(value) { return !!value && typeof value === "object" && "address" in value && kit.isTransactionSigner(value); } // src/programs/token-metadata/generated/instructions/createMetadataAccountV3.ts var CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR = 33; function getCreateMetadataAccountV3DiscriminatorBytes() { return codecs.getU8Encoder().encode(CREATE_METADATA_ACCOUNT_V3_DISCRIMINATOR); } function getCreateMetadataAccountV3InstructionDataEncoder() { return codecs.transformEncoder( codecs.getStructEncoder([ ["discriminator", codecs.getU8Encoder()], ["data", getDataV2Encoder()], ["isMutable", codecs.getBooleanEncoder()], ["collec