@macalinao/clients-mpl-bubblegum 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/generated/accounts/index.d.ts +2 -1
- package/dist/generated/accounts/treeConfig.d.ts +22 -7
- package/dist/generated/accounts/treeConfig.d.ts.map +1 -1
- package/dist/generated/accounts/treeConfig.js +7 -0
- package/dist/generated/accounts/treeConfig.js.map +1 -1
- package/dist/generated/accounts/voucher.d.ts +14 -7
- package/dist/generated/accounts/voucher.d.ts.map +1 -1
- package/dist/generated/accounts/voucher.js +7 -0
- package/dist/generated/accounts/voucher.js.map +1 -1
- package/dist/generated/errors/bubblegum.d.ts +0 -1
- package/dist/generated/errors/bubblegum.d.ts.map +1 -1
- package/dist/generated/errors/bubblegum.js +66 -59
- package/dist/generated/errors/bubblegum.js.map +1 -1
- package/dist/generated/errors/index.d.ts +2 -1
- package/dist/generated/index.d.ts +8 -1
- package/dist/generated/instructions/burn.d.ts +141 -17
- package/dist/generated/instructions/burn.d.ts.map +1 -1
- package/dist/generated/instructions/burn.js +23 -0
- package/dist/generated/instructions/burn.js.map +1 -1
- package/dist/generated/instructions/burnV2.d.ts +179 -31
- package/dist/generated/instructions/burnV2.d.ts.map +1 -1
- package/dist/generated/instructions/burnV2.js +21 -0
- package/dist/generated/instructions/burnV2.js.map +1 -1
- package/dist/generated/instructions/cancelRedeem.d.ts +99 -13
- package/dist/generated/instructions/cancelRedeem.d.ts.map +1 -1
- package/dist/generated/instructions/cancelRedeem.js +19 -0
- package/dist/generated/instructions/cancelRedeem.js.map +1 -1
- package/dist/generated/instructions/closeTreeV2.d.ts +85 -19
- package/dist/generated/instructions/closeTreeV2.d.ts.map +1 -1
- package/dist/generated/instructions/closeTreeV2.js +21 -0
- package/dist/generated/instructions/closeTreeV2.js.map +1 -1
- package/dist/generated/instructions/collectV2.d.ts +20 -7
- package/dist/generated/instructions/collectV2.d.ts.map +1 -1
- package/dist/generated/instructions/collectV2.js +10 -0
- package/dist/generated/instructions/collectV2.js.map +1 -1
- package/dist/generated/instructions/compress.d.ts +119 -9
- package/dist/generated/instructions/compress.d.ts.map +1 -1
- package/dist/generated/instructions/compress.js +21 -0
- package/dist/generated/instructions/compress.js.map +1 -1
- package/dist/generated/instructions/createTree.d.ts +117 -11
- package/dist/generated/instructions/createTree.d.ts.map +1 -1
- package/dist/generated/instructions/createTree.js +23 -0
- package/dist/generated/instructions/createTree.js.map +1 -1
- package/dist/generated/instructions/createTreeV2.d.ts +109 -14
- package/dist/generated/instructions/createTreeV2.d.ts.map +1 -1
- package/dist/generated/instructions/createTreeV2.js +23 -0
- package/dist/generated/instructions/createTreeV2.js.map +1 -1
- package/dist/generated/instructions/decompressV1.d.ts +106 -11
- package/dist/generated/instructions/decompressV1.d.ts.map +1 -1
- package/dist/generated/instructions/decompressV1.js +25 -0
- package/dist/generated/instructions/decompressV1.js.map +1 -1
- package/dist/generated/instructions/delegate.d.ts +140 -17
- package/dist/generated/instructions/delegate.d.ts.map +1 -1
- package/dist/generated/instructions/delegate.js +19 -0
- package/dist/generated/instructions/delegate.js.map +1 -1
- package/dist/generated/instructions/delegateAndFreezeV2.d.ts +171 -27
- package/dist/generated/instructions/delegateAndFreezeV2.d.ts.map +1 -1
- package/dist/generated/instructions/delegateAndFreezeV2.js +17 -0
- package/dist/generated/instructions/delegateAndFreezeV2.js.map +1 -1
- package/dist/generated/instructions/delegateV2.d.ts +169 -27
- package/dist/generated/instructions/delegateV2.d.ts.map +1 -1
- package/dist/generated/instructions/delegateV2.js +15 -0
- package/dist/generated/instructions/delegateV2.js.map +1 -1
- package/dist/generated/instructions/freezeV2.d.ts +174 -28
- package/dist/generated/instructions/freezeV2.d.ts.map +1 -1
- package/dist/generated/instructions/freezeV2.js +23 -0
- package/dist/generated/instructions/freezeV2.js.map +1 -1
- package/dist/generated/instructions/index.d.ts +2 -1
- package/dist/generated/instructions/mintToCollectionV1.d.ts +171 -20
- package/dist/generated/instructions/mintToCollectionV1.d.ts.map +1 -1
- package/dist/generated/instructions/mintToCollectionV1.js +23 -0
- package/dist/generated/instructions/mintToCollectionV1.js.map +1 -1
- package/dist/generated/instructions/mintV1.d.ts +109 -11
- package/dist/generated/instructions/mintV1.d.ts.map +1 -1
- package/dist/generated/instructions/mintV1.js +21 -0
- package/dist/generated/instructions/mintV1.js.map +1 -1
- package/dist/generated/instructions/mintV2.d.ts +163 -17
- package/dist/generated/instructions/mintV2.d.ts.map +1 -1
- package/dist/generated/instructions/mintV2.js +45 -0
- package/dist/generated/instructions/mintV2.js.map +1 -1
- package/dist/generated/instructions/redeem.d.ts +153 -17
- package/dist/generated/instructions/redeem.d.ts.map +1 -1
- package/dist/generated/instructions/redeem.js +23 -0
- package/dist/generated/instructions/redeem.js.map +1 -1
- package/dist/generated/instructions/setAndVerifyCollection.d.ts +222 -38
- package/dist/generated/instructions/setAndVerifyCollection.d.ts.map +1 -1
- package/dist/generated/instructions/setAndVerifyCollection.js +21 -0
- package/dist/generated/instructions/setAndVerifyCollection.js.map +1 -1
- package/dist/generated/instructions/setCollectionV2.d.ts +186 -39
- package/dist/generated/instructions/setCollectionV2.d.ts.map +1 -1
- package/dist/generated/instructions/setCollectionV2.js +21 -0
- package/dist/generated/instructions/setCollectionV2.js.map +1 -1
- package/dist/generated/instructions/setDecompressableState.d.ts +40 -9
- package/dist/generated/instructions/setDecompressableState.d.ts.map +1 -1
- package/dist/generated/instructions/setDecompressableState.js +13 -0
- package/dist/generated/instructions/setDecompressableState.js.map +1 -1
- package/dist/generated/instructions/setDecompressibleState.d.ts +41 -9
- package/dist/generated/instructions/setDecompressibleState.d.ts.map +1 -1
- package/dist/generated/instructions/setDecompressibleState.js +14 -0
- package/dist/generated/instructions/setDecompressibleState.js.map +1 -1
- package/dist/generated/instructions/setNonTransferableV2.d.ts +166 -31
- package/dist/generated/instructions/setNonTransferableV2.d.ts.map +1 -1
- package/dist/generated/instructions/setNonTransferableV2.js +23 -0
- package/dist/generated/instructions/setNonTransferableV2.js.map +1 -1
- package/dist/generated/instructions/setTreeDelegate.d.ts +65 -9
- package/dist/generated/instructions/setTreeDelegate.d.ts.map +1 -1
- package/dist/generated/instructions/setTreeDelegate.js +21 -0
- package/dist/generated/instructions/setTreeDelegate.js.map +1 -1
- package/dist/generated/instructions/thawAndRevokeV2.d.ts +158 -24
- package/dist/generated/instructions/thawAndRevokeV2.d.ts.map +1 -1
- package/dist/generated/instructions/thawAndRevokeV2.js +17 -0
- package/dist/generated/instructions/thawAndRevokeV2.js.map +1 -1
- package/dist/generated/instructions/thawV2.d.ts +166 -28
- package/dist/generated/instructions/thawV2.d.ts.map +1 -1
- package/dist/generated/instructions/thawV2.js +15 -0
- package/dist/generated/instructions/thawV2.js.map +1 -1
- package/dist/generated/instructions/transfer.d.ts +140 -17
- package/dist/generated/instructions/transfer.d.ts.map +1 -1
- package/dist/generated/instructions/transfer.js +19 -0
- package/dist/generated/instructions/transfer.js.map +1 -1
- package/dist/generated/instructions/transferV2.d.ts +167 -31
- package/dist/generated/instructions/transferV2.d.ts.map +1 -1
- package/dist/generated/instructions/transferV2.js +21 -0
- package/dist/generated/instructions/transferV2.js.map +1 -1
- package/dist/generated/instructions/unverifyCollection.d.ts +215 -38
- package/dist/generated/instructions/unverifyCollection.d.ts.map +1 -1
- package/dist/generated/instructions/unverifyCollection.js +19 -0
- package/dist/generated/instructions/unverifyCollection.js.map +1 -1
- package/dist/generated/instructions/unverifyCreator.d.ts +161 -17
- package/dist/generated/instructions/unverifyCreator.d.ts.map +1 -1
- package/dist/generated/instructions/unverifyCreator.js +19 -0
- package/dist/generated/instructions/unverifyCreator.js.map +1 -1
- package/dist/generated/instructions/unverifyCreatorV2.d.ts +143 -21
- package/dist/generated/instructions/unverifyCreatorV2.d.ts.map +1 -1
- package/dist/generated/instructions/unverifyCreatorV2.js +19 -0
- package/dist/generated/instructions/unverifyCreatorV2.js.map +1 -1
- package/dist/generated/instructions/updateAssetDataV2.d.ts +180 -28
- package/dist/generated/instructions/updateAssetDataV2.d.ts.map +1 -1
- package/dist/generated/instructions/updateAssetDataV2.js +21 -0
- package/dist/generated/instructions/updateAssetDataV2.js.map +1 -1
- package/dist/generated/instructions/updateMetadata.d.ts +183 -28
- package/dist/generated/instructions/updateMetadata.d.ts.map +1 -1
- package/dist/generated/instructions/updateMetadata.js +21 -0
- package/dist/generated/instructions/updateMetadata.js.map +1 -1
- package/dist/generated/instructions/updateMetadataV2.d.ts +162 -27
- package/dist/generated/instructions/updateMetadataV2.d.ts.map +1 -1
- package/dist/generated/instructions/updateMetadataV2.js +19 -0
- package/dist/generated/instructions/updateMetadataV2.js.map +1 -1
- package/dist/generated/instructions/verifyCollection.d.ts +215 -38
- package/dist/generated/instructions/verifyCollection.d.ts.map +1 -1
- package/dist/generated/instructions/verifyCollection.js +19 -0
- package/dist/generated/instructions/verifyCollection.js.map +1 -1
- package/dist/generated/instructions/verifyCreator.d.ts +161 -17
- package/dist/generated/instructions/verifyCreator.d.ts.map +1 -1
- package/dist/generated/instructions/verifyCreator.js +19 -0
- package/dist/generated/instructions/verifyCreator.js.map +1 -1
- package/dist/generated/instructions/verifyCreatorV2.d.ts +143 -21
- package/dist/generated/instructions/verifyCreatorV2.d.ts.map +1 -1
- package/dist/generated/instructions/verifyCreatorV2.js +19 -0
- package/dist/generated/instructions/verifyCreatorV2.js.map +1 -1
- package/dist/generated/pdas/assetId.d.ts +2 -3
- package/dist/generated/pdas/assetId.d.ts.map +1 -1
- package/dist/generated/pdas/assetId.js +7 -0
- package/dist/generated/pdas/assetId.js.map +1 -1
- package/dist/generated/pdas/bubblegumSigner.d.ts +0 -1
- package/dist/generated/pdas/bubblegumSigner.d.ts.map +1 -1
- package/dist/generated/pdas/bubblegumSigner.js +7 -0
- package/dist/generated/pdas/bubblegumSigner.js.map +1 -1
- package/dist/generated/pdas/index.d.ts +2 -1
- package/dist/generated/pdas/masterEdition.d.ts +2 -3
- package/dist/generated/pdas/masterEdition.d.ts.map +1 -1
- package/dist/generated/pdas/masterEdition.js +7 -0
- package/dist/generated/pdas/masterEdition.js.map +1 -1
- package/dist/generated/pdas/metadata.d.ts +2 -3
- package/dist/generated/pdas/metadata.d.ts.map +1 -1
- package/dist/generated/pdas/metadata.js +7 -0
- package/dist/generated/pdas/metadata.js.map +1 -1
- package/dist/generated/pdas/mintAuthority.d.ts +2 -3
- package/dist/generated/pdas/mintAuthority.d.ts.map +1 -1
- package/dist/generated/pdas/mintAuthority.js +7 -0
- package/dist/generated/pdas/mintAuthority.js.map +1 -1
- package/dist/generated/pdas/treeConfig.d.ts +2 -3
- package/dist/generated/pdas/treeConfig.d.ts.map +1 -1
- package/dist/generated/pdas/treeConfig.js +7 -0
- package/dist/generated/pdas/treeConfig.js.map +1 -1
- package/dist/generated/pdas/voucher.d.ts +2 -3
- package/dist/generated/pdas/voucher.d.ts.map +1 -1
- package/dist/generated/pdas/voucher.js +7 -0
- package/dist/generated/pdas/voucher.js.map +1 -1
- package/dist/generated/programs/bubblegum.d.ts +17 -12
- package/dist/generated/programs/bubblegum.d.ts.map +1 -1
- package/dist/generated/programs/bubblegum.js +11 -1
- package/dist/generated/programs/bubblegum.js.map +1 -1
- package/dist/generated/programs/index.d.ts +2 -1
- package/dist/generated/programs/mplTokenMetadata.d.ts +8 -8
- package/dist/generated/programs/mplTokenMetadata.d.ts.map +1 -1
- package/dist/generated/programs/mplTokenMetadata.js +7 -0
- package/dist/generated/programs/mplTokenMetadata.js.map +1 -1
- package/dist/generated/types/assetDataSchema.d.ts +4 -1
- package/dist/generated/types/assetDataSchema.d.ts.map +1 -1
- package/dist/generated/types/assetDataSchema.js +11 -0
- package/dist/generated/types/assetDataSchema.js.map +1 -1
- package/dist/generated/types/bubblegumEventType.d.ts +4 -1
- package/dist/generated/types/bubblegumEventType.d.ts.map +1 -1
- package/dist/generated/types/bubblegumEventType.js +11 -0
- package/dist/generated/types/bubblegumEventType.js.map +1 -1
- package/dist/generated/types/collection.d.ts +9 -3
- package/dist/generated/types/collection.d.ts.map +1 -1
- package/dist/generated/types/collection.js +7 -0
- package/dist/generated/types/collection.js.map +1 -1
- package/dist/generated/types/creator.d.ts +9 -7
- package/dist/generated/types/creator.d.ts.map +1 -1
- package/dist/generated/types/creator.js +7 -0
- package/dist/generated/types/creator.js.map +1 -1
- package/dist/generated/types/decompressibleState.d.ts +5 -1
- package/dist/generated/types/decompressibleState.d.ts.map +1 -1
- package/dist/generated/types/decompressibleState.js +12 -0
- package/dist/generated/types/decompressibleState.js.map +1 -1
- package/dist/generated/types/index.d.ts +2 -1
- package/dist/generated/types/instructionName.d.ts +4 -1
- package/dist/generated/types/instructionName.d.ts.map +1 -1
- package/dist/generated/types/instructionName.js +11 -0
- package/dist/generated/types/instructionName.js.map +1 -1
- package/dist/generated/types/leafSchema.d.ts +51 -13
- package/dist/generated/types/leafSchema.d.ts.map +1 -1
- package/dist/generated/types/leafSchema.js +7 -0
- package/dist/generated/types/leafSchema.js.map +1 -1
- package/dist/generated/types/metadataArgs.d.ts +19 -7
- package/dist/generated/types/metadataArgs.d.ts.map +1 -1
- package/dist/generated/types/metadataArgs.js +7 -0
- package/dist/generated/types/metadataArgs.js.map +1 -1
- package/dist/generated/types/metadataArgsV2.d.ts +14 -7
- package/dist/generated/types/metadataArgsV2.d.ts.map +1 -1
- package/dist/generated/types/metadataArgsV2.js +7 -0
- package/dist/generated/types/metadataArgsV2.js.map +1 -1
- package/dist/generated/types/tokenProgramVersion.d.ts +1 -1
- package/dist/generated/types/tokenProgramVersion.d.ts.map +1 -1
- package/dist/generated/types/tokenProgramVersion.js +8 -0
- package/dist/generated/types/tokenProgramVersion.js.map +1 -1
- package/dist/generated/types/tokenStandard.d.ts +5 -1
- package/dist/generated/types/tokenStandard.d.ts.map +1 -1
- package/dist/generated/types/tokenStandard.js +12 -0
- package/dist/generated/types/tokenStandard.js.map +1 -1
- package/dist/generated/types/updateArgs.d.ts +26 -7
- package/dist/generated/types/updateArgs.d.ts.map +1 -1
- package/dist/generated/types/updateArgs.js +7 -0
- package/dist/generated/types/updateArgs.js.map +1 -1
- package/dist/generated/types/useMethod.d.ts +1 -1
- package/dist/generated/types/useMethod.d.ts.map +1 -1
- package/dist/generated/types/useMethod.js +8 -0
- package/dist/generated/types/useMethod.js.map +1 -1
- package/dist/generated/types/uses.d.ts +16 -5
- package/dist/generated/types/uses.d.ts.map +1 -1
- package/dist/generated/types/uses.js +7 -0
- package/dist/generated/types/uses.js.map +1 -1
- package/dist/generated/types/version.d.ts +5 -1
- package/dist/generated/types/version.d.ts.map +1 -1
- package/dist/generated/types/version.js +12 -0
- package/dist/generated/types/version.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/package.json +6 -6
- package/src/generated/accounts/treeConfig.ts +36 -27
- package/src/generated/accounts/voucher.ts +30 -23
- package/src/generated/errors/bubblegum.ts +121 -154
- package/src/generated/instructions/burn.ts +157 -35
- package/src/generated/instructions/burnV2.ts +197 -52
- package/src/generated/instructions/cancelRedeem.ts +116 -32
- package/src/generated/instructions/closeTreeV2.ts +96 -35
- package/src/generated/instructions/collectV2.ts +34 -23
- package/src/generated/instructions/compress.ts +136 -30
- package/src/generated/instructions/createTree.ts +137 -33
- package/src/generated/instructions/createTreeV2.ts +128 -36
- package/src/generated/instructions/decompressV1.ts +124 -31
- package/src/generated/instructions/delegate.ts +159 -38
- package/src/generated/instructions/delegateAndFreezeV2.ts +191 -51
- package/src/generated/instructions/delegateV2.ts +189 -51
- package/src/generated/instructions/freezeV2.ts +193 -49
- package/src/generated/instructions/mintToCollectionV1.ts +186 -37
- package/src/generated/instructions/mintV1.ts +127 -31
- package/src/generated/instructions/mintV2.ts +184 -45
- package/src/generated/instructions/redeem.ts +172 -38
- package/src/generated/instructions/setAndVerifyCollection.ts +236 -54
- package/src/generated/instructions/setCollectionV2.ts +202 -58
- package/src/generated/instructions/setDecompressableState.ts +59 -31
- package/src/generated/instructions/setDecompressibleState.ts +60 -31
- package/src/generated/instructions/setNonTransferableV2.ts +184 -52
- package/src/generated/instructions/setTreeDelegate.ts +82 -28
- package/src/generated/instructions/thawAndRevokeV2.ts +179 -48
- package/src/generated/instructions/thawV2.ts +185 -49
- package/src/generated/instructions/transfer.ts +156 -35
- package/src/generated/instructions/transferV2.ts +185 -52
- package/src/generated/instructions/unverifyCollection.ts +229 -54
- package/src/generated/instructions/unverifyCreator.ts +181 -39
- package/src/generated/instructions/unverifyCreatorV2.ts +164 -46
- package/src/generated/instructions/updateAssetDataV2.ts +200 -50
- package/src/generated/instructions/updateMetadata.ts +200 -52
- package/src/generated/instructions/updateMetadataV2.ts +183 -54
- package/src/generated/instructions/verifyCollection.ts +229 -54
- package/src/generated/instructions/verifyCreator.ts +181 -39
- package/src/generated/instructions/verifyCreatorV2.ts +164 -46
- package/src/generated/pdas/assetId.ts +4 -3
- package/src/generated/pdas/bubblegumSigner.ts +6 -2
- package/src/generated/pdas/masterEdition.ts +4 -3
- package/src/generated/pdas/metadata.ts +4 -3
- package/src/generated/pdas/mintAuthority.ts +8 -4
- package/src/generated/pdas/treeConfig.ts +8 -4
- package/src/generated/pdas/voucher.ts +4 -3
- package/src/generated/programs/bubblegum.ts +146 -144
- package/src/generated/programs/mplTokenMetadata.ts +5 -10
- package/src/generated/types/assetDataSchema.ts +14 -8
- package/src/generated/types/bubblegumEventType.ts +13 -7
- package/src/generated/types/collection.ts +13 -8
- package/src/generated/types/creator.ts +11 -10
- package/src/generated/types/decompressibleState.ts +14 -7
- package/src/generated/types/instructionName.ts +46 -40
- package/src/generated/types/leafSchema.ts +59 -22
- package/src/generated/types/metadataArgs.ts +35 -27
- package/src/generated/types/metadataArgsV2.ts +23 -20
- package/src/generated/types/tokenProgramVersion.ts +10 -7
- package/src/generated/types/tokenStandard.ts +16 -9
- package/src/generated/types/updateArgs.ts +36 -15
- package/src/generated/types/useMethod.ts +11 -8
- package/src/generated/types/uses.ts +24 -11
- package/src/generated/types/version.ts +14 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decompressV1.js","names":[],"sources":["../../../src/generated/instructions/decompressV1.ts"],"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 type {\n AccountMeta,\n AccountSignerMeta,\n Address,\n Codec,\n Decoder,\n Encoder,\n Instruction,\n InstructionWithAccounts,\n InstructionWithData,\n ReadonlyAccount,\n ReadonlyUint8Array,\n TransactionSigner,\n WritableAccount,\n WritableSignerAccount,\n} from \"@solana/kit\";\nimport type { ResolvedInstructionAccount } from \"@solana/program-client-core\";\nimport type { MetadataArgs, MetadataArgsArgs } from \"../types/index.js\";\nimport {\n address,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n} from \"@solana/kit\";\nimport {\n getAccountMetaFactory,\n getAddressFromResolvedInstructionAccount,\n} from \"@solana/program-client-core\";\nimport {\n findMasterEditionPda,\n findMetadataPda,\n findMintAuthorityPda,\n} from \"../pdas/index.js\";\nimport { BUBBLEGUM_PROGRAM_ADDRESS } from \"../programs/index.js\";\nimport {\n getMetadataArgsDecoder,\n getMetadataArgsEncoder,\n} from \"../types/index.js\";\n\nexport const DECOMPRESS_V1_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 54, 85, 76, 70, 228, 250, 164, 81,\n]);\n\nexport function getDecompressV1DiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n DECOMPRESS_V1_DISCRIMINATOR,\n );\n}\n\nexport type DecompressV1Instruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountVoucher extends string | AccountMeta<string> = string,\n TAccountLeafOwner extends string | AccountMeta<string> = string,\n TAccountTokenAccount extends string | AccountMeta<string> = string,\n TAccountMint extends string | AccountMeta<string> = string,\n TAccountMintAuthority extends string | AccountMeta<string> = string,\n TAccountMetadata extends string | AccountMeta<string> = string,\n TAccountMasterEdition extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> =\n \"11111111111111111111111111111111\",\n TAccountSysvarRent extends string | AccountMeta<string> =\n \"SysvarRent111111111111111111111111111111111\",\n TAccountTokenMetadataProgram extends string | AccountMeta<string> =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\",\n TAccountTokenProgram extends string | AccountMeta<string> =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\",\n TAccountAssociatedTokenProgram extends string | AccountMeta<string> =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n TAccountLogWrapper extends string | AccountMeta<string> =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\",\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountVoucher extends string\n ? WritableAccount<TAccountVoucher>\n : TAccountVoucher,\n TAccountLeafOwner extends string\n ? WritableSignerAccount<TAccountLeafOwner> &\n AccountSignerMeta<TAccountLeafOwner>\n : TAccountLeafOwner,\n TAccountTokenAccount extends string\n ? WritableAccount<TAccountTokenAccount>\n : TAccountTokenAccount,\n TAccountMint extends string\n ? WritableAccount<TAccountMint>\n : TAccountMint,\n TAccountMintAuthority extends string\n ? WritableAccount<TAccountMintAuthority>\n : TAccountMintAuthority,\n TAccountMetadata extends string\n ? WritableAccount<TAccountMetadata>\n : TAccountMetadata,\n TAccountMasterEdition extends string\n ? WritableAccount<TAccountMasterEdition>\n : TAccountMasterEdition,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n TAccountSysvarRent extends string\n ? ReadonlyAccount<TAccountSysvarRent>\n : TAccountSysvarRent,\n TAccountTokenMetadataProgram extends string\n ? ReadonlyAccount<TAccountTokenMetadataProgram>\n : TAccountTokenMetadataProgram,\n TAccountTokenProgram extends string\n ? ReadonlyAccount<TAccountTokenProgram>\n : TAccountTokenProgram,\n TAccountAssociatedTokenProgram extends string\n ? ReadonlyAccount<TAccountAssociatedTokenProgram>\n : TAccountAssociatedTokenProgram,\n TAccountLogWrapper extends string\n ? ReadonlyAccount<TAccountLogWrapper>\n : TAccountLogWrapper,\n ...TRemainingAccounts,\n ]\n >;\n\nexport interface DecompressV1InstructionData {\n discriminator: ReadonlyUint8Array;\n metadata: MetadataArgs;\n}\n\nexport interface DecompressV1InstructionDataArgs {\n metadata: MetadataArgsArgs;\n}\n\nexport function getDecompressV1InstructionDataEncoder(): Encoder<DecompressV1InstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n [\"discriminator\", fixEncoderSize(getBytesEncoder(), 8)],\n [\"metadata\", getMetadataArgsEncoder()],\n ]),\n (value) => ({ ...value, discriminator: DECOMPRESS_V1_DISCRIMINATOR }),\n );\n}\n\nexport function getDecompressV1InstructionDataDecoder(): Decoder<DecompressV1InstructionData> {\n return getStructDecoder([\n [\"discriminator\", fixDecoderSize(getBytesDecoder(), 8)],\n [\"metadata\", getMetadataArgsDecoder()],\n ]);\n}\n\nexport function getDecompressV1InstructionDataCodec(): Codec<\n DecompressV1InstructionDataArgs,\n DecompressV1InstructionData\n> {\n return combineCodec(\n getDecompressV1InstructionDataEncoder(),\n getDecompressV1InstructionDataDecoder(),\n );\n}\n\nexport interface DecompressV1AsyncInput<\n TAccountVoucher extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountTokenAccount extends string = string,\n TAccountMint extends string = string,\n TAccountMintAuthority extends string = string,\n TAccountMetadata extends string = string,\n TAccountMasterEdition extends string = string,\n TAccountSystemProgram extends string = string,\n TAccountSysvarRent extends string = string,\n TAccountTokenMetadataProgram extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountAssociatedTokenProgram extends string = string,\n TAccountLogWrapper extends string = string,\n> {\n voucher: Address<TAccountVoucher>;\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n tokenAccount?: Address<TAccountTokenAccount>;\n mint: Address<TAccountMint>;\n mintAuthority?: Address<TAccountMintAuthority>;\n metadata?: Address<TAccountMetadata>;\n masterEdition?: Address<TAccountMasterEdition>;\n systemProgram?: Address<TAccountSystemProgram>;\n sysvarRent?: Address<TAccountSysvarRent>;\n tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;\n tokenProgram?: Address<TAccountTokenProgram>;\n associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\n logWrapper?: Address<TAccountLogWrapper>;\n metadataArg: DecompressV1InstructionDataArgs[\"metadata\"];\n}\n\nexport async function getDecompressV1InstructionAsync<\n TAccountVoucher extends string,\n TAccountLeafOwner extends string,\n TAccountTokenAccount extends string,\n TAccountMint extends string,\n TAccountMintAuthority extends string,\n TAccountMetadata extends string,\n TAccountMasterEdition extends string,\n TAccountSystemProgram extends string,\n TAccountSysvarRent extends string,\n TAccountTokenMetadataProgram extends string,\n TAccountTokenProgram extends string,\n TAccountAssociatedTokenProgram extends string,\n TAccountLogWrapper extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DecompressV1AsyncInput<\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >,\n config?: { programAddress?: TProgramAddress },\n): Promise<\n DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n voucher: { value: input.voucher ?? null, isWritable: true },\n leafOwner: { value: input.leafOwner ?? null, isWritable: true },\n tokenAccount: { value: input.tokenAccount ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: true },\n mintAuthority: { value: input.mintAuthority ?? null, isWritable: true },\n metadata: { value: input.metadata ?? null, isWritable: true },\n masterEdition: { value: input.masterEdition ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n sysvarRent: { value: input.sysvarRent ?? null, isWritable: false },\n tokenMetadataProgram: {\n value: input.tokenMetadataProgram ?? null,\n isWritable: false,\n },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n associatedTokenProgram: {\n value: input.associatedTokenProgram ?? null,\n isWritable: false,\n },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input, metadata: input.metadataArg };\n\n // Resolve default values.\n if (!accounts.tokenAccount.value) {\n accounts.tokenAccount.value = await getProgramDerivedAddress({\n programAddress:\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">,\n seeds: [\n getAddressEncoder().encode(\n getAddressFromResolvedInstructionAccount(\n \"leafOwner\",\n accounts.leafOwner.value,\n ),\n ),\n getAddressEncoder().encode(\n address(\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"),\n ),\n getAddressEncoder().encode(\n getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value),\n ),\n ],\n });\n }\n if (!accounts.mintAuthority.value) {\n accounts.mintAuthority.value = await findMintAuthorityPda({\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.metadata.value) {\n accounts.metadata.value = await findMetadataPda({\n programId: address(\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"),\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.masterEdition.value) {\n accounts.masterEdition.value = await findMasterEditionPda({\n programId: address(\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"),\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n if (!accounts.sysvarRent.value) {\n accounts.sysvarRent.value =\n \"SysvarRent111111111111111111111111111111111\" as Address<\"SysvarRent111111111111111111111111111111111\">;\n }\n if (!accounts.tokenMetadataProgram.value) {\n accounts.tokenMetadataProgram.value =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\" as Address<\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\">;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\" as Address<\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\">;\n }\n if (!accounts.associatedTokenProgram.value) {\n accounts.associatedTokenProgram.value =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">;\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"voucher\", accounts.voucher),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"tokenAccount\", accounts.tokenAccount),\n getAccountMeta(\"mint\", accounts.mint),\n getAccountMeta(\"mintAuthority\", accounts.mintAuthority),\n getAccountMeta(\"metadata\", accounts.metadata),\n getAccountMeta(\"masterEdition\", accounts.masterEdition),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n getAccountMeta(\"sysvarRent\", accounts.sysvarRent),\n getAccountMeta(\"tokenMetadataProgram\", accounts.tokenMetadataProgram),\n getAccountMeta(\"tokenProgram\", accounts.tokenProgram),\n getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n ],\n data: getDecompressV1InstructionDataEncoder().encode(\n args as DecompressV1InstructionDataArgs,\n ),\n programAddress,\n } as DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >);\n}\n\nexport interface DecompressV1Input<\n TAccountVoucher extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountTokenAccount extends string = string,\n TAccountMint extends string = string,\n TAccountMintAuthority extends string = string,\n TAccountMetadata extends string = string,\n TAccountMasterEdition extends string = string,\n TAccountSystemProgram extends string = string,\n TAccountSysvarRent extends string = string,\n TAccountTokenMetadataProgram extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountAssociatedTokenProgram extends string = string,\n TAccountLogWrapper extends string = string,\n> {\n voucher: Address<TAccountVoucher>;\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n tokenAccount: Address<TAccountTokenAccount>;\n mint: Address<TAccountMint>;\n mintAuthority: Address<TAccountMintAuthority>;\n metadata: Address<TAccountMetadata>;\n masterEdition: Address<TAccountMasterEdition>;\n systemProgram?: Address<TAccountSystemProgram>;\n sysvarRent?: Address<TAccountSysvarRent>;\n tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;\n tokenProgram?: Address<TAccountTokenProgram>;\n associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\n logWrapper?: Address<TAccountLogWrapper>;\n metadataArg: DecompressV1InstructionDataArgs[\"metadata\"];\n}\n\nexport function getDecompressV1Instruction<\n TAccountVoucher extends string,\n TAccountLeafOwner extends string,\n TAccountTokenAccount extends string,\n TAccountMint extends string,\n TAccountMintAuthority extends string,\n TAccountMetadata extends string,\n TAccountMasterEdition extends string,\n TAccountSystemProgram extends string,\n TAccountSysvarRent extends string,\n TAccountTokenMetadataProgram extends string,\n TAccountTokenProgram extends string,\n TAccountAssociatedTokenProgram extends string,\n TAccountLogWrapper extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DecompressV1Input<\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >,\n config?: { programAddress?: TProgramAddress },\n): DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n voucher: { value: input.voucher ?? null, isWritable: true },\n leafOwner: { value: input.leafOwner ?? null, isWritable: true },\n tokenAccount: { value: input.tokenAccount ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: true },\n mintAuthority: { value: input.mintAuthority ?? null, isWritable: true },\n metadata: { value: input.metadata ?? null, isWritable: true },\n masterEdition: { value: input.masterEdition ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n sysvarRent: { value: input.sysvarRent ?? null, isWritable: false },\n tokenMetadataProgram: {\n value: input.tokenMetadataProgram ?? null,\n isWritable: false,\n },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n associatedTokenProgram: {\n value: input.associatedTokenProgram ?? null,\n isWritable: false,\n },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input, metadata: input.metadataArg };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n if (!accounts.sysvarRent.value) {\n accounts.sysvarRent.value =\n \"SysvarRent111111111111111111111111111111111\" as Address<\"SysvarRent111111111111111111111111111111111\">;\n }\n if (!accounts.tokenMetadataProgram.value) {\n accounts.tokenMetadataProgram.value =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\" as Address<\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\">;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\" as Address<\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\">;\n }\n if (!accounts.associatedTokenProgram.value) {\n accounts.associatedTokenProgram.value =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">;\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"voucher\", accounts.voucher),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"tokenAccount\", accounts.tokenAccount),\n getAccountMeta(\"mint\", accounts.mint),\n getAccountMeta(\"mintAuthority\", accounts.mintAuthority),\n getAccountMeta(\"metadata\", accounts.metadata),\n getAccountMeta(\"masterEdition\", accounts.masterEdition),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n getAccountMeta(\"sysvarRent\", accounts.sysvarRent),\n getAccountMeta(\"tokenMetadataProgram\", accounts.tokenMetadataProgram),\n getAccountMeta(\"tokenProgram\", accounts.tokenProgram),\n getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n ],\n data: getDecompressV1InstructionDataEncoder().encode(\n args as DecompressV1InstructionDataArgs,\n ),\n programAddress,\n } as DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >);\n}\n\nexport interface ParsedDecompressV1Instruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> {\n programAddress: Address<TProgram>;\n accounts: {\n voucher: TAccountMetas[0];\n leafOwner: TAccountMetas[1];\n tokenAccount: TAccountMetas[2];\n mint: TAccountMetas[3];\n mintAuthority: TAccountMetas[4];\n metadata: TAccountMetas[5];\n masterEdition: TAccountMetas[6];\n systemProgram: TAccountMetas[7];\n sysvarRent: TAccountMetas[8];\n tokenMetadataProgram: TAccountMetas[9];\n tokenProgram: TAccountMetas[10];\n associatedTokenProgram: TAccountMetas[11];\n logWrapper: TAccountMetas[12];\n };\n data: DecompressV1InstructionData;\n}\n\nexport function parseDecompressV1Instruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedDecompressV1Instruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 13) {\n throw new SolanaError(\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 13,\n },\n );\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n voucher: getNextAccount(),\n leafOwner: getNextAccount(),\n tokenAccount: getNextAccount(),\n mint: getNextAccount(),\n mintAuthority: getNextAccount(),\n metadata: getNextAccount(),\n masterEdition: getNextAccount(),\n systemProgram: getNextAccount(),\n sysvarRent: getNextAccount(),\n tokenMetadataProgram: getNextAccount(),\n tokenProgram: getNextAccount(),\n associatedTokenProgram: getNextAccount(),\n logWrapper: getNextAccount(),\n },\n data: getDecompressV1InstructionDataDecoder().decode(instruction.data),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"decompressV1.js","names":[],"sources":["../../../src/generated/instructions/decompressV1.ts"],"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 address,\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getAddressEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getProgramDerivedAddress,\n getStructDecoder,\n getStructEncoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type Codec,\n type Decoder,\n type Encoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n type WritableSignerAccount,\n} from \"@solana/kit\";\nimport {\n getAccountMetaFactory,\n getAddressFromResolvedInstructionAccount,\n type ResolvedInstructionAccount,\n} from \"@solana/program-client-core\";\nimport {\n findMasterEditionPda,\n findMetadataPda,\n findMintAuthorityPda,\n} from \"../pdas/index.js\";\nimport { BUBBLEGUM_PROGRAM_ADDRESS } from \"../programs/index.js\";\nimport {\n getMetadataArgsDecoder,\n getMetadataArgsEncoder,\n type MetadataArgs,\n type MetadataArgsArgs,\n} from \"../types/index.js\";\n\nexport const DECOMPRESS_V1_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 54, 85, 76, 70, 228, 250, 164, 81,\n]);\n\nexport function getDecompressV1DiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(\n DECOMPRESS_V1_DISCRIMINATOR,\n );\n}\n\nexport type DecompressV1Instruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountVoucher extends string | AccountMeta<string> = string,\n TAccountLeafOwner extends string | AccountMeta<string> = string,\n TAccountTokenAccount extends string | AccountMeta<string> = string,\n TAccountMint extends string | AccountMeta<string> = string,\n TAccountMintAuthority extends string | AccountMeta<string> = string,\n TAccountMetadata extends string | AccountMeta<string> = string,\n TAccountMasterEdition extends string | AccountMeta<string> = string,\n TAccountSystemProgram extends string | AccountMeta<string> =\n \"11111111111111111111111111111111\",\n TAccountSysvarRent extends string | AccountMeta<string> =\n \"SysvarRent111111111111111111111111111111111\",\n TAccountTokenMetadataProgram extends string | AccountMeta<string> =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\",\n TAccountTokenProgram extends string | AccountMeta<string> =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\",\n TAccountAssociatedTokenProgram extends string | AccountMeta<string> =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\",\n TAccountLogWrapper extends string | AccountMeta<string> =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\",\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountVoucher extends string\n ? WritableAccount<TAccountVoucher>\n : TAccountVoucher,\n TAccountLeafOwner extends string\n ? WritableSignerAccount<TAccountLeafOwner> &\n AccountSignerMeta<TAccountLeafOwner>\n : TAccountLeafOwner,\n TAccountTokenAccount extends string\n ? WritableAccount<TAccountTokenAccount>\n : TAccountTokenAccount,\n TAccountMint extends string\n ? WritableAccount<TAccountMint>\n : TAccountMint,\n TAccountMintAuthority extends string\n ? WritableAccount<TAccountMintAuthority>\n : TAccountMintAuthority,\n TAccountMetadata extends string\n ? WritableAccount<TAccountMetadata>\n : TAccountMetadata,\n TAccountMasterEdition extends string\n ? WritableAccount<TAccountMasterEdition>\n : TAccountMasterEdition,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n TAccountSysvarRent extends string\n ? ReadonlyAccount<TAccountSysvarRent>\n : TAccountSysvarRent,\n TAccountTokenMetadataProgram extends string\n ? ReadonlyAccount<TAccountTokenMetadataProgram>\n : TAccountTokenMetadataProgram,\n TAccountTokenProgram extends string\n ? ReadonlyAccount<TAccountTokenProgram>\n : TAccountTokenProgram,\n TAccountAssociatedTokenProgram extends string\n ? ReadonlyAccount<TAccountAssociatedTokenProgram>\n : TAccountAssociatedTokenProgram,\n TAccountLogWrapper extends string\n ? ReadonlyAccount<TAccountLogWrapper>\n : TAccountLogWrapper,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type DecompressV1InstructionData = {\n discriminator: ReadonlyUint8Array;\n /**\n * Metadata args of the leaf being decompressed; must match the leaf's\n * stored `dataHash` and is used to populate the new Token Metadata\n * account.\n */\n metadata: MetadataArgs;\n};\n\nexport type DecompressV1InstructionDataArgs = {\n /**\n * Metadata args of the leaf being decompressed; must match the leaf's\n * stored `dataHash` and is used to populate the new Token Metadata\n * account.\n */\n metadata: MetadataArgsArgs;\n};\n\nexport function getDecompressV1InstructionDataEncoder(): Encoder<DecompressV1InstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n [\"discriminator\", fixEncoderSize(getBytesEncoder(), 8)],\n [\"metadata\", getMetadataArgsEncoder()],\n ]),\n (value) => ({ ...value, discriminator: DECOMPRESS_V1_DISCRIMINATOR }),\n );\n}\n\nexport function getDecompressV1InstructionDataDecoder(): Decoder<DecompressV1InstructionData> {\n return getStructDecoder([\n [\"discriminator\", fixDecoderSize(getBytesDecoder(), 8)],\n [\"metadata\", getMetadataArgsDecoder()],\n ]);\n}\n\nexport function getDecompressV1InstructionDataCodec(): Codec<\n DecompressV1InstructionDataArgs,\n DecompressV1InstructionData\n> {\n return combineCodec(\n getDecompressV1InstructionDataEncoder(),\n getDecompressV1InstructionDataDecoder(),\n );\n}\n\nexport type DecompressV1AsyncInput<\n TAccountVoucher extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountTokenAccount extends string = string,\n TAccountMint extends string = string,\n TAccountMintAuthority extends string = string,\n TAccountMetadata extends string = string,\n TAccountMasterEdition extends string = string,\n TAccountSystemProgram extends string = string,\n TAccountSysvarRent extends string = string,\n TAccountTokenMetadataProgram extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountAssociatedTokenProgram extends string = string,\n TAccountLogWrapper extends string = string,\n> = {\n /**\n * Voucher PDA created by `redeem`; closed by this instruction once its\n * leaf data has been used to mint the decompressed NFT.\n */\n voucher: Address<TAccountVoucher>;\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n /** Token account that will hold the decompressed NFT for `leafOwner`. */\n tokenAccount?: Address<TAccountTokenAccount>;\n /** Mint account of the decompressed NFT, created fresh during decompression. */\n mint: Address<TAccountMint>;\n /** PDA mint authority for the decompressed NFT's mint. */\n mintAuthority?: Address<TAccountMintAuthority>;\n /** Metadata account created for the decompressed NFT. */\n metadata?: Address<TAccountMetadata>;\n /** Master edition account created for the decompressed NFT. */\n masterEdition?: Address<TAccountMasterEdition>;\n /** The Solana System program. */\n systemProgram?: Address<TAccountSystemProgram>;\n /** The Rent sysvar. */\n sysvarRent?: Address<TAccountSysvarRent>;\n /**\n * The Token Metadata program, invoked to read or (un)verify the\n * legacy collection accounts.\n */\n tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;\n /** The SPL Token program. */\n tokenProgram?: Address<TAccountTokenProgram>;\n /** The SPL Associated Token Account program. */\n associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper?: Address<TAccountLogWrapper>;\n metadataArg: DecompressV1InstructionDataArgs[\"metadata\"];\n};\n\n/**\n * Decompresses a leaf node from the tree into a regular SPL/Token\n * Metadata NFT.\n *\n * Consumes the `voucher` PDA created by `redeem`, then mints a new SPL\n * token, and creates the associated Token Metadata metadata and master\n * edition accounts so the asset can be held and traded like any other\n * NFT.\n */\nexport async function getDecompressV1InstructionAsync<\n TAccountVoucher extends string,\n TAccountLeafOwner extends string,\n TAccountTokenAccount extends string,\n TAccountMint extends string,\n TAccountMintAuthority extends string,\n TAccountMetadata extends string,\n TAccountMasterEdition extends string,\n TAccountSystemProgram extends string,\n TAccountSysvarRent extends string,\n TAccountTokenMetadataProgram extends string,\n TAccountTokenProgram extends string,\n TAccountAssociatedTokenProgram extends string,\n TAccountLogWrapper extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DecompressV1AsyncInput<\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >,\n config?: { programAddress?: TProgramAddress },\n): Promise<\n DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n voucher: { value: input.voucher ?? null, isWritable: true },\n leafOwner: { value: input.leafOwner ?? null, isWritable: true },\n tokenAccount: { value: input.tokenAccount ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: true },\n mintAuthority: { value: input.mintAuthority ?? null, isWritable: true },\n metadata: { value: input.metadata ?? null, isWritable: true },\n masterEdition: { value: input.masterEdition ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n sysvarRent: { value: input.sysvarRent ?? null, isWritable: false },\n tokenMetadataProgram: {\n value: input.tokenMetadataProgram ?? null,\n isWritable: false,\n },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n associatedTokenProgram: {\n value: input.associatedTokenProgram ?? null,\n isWritable: false,\n },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input, metadata: input.metadataArg };\n\n // Resolve default values.\n if (!accounts.tokenAccount.value) {\n accounts.tokenAccount.value = await getProgramDerivedAddress({\n programAddress:\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">,\n seeds: [\n getAddressEncoder().encode(\n getAddressFromResolvedInstructionAccount(\n \"leafOwner\",\n accounts.leafOwner.value,\n ),\n ),\n getAddressEncoder().encode(\n address(\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\"),\n ),\n getAddressEncoder().encode(\n getAddressFromResolvedInstructionAccount(\"mint\", accounts.mint.value),\n ),\n ],\n });\n }\n if (!accounts.mintAuthority.value) {\n accounts.mintAuthority.value = await findMintAuthorityPda({\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.metadata.value) {\n accounts.metadata.value = await findMetadataPda({\n programId: address(\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"),\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.masterEdition.value) {\n accounts.masterEdition.value = await findMasterEditionPda({\n programId: address(\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\"),\n mint: getAddressFromResolvedInstructionAccount(\n \"mint\",\n accounts.mint.value,\n ),\n });\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n if (!accounts.sysvarRent.value) {\n accounts.sysvarRent.value =\n \"SysvarRent111111111111111111111111111111111\" as Address<\"SysvarRent111111111111111111111111111111111\">;\n }\n if (!accounts.tokenMetadataProgram.value) {\n accounts.tokenMetadataProgram.value =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\" as Address<\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\">;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\" as Address<\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\">;\n }\n if (!accounts.associatedTokenProgram.value) {\n accounts.associatedTokenProgram.value =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">;\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"voucher\", accounts.voucher),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"tokenAccount\", accounts.tokenAccount),\n getAccountMeta(\"mint\", accounts.mint),\n getAccountMeta(\"mintAuthority\", accounts.mintAuthority),\n getAccountMeta(\"metadata\", accounts.metadata),\n getAccountMeta(\"masterEdition\", accounts.masterEdition),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n getAccountMeta(\"sysvarRent\", accounts.sysvarRent),\n getAccountMeta(\"tokenMetadataProgram\", accounts.tokenMetadataProgram),\n getAccountMeta(\"tokenProgram\", accounts.tokenProgram),\n getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n ],\n data: getDecompressV1InstructionDataEncoder().encode(\n args as DecompressV1InstructionDataArgs,\n ),\n programAddress,\n } as DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >);\n}\n\nexport type DecompressV1Input<\n TAccountVoucher extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountTokenAccount extends string = string,\n TAccountMint extends string = string,\n TAccountMintAuthority extends string = string,\n TAccountMetadata extends string = string,\n TAccountMasterEdition extends string = string,\n TAccountSystemProgram extends string = string,\n TAccountSysvarRent extends string = string,\n TAccountTokenMetadataProgram extends string = string,\n TAccountTokenProgram extends string = string,\n TAccountAssociatedTokenProgram extends string = string,\n TAccountLogWrapper extends string = string,\n> = {\n /**\n * Voucher PDA created by `redeem`; closed by this instruction once its\n * leaf data has been used to mint the decompressed NFT.\n */\n voucher: Address<TAccountVoucher>;\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n /** Token account that will hold the decompressed NFT for `leafOwner`. */\n tokenAccount: Address<TAccountTokenAccount>;\n /** Mint account of the decompressed NFT, created fresh during decompression. */\n mint: Address<TAccountMint>;\n /** PDA mint authority for the decompressed NFT's mint. */\n mintAuthority: Address<TAccountMintAuthority>;\n /** Metadata account created for the decompressed NFT. */\n metadata: Address<TAccountMetadata>;\n /** Master edition account created for the decompressed NFT. */\n masterEdition: Address<TAccountMasterEdition>;\n /** The Solana System program. */\n systemProgram?: Address<TAccountSystemProgram>;\n /** The Rent sysvar. */\n sysvarRent?: Address<TAccountSysvarRent>;\n /**\n * The Token Metadata program, invoked to read or (un)verify the\n * legacy collection accounts.\n */\n tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;\n /** The SPL Token program. */\n tokenProgram?: Address<TAccountTokenProgram>;\n /** The SPL Associated Token Account program. */\n associatedTokenProgram?: Address<TAccountAssociatedTokenProgram>;\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper?: Address<TAccountLogWrapper>;\n metadataArg: DecompressV1InstructionDataArgs[\"metadata\"];\n};\n\n/**\n * Decompresses a leaf node from the tree into a regular SPL/Token\n * Metadata NFT.\n *\n * Consumes the `voucher` PDA created by `redeem`, then mints a new SPL\n * token, and creates the associated Token Metadata metadata and master\n * edition accounts so the asset can be held and traded like any other\n * NFT.\n */\nexport function getDecompressV1Instruction<\n TAccountVoucher extends string,\n TAccountLeafOwner extends string,\n TAccountTokenAccount extends string,\n TAccountMint extends string,\n TAccountMintAuthority extends string,\n TAccountMetadata extends string,\n TAccountMasterEdition extends string,\n TAccountSystemProgram extends string,\n TAccountSysvarRent extends string,\n TAccountTokenMetadataProgram extends string,\n TAccountTokenProgram extends string,\n TAccountAssociatedTokenProgram extends string,\n TAccountLogWrapper extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DecompressV1Input<\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >,\n config?: { programAddress?: TProgramAddress },\n): DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n voucher: { value: input.voucher ?? null, isWritable: true },\n leafOwner: { value: input.leafOwner ?? null, isWritable: true },\n tokenAccount: { value: input.tokenAccount ?? null, isWritable: true },\n mint: { value: input.mint ?? null, isWritable: true },\n mintAuthority: { value: input.mintAuthority ?? null, isWritable: true },\n metadata: { value: input.metadata ?? null, isWritable: true },\n masterEdition: { value: input.masterEdition ?? null, isWritable: true },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n sysvarRent: { value: input.sysvarRent ?? null, isWritable: false },\n tokenMetadataProgram: {\n value: input.tokenMetadataProgram ?? null,\n isWritable: false,\n },\n tokenProgram: { value: input.tokenProgram ?? null, isWritable: false },\n associatedTokenProgram: {\n value: input.associatedTokenProgram ?? null,\n isWritable: false,\n },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input, metadata: input.metadataArg };\n\n // Resolve default values.\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n if (!accounts.sysvarRent.value) {\n accounts.sysvarRent.value =\n \"SysvarRent111111111111111111111111111111111\" as Address<\"SysvarRent111111111111111111111111111111111\">;\n }\n if (!accounts.tokenMetadataProgram.value) {\n accounts.tokenMetadataProgram.value =\n \"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\" as Address<\"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s\">;\n }\n if (!accounts.tokenProgram.value) {\n accounts.tokenProgram.value =\n \"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\" as Address<\"TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA\">;\n }\n if (!accounts.associatedTokenProgram.value) {\n accounts.associatedTokenProgram.value =\n \"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\" as Address<\"ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL\">;\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"voucher\", accounts.voucher),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"tokenAccount\", accounts.tokenAccount),\n getAccountMeta(\"mint\", accounts.mint),\n getAccountMeta(\"mintAuthority\", accounts.mintAuthority),\n getAccountMeta(\"metadata\", accounts.metadata),\n getAccountMeta(\"masterEdition\", accounts.masterEdition),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n getAccountMeta(\"sysvarRent\", accounts.sysvarRent),\n getAccountMeta(\"tokenMetadataProgram\", accounts.tokenMetadataProgram),\n getAccountMeta(\"tokenProgram\", accounts.tokenProgram),\n getAccountMeta(\"associatedTokenProgram\", accounts.associatedTokenProgram),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n ],\n data: getDecompressV1InstructionDataEncoder().encode(\n args as DecompressV1InstructionDataArgs,\n ),\n programAddress,\n } as DecompressV1Instruction<\n TProgramAddress,\n TAccountVoucher,\n TAccountLeafOwner,\n TAccountTokenAccount,\n TAccountMint,\n TAccountMintAuthority,\n TAccountMetadata,\n TAccountMasterEdition,\n TAccountSystemProgram,\n TAccountSysvarRent,\n TAccountTokenMetadataProgram,\n TAccountTokenProgram,\n TAccountAssociatedTokenProgram,\n TAccountLogWrapper\n >);\n}\n\nexport type ParsedDecompressV1Instruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * Voucher PDA created by `redeem`; closed by this instruction once its\n * leaf data has been used to mint the decompressed NFT.\n */\n voucher: TAccountMetas[0];\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TAccountMetas[1];\n /** Token account that will hold the decompressed NFT for `leafOwner`. */\n tokenAccount: TAccountMetas[2];\n /** Mint account of the decompressed NFT, created fresh during decompression. */\n mint: TAccountMetas[3];\n /** PDA mint authority for the decompressed NFT's mint. */\n mintAuthority: TAccountMetas[4];\n /** Metadata account created for the decompressed NFT. */\n metadata: TAccountMetas[5];\n /** Master edition account created for the decompressed NFT. */\n masterEdition: TAccountMetas[6];\n /** The Solana System program. */\n systemProgram: TAccountMetas[7];\n /** The Rent sysvar. */\n sysvarRent: TAccountMetas[8];\n /**\n * The Token Metadata program, invoked to read or (un)verify the\n * legacy collection accounts.\n */\n tokenMetadataProgram: TAccountMetas[9];\n /** The SPL Token program. */\n tokenProgram: TAccountMetas[10];\n /** The SPL Associated Token Account program. */\n associatedTokenProgram: TAccountMetas[11];\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper: TAccountMetas[12];\n };\n data: DecompressV1InstructionData;\n};\n\nexport function parseDecompressV1Instruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedDecompressV1Instruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 13) {\n throw new SolanaError(\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 13,\n },\n );\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n voucher: getNextAccount(),\n leafOwner: getNextAccount(),\n tokenAccount: getNextAccount(),\n mint: getNextAccount(),\n mintAuthority: getNextAccount(),\n metadata: getNextAccount(),\n masterEdition: getNextAccount(),\n systemProgram: getNextAccount(),\n sysvarRent: getNextAccount(),\n tokenMetadataProgram: getNextAccount(),\n tokenProgram: getNextAccount(),\n associatedTokenProgram: getNextAccount(),\n logWrapper: getNextAccount(),\n },\n data: getDecompressV1InstructionDataDecoder().decode(instruction.data),\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,78 +1,201 @@
|
|
|
1
1
|
import { BUBBLEGUM_PROGRAM_ADDRESS } from "../programs/bubblegum.js";
|
|
2
|
+
import "../programs/index.js";
|
|
2
3
|
import { AccountMeta, AccountSignerMeta, Address, FixedSizeCodec, FixedSizeDecoder, FixedSizeEncoder, Instruction, InstructionWithAccounts, InstructionWithData, ReadonlyAccount, ReadonlySignerAccount, ReadonlyUint8Array, TransactionSigner, WritableAccount } from "@solana/kit";
|
|
3
|
-
|
|
4
4
|
//#region src/generated/instructions/delegate.d.ts
|
|
5
5
|
declare const DELEGATE_DISCRIMINATOR: ReadonlyUint8Array;
|
|
6
6
|
declare function getDelegateDiscriminatorBytes(): ReadonlyUint8Array;
|
|
7
7
|
type DelegateInstruction<TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS, TAccountTreeAuthority extends string | AccountMeta<string> = string, TAccountLeafOwner extends string | AccountMeta<string> = string, TAccountPreviousLeafDelegate extends string | AccountMeta<string> = string, TAccountNewLeafDelegate extends string | AccountMeta<string> = string, TAccountMerkleTree extends string | AccountMeta<string> = string, TAccountLogWrapper extends string | AccountMeta<string> = "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV", TAccountCompressionProgram extends string | AccountMeta<string> = "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK", TAccountSystemProgram extends string | AccountMeta<string> = "11111111111111111111111111111111", TRemainingAccounts extends readonly AccountMeta<string>[] = []> = Instruction<TProgram> & InstructionWithData<ReadonlyUint8Array> & InstructionWithAccounts<[TAccountTreeAuthority extends string ? ReadonlyAccount<TAccountTreeAuthority> : TAccountTreeAuthority, TAccountLeafOwner extends string ? ReadonlySignerAccount<TAccountLeafOwner> & AccountSignerMeta<TAccountLeafOwner> : TAccountLeafOwner, TAccountPreviousLeafDelegate extends string ? ReadonlyAccount<TAccountPreviousLeafDelegate> : TAccountPreviousLeafDelegate, TAccountNewLeafDelegate extends string ? ReadonlyAccount<TAccountNewLeafDelegate> : TAccountNewLeafDelegate, TAccountMerkleTree extends string ? WritableAccount<TAccountMerkleTree> : TAccountMerkleTree, TAccountLogWrapper extends string ? ReadonlyAccount<TAccountLogWrapper> : TAccountLogWrapper, TAccountCompressionProgram extends string ? ReadonlyAccount<TAccountCompressionProgram> : TAccountCompressionProgram, TAccountSystemProgram extends string ? ReadonlyAccount<TAccountSystemProgram> : TAccountSystemProgram, ...TRemainingAccounts]>;
|
|
8
|
-
|
|
8
|
+
type DelegateInstructionData = {
|
|
9
9
|
discriminator: ReadonlyUint8Array;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Current Merkle root of the tree, used together with the Merkle proof
|
|
12
|
+
* (passed as remaining accounts) to verify the leaf being operated on.
|
|
13
|
+
*/
|
|
14
|
+
root: Array<number>;
|
|
15
|
+
/**
|
|
16
|
+
* Keccak256 hash of the leaf's metadata, used together with `root` to
|
|
17
|
+
* verify the leaf before it is modified.
|
|
18
|
+
*/
|
|
19
|
+
dataHash: Array<number>;
|
|
20
|
+
/**
|
|
21
|
+
* Keccak256 hash of the leaf's creators array, used together with
|
|
22
|
+
* `root` to verify the leaf before it is modified.
|
|
23
|
+
*/
|
|
24
|
+
creatorHash: Array<number>;
|
|
25
|
+
/**
|
|
26
|
+
* Tree-scoped nonce identifying the leaf, equal to the tree's
|
|
27
|
+
* `numMinted` at the time the leaf was minted. Combined with the tree
|
|
28
|
+
* address to derive the leaf's asset id.
|
|
29
|
+
*/
|
|
13
30
|
nonce: bigint;
|
|
31
|
+
/**
|
|
32
|
+
* Position of the leaf within the Merkle tree, used with the Merkle
|
|
33
|
+
* proof to locate and verify the leaf.
|
|
34
|
+
*/
|
|
14
35
|
index: number;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
36
|
+
};
|
|
37
|
+
type DelegateInstructionDataArgs = {
|
|
38
|
+
/**
|
|
39
|
+
* Current Merkle root of the tree, used together with the Merkle proof
|
|
40
|
+
* (passed as remaining accounts) to verify the leaf being operated on.
|
|
41
|
+
*/
|
|
42
|
+
root: Array<number>;
|
|
43
|
+
/**
|
|
44
|
+
* Keccak256 hash of the leaf's metadata, used together with `root` to
|
|
45
|
+
* verify the leaf before it is modified.
|
|
46
|
+
*/
|
|
47
|
+
dataHash: Array<number>;
|
|
48
|
+
/**
|
|
49
|
+
* Keccak256 hash of the leaf's creators array, used together with
|
|
50
|
+
* `root` to verify the leaf before it is modified.
|
|
51
|
+
*/
|
|
52
|
+
creatorHash: Array<number>;
|
|
53
|
+
/**
|
|
54
|
+
* Tree-scoped nonce identifying the leaf, equal to the tree's
|
|
55
|
+
* `numMinted` at the time the leaf was minted. Combined with the tree
|
|
56
|
+
* address to derive the leaf's asset id.
|
|
57
|
+
*/
|
|
20
58
|
nonce: number | bigint;
|
|
59
|
+
/**
|
|
60
|
+
* Position of the leaf within the Merkle tree, used with the Merkle
|
|
61
|
+
* proof to locate and verify the leaf.
|
|
62
|
+
*/
|
|
21
63
|
index: number;
|
|
22
|
-
}
|
|
64
|
+
};
|
|
23
65
|
declare function getDelegateInstructionDataEncoder(): FixedSizeEncoder<DelegateInstructionDataArgs>;
|
|
24
66
|
declare function getDelegateInstructionDataDecoder(): FixedSizeDecoder<DelegateInstructionData>;
|
|
25
67
|
declare function getDelegateInstructionDataCodec(): FixedSizeCodec<DelegateInstructionDataArgs, DelegateInstructionData>;
|
|
26
|
-
|
|
68
|
+
type DelegateAsyncInput<TAccountTreeAuthority extends string = string, TAccountLeafOwner extends string = string, TAccountPreviousLeafDelegate extends string = string, TAccountNewLeafDelegate extends string = string, TAccountMerkleTree extends string = string, TAccountLogWrapper extends string = string, TAccountCompressionProgram extends string = string, TAccountSystemProgram extends string = string> = {
|
|
69
|
+
/**
|
|
70
|
+
* The tree's `TreeConfig` PDA, which stores its configuration and acts
|
|
71
|
+
* as the tree's authority for CPIs into the compression program.
|
|
72
|
+
*/
|
|
27
73
|
treeAuthority?: Address<TAccountTreeAuthority>;
|
|
74
|
+
/** Owner of the compressed NFT leaf being operated on. */
|
|
28
75
|
leafOwner: TransactionSigner<TAccountLeafOwner>;
|
|
76
|
+
/** The leaf's delegate before this instruction runs. */
|
|
29
77
|
previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;
|
|
78
|
+
/**
|
|
79
|
+
* Delegate to set on the leaf; pass the leaf owner to clear an
|
|
80
|
+
* existing delegate.
|
|
81
|
+
*/
|
|
30
82
|
newLeafDelegate: Address<TAccountNewLeafDelegate>;
|
|
83
|
+
/**
|
|
84
|
+
* The concurrent Merkle tree account storing the compressed leaves,
|
|
85
|
+
* owned by the account compression program.
|
|
86
|
+
*/
|
|
31
87
|
merkleTree: Address<TAccountMerkleTree>;
|
|
88
|
+
/**
|
|
89
|
+
* The SPL/MPL Noop program, used to log leaf data so off-chain indexers
|
|
90
|
+
* can reconstruct the tree.
|
|
91
|
+
*/
|
|
32
92
|
logWrapper?: Address<TAccountLogWrapper>;
|
|
93
|
+
/**
|
|
94
|
+
* The SPL/MPL Account Compression program that owns and manages the
|
|
95
|
+
* Merkle tree.
|
|
96
|
+
*/
|
|
33
97
|
compressionProgram?: Address<TAccountCompressionProgram>;
|
|
98
|
+
/** The Solana System program. */
|
|
34
99
|
systemProgram?: Address<TAccountSystemProgram>;
|
|
35
100
|
root: DelegateInstructionDataArgs["root"];
|
|
36
101
|
dataHash: DelegateInstructionDataArgs["dataHash"];
|
|
37
102
|
creatorHash: DelegateInstructionDataArgs["creatorHash"];
|
|
38
103
|
nonce: DelegateInstructionDataArgs["nonce"];
|
|
39
104
|
index: DelegateInstructionDataArgs["index"];
|
|
40
|
-
}
|
|
105
|
+
};
|
|
106
|
+
/**
|
|
107
|
+
* Sets (or clears) the delegate authority for a compressed NFT leaf.
|
|
108
|
+
*
|
|
109
|
+
* The delegate may transfer or burn the leaf on the owner's behalf.
|
|
110
|
+
* Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.
|
|
111
|
+
*/
|
|
41
112
|
declare function getDelegateInstructionAsync<TAccountTreeAuthority extends string, TAccountLeafOwner extends string, TAccountPreviousLeafDelegate extends string, TAccountNewLeafDelegate extends string, TAccountMerkleTree extends string, TAccountLogWrapper extends string, TAccountCompressionProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS>(input: DelegateAsyncInput<TAccountTreeAuthority, TAccountLeafOwner, TAccountPreviousLeafDelegate, TAccountNewLeafDelegate, TAccountMerkleTree, TAccountLogWrapper, TAccountCompressionProgram, TAccountSystemProgram>, config?: {
|
|
42
113
|
programAddress?: TProgramAddress;
|
|
43
114
|
}): Promise<DelegateInstruction<TProgramAddress, TAccountTreeAuthority, TAccountLeafOwner, TAccountPreviousLeafDelegate, TAccountNewLeafDelegate, TAccountMerkleTree, TAccountLogWrapper, TAccountCompressionProgram, TAccountSystemProgram>>;
|
|
44
|
-
|
|
115
|
+
type DelegateInput<TAccountTreeAuthority extends string = string, TAccountLeafOwner extends string = string, TAccountPreviousLeafDelegate extends string = string, TAccountNewLeafDelegate extends string = string, TAccountMerkleTree extends string = string, TAccountLogWrapper extends string = string, TAccountCompressionProgram extends string = string, TAccountSystemProgram extends string = string> = {
|
|
116
|
+
/**
|
|
117
|
+
* The tree's `TreeConfig` PDA, which stores its configuration and acts
|
|
118
|
+
* as the tree's authority for CPIs into the compression program.
|
|
119
|
+
*/
|
|
45
120
|
treeAuthority: Address<TAccountTreeAuthority>;
|
|
121
|
+
/** Owner of the compressed NFT leaf being operated on. */
|
|
46
122
|
leafOwner: TransactionSigner<TAccountLeafOwner>;
|
|
123
|
+
/** The leaf's delegate before this instruction runs. */
|
|
47
124
|
previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;
|
|
125
|
+
/**
|
|
126
|
+
* Delegate to set on the leaf; pass the leaf owner to clear an
|
|
127
|
+
* existing delegate.
|
|
128
|
+
*/
|
|
48
129
|
newLeafDelegate: Address<TAccountNewLeafDelegate>;
|
|
130
|
+
/**
|
|
131
|
+
* The concurrent Merkle tree account storing the compressed leaves,
|
|
132
|
+
* owned by the account compression program.
|
|
133
|
+
*/
|
|
49
134
|
merkleTree: Address<TAccountMerkleTree>;
|
|
135
|
+
/**
|
|
136
|
+
* The SPL/MPL Noop program, used to log leaf data so off-chain indexers
|
|
137
|
+
* can reconstruct the tree.
|
|
138
|
+
*/
|
|
50
139
|
logWrapper?: Address<TAccountLogWrapper>;
|
|
140
|
+
/**
|
|
141
|
+
* The SPL/MPL Account Compression program that owns and manages the
|
|
142
|
+
* Merkle tree.
|
|
143
|
+
*/
|
|
51
144
|
compressionProgram?: Address<TAccountCompressionProgram>;
|
|
145
|
+
/** The Solana System program. */
|
|
52
146
|
systemProgram?: Address<TAccountSystemProgram>;
|
|
53
147
|
root: DelegateInstructionDataArgs["root"];
|
|
54
148
|
dataHash: DelegateInstructionDataArgs["dataHash"];
|
|
55
149
|
creatorHash: DelegateInstructionDataArgs["creatorHash"];
|
|
56
150
|
nonce: DelegateInstructionDataArgs["nonce"];
|
|
57
151
|
index: DelegateInstructionDataArgs["index"];
|
|
58
|
-
}
|
|
152
|
+
};
|
|
153
|
+
/**
|
|
154
|
+
* Sets (or clears) the delegate authority for a compressed NFT leaf.
|
|
155
|
+
*
|
|
156
|
+
* The delegate may transfer or burn the leaf on the owner's behalf.
|
|
157
|
+
* Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.
|
|
158
|
+
*/
|
|
59
159
|
declare function getDelegateInstruction<TAccountTreeAuthority extends string, TAccountLeafOwner extends string, TAccountPreviousLeafDelegate extends string, TAccountNewLeafDelegate extends string, TAccountMerkleTree extends string, TAccountLogWrapper extends string, TAccountCompressionProgram extends string, TAccountSystemProgram extends string, TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS>(input: DelegateInput<TAccountTreeAuthority, TAccountLeafOwner, TAccountPreviousLeafDelegate, TAccountNewLeafDelegate, TAccountMerkleTree, TAccountLogWrapper, TAccountCompressionProgram, TAccountSystemProgram>, config?: {
|
|
60
160
|
programAddress?: TProgramAddress;
|
|
61
161
|
}): DelegateInstruction<TProgramAddress, TAccountTreeAuthority, TAccountLeafOwner, TAccountPreviousLeafDelegate, TAccountNewLeafDelegate, TAccountMerkleTree, TAccountLogWrapper, TAccountCompressionProgram, TAccountSystemProgram>;
|
|
62
|
-
|
|
162
|
+
type ParsedDelegateInstruction<TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS, TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[]> = {
|
|
63
163
|
programAddress: Address<TProgram>;
|
|
64
164
|
accounts: {
|
|
165
|
+
/**
|
|
166
|
+
* The tree's `TreeConfig` PDA, which stores its configuration and acts
|
|
167
|
+
* as the tree's authority for CPIs into the compression program.
|
|
168
|
+
*/
|
|
65
169
|
treeAuthority: TAccountMetas[0];
|
|
170
|
+
/** Owner of the compressed NFT leaf being operated on. */
|
|
66
171
|
leafOwner: TAccountMetas[1];
|
|
172
|
+
/** The leaf's delegate before this instruction runs. */
|
|
67
173
|
previousLeafDelegate: TAccountMetas[2];
|
|
174
|
+
/**
|
|
175
|
+
* Delegate to set on the leaf; pass the leaf owner to clear an
|
|
176
|
+
* existing delegate.
|
|
177
|
+
*/
|
|
68
178
|
newLeafDelegate: TAccountMetas[3];
|
|
179
|
+
/**
|
|
180
|
+
* The concurrent Merkle tree account storing the compressed leaves,
|
|
181
|
+
* owned by the account compression program.
|
|
182
|
+
*/
|
|
69
183
|
merkleTree: TAccountMetas[4];
|
|
184
|
+
/**
|
|
185
|
+
* The SPL/MPL Noop program, used to log leaf data so off-chain indexers
|
|
186
|
+
* can reconstruct the tree.
|
|
187
|
+
*/
|
|
70
188
|
logWrapper: TAccountMetas[5];
|
|
189
|
+
/**
|
|
190
|
+
* The SPL/MPL Account Compression program that owns and manages the
|
|
191
|
+
* Merkle tree.
|
|
192
|
+
*/
|
|
71
193
|
compressionProgram: TAccountMetas[6];
|
|
194
|
+
/** The Solana System program. */
|
|
72
195
|
systemProgram: TAccountMetas[7];
|
|
73
196
|
};
|
|
74
197
|
data: DelegateInstructionData;
|
|
75
|
-
}
|
|
198
|
+
};
|
|
76
199
|
declare function parseDelegateInstruction<TProgram extends string, TAccountMetas extends readonly AccountMeta[]>(instruction: Instruction<TProgram> & InstructionWithAccounts<TAccountMetas> & InstructionWithData<ReadonlyUint8Array>): ParsedDelegateInstruction<TProgram, TAccountMetas>;
|
|
77
200
|
//#endregion
|
|
78
201
|
export { DELEGATE_DISCRIMINATOR, DelegateAsyncInput, DelegateInput, DelegateInstruction, DelegateInstructionData, DelegateInstructionDataArgs, ParsedDelegateInstruction, getDelegateDiscriminatorBytes, getDelegateInstruction, getDelegateInstructionAsync, getDelegateInstructionDataCodec, getDelegateInstructionDataDecoder, getDelegateInstructionDataEncoder, parseDelegateInstruction };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.d.ts","names":[],"sources":["../../../src/generated/instructions/delegate.ts"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"delegate.d.ts","names":[],"sources":["../../../src/generated/instructions/delegate.ts"],"mappings":";;;;cAkDa,wBAAwB;iBAIrB,iCAAiC;KAIrC,oBACV,iCAAiC,2BACjC,uCAAuC,8BACvC,mCAAmC,8BACnC,8CAA8C,8BAC9C,yCAAyC,8BACzC,oCAAoC,8BACpC,oCAAoC,qEAEpC,4CAA4C,qEAE5C,uCAAuC,0DAEvC,oCAAoC,8BAClC,YAAY,YACd,oBAAoB,sBACpB,yBAEI,uCACI,gBAAgB,yBAChB,uBACJ,mCACI,sBAAsB,qBACpB,kBAAkB,qBACpB,mBACJ,8CACI,gBAAgB,gCAChB,8BACJ,yCACI,gBAAgB,2BAChB,yBACJ,oCACI,gBAAgB,sBAChB,oBACJ,oCACI,gBAAgB,sBAChB,oBACJ,4CACI,gBAAgB,8BAChB,4BACJ,uCACI,gBAAgB,yBAChB,0BACD;KAIG;EACV,eAAe;;;;;EAKf,MAAM;;;;;EAKN,UAAU;;;;;EAKV,aAAa;;;;;;EAMb;;;;;EAKA;;KAGU;;;;;EAKV,MAAM;;;;;EAKN,UAAU;;;;;EAKV,aAAa;;;;;;EAMb;;;;;EAKA;;iBAGc,qCAAqC,iBAAiB;iBActD,qCAAqC,iBAAiB;iBAWtD,mCAAmC,eACjD,6BACA;KAQU,mBACV,+CACA,2CACA,sDACA,iDACA,4CACA,4CACA,oDACA;;;;;EAMA,gBAAgB,QAAQ;;EAExB,WAAW,kBAAkB;;EAE7B,sBAAsB,QAAQ;;;;;EAK9B,iBAAiB,QAAQ;;;;;EAKzB,YAAY,QAAQ;;;;;EAKpB,aAAa,QAAQ;;;;;EAKrB,qBAAqB,QAAQ;;EAE7B,gBAAgB,QAAQ;EACxB,MAAM;EACN,UAAU;EACV,aAAa;EACb,OAAO;EACP,OAAO;;;;;;;;iBASa,4BACpB,sCACA,kCACA,6CACA,wCACA,mCACA,mCACA,2CACA,sCACA,wBAAwB,iBAAiB,2BAEzC,OAAO,mBACL,uBACA,mBACA,8BACA,yBACA,oBACA,oBACA,4BACA,wBAEF;EAAW,iBAAiB;IAC3B,QACD,oBACE,iBACA,uBACA,mBACA,8BACA,yBACA,oBACA,oBACA,4BACA;KAqFQ,cACV,+CACA,2CACA,sDACA,iDACA,4CACA,4CACA,oDACA;;;;;EAMA,eAAe,QAAQ;;EAEvB,WAAW,kBAAkB;;EAE7B,sBAAsB,QAAQ;;;;;EAK9B,iBAAiB,QAAQ;;;;;EAKzB,YAAY,QAAQ;;;;;EAKpB,aAAa,QAAQ;;;;;EAKrB,qBAAqB,QAAQ;;EAE7B,gBAAgB,QAAQ;EACxB,MAAM;EACN,UAAU;EACV,aAAa;EACb,OAAO;EACP,OAAO;;;;;;;;iBASO,uBACd,sCACA,kCACA,6CACA,wCACA,mCACA,mCACA,2CACA,sCACA,wBAAwB,iBAAiB,2BAEzC,OAAO,cACL,uBACA,mBACA,8BACA,yBACA,oBACA,oBACA,4BACA,wBAEF;EAAW,iBAAiB;IAC3B,oBACD,iBACA,uBACA,mBACA,8BACA,yBACA,oBACA,oBACA,4BACA;KA4EU,0BACV,iCAAiC,2BACjC,+BAA+B,yBAAyB;EAExD,gBAAgB,QAAQ;EACxB;;;;;IAKE,eAAe;;IAEf,WAAW;;IAEX,sBAAsB;;;;;IAKtB,iBAAiB;;;;;IAKjB,YAAY;;;;;IAKZ,YAAY;;;;;IAKZ,oBAAoB;;IAEpB,eAAe;;EAEjB,MAAM;;iBAGQ,yBACd,yBACA,+BAA+B,eAE/B,aAAa,YAAY,YACvB,wBAAwB,iBACxB,oBAAoB,sBACrB,0BAA0B,UAAU"}
|
|
@@ -3,6 +3,13 @@ import "../programs/bubblegum.js";
|
|
|
3
3
|
import { SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS, SolanaError, combineCodec, fixDecoderSize, fixEncoderSize, getArrayDecoder, getArrayEncoder, getBytesDecoder, getBytesEncoder, getStructDecoder, getStructEncoder, getU32Decoder, getU32Encoder, getU64Decoder, getU64Encoder, getU8Decoder, getU8Encoder, transformEncoder } from "@solana/kit";
|
|
4
4
|
import { getAccountMetaFactory, getAddressFromResolvedInstructionAccount } from "@solana/program-client-core";
|
|
5
5
|
//#region src/generated/instructions/delegate.ts
|
|
6
|
+
/**
|
|
7
|
+
* This code was AUTOGENERATED using the Codama library.
|
|
8
|
+
* Please DO NOT EDIT THIS FILE, instead use visitors
|
|
9
|
+
* to add features, then rerun Codama to update it.
|
|
10
|
+
*
|
|
11
|
+
* @see https://github.com/codama-idl/codama
|
|
12
|
+
*/
|
|
6
13
|
const DELEGATE_DISCRIMINATOR = new Uint8Array([
|
|
7
14
|
90,
|
|
8
15
|
147,
|
|
@@ -42,6 +49,12 @@ function getDelegateInstructionDataDecoder() {
|
|
|
42
49
|
function getDelegateInstructionDataCodec() {
|
|
43
50
|
return combineCodec(getDelegateInstructionDataEncoder(), getDelegateInstructionDataDecoder());
|
|
44
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Sets (or clears) the delegate authority for a compressed NFT leaf.
|
|
54
|
+
*
|
|
55
|
+
* The delegate may transfer or burn the leaf on the owner's behalf.
|
|
56
|
+
* Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.
|
|
57
|
+
*/
|
|
45
58
|
async function getDelegateInstructionAsync(input, config) {
|
|
46
59
|
const programAddress = config?.programAddress ?? "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY";
|
|
47
60
|
const accounts = {
|
|
@@ -99,6 +112,12 @@ async function getDelegateInstructionAsync(input, config) {
|
|
|
99
112
|
programAddress
|
|
100
113
|
});
|
|
101
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Sets (or clears) the delegate authority for a compressed NFT leaf.
|
|
117
|
+
*
|
|
118
|
+
* The delegate may transfer or burn the leaf on the owner's behalf.
|
|
119
|
+
* Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.
|
|
120
|
+
*/
|
|
102
121
|
function getDelegateInstruction(input, config) {
|
|
103
122
|
const programAddress = config?.programAddress ?? "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY";
|
|
104
123
|
const accounts = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delegate.js","names":[],"sources":["../../../src/generated/instructions/delegate.ts"],"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 type {\n AccountMeta,\n AccountSignerMeta,\n Address,\n FixedSizeCodec,\n FixedSizeDecoder,\n FixedSizeEncoder,\n Instruction,\n InstructionWithAccounts,\n InstructionWithData,\n ReadonlyAccount,\n ReadonlySignerAccount,\n ReadonlyUint8Array,\n TransactionSigner,\n WritableAccount,\n} from \"@solana/kit\";\nimport type { ResolvedInstructionAccount } from \"@solana/program-client-core\";\nimport {\n combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU8Decoder,\n getU8Encoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n} from \"@solana/kit\";\nimport {\n getAccountMetaFactory,\n getAddressFromResolvedInstructionAccount,\n} from \"@solana/program-client-core\";\nimport { findTreeConfigPda } from \"../pdas/index.js\";\nimport { BUBBLEGUM_PROGRAM_ADDRESS } from \"../programs/index.js\";\n\nexport const DELEGATE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 90, 147, 75, 178, 85, 88, 4, 137,\n]);\n\nexport function getDelegateDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(DELEGATE_DISCRIMINATOR);\n}\n\nexport type DelegateInstruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountTreeAuthority extends string | AccountMeta<string> = string,\n TAccountLeafOwner extends string | AccountMeta<string> = string,\n TAccountPreviousLeafDelegate extends string | AccountMeta<string> = string,\n TAccountNewLeafDelegate extends string | AccountMeta<string> = string,\n TAccountMerkleTree extends string | AccountMeta<string> = string,\n TAccountLogWrapper extends string | AccountMeta<string> =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\",\n TAccountCompressionProgram extends string | AccountMeta<string> =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\",\n TAccountSystemProgram extends string | AccountMeta<string> =\n \"11111111111111111111111111111111\",\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountTreeAuthority extends string\n ? ReadonlyAccount<TAccountTreeAuthority>\n : TAccountTreeAuthority,\n TAccountLeafOwner extends string\n ? ReadonlySignerAccount<TAccountLeafOwner> &\n AccountSignerMeta<TAccountLeafOwner>\n : TAccountLeafOwner,\n TAccountPreviousLeafDelegate extends string\n ? ReadonlyAccount<TAccountPreviousLeafDelegate>\n : TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate extends string\n ? ReadonlyAccount<TAccountNewLeafDelegate>\n : TAccountNewLeafDelegate,\n TAccountMerkleTree extends string\n ? WritableAccount<TAccountMerkleTree>\n : TAccountMerkleTree,\n TAccountLogWrapper extends string\n ? ReadonlyAccount<TAccountLogWrapper>\n : TAccountLogWrapper,\n TAccountCompressionProgram extends string\n ? ReadonlyAccount<TAccountCompressionProgram>\n : TAccountCompressionProgram,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport interface DelegateInstructionData {\n discriminator: ReadonlyUint8Array;\n root: number[];\n dataHash: number[];\n creatorHash: number[];\n nonce: bigint;\n index: number;\n}\n\nexport interface DelegateInstructionDataArgs {\n root: number[];\n dataHash: number[];\n creatorHash: number[];\n nonce: number | bigint;\n index: number;\n}\n\nexport function getDelegateInstructionDataEncoder(): FixedSizeEncoder<DelegateInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n [\"discriminator\", fixEncoderSize(getBytesEncoder(), 8)],\n [\"root\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"dataHash\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"creatorHash\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"nonce\", getU64Encoder()],\n [\"index\", getU32Encoder()],\n ]),\n (value) => ({ ...value, discriminator: DELEGATE_DISCRIMINATOR }),\n );\n}\n\nexport function getDelegateInstructionDataDecoder(): FixedSizeDecoder<DelegateInstructionData> {\n return getStructDecoder([\n [\"discriminator\", fixDecoderSize(getBytesDecoder(), 8)],\n [\"root\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"dataHash\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"creatorHash\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"nonce\", getU64Decoder()],\n [\"index\", getU32Decoder()],\n ]);\n}\n\nexport function getDelegateInstructionDataCodec(): FixedSizeCodec<\n DelegateInstructionDataArgs,\n DelegateInstructionData\n> {\n return combineCodec(\n getDelegateInstructionDataEncoder(),\n getDelegateInstructionDataDecoder(),\n );\n}\n\nexport interface DelegateAsyncInput<\n TAccountTreeAuthority extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountPreviousLeafDelegate extends string = string,\n TAccountNewLeafDelegate extends string = string,\n TAccountMerkleTree extends string = string,\n TAccountLogWrapper extends string = string,\n TAccountCompressionProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> {\n treeAuthority?: Address<TAccountTreeAuthority>;\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;\n newLeafDelegate: Address<TAccountNewLeafDelegate>;\n merkleTree: Address<TAccountMerkleTree>;\n logWrapper?: Address<TAccountLogWrapper>;\n compressionProgram?: Address<TAccountCompressionProgram>;\n systemProgram?: Address<TAccountSystemProgram>;\n root: DelegateInstructionDataArgs[\"root\"];\n dataHash: DelegateInstructionDataArgs[\"dataHash\"];\n creatorHash: DelegateInstructionDataArgs[\"creatorHash\"];\n nonce: DelegateInstructionDataArgs[\"nonce\"];\n index: DelegateInstructionDataArgs[\"index\"];\n}\n\nexport async function getDelegateInstructionAsync<\n TAccountTreeAuthority extends string,\n TAccountLeafOwner extends string,\n TAccountPreviousLeafDelegate extends string,\n TAccountNewLeafDelegate extends string,\n TAccountMerkleTree extends string,\n TAccountLogWrapper extends string,\n TAccountCompressionProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DelegateAsyncInput<\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress },\n): Promise<\n DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n treeAuthority: { value: input.treeAuthority ?? null, isWritable: false },\n leafOwner: { value: input.leafOwner ?? null, isWritable: false },\n previousLeafDelegate: {\n value: input.previousLeafDelegate ?? null,\n isWritable: false,\n },\n newLeafDelegate: {\n value: input.newLeafDelegate ?? null,\n isWritable: false,\n },\n merkleTree: { value: input.merkleTree ?? null, isWritable: true },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n compressionProgram: {\n value: input.compressionProgram ?? null,\n isWritable: false,\n },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treeAuthority.value) {\n accounts.treeAuthority.value = await findTreeConfigPda({\n merkleTree: getAddressFromResolvedInstructionAccount(\n \"merkleTree\",\n accounts.merkleTree.value,\n ),\n });\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n if (!accounts.compressionProgram.value) {\n accounts.compressionProgram.value =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\" as Address<\"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\">;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"treeAuthority\", accounts.treeAuthority),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"previousLeafDelegate\", accounts.previousLeafDelegate),\n getAccountMeta(\"newLeafDelegate\", accounts.newLeafDelegate),\n getAccountMeta(\"merkleTree\", accounts.merkleTree),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n getAccountMeta(\"compressionProgram\", accounts.compressionProgram),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n ],\n data: getDelegateInstructionDataEncoder().encode(\n args as DelegateInstructionDataArgs,\n ),\n programAddress,\n } as DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >);\n}\n\nexport interface DelegateInput<\n TAccountTreeAuthority extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountPreviousLeafDelegate extends string = string,\n TAccountNewLeafDelegate extends string = string,\n TAccountMerkleTree extends string = string,\n TAccountLogWrapper extends string = string,\n TAccountCompressionProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> {\n treeAuthority: Address<TAccountTreeAuthority>;\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;\n newLeafDelegate: Address<TAccountNewLeafDelegate>;\n merkleTree: Address<TAccountMerkleTree>;\n logWrapper?: Address<TAccountLogWrapper>;\n compressionProgram?: Address<TAccountCompressionProgram>;\n systemProgram?: Address<TAccountSystemProgram>;\n root: DelegateInstructionDataArgs[\"root\"];\n dataHash: DelegateInstructionDataArgs[\"dataHash\"];\n creatorHash: DelegateInstructionDataArgs[\"creatorHash\"];\n nonce: DelegateInstructionDataArgs[\"nonce\"];\n index: DelegateInstructionDataArgs[\"index\"];\n}\n\nexport function getDelegateInstruction<\n TAccountTreeAuthority extends string,\n TAccountLeafOwner extends string,\n TAccountPreviousLeafDelegate extends string,\n TAccountNewLeafDelegate extends string,\n TAccountMerkleTree extends string,\n TAccountLogWrapper extends string,\n TAccountCompressionProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DelegateInput<\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress },\n): DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n treeAuthority: { value: input.treeAuthority ?? null, isWritable: false },\n leafOwner: { value: input.leafOwner ?? null, isWritable: false },\n previousLeafDelegate: {\n value: input.previousLeafDelegate ?? null,\n isWritable: false,\n },\n newLeafDelegate: {\n value: input.newLeafDelegate ?? null,\n isWritable: false,\n },\n merkleTree: { value: input.merkleTree ?? null, isWritable: true },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n compressionProgram: {\n value: input.compressionProgram ?? null,\n isWritable: false,\n },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n if (!accounts.compressionProgram.value) {\n accounts.compressionProgram.value =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\" as Address<\"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\">;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"treeAuthority\", accounts.treeAuthority),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"previousLeafDelegate\", accounts.previousLeafDelegate),\n getAccountMeta(\"newLeafDelegate\", accounts.newLeafDelegate),\n getAccountMeta(\"merkleTree\", accounts.merkleTree),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n getAccountMeta(\"compressionProgram\", accounts.compressionProgram),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n ],\n data: getDelegateInstructionDataEncoder().encode(\n args as DelegateInstructionDataArgs,\n ),\n programAddress,\n } as DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >);\n}\n\nexport interface ParsedDelegateInstruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> {\n programAddress: Address<TProgram>;\n accounts: {\n treeAuthority: TAccountMetas[0];\n leafOwner: TAccountMetas[1];\n previousLeafDelegate: TAccountMetas[2];\n newLeafDelegate: TAccountMetas[3];\n merkleTree: TAccountMetas[4];\n logWrapper: TAccountMetas[5];\n compressionProgram: TAccountMetas[6];\n systemProgram: TAccountMetas[7];\n };\n data: DelegateInstructionData;\n}\n\nexport function parseDelegateInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedDelegateInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 8) {\n throw new SolanaError(\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 8,\n },\n );\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n treeAuthority: getNextAccount(),\n leafOwner: getNextAccount(),\n previousLeafDelegate: getNextAccount(),\n newLeafDelegate: getNextAccount(),\n merkleTree: getNextAccount(),\n logWrapper: getNextAccount(),\n compressionProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getDelegateInstructionDataDecoder().decode(instruction.data),\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"delegate.js","names":[],"sources":["../../../src/generated/instructions/delegate.ts"],"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 combineCodec,\n fixDecoderSize,\n fixEncoderSize,\n getArrayDecoder,\n getArrayEncoder,\n getBytesDecoder,\n getBytesEncoder,\n getStructDecoder,\n getStructEncoder,\n getU32Decoder,\n getU32Encoder,\n getU64Decoder,\n getU64Encoder,\n getU8Decoder,\n getU8Encoder,\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n SolanaError,\n transformEncoder,\n type AccountMeta,\n type AccountSignerMeta,\n type Address,\n type FixedSizeCodec,\n type FixedSizeDecoder,\n type FixedSizeEncoder,\n type Instruction,\n type InstructionWithAccounts,\n type InstructionWithData,\n type ReadonlyAccount,\n type ReadonlySignerAccount,\n type ReadonlyUint8Array,\n type TransactionSigner,\n type WritableAccount,\n} from \"@solana/kit\";\nimport {\n getAccountMetaFactory,\n getAddressFromResolvedInstructionAccount,\n type ResolvedInstructionAccount,\n} from \"@solana/program-client-core\";\nimport { findTreeConfigPda } from \"../pdas/index.js\";\nimport { BUBBLEGUM_PROGRAM_ADDRESS } from \"../programs/index.js\";\n\nexport const DELEGATE_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([\n 90, 147, 75, 178, 85, 88, 4, 137,\n]);\n\nexport function getDelegateDiscriminatorBytes(): ReadonlyUint8Array {\n return fixEncoderSize(getBytesEncoder(), 8).encode(DELEGATE_DISCRIMINATOR);\n}\n\nexport type DelegateInstruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountTreeAuthority extends string | AccountMeta<string> = string,\n TAccountLeafOwner extends string | AccountMeta<string> = string,\n TAccountPreviousLeafDelegate extends string | AccountMeta<string> = string,\n TAccountNewLeafDelegate extends string | AccountMeta<string> = string,\n TAccountMerkleTree extends string | AccountMeta<string> = string,\n TAccountLogWrapper extends string | AccountMeta<string> =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\",\n TAccountCompressionProgram extends string | AccountMeta<string> =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\",\n TAccountSystemProgram extends string | AccountMeta<string> =\n \"11111111111111111111111111111111\",\n TRemainingAccounts extends readonly AccountMeta<string>[] = [],\n> = Instruction<TProgram> &\n InstructionWithData<ReadonlyUint8Array> &\n InstructionWithAccounts<\n [\n TAccountTreeAuthority extends string\n ? ReadonlyAccount<TAccountTreeAuthority>\n : TAccountTreeAuthority,\n TAccountLeafOwner extends string\n ? ReadonlySignerAccount<TAccountLeafOwner> &\n AccountSignerMeta<TAccountLeafOwner>\n : TAccountLeafOwner,\n TAccountPreviousLeafDelegate extends string\n ? ReadonlyAccount<TAccountPreviousLeafDelegate>\n : TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate extends string\n ? ReadonlyAccount<TAccountNewLeafDelegate>\n : TAccountNewLeafDelegate,\n TAccountMerkleTree extends string\n ? WritableAccount<TAccountMerkleTree>\n : TAccountMerkleTree,\n TAccountLogWrapper extends string\n ? ReadonlyAccount<TAccountLogWrapper>\n : TAccountLogWrapper,\n TAccountCompressionProgram extends string\n ? ReadonlyAccount<TAccountCompressionProgram>\n : TAccountCompressionProgram,\n TAccountSystemProgram extends string\n ? ReadonlyAccount<TAccountSystemProgram>\n : TAccountSystemProgram,\n ...TRemainingAccounts,\n ]\n >;\n\nexport type DelegateInstructionData = {\n discriminator: ReadonlyUint8Array;\n /**\n * Current Merkle root of the tree, used together with the Merkle proof\n * (passed as remaining accounts) to verify the leaf being operated on.\n */\n root: Array<number>;\n /**\n * Keccak256 hash of the leaf's metadata, used together with `root` to\n * verify the leaf before it is modified.\n */\n dataHash: Array<number>;\n /**\n * Keccak256 hash of the leaf's creators array, used together with\n * `root` to verify the leaf before it is modified.\n */\n creatorHash: Array<number>;\n /**\n * Tree-scoped nonce identifying the leaf, equal to the tree's\n * `numMinted` at the time the leaf was minted. Combined with the tree\n * address to derive the leaf's asset id.\n */\n nonce: bigint;\n /**\n * Position of the leaf within the Merkle tree, used with the Merkle\n * proof to locate and verify the leaf.\n */\n index: number;\n};\n\nexport type DelegateInstructionDataArgs = {\n /**\n * Current Merkle root of the tree, used together with the Merkle proof\n * (passed as remaining accounts) to verify the leaf being operated on.\n */\n root: Array<number>;\n /**\n * Keccak256 hash of the leaf's metadata, used together with `root` to\n * verify the leaf before it is modified.\n */\n dataHash: Array<number>;\n /**\n * Keccak256 hash of the leaf's creators array, used together with\n * `root` to verify the leaf before it is modified.\n */\n creatorHash: Array<number>;\n /**\n * Tree-scoped nonce identifying the leaf, equal to the tree's\n * `numMinted` at the time the leaf was minted. Combined with the tree\n * address to derive the leaf's asset id.\n */\n nonce: number | bigint;\n /**\n * Position of the leaf within the Merkle tree, used with the Merkle\n * proof to locate and verify the leaf.\n */\n index: number;\n};\n\nexport function getDelegateInstructionDataEncoder(): FixedSizeEncoder<DelegateInstructionDataArgs> {\n return transformEncoder(\n getStructEncoder([\n [\"discriminator\", fixEncoderSize(getBytesEncoder(), 8)],\n [\"root\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"dataHash\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"creatorHash\", getArrayEncoder(getU8Encoder(), { size: 32 })],\n [\"nonce\", getU64Encoder()],\n [\"index\", getU32Encoder()],\n ]),\n (value) => ({ ...value, discriminator: DELEGATE_DISCRIMINATOR }),\n );\n}\n\nexport function getDelegateInstructionDataDecoder(): FixedSizeDecoder<DelegateInstructionData> {\n return getStructDecoder([\n [\"discriminator\", fixDecoderSize(getBytesDecoder(), 8)],\n [\"root\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"dataHash\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"creatorHash\", getArrayDecoder(getU8Decoder(), { size: 32 })],\n [\"nonce\", getU64Decoder()],\n [\"index\", getU32Decoder()],\n ]);\n}\n\nexport function getDelegateInstructionDataCodec(): FixedSizeCodec<\n DelegateInstructionDataArgs,\n DelegateInstructionData\n> {\n return combineCodec(\n getDelegateInstructionDataEncoder(),\n getDelegateInstructionDataDecoder(),\n );\n}\n\nexport type DelegateAsyncInput<\n TAccountTreeAuthority extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountPreviousLeafDelegate extends string = string,\n TAccountNewLeafDelegate extends string = string,\n TAccountMerkleTree extends string = string,\n TAccountLogWrapper extends string = string,\n TAccountCompressionProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n /**\n * The tree's `TreeConfig` PDA, which stores its configuration and acts\n * as the tree's authority for CPIs into the compression program.\n */\n treeAuthority?: Address<TAccountTreeAuthority>;\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n /** The leaf's delegate before this instruction runs. */\n previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;\n /**\n * Delegate to set on the leaf; pass the leaf owner to clear an\n * existing delegate.\n */\n newLeafDelegate: Address<TAccountNewLeafDelegate>;\n /**\n * The concurrent Merkle tree account storing the compressed leaves,\n * owned by the account compression program.\n */\n merkleTree: Address<TAccountMerkleTree>;\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper?: Address<TAccountLogWrapper>;\n /**\n * The SPL/MPL Account Compression program that owns and manages the\n * Merkle tree.\n */\n compressionProgram?: Address<TAccountCompressionProgram>;\n /** The Solana System program. */\n systemProgram?: Address<TAccountSystemProgram>;\n root: DelegateInstructionDataArgs[\"root\"];\n dataHash: DelegateInstructionDataArgs[\"dataHash\"];\n creatorHash: DelegateInstructionDataArgs[\"creatorHash\"];\n nonce: DelegateInstructionDataArgs[\"nonce\"];\n index: DelegateInstructionDataArgs[\"index\"];\n};\n\n/**\n * Sets (or clears) the delegate authority for a compressed NFT leaf.\n *\n * The delegate may transfer or burn the leaf on the owner's behalf.\n * Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.\n */\nexport async function getDelegateInstructionAsync<\n TAccountTreeAuthority extends string,\n TAccountLeafOwner extends string,\n TAccountPreviousLeafDelegate extends string,\n TAccountNewLeafDelegate extends string,\n TAccountMerkleTree extends string,\n TAccountLogWrapper extends string,\n TAccountCompressionProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DelegateAsyncInput<\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress },\n): Promise<\n DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n treeAuthority: { value: input.treeAuthority ?? null, isWritable: false },\n leafOwner: { value: input.leafOwner ?? null, isWritable: false },\n previousLeafDelegate: {\n value: input.previousLeafDelegate ?? null,\n isWritable: false,\n },\n newLeafDelegate: {\n value: input.newLeafDelegate ?? null,\n isWritable: false,\n },\n merkleTree: { value: input.merkleTree ?? null, isWritable: true },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n compressionProgram: {\n value: input.compressionProgram ?? null,\n isWritable: false,\n },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.treeAuthority.value) {\n accounts.treeAuthority.value = await findTreeConfigPda({\n merkleTree: getAddressFromResolvedInstructionAccount(\n \"merkleTree\",\n accounts.merkleTree.value,\n ),\n });\n }\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n if (!accounts.compressionProgram.value) {\n accounts.compressionProgram.value =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\" as Address<\"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\">;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"treeAuthority\", accounts.treeAuthority),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"previousLeafDelegate\", accounts.previousLeafDelegate),\n getAccountMeta(\"newLeafDelegate\", accounts.newLeafDelegate),\n getAccountMeta(\"merkleTree\", accounts.merkleTree),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n getAccountMeta(\"compressionProgram\", accounts.compressionProgram),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n ],\n data: getDelegateInstructionDataEncoder().encode(\n args as DelegateInstructionDataArgs,\n ),\n programAddress,\n } as DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >);\n}\n\nexport type DelegateInput<\n TAccountTreeAuthority extends string = string,\n TAccountLeafOwner extends string = string,\n TAccountPreviousLeafDelegate extends string = string,\n TAccountNewLeafDelegate extends string = string,\n TAccountMerkleTree extends string = string,\n TAccountLogWrapper extends string = string,\n TAccountCompressionProgram extends string = string,\n TAccountSystemProgram extends string = string,\n> = {\n /**\n * The tree's `TreeConfig` PDA, which stores its configuration and acts\n * as the tree's authority for CPIs into the compression program.\n */\n treeAuthority: Address<TAccountTreeAuthority>;\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TransactionSigner<TAccountLeafOwner>;\n /** The leaf's delegate before this instruction runs. */\n previousLeafDelegate: Address<TAccountPreviousLeafDelegate>;\n /**\n * Delegate to set on the leaf; pass the leaf owner to clear an\n * existing delegate.\n */\n newLeafDelegate: Address<TAccountNewLeafDelegate>;\n /**\n * The concurrent Merkle tree account storing the compressed leaves,\n * owned by the account compression program.\n */\n merkleTree: Address<TAccountMerkleTree>;\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper?: Address<TAccountLogWrapper>;\n /**\n * The SPL/MPL Account Compression program that owns and manages the\n * Merkle tree.\n */\n compressionProgram?: Address<TAccountCompressionProgram>;\n /** The Solana System program. */\n systemProgram?: Address<TAccountSystemProgram>;\n root: DelegateInstructionDataArgs[\"root\"];\n dataHash: DelegateInstructionDataArgs[\"dataHash\"];\n creatorHash: DelegateInstructionDataArgs[\"creatorHash\"];\n nonce: DelegateInstructionDataArgs[\"nonce\"];\n index: DelegateInstructionDataArgs[\"index\"];\n};\n\n/**\n * Sets (or clears) the delegate authority for a compressed NFT leaf.\n *\n * The delegate may transfer or burn the leaf on the owner's behalf.\n * Pass the leaf owner as `newLeafDelegate` to clear an existing delegate.\n */\nexport function getDelegateInstruction<\n TAccountTreeAuthority extends string,\n TAccountLeafOwner extends string,\n TAccountPreviousLeafDelegate extends string,\n TAccountNewLeafDelegate extends string,\n TAccountMerkleTree extends string,\n TAccountLogWrapper extends string,\n TAccountCompressionProgram extends string,\n TAccountSystemProgram extends string,\n TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n>(\n input: DelegateInput<\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >,\n config?: { programAddress?: TProgramAddress },\n): DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n> {\n // Program address.\n const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;\n\n // Original accounts.\n const originalAccounts = {\n treeAuthority: { value: input.treeAuthority ?? null, isWritable: false },\n leafOwner: { value: input.leafOwner ?? null, isWritable: false },\n previousLeafDelegate: {\n value: input.previousLeafDelegate ?? null,\n isWritable: false,\n },\n newLeafDelegate: {\n value: input.newLeafDelegate ?? null,\n isWritable: false,\n },\n merkleTree: { value: input.merkleTree ?? null, isWritable: true },\n logWrapper: { value: input.logWrapper ?? null, isWritable: false },\n compressionProgram: {\n value: input.compressionProgram ?? null,\n isWritable: false,\n },\n systemProgram: { value: input.systemProgram ?? null, isWritable: false },\n };\n const accounts = originalAccounts as Record<\n keyof typeof originalAccounts,\n ResolvedInstructionAccount\n >;\n\n // Original args.\n const args = { ...input };\n\n // Resolve default values.\n if (!accounts.logWrapper.value) {\n accounts.logWrapper.value =\n \"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\" as Address<\"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV\">;\n }\n if (!accounts.compressionProgram.value) {\n accounts.compressionProgram.value =\n \"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\" as Address<\"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK\">;\n }\n if (!accounts.systemProgram.value) {\n accounts.systemProgram.value =\n \"11111111111111111111111111111111\" as Address<\"11111111111111111111111111111111\">;\n }\n\n const getAccountMeta = getAccountMetaFactory(programAddress, \"programId\");\n return Object.freeze({\n accounts: [\n getAccountMeta(\"treeAuthority\", accounts.treeAuthority),\n getAccountMeta(\"leafOwner\", accounts.leafOwner),\n getAccountMeta(\"previousLeafDelegate\", accounts.previousLeafDelegate),\n getAccountMeta(\"newLeafDelegate\", accounts.newLeafDelegate),\n getAccountMeta(\"merkleTree\", accounts.merkleTree),\n getAccountMeta(\"logWrapper\", accounts.logWrapper),\n getAccountMeta(\"compressionProgram\", accounts.compressionProgram),\n getAccountMeta(\"systemProgram\", accounts.systemProgram),\n ],\n data: getDelegateInstructionDataEncoder().encode(\n args as DelegateInstructionDataArgs,\n ),\n programAddress,\n } as DelegateInstruction<\n TProgramAddress,\n TAccountTreeAuthority,\n TAccountLeafOwner,\n TAccountPreviousLeafDelegate,\n TAccountNewLeafDelegate,\n TAccountMerkleTree,\n TAccountLogWrapper,\n TAccountCompressionProgram,\n TAccountSystemProgram\n >);\n}\n\nexport type ParsedDelegateInstruction<\n TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,\n TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],\n> = {\n programAddress: Address<TProgram>;\n accounts: {\n /**\n * The tree's `TreeConfig` PDA, which stores its configuration and acts\n * as the tree's authority for CPIs into the compression program.\n */\n treeAuthority: TAccountMetas[0];\n /** Owner of the compressed NFT leaf being operated on. */\n leafOwner: TAccountMetas[1];\n /** The leaf's delegate before this instruction runs. */\n previousLeafDelegate: TAccountMetas[2];\n /**\n * Delegate to set on the leaf; pass the leaf owner to clear an\n * existing delegate.\n */\n newLeafDelegate: TAccountMetas[3];\n /**\n * The concurrent Merkle tree account storing the compressed leaves,\n * owned by the account compression program.\n */\n merkleTree: TAccountMetas[4];\n /**\n * The SPL/MPL Noop program, used to log leaf data so off-chain indexers\n * can reconstruct the tree.\n */\n logWrapper: TAccountMetas[5];\n /**\n * The SPL/MPL Account Compression program that owns and manages the\n * Merkle tree.\n */\n compressionProgram: TAccountMetas[6];\n /** The Solana System program. */\n systemProgram: TAccountMetas[7];\n };\n data: DelegateInstructionData;\n};\n\nexport function parseDelegateInstruction<\n TProgram extends string,\n TAccountMetas extends readonly AccountMeta[],\n>(\n instruction: Instruction<TProgram> &\n InstructionWithAccounts<TAccountMetas> &\n InstructionWithData<ReadonlyUint8Array>,\n): ParsedDelegateInstruction<TProgram, TAccountMetas> {\n if (instruction.accounts.length < 8) {\n throw new SolanaError(\n SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,\n {\n actualAccountMetas: instruction.accounts.length,\n expectedAccountMetas: 8,\n },\n );\n }\n let accountIndex = 0;\n const getNextAccount = () => {\n const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;\n accountIndex += 1;\n return accountMeta;\n };\n return {\n programAddress: instruction.programAddress,\n accounts: {\n treeAuthority: getNextAccount(),\n leafOwner: getNextAccount(),\n previousLeafDelegate: getNextAccount(),\n newLeafDelegate: getNextAccount(),\n merkleTree: getNextAccount(),\n logWrapper: getNextAccount(),\n compressionProgram: getNextAccount(),\n systemProgram: getNextAccount(),\n },\n data: getDelegateInstructionDataDecoder().decode(instruction.data),\n };\n}\n"],"mappings":"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"}
|