gill
Version:
a modern javascript/typescript client library for interacting with the Solana blockchain
1,307 lines (1,300 loc) • 272 kB
JavaScript
'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