@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,477 @@
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
+ Codec,
14
+ Decoder,
15
+ Encoder,
16
+ Instruction,
17
+ InstructionWithAccounts,
18
+ InstructionWithData,
19
+ Option,
20
+ OptionOrNullable,
21
+ ReadonlyAccount,
22
+ ReadonlySignerAccount,
23
+ ReadonlyUint8Array,
24
+ TransactionSigner,
25
+ WritableAccount,
26
+ WritableSignerAccount,
27
+ } from "@solana/kit";
28
+ import type { ResolvedInstructionAccount } from "@solana/program-client-core";
29
+ import type { MetadataArgsV2, MetadataArgsV2Args } from "../types/index.js";
30
+ import {
31
+ combineCodec,
32
+ fixDecoderSize,
33
+ fixEncoderSize,
34
+ getArrayDecoder,
35
+ getArrayEncoder,
36
+ getBytesDecoder,
37
+ getBytesEncoder,
38
+ getOptionDecoder,
39
+ getOptionEncoder,
40
+ getStructDecoder,
41
+ getStructEncoder,
42
+ getU8Decoder,
43
+ getU8Encoder,
44
+ getU32Decoder,
45
+ getU32Encoder,
46
+ getU64Decoder,
47
+ getU64Encoder,
48
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
49
+ SolanaError,
50
+ transformEncoder,
51
+ } from "@solana/kit";
52
+ import { getAccountMetaFactory } from "@solana/program-client-core";
53
+ import { BUBBLEGUM_PROGRAM_ADDRESS } from "../programs/index.js";
54
+ import {
55
+ getMetadataArgsV2Decoder,
56
+ getMetadataArgsV2Encoder,
57
+ } from "../types/index.js";
58
+
59
+ export const SET_COLLECTION_V2_DISCRIMINATOR: ReadonlyUint8Array =
60
+ new Uint8Array([229, 35, 61, 91, 15, 14, 99, 160]);
61
+
62
+ export function getSetCollectionV2DiscriminatorBytes(): ReadonlyUint8Array {
63
+ return fixEncoderSize(getBytesEncoder(), 8).encode(
64
+ SET_COLLECTION_V2_DISCRIMINATOR,
65
+ );
66
+ }
67
+
68
+ export type SetCollectionV2Instruction<
69
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
70
+ TAccountTreeAuthority extends string | AccountMeta = string,
71
+ TAccountPayer extends string | AccountMeta = string,
72
+ TAccountAuthority extends string | AccountMeta = string,
73
+ TAccountNewCollectionAuthority extends string | AccountMeta = string,
74
+ TAccountLeafOwner extends string | AccountMeta = string,
75
+ TAccountLeafDelegate extends string | AccountMeta = string,
76
+ TAccountMerkleTree extends string | AccountMeta = string,
77
+ TAccountCoreCollection extends string | AccountMeta = string,
78
+ TAccountNewCoreCollection extends string | AccountMeta = string,
79
+ TAccountMplCoreCpiSigner extends string | AccountMeta = string,
80
+ TAccountLogWrapper extends string | AccountMeta = string,
81
+ TAccountCompressionProgram extends string | AccountMeta = string,
82
+ TAccountMplCoreProgram extends
83
+ | string
84
+ | AccountMeta = "CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d",
85
+ TAccountSystemProgram extends
86
+ | string
87
+ | AccountMeta = "11111111111111111111111111111111",
88
+ TRemainingAccounts extends readonly AccountMeta[] = [],
89
+ > = Instruction<TProgram> &
90
+ InstructionWithData<ReadonlyUint8Array> &
91
+ InstructionWithAccounts<
92
+ [
93
+ TAccountTreeAuthority extends string
94
+ ? WritableAccount<TAccountTreeAuthority>
95
+ : TAccountTreeAuthority,
96
+ TAccountPayer extends string
97
+ ? WritableSignerAccount<TAccountPayer> &
98
+ AccountSignerMeta<TAccountPayer>
99
+ : TAccountPayer,
100
+ TAccountAuthority extends string
101
+ ? ReadonlySignerAccount<TAccountAuthority> &
102
+ AccountSignerMeta<TAccountAuthority>
103
+ : TAccountAuthority,
104
+ TAccountNewCollectionAuthority extends string
105
+ ? ReadonlySignerAccount<TAccountNewCollectionAuthority> &
106
+ AccountSignerMeta<TAccountNewCollectionAuthority>
107
+ : TAccountNewCollectionAuthority,
108
+ TAccountLeafOwner extends string
109
+ ? ReadonlyAccount<TAccountLeafOwner>
110
+ : TAccountLeafOwner,
111
+ TAccountLeafDelegate extends string
112
+ ? ReadonlyAccount<TAccountLeafDelegate>
113
+ : TAccountLeafDelegate,
114
+ TAccountMerkleTree extends string
115
+ ? WritableAccount<TAccountMerkleTree>
116
+ : TAccountMerkleTree,
117
+ TAccountCoreCollection extends string
118
+ ? WritableAccount<TAccountCoreCollection>
119
+ : TAccountCoreCollection,
120
+ TAccountNewCoreCollection extends string
121
+ ? WritableAccount<TAccountNewCoreCollection>
122
+ : TAccountNewCoreCollection,
123
+ TAccountMplCoreCpiSigner extends string
124
+ ? ReadonlyAccount<TAccountMplCoreCpiSigner>
125
+ : TAccountMplCoreCpiSigner,
126
+ TAccountLogWrapper extends string
127
+ ? ReadonlyAccount<TAccountLogWrapper>
128
+ : TAccountLogWrapper,
129
+ TAccountCompressionProgram extends string
130
+ ? ReadonlyAccount<TAccountCompressionProgram>
131
+ : TAccountCompressionProgram,
132
+ TAccountMplCoreProgram extends string
133
+ ? ReadonlyAccount<TAccountMplCoreProgram>
134
+ : TAccountMplCoreProgram,
135
+ TAccountSystemProgram extends string
136
+ ? ReadonlyAccount<TAccountSystemProgram>
137
+ : TAccountSystemProgram,
138
+ ...TRemainingAccounts,
139
+ ]
140
+ >;
141
+
142
+ export interface SetCollectionV2InstructionData {
143
+ discriminator: ReadonlyUint8Array;
144
+ root: number[];
145
+ assetDataHash: Option<number[]>;
146
+ flags: Option<number>;
147
+ nonce: bigint;
148
+ index: number;
149
+ message: MetadataArgsV2;
150
+ }
151
+
152
+ export interface SetCollectionV2InstructionDataArgs {
153
+ root: number[];
154
+ assetDataHash: OptionOrNullable<number[]>;
155
+ flags: OptionOrNullable<number>;
156
+ nonce: number | bigint;
157
+ index: number;
158
+ message: MetadataArgsV2Args;
159
+ }
160
+
161
+ export function getSetCollectionV2InstructionDataEncoder(): Encoder<SetCollectionV2InstructionDataArgs> {
162
+ return transformEncoder(
163
+ getStructEncoder([
164
+ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
165
+ ["root", getArrayEncoder(getU8Encoder(), { size: 32 })],
166
+ [
167
+ "assetDataHash",
168
+ getOptionEncoder(getArrayEncoder(getU8Encoder(), { size: 32 })),
169
+ ],
170
+ ["flags", getOptionEncoder(getU8Encoder())],
171
+ ["nonce", getU64Encoder()],
172
+ ["index", getU32Encoder()],
173
+ ["message", getMetadataArgsV2Encoder()],
174
+ ]),
175
+ (value) => ({ ...value, discriminator: SET_COLLECTION_V2_DISCRIMINATOR }),
176
+ );
177
+ }
178
+
179
+ export function getSetCollectionV2InstructionDataDecoder(): Decoder<SetCollectionV2InstructionData> {
180
+ return getStructDecoder([
181
+ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
182
+ ["root", getArrayDecoder(getU8Decoder(), { size: 32 })],
183
+ [
184
+ "assetDataHash",
185
+ getOptionDecoder(getArrayDecoder(getU8Decoder(), { size: 32 })),
186
+ ],
187
+ ["flags", getOptionDecoder(getU8Decoder())],
188
+ ["nonce", getU64Decoder()],
189
+ ["index", getU32Decoder()],
190
+ ["message", getMetadataArgsV2Decoder()],
191
+ ]);
192
+ }
193
+
194
+ export function getSetCollectionV2InstructionDataCodec(): Codec<
195
+ SetCollectionV2InstructionDataArgs,
196
+ SetCollectionV2InstructionData
197
+ > {
198
+ return combineCodec(
199
+ getSetCollectionV2InstructionDataEncoder(),
200
+ getSetCollectionV2InstructionDataDecoder(),
201
+ );
202
+ }
203
+
204
+ export interface SetCollectionV2Input<
205
+ TAccountTreeAuthority extends string = string,
206
+ TAccountPayer extends string = string,
207
+ TAccountAuthority extends string = string,
208
+ TAccountNewCollectionAuthority extends string = string,
209
+ TAccountLeafOwner extends string = string,
210
+ TAccountLeafDelegate extends string = string,
211
+ TAccountMerkleTree extends string = string,
212
+ TAccountCoreCollection extends string = string,
213
+ TAccountNewCoreCollection extends string = string,
214
+ TAccountMplCoreCpiSigner extends string = string,
215
+ TAccountLogWrapper extends string = string,
216
+ TAccountCompressionProgram extends string = string,
217
+ TAccountMplCoreProgram extends string = string,
218
+ TAccountSystemProgram extends string = string,
219
+ > {
220
+ treeAuthority: Address<TAccountTreeAuthority>;
221
+ payer: TransactionSigner<TAccountPayer>;
222
+ /**
223
+ * If item is not in a collection, then authority must be tree owner/delegate. If item is
224
+ * getting removed from a collection, then this must be an authority for the existing
225
+ * collection. Defaults to `payer`
226
+ */
227
+ authority?: TransactionSigner<TAccountAuthority>;
228
+ /**
229
+ * If item is getting added to a new collection, then this must be the authority
230
+ * for the new collection. Defaults to `authority`
231
+ */
232
+ newCollectionAuthority?: TransactionSigner<TAccountNewCollectionAuthority>;
233
+ leafOwner: Address<TAccountLeafOwner>;
234
+ /** Defaults to `leaf_owner` */
235
+ leafDelegate?: Address<TAccountLeafDelegate>;
236
+ merkleTree: Address<TAccountMerkleTree>;
237
+ coreCollection?: Address<TAccountCoreCollection>;
238
+ newCoreCollection?: Address<TAccountNewCoreCollection>;
239
+ mplCoreCpiSigner: Address<TAccountMplCoreCpiSigner>;
240
+ logWrapper: Address<TAccountLogWrapper>;
241
+ compressionProgram: Address<TAccountCompressionProgram>;
242
+ mplCoreProgram?: Address<TAccountMplCoreProgram>;
243
+ systemProgram?: Address<TAccountSystemProgram>;
244
+ root: SetCollectionV2InstructionDataArgs["root"];
245
+ assetDataHash: SetCollectionV2InstructionDataArgs["assetDataHash"];
246
+ flags: SetCollectionV2InstructionDataArgs["flags"];
247
+ nonce: SetCollectionV2InstructionDataArgs["nonce"];
248
+ index: SetCollectionV2InstructionDataArgs["index"];
249
+ message: SetCollectionV2InstructionDataArgs["message"];
250
+ }
251
+
252
+ export function getSetCollectionV2Instruction<
253
+ TAccountTreeAuthority extends string,
254
+ TAccountPayer extends string,
255
+ TAccountAuthority extends string,
256
+ TAccountNewCollectionAuthority extends string,
257
+ TAccountLeafOwner extends string,
258
+ TAccountLeafDelegate extends string,
259
+ TAccountMerkleTree extends string,
260
+ TAccountCoreCollection extends string,
261
+ TAccountNewCoreCollection extends string,
262
+ TAccountMplCoreCpiSigner extends string,
263
+ TAccountLogWrapper extends string,
264
+ TAccountCompressionProgram extends string,
265
+ TAccountMplCoreProgram extends string,
266
+ TAccountSystemProgram extends string,
267
+ TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,
268
+ >(
269
+ input: SetCollectionV2Input<
270
+ TAccountTreeAuthority,
271
+ TAccountPayer,
272
+ TAccountAuthority,
273
+ TAccountNewCollectionAuthority,
274
+ TAccountLeafOwner,
275
+ TAccountLeafDelegate,
276
+ TAccountMerkleTree,
277
+ TAccountCoreCollection,
278
+ TAccountNewCoreCollection,
279
+ TAccountMplCoreCpiSigner,
280
+ TAccountLogWrapper,
281
+ TAccountCompressionProgram,
282
+ TAccountMplCoreProgram,
283
+ TAccountSystemProgram
284
+ >,
285
+ config?: { programAddress?: TProgramAddress },
286
+ ): SetCollectionV2Instruction<
287
+ TProgramAddress,
288
+ TAccountTreeAuthority,
289
+ TAccountPayer,
290
+ TAccountAuthority,
291
+ TAccountNewCollectionAuthority,
292
+ TAccountLeafOwner,
293
+ TAccountLeafDelegate,
294
+ TAccountMerkleTree,
295
+ TAccountCoreCollection,
296
+ TAccountNewCoreCollection,
297
+ TAccountMplCoreCpiSigner,
298
+ TAccountLogWrapper,
299
+ TAccountCompressionProgram,
300
+ TAccountMplCoreProgram,
301
+ TAccountSystemProgram
302
+ > {
303
+ // Program address.
304
+ const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;
305
+
306
+ // Original accounts.
307
+ const originalAccounts = {
308
+ treeAuthority: { value: input.treeAuthority ?? null, isWritable: true },
309
+ payer: { value: input.payer ?? null, isWritable: true },
310
+ authority: { value: input.authority ?? null, isWritable: false },
311
+ newCollectionAuthority: {
312
+ value: input.newCollectionAuthority ?? null,
313
+ isWritable: false,
314
+ },
315
+ leafOwner: { value: input.leafOwner ?? null, isWritable: false },
316
+ leafDelegate: { value: input.leafDelegate ?? null, isWritable: false },
317
+ merkleTree: { value: input.merkleTree ?? null, isWritable: true },
318
+ coreCollection: { value: input.coreCollection ?? null, isWritable: true },
319
+ newCoreCollection: {
320
+ value: input.newCoreCollection ?? null,
321
+ isWritable: true,
322
+ },
323
+ mplCoreCpiSigner: {
324
+ value: input.mplCoreCpiSigner ?? null,
325
+ isWritable: false,
326
+ },
327
+ logWrapper: { value: input.logWrapper ?? null, isWritable: false },
328
+ compressionProgram: {
329
+ value: input.compressionProgram ?? null,
330
+ isWritable: false,
331
+ },
332
+ mplCoreProgram: { value: input.mplCoreProgram ?? null, isWritable: false },
333
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
334
+ };
335
+ const accounts = originalAccounts as Record<
336
+ keyof typeof originalAccounts,
337
+ ResolvedInstructionAccount
338
+ >;
339
+
340
+ // Original args.
341
+ const args = { ...input };
342
+
343
+ // Resolve default values.
344
+ if (!accounts.mplCoreProgram.value) {
345
+ accounts.mplCoreProgram.value =
346
+ "CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d" as Address<"CoREENxT6tW1HoK8ypY1SxRMZTcVPm7R94rH4PZNhX7d">;
347
+ }
348
+ if (!accounts.systemProgram.value) {
349
+ accounts.systemProgram.value =
350
+ "11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
351
+ }
352
+
353
+ const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
354
+ return Object.freeze({
355
+ accounts: [
356
+ getAccountMeta("treeAuthority", accounts.treeAuthority),
357
+ getAccountMeta("payer", accounts.payer),
358
+ getAccountMeta("authority", accounts.authority),
359
+ getAccountMeta("newCollectionAuthority", accounts.newCollectionAuthority),
360
+ getAccountMeta("leafOwner", accounts.leafOwner),
361
+ getAccountMeta("leafDelegate", accounts.leafDelegate),
362
+ getAccountMeta("merkleTree", accounts.merkleTree),
363
+ getAccountMeta("coreCollection", accounts.coreCollection),
364
+ getAccountMeta("newCoreCollection", accounts.newCoreCollection),
365
+ getAccountMeta("mplCoreCpiSigner", accounts.mplCoreCpiSigner),
366
+ getAccountMeta("logWrapper", accounts.logWrapper),
367
+ getAccountMeta("compressionProgram", accounts.compressionProgram),
368
+ getAccountMeta("mplCoreProgram", accounts.mplCoreProgram),
369
+ getAccountMeta("systemProgram", accounts.systemProgram),
370
+ ],
371
+ data: getSetCollectionV2InstructionDataEncoder().encode(
372
+ args as SetCollectionV2InstructionDataArgs,
373
+ ),
374
+ programAddress,
375
+ } as SetCollectionV2Instruction<
376
+ TProgramAddress,
377
+ TAccountTreeAuthority,
378
+ TAccountPayer,
379
+ TAccountAuthority,
380
+ TAccountNewCollectionAuthority,
381
+ TAccountLeafOwner,
382
+ TAccountLeafDelegate,
383
+ TAccountMerkleTree,
384
+ TAccountCoreCollection,
385
+ TAccountNewCoreCollection,
386
+ TAccountMplCoreCpiSigner,
387
+ TAccountLogWrapper,
388
+ TAccountCompressionProgram,
389
+ TAccountMplCoreProgram,
390
+ TAccountSystemProgram
391
+ >);
392
+ }
393
+
394
+ export interface ParsedSetCollectionV2Instruction<
395
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
396
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
397
+ > {
398
+ programAddress: Address<TProgram>;
399
+ accounts: {
400
+ treeAuthority: TAccountMetas[0];
401
+ payer: TAccountMetas[1];
402
+ /**
403
+ * If item is not in a collection, then authority must be tree owner/delegate. If item is
404
+ * getting removed from a collection, then this must be an authority for the existing
405
+ * collection. Defaults to `payer`
406
+ */
407
+ authority?: TAccountMetas[2] | undefined;
408
+ /**
409
+ * If item is getting added to a new collection, then this must be the authority
410
+ * for the new collection. Defaults to `authority`
411
+ */
412
+ newCollectionAuthority?: TAccountMetas[3] | undefined;
413
+ leafOwner: TAccountMetas[4];
414
+ /** Defaults to `leaf_owner` */
415
+ leafDelegate?: TAccountMetas[5] | undefined;
416
+ merkleTree: TAccountMetas[6];
417
+ coreCollection?: TAccountMetas[7] | undefined;
418
+ newCoreCollection?: TAccountMetas[8] | undefined;
419
+ mplCoreCpiSigner: TAccountMetas[9];
420
+ logWrapper: TAccountMetas[10];
421
+ compressionProgram: TAccountMetas[11];
422
+ mplCoreProgram: TAccountMetas[12];
423
+ systemProgram: TAccountMetas[13];
424
+ };
425
+ data: SetCollectionV2InstructionData;
426
+ }
427
+
428
+ export function parseSetCollectionV2Instruction<
429
+ TProgram extends string,
430
+ TAccountMetas extends readonly AccountMeta[],
431
+ >(
432
+ instruction: Instruction<TProgram> &
433
+ InstructionWithAccounts<TAccountMetas> &
434
+ InstructionWithData<ReadonlyUint8Array>,
435
+ ): ParsedSetCollectionV2Instruction<TProgram, TAccountMetas> {
436
+ if (instruction.accounts.length < 14) {
437
+ throw new SolanaError(
438
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
439
+ {
440
+ actualAccountMetas: instruction.accounts.length,
441
+ expectedAccountMetas: 14,
442
+ },
443
+ );
444
+ }
445
+ let accountIndex = 0;
446
+ const getNextAccount = () => {
447
+ const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;
448
+ accountIndex += 1;
449
+ return accountMeta;
450
+ };
451
+ const getNextOptionalAccount = () => {
452
+ const accountMeta = getNextAccount();
453
+ return accountMeta.address === BUBBLEGUM_PROGRAM_ADDRESS
454
+ ? undefined
455
+ : accountMeta;
456
+ };
457
+ return {
458
+ programAddress: instruction.programAddress,
459
+ accounts: {
460
+ treeAuthority: getNextAccount(),
461
+ payer: getNextAccount(),
462
+ authority: getNextOptionalAccount(),
463
+ newCollectionAuthority: getNextOptionalAccount(),
464
+ leafOwner: getNextAccount(),
465
+ leafDelegate: getNextOptionalAccount(),
466
+ merkleTree: getNextAccount(),
467
+ coreCollection: getNextOptionalAccount(),
468
+ newCoreCollection: getNextOptionalAccount(),
469
+ mplCoreCpiSigner: getNextAccount(),
470
+ logWrapper: getNextAccount(),
471
+ compressionProgram: getNextAccount(),
472
+ mplCoreProgram: getNextAccount(),
473
+ systemProgram: getNextAccount(),
474
+ },
475
+ data: getSetCollectionV2InstructionDataDecoder().decode(instruction.data),
476
+ };
477
+ }
@@ -0,0 +1,218 @@
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
+ ReadonlySignerAccount,
20
+ ReadonlyUint8Array,
21
+ TransactionSigner,
22
+ WritableAccount,
23
+ } from "@solana/kit";
24
+ import type { ResolvedInstructionAccount } from "@solana/program-client-core";
25
+ import type {
26
+ DecompressibleState,
27
+ DecompressibleStateArgs,
28
+ } from "../types/index.js";
29
+ import {
30
+ combineCodec,
31
+ fixDecoderSize,
32
+ fixEncoderSize,
33
+ getBytesDecoder,
34
+ getBytesEncoder,
35
+ getStructDecoder,
36
+ getStructEncoder,
37
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
38
+ SolanaError,
39
+ transformEncoder,
40
+ } from "@solana/kit";
41
+ import { getAccountMetaFactory } from "@solana/program-client-core";
42
+ import { BUBBLEGUM_PROGRAM_ADDRESS } from "../programs/index.js";
43
+ import {
44
+ getDecompressibleStateDecoder,
45
+ getDecompressibleStateEncoder,
46
+ } from "../types/index.js";
47
+
48
+ export const SET_DECOMPRESSABLE_STATE_DISCRIMINATOR: ReadonlyUint8Array =
49
+ new Uint8Array([18, 135, 238, 168, 246, 195, 61, 115]);
50
+
51
+ export function getSetDecompressableStateDiscriminatorBytes(): ReadonlyUint8Array {
52
+ return fixEncoderSize(getBytesEncoder(), 8).encode(
53
+ SET_DECOMPRESSABLE_STATE_DISCRIMINATOR,
54
+ );
55
+ }
56
+
57
+ export type SetDecompressableStateInstruction<
58
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
59
+ TAccountTreeAuthority extends string | AccountMeta = string,
60
+ TAccountTreeCreator extends string | AccountMeta = string,
61
+ TRemainingAccounts extends readonly AccountMeta[] = [],
62
+ > = Instruction<TProgram> &
63
+ InstructionWithData<ReadonlyUint8Array> &
64
+ InstructionWithAccounts<
65
+ [
66
+ TAccountTreeAuthority extends string
67
+ ? WritableAccount<TAccountTreeAuthority>
68
+ : TAccountTreeAuthority,
69
+ TAccountTreeCreator extends string
70
+ ? ReadonlySignerAccount<TAccountTreeCreator> &
71
+ AccountSignerMeta<TAccountTreeCreator>
72
+ : TAccountTreeCreator,
73
+ ...TRemainingAccounts,
74
+ ]
75
+ >;
76
+
77
+ export interface SetDecompressableStateInstructionData {
78
+ discriminator: ReadonlyUint8Array;
79
+ decompressableState: DecompressibleState;
80
+ }
81
+
82
+ export interface SetDecompressableStateInstructionDataArgs {
83
+ decompressableState: DecompressibleStateArgs;
84
+ }
85
+
86
+ export function getSetDecompressableStateInstructionDataEncoder(): FixedSizeEncoder<SetDecompressableStateInstructionDataArgs> {
87
+ return transformEncoder(
88
+ getStructEncoder([
89
+ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
90
+ ["decompressableState", getDecompressibleStateEncoder()],
91
+ ]),
92
+ (value) => ({
93
+ ...value,
94
+ discriminator: SET_DECOMPRESSABLE_STATE_DISCRIMINATOR,
95
+ }),
96
+ );
97
+ }
98
+
99
+ export function getSetDecompressableStateInstructionDataDecoder(): FixedSizeDecoder<SetDecompressableStateInstructionData> {
100
+ return getStructDecoder([
101
+ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
102
+ ["decompressableState", getDecompressibleStateDecoder()],
103
+ ]);
104
+ }
105
+
106
+ export function getSetDecompressableStateInstructionDataCodec(): FixedSizeCodec<
107
+ SetDecompressableStateInstructionDataArgs,
108
+ SetDecompressableStateInstructionData
109
+ > {
110
+ return combineCodec(
111
+ getSetDecompressableStateInstructionDataEncoder(),
112
+ getSetDecompressableStateInstructionDataDecoder(),
113
+ );
114
+ }
115
+
116
+ export interface SetDecompressableStateInput<
117
+ TAccountTreeAuthority extends string = string,
118
+ TAccountTreeCreator extends string = string,
119
+ > {
120
+ treeAuthority: Address<TAccountTreeAuthority>;
121
+ treeCreator: TransactionSigner<TAccountTreeCreator>;
122
+ decompressableState: SetDecompressableStateInstructionDataArgs["decompressableState"];
123
+ }
124
+
125
+ export function getSetDecompressableStateInstruction<
126
+ TAccountTreeAuthority extends string,
127
+ TAccountTreeCreator extends string,
128
+ TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,
129
+ >(
130
+ input: SetDecompressableStateInput<
131
+ TAccountTreeAuthority,
132
+ TAccountTreeCreator
133
+ >,
134
+ config?: { programAddress?: TProgramAddress },
135
+ ): SetDecompressableStateInstruction<
136
+ TProgramAddress,
137
+ TAccountTreeAuthority,
138
+ TAccountTreeCreator
139
+ > {
140
+ // Program address.
141
+ const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;
142
+
143
+ // Original accounts.
144
+ const originalAccounts = {
145
+ treeAuthority: { value: input.treeAuthority ?? null, isWritable: true },
146
+ treeCreator: { value: input.treeCreator ?? null, isWritable: false },
147
+ };
148
+ const accounts = originalAccounts as Record<
149
+ keyof typeof originalAccounts,
150
+ ResolvedInstructionAccount
151
+ >;
152
+
153
+ // Original args.
154
+ const args = { ...input };
155
+
156
+ const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
157
+ return Object.freeze({
158
+ accounts: [
159
+ getAccountMeta("treeAuthority", accounts.treeAuthority),
160
+ getAccountMeta("treeCreator", accounts.treeCreator),
161
+ ],
162
+ data: getSetDecompressableStateInstructionDataEncoder().encode(
163
+ args as SetDecompressableStateInstructionDataArgs,
164
+ ),
165
+ programAddress,
166
+ } as SetDecompressableStateInstruction<
167
+ TProgramAddress,
168
+ TAccountTreeAuthority,
169
+ TAccountTreeCreator
170
+ >);
171
+ }
172
+
173
+ export interface ParsedSetDecompressableStateInstruction<
174
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
175
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
176
+ > {
177
+ programAddress: Address<TProgram>;
178
+ accounts: {
179
+ treeAuthority: TAccountMetas[0];
180
+ treeCreator: TAccountMetas[1];
181
+ };
182
+ data: SetDecompressableStateInstructionData;
183
+ }
184
+
185
+ export function parseSetDecompressableStateInstruction<
186
+ TProgram extends string,
187
+ TAccountMetas extends readonly AccountMeta[],
188
+ >(
189
+ instruction: Instruction<TProgram> &
190
+ InstructionWithAccounts<TAccountMetas> &
191
+ InstructionWithData<ReadonlyUint8Array>,
192
+ ): ParsedSetDecompressableStateInstruction<TProgram, TAccountMetas> {
193
+ if (instruction.accounts.length < 2) {
194
+ throw new SolanaError(
195
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
196
+ {
197
+ actualAccountMetas: instruction.accounts.length,
198
+ expectedAccountMetas: 2,
199
+ },
200
+ );
201
+ }
202
+ let accountIndex = 0;
203
+ const getNextAccount = () => {
204
+ const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;
205
+ accountIndex += 1;
206
+ return accountMeta;
207
+ };
208
+ return {
209
+ programAddress: instruction.programAddress,
210
+ accounts: {
211
+ treeAuthority: getNextAccount(),
212
+ treeCreator: getNextAccount(),
213
+ },
214
+ data: getSetDecompressableStateInstructionDataDecoder().decode(
215
+ instruction.data,
216
+ ),
217
+ };
218
+ }