@macalinao/clients-mpl-bubblegum 0.0.0 → 0.2.0

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.
Files changed (313) hide show
  1. package/README.md +15 -1
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/generated/accounts/index.d.ts +10 -0
  4. package/dist/generated/accounts/index.d.ts.map +1 -0
  5. package/dist/generated/accounts/index.js +10 -0
  6. package/dist/generated/accounts/index.js.map +1 -0
  7. package/dist/generated/accounts/treeConfig.d.ts +44 -0
  8. package/dist/generated/accounts/treeConfig.d.ts.map +1 -0
  9. package/dist/generated/accounts/treeConfig.js +67 -0
  10. package/dist/generated/accounts/treeConfig.js.map +1 -0
  11. package/dist/generated/accounts/voucher.d.ts +36 -0
  12. package/dist/generated/accounts/voucher.d.ts.map +1 -0
  13. package/dist/generated/accounts/voucher.js +59 -0
  14. package/dist/generated/accounts/voucher.js.map +1 -0
  15. package/dist/generated/errors/bubblegum.d.ts +134 -0
  16. package/dist/generated/errors/bubblegum.d.ts.map +1 -0
  17. package/dist/generated/errors/bubblegum.js +195 -0
  18. package/dist/generated/errors/bubblegum.js.map +1 -0
  19. package/dist/generated/errors/index.d.ts +9 -0
  20. package/dist/generated/errors/index.d.ts.map +1 -0
  21. package/dist/generated/errors/index.js +9 -0
  22. package/dist/generated/errors/index.js.map +1 -0
  23. package/dist/generated/index.d.ts +13 -0
  24. package/dist/generated/index.d.ts.map +1 -0
  25. package/dist/generated/index.js +13 -0
  26. package/dist/generated/index.js.map +1 -0
  27. package/dist/generated/instructions/burn.d.ts +71 -0
  28. package/dist/generated/instructions/burn.d.ts.map +1 -0
  29. package/dist/generated/instructions/burn.js +106 -0
  30. package/dist/generated/instructions/burn.js.map +1 -0
  31. package/dist/generated/instructions/burnV2.d.ts +102 -0
  32. package/dist/generated/instructions/burnV2.d.ts.map +1 -0
  33. package/dist/generated/instructions/burnV2.js +144 -0
  34. package/dist/generated/instructions/burnV2.js.map +1 -0
  35. package/dist/generated/instructions/cancelRedeem.d.ts +59 -0
  36. package/dist/generated/instructions/cancelRedeem.d.ts.map +1 -0
  37. package/dist/generated/instructions/cancelRedeem.js +98 -0
  38. package/dist/generated/instructions/cancelRedeem.js.map +1 -0
  39. package/dist/generated/instructions/closeTreeV2.d.ts +65 -0
  40. package/dist/generated/instructions/closeTreeV2.d.ts.map +1 -0
  41. package/dist/generated/instructions/closeTreeV2.js +92 -0
  42. package/dist/generated/instructions/closeTreeV2.js.map +1 -0
  43. package/dist/generated/instructions/collectV2.d.ts +40 -0
  44. package/dist/generated/instructions/collectV2.d.ts.map +1 -0
  45. package/dist/generated/instructions/collectV2.js +69 -0
  46. package/dist/generated/instructions/collectV2.js.map +1 -0
  47. package/dist/generated/instructions/compress.d.ts +76 -0
  48. package/dist/generated/instructions/compress.d.ts.map +1 -0
  49. package/dist/generated/instructions/compress.js +124 -0
  50. package/dist/generated/instructions/compress.js.map +1 -0
  51. package/dist/generated/instructions/createTree.d.ts +65 -0
  52. package/dist/generated/instructions/createTree.d.ts.map +1 -0
  53. package/dist/generated/instructions/createTree.js +102 -0
  54. package/dist/generated/instructions/createTree.js.map +1 -0
  55. package/dist/generated/instructions/createTreeV2.d.ts +67 -0
  56. package/dist/generated/instructions/createTreeV2.d.ts.map +1 -0
  57. package/dist/generated/instructions/createTreeV2.js +108 -0
  58. package/dist/generated/instructions/createTreeV2.js.map +1 -0
  59. package/dist/generated/instructions/decompressV1.d.ts +78 -0
  60. package/dist/generated/instructions/decompressV1.d.ts.map +1 -0
  61. package/dist/generated/instructions/decompressV1.js +136 -0
  62. package/dist/generated/instructions/decompressV1.js.map +1 -0
  63. package/dist/generated/instructions/delegate.d.ts +74 -0
  64. package/dist/generated/instructions/delegate.d.ts.map +1 -0
  65. package/dist/generated/instructions/delegate.js +115 -0
  66. package/dist/generated/instructions/delegate.js.map +1 -0
  67. package/dist/generated/instructions/delegateAndFreezeV2.d.ts +90 -0
  68. package/dist/generated/instructions/delegateAndFreezeV2.d.ts.map +1 -0
  69. package/dist/generated/instructions/delegateAndFreezeV2.js +143 -0
  70. package/dist/generated/instructions/delegateAndFreezeV2.js.map +1 -0
  71. package/dist/generated/instructions/delegateV2.d.ts +90 -0
  72. package/dist/generated/instructions/delegateV2.d.ts.map +1 -0
  73. package/dist/generated/instructions/delegateV2.js +142 -0
  74. package/dist/generated/instructions/delegateV2.js.map +1 -0
  75. package/dist/generated/instructions/freezeV2.d.ts +94 -0
  76. package/dist/generated/instructions/freezeV2.d.ts.map +1 -0
  77. package/dist/generated/instructions/freezeV2.js +131 -0
  78. package/dist/generated/instructions/freezeV2.js.map +1 -0
  79. package/dist/generated/instructions/index.d.ts +44 -0
  80. package/dist/generated/instructions/index.d.ts.map +1 -0
  81. package/dist/generated/instructions/index.js +44 -0
  82. package/dist/generated/instructions/index.js.map +1 -0
  83. package/dist/generated/instructions/mintToCollectionV1.d.ts +95 -0
  84. package/dist/generated/instructions/mintToCollectionV1.d.ts.map +1 -0
  85. package/dist/generated/instructions/mintToCollectionV1.js +146 -0
  86. package/dist/generated/instructions/mintToCollectionV1.js.map +1 -0
  87. package/dist/generated/instructions/mintV1.d.ts +66 -0
  88. package/dist/generated/instructions/mintV1.d.ts.map +1 -0
  89. package/dist/generated/instructions/mintV1.js +105 -0
  90. package/dist/generated/instructions/mintV1.js.map +1 -0
  91. package/dist/generated/instructions/mintV2.d.ts +88 -0
  92. package/dist/generated/instructions/mintV2.d.ts.map +1 -0
  93. package/dist/generated/instructions/mintV2.js +143 -0
  94. package/dist/generated/instructions/mintV2.js.map +1 -0
  95. package/dist/generated/instructions/redeem.d.ts +74 -0
  96. package/dist/generated/instructions/redeem.d.ts.map +1 -0
  97. package/dist/generated/instructions/redeem.js +109 -0
  98. package/dist/generated/instructions/redeem.js.map +1 -0
  99. package/dist/generated/instructions/setAndVerifyCollection.d.ts +123 -0
  100. package/dist/generated/instructions/setAndVerifyCollection.d.ts.map +1 -0
  101. package/dist/generated/instructions/setAndVerifyCollection.js +158 -0
  102. package/dist/generated/instructions/setAndVerifyCollection.js.map +1 -0
  103. package/dist/generated/instructions/setCollectionV2.d.ts +116 -0
  104. package/dist/generated/instructions/setCollectionV2.d.ts.map +1 -0
  105. package/dist/generated/instructions/setCollectionV2.js +153 -0
  106. package/dist/generated/instructions/setCollectionV2.js.map +1 -0
  107. package/dist/generated/instructions/setDecompressableState.d.ts +45 -0
  108. package/dist/generated/instructions/setDecompressableState.d.ts.map +1 -0
  109. package/dist/generated/instructions/setDecompressableState.js +77 -0
  110. package/dist/generated/instructions/setDecompressableState.js.map +1 -0
  111. package/dist/generated/instructions/setDecompressibleState.d.ts +45 -0
  112. package/dist/generated/instructions/setDecompressibleState.d.ts.map +1 -0
  113. package/dist/generated/instructions/setDecompressibleState.js +77 -0
  114. package/dist/generated/instructions/setDecompressibleState.js.map +1 -0
  115. package/dist/generated/instructions/setNonTransferableV2.d.ts +96 -0
  116. package/dist/generated/instructions/setNonTransferableV2.d.ts.map +1 -0
  117. package/dist/generated/instructions/setNonTransferableV2.js +132 -0
  118. package/dist/generated/instructions/setNonTransferableV2.js.map +1 -0
  119. package/dist/generated/instructions/setTreeDelegate.d.ts +49 -0
  120. package/dist/generated/instructions/setTreeDelegate.d.ts.map +1 -0
  121. package/dist/generated/instructions/setTreeDelegate.js +84 -0
  122. package/dist/generated/instructions/setTreeDelegate.js.map +1 -0
  123. package/dist/generated/instructions/thawAndRevokeV2.d.ts +85 -0
  124. package/dist/generated/instructions/thawAndRevokeV2.d.ts.map +1 -0
  125. package/dist/generated/instructions/thawAndRevokeV2.js +131 -0
  126. package/dist/generated/instructions/thawAndRevokeV2.js.map +1 -0
  127. package/dist/generated/instructions/thawV2.d.ts +94 -0
  128. package/dist/generated/instructions/thawV2.d.ts.map +1 -0
  129. package/dist/generated/instructions/thawV2.js +131 -0
  130. package/dist/generated/instructions/thawV2.js.map +1 -0
  131. package/dist/generated/instructions/transfer.d.ts +74 -0
  132. package/dist/generated/instructions/transfer.d.ts.map +1 -0
  133. package/dist/generated/instructions/transfer.js +109 -0
  134. package/dist/generated/instructions/transfer.js.map +1 -0
  135. package/dist/generated/instructions/transferV2.d.ts +99 -0
  136. package/dist/generated/instructions/transferV2.d.ts.map +1 -0
  137. package/dist/generated/instructions/transferV2.js +134 -0
  138. package/dist/generated/instructions/transferV2.js.map +1 -0
  139. package/dist/generated/instructions/unverifyCollection.d.ts +120 -0
  140. package/dist/generated/instructions/unverifyCollection.d.ts.map +1 -0
  141. package/dist/generated/instructions/unverifyCollection.js +153 -0
  142. package/dist/generated/instructions/unverifyCollection.js.map +1 -0
  143. package/dist/generated/instructions/unverifyCreator.d.ts +81 -0
  144. package/dist/generated/instructions/unverifyCreator.d.ts.map +1 -0
  145. package/dist/generated/instructions/unverifyCreator.js +113 -0
  146. package/dist/generated/instructions/unverifyCreator.js.map +1 -0
  147. package/dist/generated/instructions/unverifyCreatorV2.d.ts +85 -0
  148. package/dist/generated/instructions/unverifyCreatorV2.d.ts.map +1 -0
  149. package/dist/generated/instructions/unverifyCreatorV2.js +125 -0
  150. package/dist/generated/instructions/unverifyCreatorV2.js.map +1 -0
  151. package/dist/generated/instructions/updateAssetDataV2.d.ts +101 -0
  152. package/dist/generated/instructions/updateAssetDataV2.d.ts.map +1 -0
  153. package/dist/generated/instructions/updateAssetDataV2.js +143 -0
  154. package/dist/generated/instructions/updateAssetDataV2.js.map +1 -0
  155. package/dist/generated/instructions/updateMetadata.d.ts +102 -0
  156. package/dist/generated/instructions/updateMetadata.d.ts.map +1 -0
  157. package/dist/generated/instructions/updateMetadata.js +142 -0
  158. package/dist/generated/instructions/updateMetadata.js.map +1 -0
  159. package/dist/generated/instructions/updateMetadataV2.d.ts +97 -0
  160. package/dist/generated/instructions/updateMetadataV2.d.ts.map +1 -0
  161. package/dist/generated/instructions/updateMetadataV2.js +130 -0
  162. package/dist/generated/instructions/updateMetadataV2.js.map +1 -0
  163. package/dist/generated/instructions/verifyCollection.d.ts +120 -0
  164. package/dist/generated/instructions/verifyCollection.d.ts.map +1 -0
  165. package/dist/generated/instructions/verifyCollection.js +153 -0
  166. package/dist/generated/instructions/verifyCollection.js.map +1 -0
  167. package/dist/generated/instructions/verifyCreator.d.ts +81 -0
  168. package/dist/generated/instructions/verifyCreator.d.ts.map +1 -0
  169. package/dist/generated/instructions/verifyCreator.js +115 -0
  170. package/dist/generated/instructions/verifyCreator.js.map +1 -0
  171. package/dist/generated/instructions/verifyCreatorV2.d.ts +85 -0
  172. package/dist/generated/instructions/verifyCreatorV2.d.ts.map +1 -0
  173. package/dist/generated/instructions/verifyCreatorV2.js +125 -0
  174. package/dist/generated/instructions/verifyCreatorV2.js.map +1 -0
  175. package/dist/generated/programs/bubblegum.d.ts +189 -0
  176. package/dist/generated/programs/bubblegum.d.ts.map +1 -0
  177. package/dist/generated/programs/bubblegum.js +566 -0
  178. package/dist/generated/programs/bubblegum.js.map +1 -0
  179. package/dist/generated/programs/index.d.ts +9 -0
  180. package/dist/generated/programs/index.d.ts.map +1 -0
  181. package/dist/generated/programs/index.js +9 -0
  182. package/dist/generated/programs/index.js.map +1 -0
  183. package/dist/generated/types/assetDataSchema.d.ts +18 -0
  184. package/dist/generated/types/assetDataSchema.d.ts.map +1 -0
  185. package/dist/generated/types/assetDataSchema.js +24 -0
  186. package/dist/generated/types/assetDataSchema.js.map +1 -0
  187. package/dist/generated/types/bubblegumEventType.d.ts +17 -0
  188. package/dist/generated/types/bubblegumEventType.d.ts.map +1 -0
  189. package/dist/generated/types/bubblegumEventType.js +23 -0
  190. package/dist/generated/types/bubblegumEventType.js.map +1 -0
  191. package/dist/generated/types/collection.d.ts +17 -0
  192. package/dist/generated/types/collection.d.ts.map +1 -0
  193. package/dist/generated/types/collection.js +24 -0
  194. package/dist/generated/types/collection.js.map +1 -0
  195. package/dist/generated/types/creator.d.ts +23 -0
  196. package/dist/generated/types/creator.d.ts.map +1 -0
  197. package/dist/generated/types/creator.js +26 -0
  198. package/dist/generated/types/creator.js.map +1 -0
  199. package/dist/generated/types/decompressibleState.d.ts +17 -0
  200. package/dist/generated/types/decompressibleState.d.ts.map +1 -0
  201. package/dist/generated/types/decompressibleState.js +23 -0
  202. package/dist/generated/types/decompressibleState.js.map +1 -0
  203. package/dist/generated/types/index.d.ts +23 -0
  204. package/dist/generated/types/index.d.ts.map +1 -0
  205. package/dist/generated/types/index.js +23 -0
  206. package/dist/generated/types/index.js.map +1 -0
  207. package/dist/generated/types/instructionName.d.ts +50 -0
  208. package/dist/generated/types/instructionName.d.ts.map +1 -0
  209. package/dist/generated/types/instructionName.js +56 -0
  210. package/dist/generated/types/instructionName.js.map +1 -0
  211. package/dist/generated/types/leafSchema.d.ts +57 -0
  212. package/dist/generated/types/leafSchema.d.ts.map +1 -0
  213. package/dist/generated/types/leafSchema.js +78 -0
  214. package/dist/generated/types/leafSchema.js.map +1 -0
  215. package/dist/generated/types/metadataArgs.d.ts +61 -0
  216. package/dist/generated/types/metadataArgs.d.ts.map +1 -0
  217. package/dist/generated/types/metadataArgs.js +45 -0
  218. package/dist/generated/types/metadataArgs.js.map +1 -0
  219. package/dist/generated/types/metadataArgsV2.d.ts +53 -0
  220. package/dist/generated/types/metadataArgsV2.d.ts.map +1 -0
  221. package/dist/generated/types/metadataArgsV2.js +39 -0
  222. package/dist/generated/types/metadataArgsV2.js.map +1 -0
  223. package/dist/generated/types/tokenProgramVersion.d.ts +17 -0
  224. package/dist/generated/types/tokenProgramVersion.d.ts.map +1 -0
  225. package/dist/generated/types/tokenProgramVersion.js +23 -0
  226. package/dist/generated/types/tokenProgramVersion.js.map +1 -0
  227. package/dist/generated/types/tokenStandard.d.ts +19 -0
  228. package/dist/generated/types/tokenStandard.d.ts.map +1 -0
  229. package/dist/generated/types/tokenStandard.js +25 -0
  230. package/dist/generated/types/tokenStandard.js.map +1 -0
  231. package/dist/generated/types/updateArgs.d.ts +31 -0
  232. package/dist/generated/types/updateArgs.d.ts.map +1 -0
  233. package/dist/generated/types/updateArgs.js +53 -0
  234. package/dist/generated/types/updateArgs.js.map +1 -0
  235. package/dist/generated/types/useMethod.d.ts +18 -0
  236. package/dist/generated/types/useMethod.d.ts.map +1 -0
  237. package/dist/generated/types/useMethod.js +24 -0
  238. package/dist/generated/types/useMethod.js.map +1 -0
  239. package/dist/generated/types/uses.d.ts +23 -0
  240. package/dist/generated/types/uses.d.ts.map +1 -0
  241. package/dist/generated/types/uses.js +27 -0
  242. package/dist/generated/types/uses.js.map +1 -0
  243. package/dist/generated/types/version.d.ts +17 -0
  244. package/dist/generated/types/version.d.ts.map +1 -0
  245. package/dist/generated/types/version.js +23 -0
  246. package/dist/generated/types/version.js.map +1 -0
  247. package/dist/index.d.ts +8 -0
  248. package/dist/index.d.ts.map +1 -0
  249. package/dist/index.js +8 -0
  250. package/dist/index.js.map +1 -0
  251. package/package.json +51 -5
  252. package/src/generated/accounts/index.ts +10 -0
  253. package/src/generated/accounts/treeConfig.ts +175 -0
  254. package/src/generated/accounts/voucher.ts +144 -0
  255. package/src/generated/errors/bubblegum.ts +309 -0
  256. package/src/generated/errors/index.ts +9 -0
  257. package/src/generated/index.ts +13 -0
  258. package/src/generated/instructions/burn.ts +310 -0
  259. package/src/generated/instructions/burnV2.ts +431 -0
  260. package/src/generated/instructions/cancelRedeem.ts +292 -0
  261. package/src/generated/instructions/closeTreeV2.ts +285 -0
  262. package/src/generated/instructions/collectV2.ts +184 -0
  263. package/src/generated/instructions/compress.ts +388 -0
  264. package/src/generated/instructions/createTree.ts +306 -0
  265. package/src/generated/instructions/createTreeV2.ts +316 -0
  266. package/src/generated/instructions/decompressV1.ts +404 -0
  267. package/src/generated/instructions/delegate.ts +334 -0
  268. package/src/generated/instructions/delegateAndFreezeV2.ts +397 -0
  269. package/src/generated/instructions/delegateV2.ts +391 -0
  270. package/src/generated/instructions/freezeV2.ts +392 -0
  271. package/src/generated/instructions/index.ts +44 -0
  272. package/src/generated/instructions/mintToCollectionV1.ts +457 -0
  273. package/src/generated/instructions/mintV1.ts +320 -0
  274. package/src/generated/instructions/mintV2.ts +435 -0
  275. package/src/generated/instructions/redeem.ts +328 -0
  276. package/src/generated/instructions/setAndVerifyCollection.ts +506 -0
  277. package/src/generated/instructions/setCollectionV2.ts +477 -0
  278. package/src/generated/instructions/setDecompressableState.ts +218 -0
  279. package/src/generated/instructions/setDecompressibleState.ts +218 -0
  280. package/src/generated/instructions/setNonTransferableV2.ts +400 -0
  281. package/src/generated/instructions/setTreeDelegate.ts +246 -0
  282. package/src/generated/instructions/thawAndRevokeV2.ts +370 -0
  283. package/src/generated/instructions/thawV2.ts +392 -0
  284. package/src/generated/instructions/transfer.ts +324 -0
  285. package/src/generated/instructions/transferV2.ts +408 -0
  286. package/src/generated/instructions/unverifyCollection.ts +496 -0
  287. package/src/generated/instructions/unverifyCreator.ts +354 -0
  288. package/src/generated/instructions/unverifyCreatorV2.ts +375 -0
  289. package/src/generated/instructions/updateAssetDataV2.ts +423 -0
  290. package/src/generated/instructions/updateMetadata.ts +449 -0
  291. package/src/generated/instructions/updateMetadataV2.ts +407 -0
  292. package/src/generated/instructions/verifyCollection.ts +494 -0
  293. package/src/generated/instructions/verifyCreator.ts +355 -0
  294. package/src/generated/instructions/verifyCreatorV2.ts +375 -0
  295. package/src/generated/programs/bubblegum.ts +1466 -0
  296. package/src/generated/programs/index.ts +9 -0
  297. package/src/generated/types/assetDataSchema.ts +37 -0
  298. package/src/generated/types/bubblegumEventType.ts +39 -0
  299. package/src/generated/types/collection.ts +51 -0
  300. package/src/generated/types/creator.ts +58 -0
  301. package/src/generated/types/decompressibleState.ts +39 -0
  302. package/src/generated/types/index.ts +23 -0
  303. package/src/generated/types/instructionName.ts +69 -0
  304. package/src/generated/types/leafSchema.ts +166 -0
  305. package/src/generated/types/metadataArgs.ts +148 -0
  306. package/src/generated/types/metadataArgsV2.ts +126 -0
  307. package/src/generated/types/tokenProgramVersion.ts +39 -0
  308. package/src/generated/types/tokenStandard.ts +38 -0
  309. package/src/generated/types/updateArgs.ts +102 -0
  310. package/src/generated/types/useMethod.ts +34 -0
  311. package/src/generated/types/uses.ts +54 -0
  312. package/src/generated/types/version.ts +33 -0
  313. package/src/index.ts +8 -0
@@ -0,0 +1,328 @@
1
+ /**
2
+ * This code was AUTOGENERATED using the Codama library.
3
+ * Please DO NOT EDIT THIS FILE, instead use visitors
4
+ * to add features, then rerun Codama to update it.
5
+ *
6
+ * @see https://github.com/codama-idl/codama
7
+ */
8
+
9
+ import type {
10
+ AccountMeta,
11
+ AccountSignerMeta,
12
+ Address,
13
+ FixedSizeCodec,
14
+ FixedSizeDecoder,
15
+ FixedSizeEncoder,
16
+ Instruction,
17
+ InstructionWithAccounts,
18
+ InstructionWithData,
19
+ ReadonlyAccount,
20
+ ReadonlyUint8Array,
21
+ TransactionSigner,
22
+ WritableAccount,
23
+ WritableSignerAccount,
24
+ } from "@solana/kit";
25
+ import type { ResolvedInstructionAccount } from "@solana/program-client-core";
26
+ import {
27
+ combineCodec,
28
+ fixDecoderSize,
29
+ fixEncoderSize,
30
+ getArrayDecoder,
31
+ getArrayEncoder,
32
+ getBytesDecoder,
33
+ getBytesEncoder,
34
+ getStructDecoder,
35
+ getStructEncoder,
36
+ getU8Decoder,
37
+ getU8Encoder,
38
+ getU32Decoder,
39
+ getU32Encoder,
40
+ getU64Decoder,
41
+ getU64Encoder,
42
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
43
+ SolanaError,
44
+ transformEncoder,
45
+ } from "@solana/kit";
46
+ import { getAccountMetaFactory } from "@solana/program-client-core";
47
+ import { BUBBLEGUM_PROGRAM_ADDRESS } from "../programs/index.js";
48
+
49
+ export const REDEEM_DISCRIMINATOR: ReadonlyUint8Array = new Uint8Array([
50
+ 184, 12, 86, 149, 70, 196, 97, 225,
51
+ ]);
52
+
53
+ export function getRedeemDiscriminatorBytes(): ReadonlyUint8Array {
54
+ return fixEncoderSize(getBytesEncoder(), 8).encode(REDEEM_DISCRIMINATOR);
55
+ }
56
+
57
+ export type RedeemInstruction<
58
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
59
+ TAccountTreeAuthority extends string | AccountMeta = string,
60
+ TAccountLeafOwner extends string | AccountMeta = string,
61
+ TAccountLeafDelegate extends string | AccountMeta = string,
62
+ TAccountMerkleTree extends string | AccountMeta = string,
63
+ TAccountVoucher extends string | AccountMeta = string,
64
+ TAccountLogWrapper extends string | AccountMeta = string,
65
+ TAccountCompressionProgram extends string | AccountMeta = string,
66
+ TAccountSystemProgram extends
67
+ | string
68
+ | AccountMeta = "11111111111111111111111111111111",
69
+ TRemainingAccounts extends readonly AccountMeta[] = [],
70
+ > = Instruction<TProgram> &
71
+ InstructionWithData<ReadonlyUint8Array> &
72
+ InstructionWithAccounts<
73
+ [
74
+ TAccountTreeAuthority extends string
75
+ ? ReadonlyAccount<TAccountTreeAuthority>
76
+ : TAccountTreeAuthority,
77
+ TAccountLeafOwner extends string
78
+ ? WritableSignerAccount<TAccountLeafOwner> &
79
+ AccountSignerMeta<TAccountLeafOwner>
80
+ : TAccountLeafOwner,
81
+ TAccountLeafDelegate extends string
82
+ ? ReadonlyAccount<TAccountLeafDelegate>
83
+ : TAccountLeafDelegate,
84
+ TAccountMerkleTree extends string
85
+ ? WritableAccount<TAccountMerkleTree>
86
+ : TAccountMerkleTree,
87
+ TAccountVoucher extends string
88
+ ? WritableAccount<TAccountVoucher>
89
+ : TAccountVoucher,
90
+ TAccountLogWrapper extends string
91
+ ? ReadonlyAccount<TAccountLogWrapper>
92
+ : TAccountLogWrapper,
93
+ TAccountCompressionProgram extends string
94
+ ? ReadonlyAccount<TAccountCompressionProgram>
95
+ : TAccountCompressionProgram,
96
+ TAccountSystemProgram extends string
97
+ ? ReadonlyAccount<TAccountSystemProgram>
98
+ : TAccountSystemProgram,
99
+ ...TRemainingAccounts,
100
+ ]
101
+ >;
102
+
103
+ export interface RedeemInstructionData {
104
+ discriminator: ReadonlyUint8Array;
105
+ root: number[];
106
+ dataHash: number[];
107
+ creatorHash: number[];
108
+ nonce: bigint;
109
+ index: number;
110
+ }
111
+
112
+ export interface RedeemInstructionDataArgs {
113
+ root: number[];
114
+ dataHash: number[];
115
+ creatorHash: number[];
116
+ nonce: number | bigint;
117
+ index: number;
118
+ }
119
+
120
+ export function getRedeemInstructionDataEncoder(): FixedSizeEncoder<RedeemInstructionDataArgs> {
121
+ return transformEncoder(
122
+ getStructEncoder([
123
+ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
124
+ ["root", getArrayEncoder(getU8Encoder(), { size: 32 })],
125
+ ["dataHash", getArrayEncoder(getU8Encoder(), { size: 32 })],
126
+ ["creatorHash", getArrayEncoder(getU8Encoder(), { size: 32 })],
127
+ ["nonce", getU64Encoder()],
128
+ ["index", getU32Encoder()],
129
+ ]),
130
+ (value) => ({ ...value, discriminator: REDEEM_DISCRIMINATOR }),
131
+ );
132
+ }
133
+
134
+ export function getRedeemInstructionDataDecoder(): FixedSizeDecoder<RedeemInstructionData> {
135
+ return getStructDecoder([
136
+ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
137
+ ["root", getArrayDecoder(getU8Decoder(), { size: 32 })],
138
+ ["dataHash", getArrayDecoder(getU8Decoder(), { size: 32 })],
139
+ ["creatorHash", getArrayDecoder(getU8Decoder(), { size: 32 })],
140
+ ["nonce", getU64Decoder()],
141
+ ["index", getU32Decoder()],
142
+ ]);
143
+ }
144
+
145
+ export function getRedeemInstructionDataCodec(): FixedSizeCodec<
146
+ RedeemInstructionDataArgs,
147
+ RedeemInstructionData
148
+ > {
149
+ return combineCodec(
150
+ getRedeemInstructionDataEncoder(),
151
+ getRedeemInstructionDataDecoder(),
152
+ );
153
+ }
154
+
155
+ export interface RedeemInput<
156
+ TAccountTreeAuthority extends string = string,
157
+ TAccountLeafOwner extends string = string,
158
+ TAccountLeafDelegate extends string = string,
159
+ TAccountMerkleTree extends string = string,
160
+ TAccountVoucher extends string = string,
161
+ TAccountLogWrapper extends string = string,
162
+ TAccountCompressionProgram extends string = string,
163
+ TAccountSystemProgram extends string = string,
164
+ > {
165
+ treeAuthority: Address<TAccountTreeAuthority>;
166
+ leafOwner: TransactionSigner<TAccountLeafOwner>;
167
+ leafDelegate: Address<TAccountLeafDelegate>;
168
+ merkleTree: Address<TAccountMerkleTree>;
169
+ voucher: Address<TAccountVoucher>;
170
+ logWrapper: Address<TAccountLogWrapper>;
171
+ compressionProgram: Address<TAccountCompressionProgram>;
172
+ systemProgram?: Address<TAccountSystemProgram>;
173
+ root: RedeemInstructionDataArgs["root"];
174
+ dataHash: RedeemInstructionDataArgs["dataHash"];
175
+ creatorHash: RedeemInstructionDataArgs["creatorHash"];
176
+ nonce: RedeemInstructionDataArgs["nonce"];
177
+ index: RedeemInstructionDataArgs["index"];
178
+ }
179
+
180
+ export function getRedeemInstruction<
181
+ TAccountTreeAuthority extends string,
182
+ TAccountLeafOwner extends string,
183
+ TAccountLeafDelegate extends string,
184
+ TAccountMerkleTree extends string,
185
+ TAccountVoucher extends string,
186
+ TAccountLogWrapper extends string,
187
+ TAccountCompressionProgram extends string,
188
+ TAccountSystemProgram extends string,
189
+ TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,
190
+ >(
191
+ input: RedeemInput<
192
+ TAccountTreeAuthority,
193
+ TAccountLeafOwner,
194
+ TAccountLeafDelegate,
195
+ TAccountMerkleTree,
196
+ TAccountVoucher,
197
+ TAccountLogWrapper,
198
+ TAccountCompressionProgram,
199
+ TAccountSystemProgram
200
+ >,
201
+ config?: { programAddress?: TProgramAddress },
202
+ ): RedeemInstruction<
203
+ TProgramAddress,
204
+ TAccountTreeAuthority,
205
+ TAccountLeafOwner,
206
+ TAccountLeafDelegate,
207
+ TAccountMerkleTree,
208
+ TAccountVoucher,
209
+ TAccountLogWrapper,
210
+ TAccountCompressionProgram,
211
+ TAccountSystemProgram
212
+ > {
213
+ // Program address.
214
+ const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;
215
+
216
+ // Original accounts.
217
+ const originalAccounts = {
218
+ treeAuthority: { value: input.treeAuthority ?? null, isWritable: false },
219
+ leafOwner: { value: input.leafOwner ?? null, isWritable: true },
220
+ leafDelegate: { value: input.leafDelegate ?? null, isWritable: false },
221
+ merkleTree: { value: input.merkleTree ?? null, isWritable: true },
222
+ voucher: { value: input.voucher ?? null, isWritable: true },
223
+ logWrapper: { value: input.logWrapper ?? null, isWritable: false },
224
+ compressionProgram: {
225
+ value: input.compressionProgram ?? null,
226
+ isWritable: false,
227
+ },
228
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
229
+ };
230
+ const accounts = originalAccounts as Record<
231
+ keyof typeof originalAccounts,
232
+ ResolvedInstructionAccount
233
+ >;
234
+
235
+ // Original args.
236
+ const args = { ...input };
237
+
238
+ // Resolve default values.
239
+ if (!accounts.systemProgram.value) {
240
+ accounts.systemProgram.value =
241
+ "11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
242
+ }
243
+
244
+ const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
245
+ return Object.freeze({
246
+ accounts: [
247
+ getAccountMeta("treeAuthority", accounts.treeAuthority),
248
+ getAccountMeta("leafOwner", accounts.leafOwner),
249
+ getAccountMeta("leafDelegate", accounts.leafDelegate),
250
+ getAccountMeta("merkleTree", accounts.merkleTree),
251
+ getAccountMeta("voucher", accounts.voucher),
252
+ getAccountMeta("logWrapper", accounts.logWrapper),
253
+ getAccountMeta("compressionProgram", accounts.compressionProgram),
254
+ getAccountMeta("systemProgram", accounts.systemProgram),
255
+ ],
256
+ data: getRedeemInstructionDataEncoder().encode(
257
+ args as RedeemInstructionDataArgs,
258
+ ),
259
+ programAddress,
260
+ } as RedeemInstruction<
261
+ TProgramAddress,
262
+ TAccountTreeAuthority,
263
+ TAccountLeafOwner,
264
+ TAccountLeafDelegate,
265
+ TAccountMerkleTree,
266
+ TAccountVoucher,
267
+ TAccountLogWrapper,
268
+ TAccountCompressionProgram,
269
+ TAccountSystemProgram
270
+ >);
271
+ }
272
+
273
+ export interface ParsedRedeemInstruction<
274
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
275
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
276
+ > {
277
+ programAddress: Address<TProgram>;
278
+ accounts: {
279
+ treeAuthority: TAccountMetas[0];
280
+ leafOwner: TAccountMetas[1];
281
+ leafDelegate: TAccountMetas[2];
282
+ merkleTree: TAccountMetas[3];
283
+ voucher: TAccountMetas[4];
284
+ logWrapper: TAccountMetas[5];
285
+ compressionProgram: TAccountMetas[6];
286
+ systemProgram: TAccountMetas[7];
287
+ };
288
+ data: RedeemInstructionData;
289
+ }
290
+
291
+ export function parseRedeemInstruction<
292
+ TProgram extends string,
293
+ TAccountMetas extends readonly AccountMeta[],
294
+ >(
295
+ instruction: Instruction<TProgram> &
296
+ InstructionWithAccounts<TAccountMetas> &
297
+ InstructionWithData<ReadonlyUint8Array>,
298
+ ): ParsedRedeemInstruction<TProgram, TAccountMetas> {
299
+ if (instruction.accounts.length < 8) {
300
+ throw new SolanaError(
301
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
302
+ {
303
+ actualAccountMetas: instruction.accounts.length,
304
+ expectedAccountMetas: 8,
305
+ },
306
+ );
307
+ }
308
+ let accountIndex = 0;
309
+ const getNextAccount = () => {
310
+ const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;
311
+ accountIndex += 1;
312
+ return accountMeta;
313
+ };
314
+ return {
315
+ programAddress: instruction.programAddress,
316
+ accounts: {
317
+ treeAuthority: getNextAccount(),
318
+ leafOwner: getNextAccount(),
319
+ leafDelegate: getNextAccount(),
320
+ merkleTree: getNextAccount(),
321
+ voucher: getNextAccount(),
322
+ logWrapper: getNextAccount(),
323
+ compressionProgram: getNextAccount(),
324
+ systemProgram: getNextAccount(),
325
+ },
326
+ data: getRedeemInstructionDataDecoder().decode(instruction.data),
327
+ };
328
+ }