@macalinao/clients-mpl-bubblegum 0.0.0 → 0.3.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 (334) hide show
  1. package/README.md +15 -1
  2. package/dist/generated/accounts/index.d.ts +2 -0
  3. package/dist/generated/accounts/treeConfig.d.ts +48 -0
  4. package/dist/generated/accounts/treeConfig.d.ts.map +1 -0
  5. package/dist/generated/accounts/treeConfig.js +84 -0
  6. package/dist/generated/accounts/treeConfig.js.map +1 -0
  7. package/dist/generated/accounts/voucher.d.ts +39 -0
  8. package/dist/generated/accounts/voucher.d.ts.map +1 -0
  9. package/dist/generated/accounts/voucher.js +75 -0
  10. package/dist/generated/accounts/voucher.js.map +1 -0
  11. package/dist/generated/errors/bubblegum.d.ts +131 -0
  12. package/dist/generated/errors/bubblegum.d.ts.map +1 -0
  13. package/dist/generated/errors/bubblegum.js +188 -0
  14. package/dist/generated/errors/bubblegum.js.map +1 -0
  15. package/dist/generated/errors/index.d.ts +1 -0
  16. package/dist/generated/index.d.ts +63 -0
  17. package/dist/generated/instructions/burn.d.ts +76 -0
  18. package/dist/generated/instructions/burn.d.ts.map +1 -0
  19. package/dist/generated/instructions/burn.js +176 -0
  20. package/dist/generated/instructions/burn.js.map +1 -0
  21. package/dist/generated/instructions/burnV2.d.ts +113 -0
  22. package/dist/generated/instructions/burnV2.d.ts.map +1 -0
  23. package/dist/generated/instructions/burnV2.js +247 -0
  24. package/dist/generated/instructions/burnV2.js.map +1 -0
  25. package/dist/generated/instructions/cancelRedeem.d.ts +60 -0
  26. package/dist/generated/instructions/cancelRedeem.d.ts.map +1 -0
  27. package/dist/generated/instructions/cancelRedeem.js +162 -0
  28. package/dist/generated/instructions/cancelRedeem.js.map +1 -0
  29. package/dist/generated/instructions/closeTreeV2.d.ts +69 -0
  30. package/dist/generated/instructions/closeTreeV2.d.ts.map +1 -0
  31. package/dist/generated/instructions/closeTreeV2.js +160 -0
  32. package/dist/generated/instructions/closeTreeV2.js.map +1 -0
  33. package/dist/generated/instructions/collectV2.d.ts +33 -0
  34. package/dist/generated/instructions/collectV2.d.ts.map +1 -0
  35. package/dist/generated/instructions/collectV2.js +72 -0
  36. package/dist/generated/instructions/collectV2.js.map +1 -0
  37. package/dist/generated/instructions/compress.d.ts +76 -0
  38. package/dist/generated/instructions/compress.d.ts.map +1 -0
  39. package/dist/generated/instructions/compress.js +241 -0
  40. package/dist/generated/instructions/compress.js.map +1 -0
  41. package/dist/generated/instructions/createTree.d.ts +68 -0
  42. package/dist/generated/instructions/createTree.d.ts.map +1 -0
  43. package/dist/generated/instructions/createTree.js +172 -0
  44. package/dist/generated/instructions/createTree.js.map +1 -0
  45. package/dist/generated/instructions/createTreeV2.d.ts +70 -0
  46. package/dist/generated/instructions/createTreeV2.d.ts.map +1 -0
  47. package/dist/generated/instructions/createTreeV2.js +176 -0
  48. package/dist/generated/instructions/createTreeV2.js.map +1 -0
  49. package/dist/generated/instructions/decompressV1.d.ts +79 -0
  50. package/dist/generated/instructions/decompressV1.d.ts.map +1 -0
  51. package/dist/generated/instructions/decompressV1.js +259 -0
  52. package/dist/generated/instructions/decompressV1.js.map +1 -0
  53. package/dist/generated/instructions/delegate.d.ts +79 -0
  54. package/dist/generated/instructions/delegate.d.ts.map +1 -0
  55. package/dist/generated/instructions/delegate.js +187 -0
  56. package/dist/generated/instructions/delegate.js.map +1 -0
  57. package/dist/generated/instructions/delegateAndFreezeV2.d.ts +98 -0
  58. package/dist/generated/instructions/delegateAndFreezeV2.d.ts.map +1 -0
  59. package/dist/generated/instructions/delegateAndFreezeV2.js +208 -0
  60. package/dist/generated/instructions/delegateAndFreezeV2.js.map +1 -0
  61. package/dist/generated/instructions/delegateV2.d.ts +98 -0
  62. package/dist/generated/instructions/delegateV2.d.ts.map +1 -0
  63. package/dist/generated/instructions/delegateV2.js +208 -0
  64. package/dist/generated/instructions/delegateV2.js.map +1 -0
  65. package/dist/generated/instructions/freezeV2.d.ts +105 -0
  66. package/dist/generated/instructions/freezeV2.d.ts.map +1 -0
  67. package/dist/generated/instructions/freezeV2.js +217 -0
  68. package/dist/generated/instructions/freezeV2.js.map +1 -0
  69. package/dist/generated/instructions/index.d.ts +36 -0
  70. package/dist/generated/instructions/mintToCollectionV1.d.ts +100 -0
  71. package/dist/generated/instructions/mintToCollectionV1.d.ts.map +1 -0
  72. package/dist/generated/instructions/mintToCollectionV1.js +284 -0
  73. package/dist/generated/instructions/mintToCollectionV1.js.map +1 -0
  74. package/dist/generated/instructions/mintV1.d.ts +67 -0
  75. package/dist/generated/instructions/mintV1.d.ts.map +1 -0
  76. package/dist/generated/instructions/mintV1.js +185 -0
  77. package/dist/generated/instructions/mintV1.js.map +1 -0
  78. package/dist/generated/instructions/mintV2.d.ts +92 -0
  79. package/dist/generated/instructions/mintV2.d.ts.map +1 -0
  80. package/dist/generated/instructions/mintV2.js +252 -0
  81. package/dist/generated/instructions/mintV2.js.map +1 -0
  82. package/dist/generated/instructions/redeem.d.ts +79 -0
  83. package/dist/generated/instructions/redeem.d.ts.map +1 -0
  84. package/dist/generated/instructions/redeem.js +187 -0
  85. package/dist/generated/instructions/redeem.js.map +1 -0
  86. package/dist/generated/instructions/setAndVerifyCollection.d.ts +139 -0
  87. package/dist/generated/instructions/setAndVerifyCollection.d.ts.map +1 -0
  88. package/dist/generated/instructions/setAndVerifyCollection.js +302 -0
  89. package/dist/generated/instructions/setAndVerifyCollection.js.map +1 -0
  90. package/dist/generated/instructions/setCollectionV2.d.ts +131 -0
  91. package/dist/generated/instructions/setCollectionV2.d.ts.map +1 -0
  92. package/dist/generated/instructions/setCollectionV2.js +264 -0
  93. package/dist/generated/instructions/setCollectionV2.js.map +1 -0
  94. package/dist/generated/instructions/setDecompressableState.d.ts +38 -0
  95. package/dist/generated/instructions/setDecompressableState.d.ts.map +1 -0
  96. package/dist/generated/instructions/setDecompressableState.js +74 -0
  97. package/dist/generated/instructions/setDecompressableState.js.map +1 -0
  98. package/dist/generated/instructions/setDecompressibleState.d.ts +38 -0
  99. package/dist/generated/instructions/setDecompressibleState.d.ts.map +1 -0
  100. package/dist/generated/instructions/setDecompressibleState.js +74 -0
  101. package/dist/generated/instructions/setDecompressibleState.js.map +1 -0
  102. package/dist/generated/instructions/setNonTransferableV2.d.ts +107 -0
  103. package/dist/generated/instructions/setNonTransferableV2.d.ts.map +1 -0
  104. package/dist/generated/instructions/setNonTransferableV2.js +217 -0
  105. package/dist/generated/instructions/setNonTransferableV2.js.map +1 -0
  106. package/dist/generated/instructions/setTreeDelegate.d.ts +49 -0
  107. package/dist/generated/instructions/setTreeDelegate.d.ts.map +1 -0
  108. package/dist/generated/instructions/setTreeDelegate.js +134 -0
  109. package/dist/generated/instructions/setTreeDelegate.js.map +1 -0
  110. package/dist/generated/instructions/thawAndRevokeV2.d.ts +93 -0
  111. package/dist/generated/instructions/thawAndRevokeV2.d.ts.map +1 -0
  112. package/dist/generated/instructions/thawAndRevokeV2.js +197 -0
  113. package/dist/generated/instructions/thawAndRevokeV2.js.map +1 -0
  114. package/dist/generated/instructions/thawV2.d.ts +105 -0
  115. package/dist/generated/instructions/thawV2.d.ts.map +1 -0
  116. package/dist/generated/instructions/thawV2.js +217 -0
  117. package/dist/generated/instructions/thawV2.js.map +1 -0
  118. package/dist/generated/instructions/transfer.d.ts +79 -0
  119. package/dist/generated/instructions/transfer.d.ts.map +1 -0
  120. package/dist/generated/instructions/transfer.js +187 -0
  121. package/dist/generated/instructions/transfer.js.map +1 -0
  122. package/dist/generated/instructions/transferV2.d.ts +110 -0
  123. package/dist/generated/instructions/transferV2.d.ts.map +1 -0
  124. package/dist/generated/instructions/transferV2.js +228 -0
  125. package/dist/generated/instructions/transferV2.js.map +1 -0
  126. package/dist/generated/instructions/unverifyCollection.d.ts +135 -0
  127. package/dist/generated/instructions/unverifyCollection.d.ts.map +1 -0
  128. package/dist/generated/instructions/unverifyCollection.js +300 -0
  129. package/dist/generated/instructions/unverifyCollection.js.map +1 -0
  130. package/dist/generated/instructions/unverifyCreator.d.ts +87 -0
  131. package/dist/generated/instructions/unverifyCreator.d.ts.map +1 -0
  132. package/dist/generated/instructions/unverifyCreator.js +201 -0
  133. package/dist/generated/instructions/unverifyCreator.js.map +1 -0
  134. package/dist/generated/instructions/unverifyCreatorV2.d.ts +91 -0
  135. package/dist/generated/instructions/unverifyCreatorV2.d.ts.map +1 -0
  136. package/dist/generated/instructions/unverifyCreatorV2.js +205 -0
  137. package/dist/generated/instructions/unverifyCreatorV2.js.map +1 -0
  138. package/dist/generated/instructions/updateAssetDataV2.d.ts +114 -0
  139. package/dist/generated/instructions/updateAssetDataV2.d.ts.map +1 -0
  140. package/dist/generated/instructions/updateAssetDataV2.js +222 -0
  141. package/dist/generated/instructions/updateAssetDataV2.js.map +1 -0
  142. package/dist/generated/instructions/updateMetadata.d.ts +112 -0
  143. package/dist/generated/instructions/updateMetadata.d.ts.map +1 -0
  144. package/dist/generated/instructions/updateMetadata.js +250 -0
  145. package/dist/generated/instructions/updateMetadata.js.map +1 -0
  146. package/dist/generated/instructions/updateMetadataV2.d.ts +109 -0
  147. package/dist/generated/instructions/updateMetadataV2.d.ts.map +1 -0
  148. package/dist/generated/instructions/updateMetadataV2.js +219 -0
  149. package/dist/generated/instructions/updateMetadataV2.js.map +1 -0
  150. package/dist/generated/instructions/verifyCollection.d.ts +135 -0
  151. package/dist/generated/instructions/verifyCollection.d.ts.map +1 -0
  152. package/dist/generated/instructions/verifyCollection.js +300 -0
  153. package/dist/generated/instructions/verifyCollection.js.map +1 -0
  154. package/dist/generated/instructions/verifyCreator.d.ts +87 -0
  155. package/dist/generated/instructions/verifyCreator.d.ts.map +1 -0
  156. package/dist/generated/instructions/verifyCreator.js +201 -0
  157. package/dist/generated/instructions/verifyCreator.js.map +1 -0
  158. package/dist/generated/instructions/verifyCreatorV2.d.ts +91 -0
  159. package/dist/generated/instructions/verifyCreatorV2.d.ts.map +1 -0
  160. package/dist/generated/instructions/verifyCreatorV2.js +205 -0
  161. package/dist/generated/instructions/verifyCreatorV2.js.map +1 -0
  162. package/dist/generated/pdas/assetId.d.ts +16 -0
  163. package/dist/generated/pdas/assetId.d.ts.map +1 -0
  164. package/dist/generated/pdas/assetId.js +18 -0
  165. package/dist/generated/pdas/assetId.js.map +1 -0
  166. package/dist/generated/pdas/bubblegumSigner.d.ts +10 -0
  167. package/dist/generated/pdas/bubblegumSigner.d.ts.map +1 -0
  168. package/dist/generated/pdas/bubblegumSigner.js +14 -0
  169. package/dist/generated/pdas/bubblegumSigner.js.map +1 -0
  170. package/dist/generated/pdas/index.d.ts +7 -0
  171. package/dist/generated/pdas/masterEdition.d.ts +14 -0
  172. package/dist/generated/pdas/masterEdition.d.ts.map +1 -0
  173. package/dist/generated/pdas/masterEdition.js +19 -0
  174. package/dist/generated/pdas/masterEdition.js.map +1 -0
  175. package/dist/generated/pdas/metadata.d.ts +14 -0
  176. package/dist/generated/pdas/metadata.d.ts.map +1 -0
  177. package/dist/generated/pdas/metadata.js +18 -0
  178. package/dist/generated/pdas/metadata.js.map +1 -0
  179. package/dist/generated/pdas/mintAuthority.d.ts +14 -0
  180. package/dist/generated/pdas/mintAuthority.d.ts.map +1 -0
  181. package/dist/generated/pdas/mintAuthority.js +14 -0
  182. package/dist/generated/pdas/mintAuthority.js.map +1 -0
  183. package/dist/generated/pdas/treeConfig.d.ts +14 -0
  184. package/dist/generated/pdas/treeConfig.d.ts.map +1 -0
  185. package/dist/generated/pdas/treeConfig.js +14 -0
  186. package/dist/generated/pdas/treeConfig.js.map +1 -0
  187. package/dist/generated/pdas/voucher.d.ts +16 -0
  188. package/dist/generated/pdas/voucher.d.ts.map +1 -0
  189. package/dist/generated/pdas/voucher.js +18 -0
  190. package/dist/generated/pdas/voucher.js.map +1 -0
  191. package/dist/generated/programs/bubblegum.d.ts +232 -0
  192. package/dist/generated/programs/bubblegum.d.ts.map +1 -0
  193. package/dist/generated/programs/bubblegum.js +844 -0
  194. package/dist/generated/programs/bubblegum.js.map +1 -0
  195. package/dist/generated/programs/index.d.ts +2 -0
  196. package/dist/generated/programs/mplTokenMetadata.d.ts +20 -0
  197. package/dist/generated/programs/mplTokenMetadata.d.ts.map +1 -0
  198. package/dist/generated/programs/mplTokenMetadata.js +17 -0
  199. package/dist/generated/programs/mplTokenMetadata.js.map +1 -0
  200. package/dist/generated/types/assetDataSchema.d.ts +15 -0
  201. package/dist/generated/types/assetDataSchema.d.ts.map +1 -0
  202. package/dist/generated/types/assetDataSchema.js +21 -0
  203. package/dist/generated/types/assetDataSchema.js.map +1 -0
  204. package/dist/generated/types/bubblegumEventType.d.ts +14 -0
  205. package/dist/generated/types/bubblegumEventType.d.ts.map +1 -0
  206. package/dist/generated/types/bubblegumEventType.js +20 -0
  207. package/dist/generated/types/bubblegumEventType.js.map +1 -0
  208. package/dist/generated/types/collection.d.ts +14 -0
  209. package/dist/generated/types/collection.d.ts.map +1 -0
  210. package/dist/generated/types/collection.js +15 -0
  211. package/dist/generated/types/collection.js.map +1 -0
  212. package/dist/generated/types/creator.d.ts +20 -0
  213. package/dist/generated/types/creator.d.ts.map +1 -0
  214. package/dist/generated/types/creator.js +23 -0
  215. package/dist/generated/types/creator.js.map +1 -0
  216. package/dist/generated/types/decompressibleState.d.ts +14 -0
  217. package/dist/generated/types/decompressibleState.d.ts.map +1 -0
  218. package/dist/generated/types/decompressibleState.js +20 -0
  219. package/dist/generated/types/decompressibleState.js.map +1 -0
  220. package/dist/generated/types/index.d.ts +15 -0
  221. package/dist/generated/types/instructionName.d.ts +47 -0
  222. package/dist/generated/types/instructionName.d.ts.map +1 -0
  223. package/dist/generated/types/instructionName.js +53 -0
  224. package/dist/generated/types/instructionName.js.map +1 -0
  225. package/dist/generated/types/leafSchema.d.ts +54 -0
  226. package/dist/generated/types/leafSchema.d.ts.map +1 -0
  227. package/dist/generated/types/leafSchema.js +61 -0
  228. package/dist/generated/types/leafSchema.js.map +1 -0
  229. package/dist/generated/types/metadataArgs.d.ts +62 -0
  230. package/dist/generated/types/metadataArgs.d.ts.map +1 -0
  231. package/dist/generated/types/metadataArgs.js +46 -0
  232. package/dist/generated/types/metadataArgs.js.map +1 -0
  233. package/dist/generated/types/metadataArgsV2.d.ts +51 -0
  234. package/dist/generated/types/metadataArgsV2.d.ts.map +1 -0
  235. package/dist/generated/types/metadataArgsV2.js +37 -0
  236. package/dist/generated/types/metadataArgsV2.js.map +1 -0
  237. package/dist/generated/types/tokenProgramVersion.d.ts +14 -0
  238. package/dist/generated/types/tokenProgramVersion.d.ts.map +1 -0
  239. package/dist/generated/types/tokenProgramVersion.js +20 -0
  240. package/dist/generated/types/tokenProgramVersion.js.map +1 -0
  241. package/dist/generated/types/tokenStandard.d.ts +16 -0
  242. package/dist/generated/types/tokenStandard.d.ts.map +1 -0
  243. package/dist/generated/types/tokenStandard.js +22 -0
  244. package/dist/generated/types/tokenStandard.js.map +1 -0
  245. package/dist/generated/types/updateArgs.d.ts +28 -0
  246. package/dist/generated/types/updateArgs.d.ts.map +1 -0
  247. package/dist/generated/types/updateArgs.js +32 -0
  248. package/dist/generated/types/updateArgs.js.map +1 -0
  249. package/dist/generated/types/useMethod.d.ts +15 -0
  250. package/dist/generated/types/useMethod.d.ts.map +1 -0
  251. package/dist/generated/types/useMethod.js +21 -0
  252. package/dist/generated/types/useMethod.js.map +1 -0
  253. package/dist/generated/types/uses.d.ts +20 -0
  254. package/dist/generated/types/uses.d.ts.map +1 -0
  255. package/dist/generated/types/uses.js +24 -0
  256. package/dist/generated/types/uses.js.map +1 -0
  257. package/dist/generated/types/version.d.ts +14 -0
  258. package/dist/generated/types/version.d.ts.map +1 -0
  259. package/dist/generated/types/version.js +20 -0
  260. package/dist/generated/types/version.js.map +1 -0
  261. package/dist/index.d.ts +64 -0
  262. package/dist/index.js +64 -0
  263. package/package.json +53 -5
  264. package/src/generated/accounts/index.ts +10 -0
  265. package/src/generated/accounts/treeConfig.ts +197 -0
  266. package/src/generated/accounts/voucher.ts +166 -0
  267. package/src/generated/errors/bubblegum.ts +309 -0
  268. package/src/generated/errors/index.ts +9 -0
  269. package/src/generated/index.ts +14 -0
  270. package/src/generated/instructions/burn.ts +454 -0
  271. package/src/generated/instructions/burnV2.ts +641 -0
  272. package/src/generated/instructions/cancelRedeem.ts +432 -0
  273. package/src/generated/instructions/closeTreeV2.ts +424 -0
  274. package/src/generated/instructions/collectV2.ts +184 -0
  275. package/src/generated/instructions/compress.ts +589 -0
  276. package/src/generated/instructions/createTree.ts +448 -0
  277. package/src/generated/instructions/createTreeV2.ts +459 -0
  278. package/src/generated/instructions/decompressV1.ts +646 -0
  279. package/src/generated/instructions/delegate.ts +492 -0
  280. package/src/generated/instructions/delegateAndFreezeV2.ts +568 -0
  281. package/src/generated/instructions/delegateV2.ts +562 -0
  282. package/src/generated/instructions/freezeV2.ts +566 -0
  283. package/src/generated/instructions/index.ts +44 -0
  284. package/src/generated/instructions/mintToCollectionV1.ts +732 -0
  285. package/src/generated/instructions/mintV1.ts +476 -0
  286. package/src/generated/instructions/mintV2.ts +649 -0
  287. package/src/generated/instructions/redeem.ts +480 -0
  288. package/src/generated/instructions/setAndVerifyCollection.ts +792 -0
  289. package/src/generated/instructions/setCollectionV2.ts +711 -0
  290. package/src/generated/instructions/setDecompressableState.ts +218 -0
  291. package/src/generated/instructions/setDecompressibleState.ts +218 -0
  292. package/src/generated/instructions/setNonTransferableV2.ts +575 -0
  293. package/src/generated/instructions/setTreeDelegate.ts +344 -0
  294. package/src/generated/instructions/thawAndRevokeV2.ts +526 -0
  295. package/src/generated/instructions/thawV2.ts +566 -0
  296. package/src/generated/instructions/transfer.ts +476 -0
  297. package/src/generated/instructions/transferV2.ts +591 -0
  298. package/src/generated/instructions/unverifyCollection.ts +781 -0
  299. package/src/generated/instructions/unverifyCreator.ts +515 -0
  300. package/src/generated/instructions/unverifyCreatorV2.ts +538 -0
  301. package/src/generated/instructions/updateAssetDataV2.ts +599 -0
  302. package/src/generated/instructions/updateMetadata.ts +665 -0
  303. package/src/generated/instructions/updateMetadataV2.ts +582 -0
  304. package/src/generated/instructions/verifyCollection.ts +779 -0
  305. package/src/generated/instructions/verifyCreator.ts +516 -0
  306. package/src/generated/instructions/verifyCreatorV2.ts +538 -0
  307. package/src/generated/pdas/assetId.ts +40 -0
  308. package/src/generated/pdas/bubblegumSigner.ts +23 -0
  309. package/src/generated/pdas/index.ts +15 -0
  310. package/src/generated/pdas/masterEdition.ts +38 -0
  311. package/src/generated/pdas/metadata.ts +37 -0
  312. package/src/generated/pdas/mintAuthority.ts +29 -0
  313. package/src/generated/pdas/treeConfig.ts +29 -0
  314. package/src/generated/pdas/voucher.ts +40 -0
  315. package/src/generated/programs/bubblegum.ts +1509 -0
  316. package/src/generated/programs/index.ts +10 -0
  317. package/src/generated/programs/mplTokenMetadata.ts +42 -0
  318. package/src/generated/types/assetDataSchema.ts +37 -0
  319. package/src/generated/types/bubblegumEventType.ts +39 -0
  320. package/src/generated/types/collection.ts +51 -0
  321. package/src/generated/types/creator.ts +58 -0
  322. package/src/generated/types/decompressibleState.ts +39 -0
  323. package/src/generated/types/index.ts +23 -0
  324. package/src/generated/types/instructionName.ts +69 -0
  325. package/src/generated/types/leafSchema.ts +166 -0
  326. package/src/generated/types/metadataArgs.ts +148 -0
  327. package/src/generated/types/metadataArgsV2.ts +126 -0
  328. package/src/generated/types/tokenProgramVersion.ts +39 -0
  329. package/src/generated/types/tokenStandard.ts +38 -0
  330. package/src/generated/types/updateArgs.ts +102 -0
  331. package/src/generated/types/useMethod.ts +34 -0
  332. package/src/generated/types/uses.ts +54 -0
  333. package/src/generated/types/version.ts +33 -0
  334. package/src/index.ts +8 -0
@@ -0,0 +1,732 @@
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
+ ReadonlyAccount,
20
+ ReadonlySignerAccount,
21
+ ReadonlyUint8Array,
22
+ TransactionSigner,
23
+ WritableAccount,
24
+ } from "@solana/kit";
25
+ import type { ResolvedInstructionAccount } from "@solana/program-client-core";
26
+ import type { MetadataArgs, MetadataArgsArgs } from "../types/index.js";
27
+ import {
28
+ address,
29
+ combineCodec,
30
+ fixDecoderSize,
31
+ fixEncoderSize,
32
+ getBytesDecoder,
33
+ getBytesEncoder,
34
+ getStructDecoder,
35
+ getStructEncoder,
36
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
37
+ SolanaError,
38
+ transformEncoder,
39
+ } from "@solana/kit";
40
+ import {
41
+ getAccountMetaFactory,
42
+ getAddressFromResolvedInstructionAccount,
43
+ } from "@solana/program-client-core";
44
+ import {
45
+ findBubblegumSignerPda,
46
+ findMasterEditionPda,
47
+ findMetadataPda,
48
+ findTreeConfigPda,
49
+ } from "../pdas/index.js";
50
+ import { BUBBLEGUM_PROGRAM_ADDRESS } from "../programs/index.js";
51
+ import {
52
+ getMetadataArgsDecoder,
53
+ getMetadataArgsEncoder,
54
+ } from "../types/index.js";
55
+
56
+ export const MINT_TO_COLLECTION_V1_DISCRIMINATOR: ReadonlyUint8Array =
57
+ new Uint8Array([153, 18, 178, 47, 197, 158, 86, 15]);
58
+
59
+ export function getMintToCollectionV1DiscriminatorBytes(): ReadonlyUint8Array {
60
+ return fixEncoderSize(getBytesEncoder(), 8).encode(
61
+ MINT_TO_COLLECTION_V1_DISCRIMINATOR,
62
+ );
63
+ }
64
+
65
+ export type MintToCollectionV1Instruction<
66
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
67
+ TAccountTreeAuthority extends string | AccountMeta<string> = string,
68
+ TAccountLeafOwner extends string | AccountMeta<string> = string,
69
+ TAccountLeafDelegate extends string | AccountMeta<string> = string,
70
+ TAccountMerkleTree extends string | AccountMeta<string> = string,
71
+ TAccountPayer extends string | AccountMeta<string> = string,
72
+ TAccountTreeDelegate extends string | AccountMeta<string> = string,
73
+ TAccountCollectionAuthority extends string | AccountMeta<string> = string,
74
+ TAccountCollectionAuthorityRecordPda extends
75
+ | string
76
+ | AccountMeta<string> = "BGUMAp9Gq7iTEuizy4pqaxsTyUCBK68MDfK752saRPUY",
77
+ TAccountCollectionMint extends string | AccountMeta<string> = string,
78
+ TAccountCollectionMetadata extends string | AccountMeta<string> = string,
79
+ TAccountEditionAccount extends string | AccountMeta<string> = string,
80
+ TAccountBubblegumSigner extends string | AccountMeta<string> = string,
81
+ TAccountLogWrapper extends
82
+ | string
83
+ | AccountMeta<string> = "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV",
84
+ TAccountCompressionProgram extends
85
+ | string
86
+ | AccountMeta<string> = "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK",
87
+ TAccountTokenMetadataProgram extends
88
+ | string
89
+ | AccountMeta<string> = "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s",
90
+ TAccountSystemProgram extends
91
+ | string
92
+ | AccountMeta<string> = "11111111111111111111111111111111",
93
+ TRemainingAccounts extends readonly AccountMeta<string>[] = [],
94
+ > = Instruction<TProgram> &
95
+ InstructionWithData<ReadonlyUint8Array> &
96
+ InstructionWithAccounts<
97
+ [
98
+ TAccountTreeAuthority extends string
99
+ ? WritableAccount<TAccountTreeAuthority>
100
+ : TAccountTreeAuthority,
101
+ TAccountLeafOwner extends string
102
+ ? ReadonlyAccount<TAccountLeafOwner>
103
+ : TAccountLeafOwner,
104
+ TAccountLeafDelegate extends string
105
+ ? ReadonlyAccount<TAccountLeafDelegate>
106
+ : TAccountLeafDelegate,
107
+ TAccountMerkleTree extends string
108
+ ? WritableAccount<TAccountMerkleTree>
109
+ : TAccountMerkleTree,
110
+ TAccountPayer extends string
111
+ ? ReadonlySignerAccount<TAccountPayer> &
112
+ AccountSignerMeta<TAccountPayer>
113
+ : TAccountPayer,
114
+ TAccountTreeDelegate extends string
115
+ ? ReadonlySignerAccount<TAccountTreeDelegate> &
116
+ AccountSignerMeta<TAccountTreeDelegate>
117
+ : TAccountTreeDelegate,
118
+ TAccountCollectionAuthority extends string
119
+ ? ReadonlySignerAccount<TAccountCollectionAuthority> &
120
+ AccountSignerMeta<TAccountCollectionAuthority>
121
+ : TAccountCollectionAuthority,
122
+ TAccountCollectionAuthorityRecordPda extends string
123
+ ? ReadonlyAccount<TAccountCollectionAuthorityRecordPda>
124
+ : TAccountCollectionAuthorityRecordPda,
125
+ TAccountCollectionMint extends string
126
+ ? ReadonlyAccount<TAccountCollectionMint>
127
+ : TAccountCollectionMint,
128
+ TAccountCollectionMetadata extends string
129
+ ? WritableAccount<TAccountCollectionMetadata>
130
+ : TAccountCollectionMetadata,
131
+ TAccountEditionAccount extends string
132
+ ? ReadonlyAccount<TAccountEditionAccount>
133
+ : TAccountEditionAccount,
134
+ TAccountBubblegumSigner extends string
135
+ ? ReadonlyAccount<TAccountBubblegumSigner>
136
+ : TAccountBubblegumSigner,
137
+ TAccountLogWrapper extends string
138
+ ? ReadonlyAccount<TAccountLogWrapper>
139
+ : TAccountLogWrapper,
140
+ TAccountCompressionProgram extends string
141
+ ? ReadonlyAccount<TAccountCompressionProgram>
142
+ : TAccountCompressionProgram,
143
+ TAccountTokenMetadataProgram extends string
144
+ ? ReadonlyAccount<TAccountTokenMetadataProgram>
145
+ : TAccountTokenMetadataProgram,
146
+ TAccountSystemProgram extends string
147
+ ? ReadonlyAccount<TAccountSystemProgram>
148
+ : TAccountSystemProgram,
149
+ ...TRemainingAccounts,
150
+ ]
151
+ >;
152
+
153
+ export interface MintToCollectionV1InstructionData {
154
+ discriminator: ReadonlyUint8Array;
155
+ metadataArgs: MetadataArgs;
156
+ }
157
+
158
+ export interface MintToCollectionV1InstructionDataArgs {
159
+ metadataArgs: MetadataArgsArgs;
160
+ }
161
+
162
+ export function getMintToCollectionV1InstructionDataEncoder(): Encoder<MintToCollectionV1InstructionDataArgs> {
163
+ return transformEncoder(
164
+ getStructEncoder([
165
+ ["discriminator", fixEncoderSize(getBytesEncoder(), 8)],
166
+ ["metadataArgs", getMetadataArgsEncoder()],
167
+ ]),
168
+ (value) => ({
169
+ ...value,
170
+ discriminator: MINT_TO_COLLECTION_V1_DISCRIMINATOR,
171
+ }),
172
+ );
173
+ }
174
+
175
+ export function getMintToCollectionV1InstructionDataDecoder(): Decoder<MintToCollectionV1InstructionData> {
176
+ return getStructDecoder([
177
+ ["discriminator", fixDecoderSize(getBytesDecoder(), 8)],
178
+ ["metadataArgs", getMetadataArgsDecoder()],
179
+ ]);
180
+ }
181
+
182
+ export function getMintToCollectionV1InstructionDataCodec(): Codec<
183
+ MintToCollectionV1InstructionDataArgs,
184
+ MintToCollectionV1InstructionData
185
+ > {
186
+ return combineCodec(
187
+ getMintToCollectionV1InstructionDataEncoder(),
188
+ getMintToCollectionV1InstructionDataDecoder(),
189
+ );
190
+ }
191
+
192
+ export interface MintToCollectionV1AsyncInput<
193
+ TAccountTreeAuthority extends string = string,
194
+ TAccountLeafOwner extends string = string,
195
+ TAccountLeafDelegate extends string = string,
196
+ TAccountMerkleTree extends string = string,
197
+ TAccountPayer extends string = string,
198
+ TAccountTreeDelegate extends string = string,
199
+ TAccountCollectionAuthority extends string = string,
200
+ TAccountCollectionAuthorityRecordPda extends string = string,
201
+ TAccountCollectionMint extends string = string,
202
+ TAccountCollectionMetadata extends string = string,
203
+ TAccountEditionAccount extends string = string,
204
+ TAccountBubblegumSigner extends string = string,
205
+ TAccountLogWrapper extends string = string,
206
+ TAccountCompressionProgram extends string = string,
207
+ TAccountTokenMetadataProgram extends string = string,
208
+ TAccountSystemProgram extends string = string,
209
+ > {
210
+ treeAuthority?: Address<TAccountTreeAuthority>;
211
+ leafOwner: Address<TAccountLeafOwner>;
212
+ leafDelegate: Address<TAccountLeafDelegate>;
213
+ merkleTree: Address<TAccountMerkleTree>;
214
+ payer: TransactionSigner<TAccountPayer>;
215
+ treeDelegate: TransactionSigner<TAccountTreeDelegate>;
216
+ collectionAuthority: TransactionSigner<TAccountCollectionAuthority>;
217
+ /**
218
+ * If there is no collecton authority record PDA then
219
+ * this must be the Bubblegum program address.
220
+ */
221
+ collectionAuthorityRecordPda?: Address<TAccountCollectionAuthorityRecordPda>;
222
+ collectionMint: Address<TAccountCollectionMint>;
223
+ collectionMetadata?: Address<TAccountCollectionMetadata>;
224
+ editionAccount?: Address<TAccountEditionAccount>;
225
+ bubblegumSigner?: Address<TAccountBubblegumSigner>;
226
+ logWrapper?: Address<TAccountLogWrapper>;
227
+ compressionProgram?: Address<TAccountCompressionProgram>;
228
+ tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;
229
+ systemProgram?: Address<TAccountSystemProgram>;
230
+ metadataArgs: MintToCollectionV1InstructionDataArgs["metadataArgs"];
231
+ }
232
+
233
+ export async function getMintToCollectionV1InstructionAsync<
234
+ TAccountTreeAuthority extends string,
235
+ TAccountLeafOwner extends string,
236
+ TAccountLeafDelegate extends string,
237
+ TAccountMerkleTree extends string,
238
+ TAccountPayer extends string,
239
+ TAccountTreeDelegate extends string,
240
+ TAccountCollectionAuthority extends string,
241
+ TAccountCollectionAuthorityRecordPda extends string,
242
+ TAccountCollectionMint extends string,
243
+ TAccountCollectionMetadata extends string,
244
+ TAccountEditionAccount extends string,
245
+ TAccountBubblegumSigner extends string,
246
+ TAccountLogWrapper extends string,
247
+ TAccountCompressionProgram extends string,
248
+ TAccountTokenMetadataProgram extends string,
249
+ TAccountSystemProgram extends string,
250
+ TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,
251
+ >(
252
+ input: MintToCollectionV1AsyncInput<
253
+ TAccountTreeAuthority,
254
+ TAccountLeafOwner,
255
+ TAccountLeafDelegate,
256
+ TAccountMerkleTree,
257
+ TAccountPayer,
258
+ TAccountTreeDelegate,
259
+ TAccountCollectionAuthority,
260
+ TAccountCollectionAuthorityRecordPda,
261
+ TAccountCollectionMint,
262
+ TAccountCollectionMetadata,
263
+ TAccountEditionAccount,
264
+ TAccountBubblegumSigner,
265
+ TAccountLogWrapper,
266
+ TAccountCompressionProgram,
267
+ TAccountTokenMetadataProgram,
268
+ TAccountSystemProgram
269
+ >,
270
+ config?: { programAddress?: TProgramAddress },
271
+ ): Promise<
272
+ MintToCollectionV1Instruction<
273
+ TProgramAddress,
274
+ TAccountTreeAuthority,
275
+ TAccountLeafOwner,
276
+ TAccountLeafDelegate,
277
+ TAccountMerkleTree,
278
+ TAccountPayer,
279
+ TAccountTreeDelegate,
280
+ TAccountCollectionAuthority,
281
+ TAccountCollectionAuthorityRecordPda,
282
+ TAccountCollectionMint,
283
+ TAccountCollectionMetadata,
284
+ TAccountEditionAccount,
285
+ TAccountBubblegumSigner,
286
+ TAccountLogWrapper,
287
+ TAccountCompressionProgram,
288
+ TAccountTokenMetadataProgram,
289
+ TAccountSystemProgram
290
+ >
291
+ > {
292
+ // Program address.
293
+ const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;
294
+
295
+ // Original accounts.
296
+ const originalAccounts = {
297
+ treeAuthority: { value: input.treeAuthority ?? null, isWritable: true },
298
+ leafOwner: { value: input.leafOwner ?? null, isWritable: false },
299
+ leafDelegate: { value: input.leafDelegate ?? null, isWritable: false },
300
+ merkleTree: { value: input.merkleTree ?? null, isWritable: true },
301
+ payer: { value: input.payer ?? null, isWritable: false },
302
+ treeDelegate: { value: input.treeDelegate ?? null, isWritable: false },
303
+ collectionAuthority: {
304
+ value: input.collectionAuthority ?? null,
305
+ isWritable: false,
306
+ },
307
+ collectionAuthorityRecordPda: {
308
+ value: input.collectionAuthorityRecordPda ?? null,
309
+ isWritable: false,
310
+ },
311
+ collectionMint: { value: input.collectionMint ?? null, isWritable: false },
312
+ collectionMetadata: {
313
+ value: input.collectionMetadata ?? null,
314
+ isWritable: true,
315
+ },
316
+ editionAccount: { value: input.editionAccount ?? null, isWritable: false },
317
+ bubblegumSigner: {
318
+ value: input.bubblegumSigner ?? null,
319
+ isWritable: false,
320
+ },
321
+ logWrapper: { value: input.logWrapper ?? null, isWritable: false },
322
+ compressionProgram: {
323
+ value: input.compressionProgram ?? null,
324
+ isWritable: false,
325
+ },
326
+ tokenMetadataProgram: {
327
+ value: input.tokenMetadataProgram ?? null,
328
+ isWritable: false,
329
+ },
330
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
331
+ };
332
+ const accounts = originalAccounts as Record<
333
+ keyof typeof originalAccounts,
334
+ ResolvedInstructionAccount
335
+ >;
336
+
337
+ // Original args.
338
+ const args = { ...input };
339
+
340
+ // Resolve default values.
341
+ if (!accounts.treeAuthority.value) {
342
+ accounts.treeAuthority.value = await findTreeConfigPda({
343
+ merkleTree: getAddressFromResolvedInstructionAccount(
344
+ "merkleTree",
345
+ accounts.merkleTree.value,
346
+ ),
347
+ });
348
+ }
349
+ if (!accounts.collectionAuthorityRecordPda.value) {
350
+ accounts.collectionAuthorityRecordPda.value = programAddress;
351
+ accounts.collectionAuthorityRecordPda.isWritable = false;
352
+ }
353
+ if (!accounts.collectionMetadata.value) {
354
+ accounts.collectionMetadata.value = await findMetadataPda({
355
+ programId: address("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),
356
+ mint: getAddressFromResolvedInstructionAccount(
357
+ "collectionMint",
358
+ accounts.collectionMint.value,
359
+ ),
360
+ });
361
+ }
362
+ if (!accounts.editionAccount.value) {
363
+ accounts.editionAccount.value = await findMasterEditionPda({
364
+ programId: address("metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s"),
365
+ mint: getAddressFromResolvedInstructionAccount(
366
+ "collectionMint",
367
+ accounts.collectionMint.value,
368
+ ),
369
+ });
370
+ }
371
+ if (!accounts.bubblegumSigner.value) {
372
+ accounts.bubblegumSigner.value = await findBubblegumSignerPda();
373
+ }
374
+ if (!accounts.logWrapper.value) {
375
+ accounts.logWrapper.value =
376
+ "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV" as Address<"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV">;
377
+ }
378
+ if (!accounts.compressionProgram.value) {
379
+ accounts.compressionProgram.value =
380
+ "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK" as Address<"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK">;
381
+ }
382
+ if (!accounts.tokenMetadataProgram.value) {
383
+ accounts.tokenMetadataProgram.value =
384
+ "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" as Address<"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s">;
385
+ }
386
+ if (!accounts.systemProgram.value) {
387
+ accounts.systemProgram.value =
388
+ "11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
389
+ }
390
+
391
+ const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
392
+ return Object.freeze({
393
+ accounts: [
394
+ getAccountMeta("treeAuthority", accounts.treeAuthority),
395
+ getAccountMeta("leafOwner", accounts.leafOwner),
396
+ getAccountMeta("leafDelegate", accounts.leafDelegate),
397
+ getAccountMeta("merkleTree", accounts.merkleTree),
398
+ getAccountMeta("payer", accounts.payer),
399
+ getAccountMeta("treeDelegate", accounts.treeDelegate),
400
+ getAccountMeta("collectionAuthority", accounts.collectionAuthority),
401
+ getAccountMeta(
402
+ "collectionAuthorityRecordPda",
403
+ accounts.collectionAuthorityRecordPda,
404
+ ),
405
+ getAccountMeta("collectionMint", accounts.collectionMint),
406
+ getAccountMeta("collectionMetadata", accounts.collectionMetadata),
407
+ getAccountMeta("editionAccount", accounts.editionAccount),
408
+ getAccountMeta("bubblegumSigner", accounts.bubblegumSigner),
409
+ getAccountMeta("logWrapper", accounts.logWrapper),
410
+ getAccountMeta("compressionProgram", accounts.compressionProgram),
411
+ getAccountMeta("tokenMetadataProgram", accounts.tokenMetadataProgram),
412
+ getAccountMeta("systemProgram", accounts.systemProgram),
413
+ ],
414
+ data: getMintToCollectionV1InstructionDataEncoder().encode(
415
+ args as MintToCollectionV1InstructionDataArgs,
416
+ ),
417
+ programAddress,
418
+ } as MintToCollectionV1Instruction<
419
+ TProgramAddress,
420
+ TAccountTreeAuthority,
421
+ TAccountLeafOwner,
422
+ TAccountLeafDelegate,
423
+ TAccountMerkleTree,
424
+ TAccountPayer,
425
+ TAccountTreeDelegate,
426
+ TAccountCollectionAuthority,
427
+ TAccountCollectionAuthorityRecordPda,
428
+ TAccountCollectionMint,
429
+ TAccountCollectionMetadata,
430
+ TAccountEditionAccount,
431
+ TAccountBubblegumSigner,
432
+ TAccountLogWrapper,
433
+ TAccountCompressionProgram,
434
+ TAccountTokenMetadataProgram,
435
+ TAccountSystemProgram
436
+ >);
437
+ }
438
+
439
+ export interface MintToCollectionV1Input<
440
+ TAccountTreeAuthority extends string = string,
441
+ TAccountLeafOwner extends string = string,
442
+ TAccountLeafDelegate extends string = string,
443
+ TAccountMerkleTree extends string = string,
444
+ TAccountPayer extends string = string,
445
+ TAccountTreeDelegate extends string = string,
446
+ TAccountCollectionAuthority extends string = string,
447
+ TAccountCollectionAuthorityRecordPda extends string = string,
448
+ TAccountCollectionMint extends string = string,
449
+ TAccountCollectionMetadata extends string = string,
450
+ TAccountEditionAccount extends string = string,
451
+ TAccountBubblegumSigner extends string = string,
452
+ TAccountLogWrapper extends string = string,
453
+ TAccountCompressionProgram extends string = string,
454
+ TAccountTokenMetadataProgram extends string = string,
455
+ TAccountSystemProgram extends string = string,
456
+ > {
457
+ treeAuthority: Address<TAccountTreeAuthority>;
458
+ leafOwner: Address<TAccountLeafOwner>;
459
+ leafDelegate: Address<TAccountLeafDelegate>;
460
+ merkleTree: Address<TAccountMerkleTree>;
461
+ payer: TransactionSigner<TAccountPayer>;
462
+ treeDelegate: TransactionSigner<TAccountTreeDelegate>;
463
+ collectionAuthority: TransactionSigner<TAccountCollectionAuthority>;
464
+ /**
465
+ * If there is no collecton authority record PDA then
466
+ * this must be the Bubblegum program address.
467
+ */
468
+ collectionAuthorityRecordPda?: Address<TAccountCollectionAuthorityRecordPda>;
469
+ collectionMint: Address<TAccountCollectionMint>;
470
+ collectionMetadata: Address<TAccountCollectionMetadata>;
471
+ editionAccount: Address<TAccountEditionAccount>;
472
+ bubblegumSigner: Address<TAccountBubblegumSigner>;
473
+ logWrapper?: Address<TAccountLogWrapper>;
474
+ compressionProgram?: Address<TAccountCompressionProgram>;
475
+ tokenMetadataProgram?: Address<TAccountTokenMetadataProgram>;
476
+ systemProgram?: Address<TAccountSystemProgram>;
477
+ metadataArgs: MintToCollectionV1InstructionDataArgs["metadataArgs"];
478
+ }
479
+
480
+ export function getMintToCollectionV1Instruction<
481
+ TAccountTreeAuthority extends string,
482
+ TAccountLeafOwner extends string,
483
+ TAccountLeafDelegate extends string,
484
+ TAccountMerkleTree extends string,
485
+ TAccountPayer extends string,
486
+ TAccountTreeDelegate extends string,
487
+ TAccountCollectionAuthority extends string,
488
+ TAccountCollectionAuthorityRecordPda extends string,
489
+ TAccountCollectionMint extends string,
490
+ TAccountCollectionMetadata extends string,
491
+ TAccountEditionAccount extends string,
492
+ TAccountBubblegumSigner extends string,
493
+ TAccountLogWrapper extends string,
494
+ TAccountCompressionProgram extends string,
495
+ TAccountTokenMetadataProgram extends string,
496
+ TAccountSystemProgram extends string,
497
+ TProgramAddress extends Address = typeof BUBBLEGUM_PROGRAM_ADDRESS,
498
+ >(
499
+ input: MintToCollectionV1Input<
500
+ TAccountTreeAuthority,
501
+ TAccountLeafOwner,
502
+ TAccountLeafDelegate,
503
+ TAccountMerkleTree,
504
+ TAccountPayer,
505
+ TAccountTreeDelegate,
506
+ TAccountCollectionAuthority,
507
+ TAccountCollectionAuthorityRecordPda,
508
+ TAccountCollectionMint,
509
+ TAccountCollectionMetadata,
510
+ TAccountEditionAccount,
511
+ TAccountBubblegumSigner,
512
+ TAccountLogWrapper,
513
+ TAccountCompressionProgram,
514
+ TAccountTokenMetadataProgram,
515
+ TAccountSystemProgram
516
+ >,
517
+ config?: { programAddress?: TProgramAddress },
518
+ ): MintToCollectionV1Instruction<
519
+ TProgramAddress,
520
+ TAccountTreeAuthority,
521
+ TAccountLeafOwner,
522
+ TAccountLeafDelegate,
523
+ TAccountMerkleTree,
524
+ TAccountPayer,
525
+ TAccountTreeDelegate,
526
+ TAccountCollectionAuthority,
527
+ TAccountCollectionAuthorityRecordPda,
528
+ TAccountCollectionMint,
529
+ TAccountCollectionMetadata,
530
+ TAccountEditionAccount,
531
+ TAccountBubblegumSigner,
532
+ TAccountLogWrapper,
533
+ TAccountCompressionProgram,
534
+ TAccountTokenMetadataProgram,
535
+ TAccountSystemProgram
536
+ > {
537
+ // Program address.
538
+ const programAddress = config?.programAddress ?? BUBBLEGUM_PROGRAM_ADDRESS;
539
+
540
+ // Original accounts.
541
+ const originalAccounts = {
542
+ treeAuthority: { value: input.treeAuthority ?? null, isWritable: true },
543
+ leafOwner: { value: input.leafOwner ?? null, isWritable: false },
544
+ leafDelegate: { value: input.leafDelegate ?? null, isWritable: false },
545
+ merkleTree: { value: input.merkleTree ?? null, isWritable: true },
546
+ payer: { value: input.payer ?? null, isWritable: false },
547
+ treeDelegate: { value: input.treeDelegate ?? null, isWritable: false },
548
+ collectionAuthority: {
549
+ value: input.collectionAuthority ?? null,
550
+ isWritable: false,
551
+ },
552
+ collectionAuthorityRecordPda: {
553
+ value: input.collectionAuthorityRecordPda ?? null,
554
+ isWritable: false,
555
+ },
556
+ collectionMint: { value: input.collectionMint ?? null, isWritable: false },
557
+ collectionMetadata: {
558
+ value: input.collectionMetadata ?? null,
559
+ isWritable: true,
560
+ },
561
+ editionAccount: { value: input.editionAccount ?? null, isWritable: false },
562
+ bubblegumSigner: {
563
+ value: input.bubblegumSigner ?? null,
564
+ isWritable: false,
565
+ },
566
+ logWrapper: { value: input.logWrapper ?? null, isWritable: false },
567
+ compressionProgram: {
568
+ value: input.compressionProgram ?? null,
569
+ isWritable: false,
570
+ },
571
+ tokenMetadataProgram: {
572
+ value: input.tokenMetadataProgram ?? null,
573
+ isWritable: false,
574
+ },
575
+ systemProgram: { value: input.systemProgram ?? null, isWritable: false },
576
+ };
577
+ const accounts = originalAccounts as Record<
578
+ keyof typeof originalAccounts,
579
+ ResolvedInstructionAccount
580
+ >;
581
+
582
+ // Original args.
583
+ const args = { ...input };
584
+
585
+ // Resolve default values.
586
+ if (!accounts.collectionAuthorityRecordPda.value) {
587
+ accounts.collectionAuthorityRecordPda.value = programAddress;
588
+ accounts.collectionAuthorityRecordPda.isWritable = false;
589
+ }
590
+ if (!accounts.logWrapper.value) {
591
+ accounts.logWrapper.value =
592
+ "noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV" as Address<"noopb9bkMVfRPU8AsbpTUg8AQkHtKwMYZiFUjNRtMmV">;
593
+ }
594
+ if (!accounts.compressionProgram.value) {
595
+ accounts.compressionProgram.value =
596
+ "cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK" as Address<"cmtDvXumGCrqC1Age74AVPhSRVXJMd8PJS91L8KbNCK">;
597
+ }
598
+ if (!accounts.tokenMetadataProgram.value) {
599
+ accounts.tokenMetadataProgram.value =
600
+ "metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s" as Address<"metaqbxxUerdq28cj1RbAWkYQm3ybzjb6a8bt518x1s">;
601
+ }
602
+ if (!accounts.systemProgram.value) {
603
+ accounts.systemProgram.value =
604
+ "11111111111111111111111111111111" as Address<"11111111111111111111111111111111">;
605
+ }
606
+
607
+ const getAccountMeta = getAccountMetaFactory(programAddress, "programId");
608
+ return Object.freeze({
609
+ accounts: [
610
+ getAccountMeta("treeAuthority", accounts.treeAuthority),
611
+ getAccountMeta("leafOwner", accounts.leafOwner),
612
+ getAccountMeta("leafDelegate", accounts.leafDelegate),
613
+ getAccountMeta("merkleTree", accounts.merkleTree),
614
+ getAccountMeta("payer", accounts.payer),
615
+ getAccountMeta("treeDelegate", accounts.treeDelegate),
616
+ getAccountMeta("collectionAuthority", accounts.collectionAuthority),
617
+ getAccountMeta(
618
+ "collectionAuthorityRecordPda",
619
+ accounts.collectionAuthorityRecordPda,
620
+ ),
621
+ getAccountMeta("collectionMint", accounts.collectionMint),
622
+ getAccountMeta("collectionMetadata", accounts.collectionMetadata),
623
+ getAccountMeta("editionAccount", accounts.editionAccount),
624
+ getAccountMeta("bubblegumSigner", accounts.bubblegumSigner),
625
+ getAccountMeta("logWrapper", accounts.logWrapper),
626
+ getAccountMeta("compressionProgram", accounts.compressionProgram),
627
+ getAccountMeta("tokenMetadataProgram", accounts.tokenMetadataProgram),
628
+ getAccountMeta("systemProgram", accounts.systemProgram),
629
+ ],
630
+ data: getMintToCollectionV1InstructionDataEncoder().encode(
631
+ args as MintToCollectionV1InstructionDataArgs,
632
+ ),
633
+ programAddress,
634
+ } as MintToCollectionV1Instruction<
635
+ TProgramAddress,
636
+ TAccountTreeAuthority,
637
+ TAccountLeafOwner,
638
+ TAccountLeafDelegate,
639
+ TAccountMerkleTree,
640
+ TAccountPayer,
641
+ TAccountTreeDelegate,
642
+ TAccountCollectionAuthority,
643
+ TAccountCollectionAuthorityRecordPda,
644
+ TAccountCollectionMint,
645
+ TAccountCollectionMetadata,
646
+ TAccountEditionAccount,
647
+ TAccountBubblegumSigner,
648
+ TAccountLogWrapper,
649
+ TAccountCompressionProgram,
650
+ TAccountTokenMetadataProgram,
651
+ TAccountSystemProgram
652
+ >);
653
+ }
654
+
655
+ export interface ParsedMintToCollectionV1Instruction<
656
+ TProgram extends string = typeof BUBBLEGUM_PROGRAM_ADDRESS,
657
+ TAccountMetas extends readonly AccountMeta[] = readonly AccountMeta[],
658
+ > {
659
+ programAddress: Address<TProgram>;
660
+ accounts: {
661
+ treeAuthority: TAccountMetas[0];
662
+ leafOwner: TAccountMetas[1];
663
+ leafDelegate: TAccountMetas[2];
664
+ merkleTree: TAccountMetas[3];
665
+ payer: TAccountMetas[4];
666
+ treeDelegate: TAccountMetas[5];
667
+ collectionAuthority: TAccountMetas[6];
668
+ /**
669
+ * If there is no collecton authority record PDA then
670
+ * this must be the Bubblegum program address.
671
+ */
672
+ collectionAuthorityRecordPda: TAccountMetas[7];
673
+ collectionMint: TAccountMetas[8];
674
+ collectionMetadata: TAccountMetas[9];
675
+ editionAccount: TAccountMetas[10];
676
+ bubblegumSigner: TAccountMetas[11];
677
+ logWrapper: TAccountMetas[12];
678
+ compressionProgram: TAccountMetas[13];
679
+ tokenMetadataProgram: TAccountMetas[14];
680
+ systemProgram: TAccountMetas[15];
681
+ };
682
+ data: MintToCollectionV1InstructionData;
683
+ }
684
+
685
+ export function parseMintToCollectionV1Instruction<
686
+ TProgram extends string,
687
+ TAccountMetas extends readonly AccountMeta[],
688
+ >(
689
+ instruction: Instruction<TProgram> &
690
+ InstructionWithAccounts<TAccountMetas> &
691
+ InstructionWithData<ReadonlyUint8Array>,
692
+ ): ParsedMintToCollectionV1Instruction<TProgram, TAccountMetas> {
693
+ if (instruction.accounts.length < 16) {
694
+ throw new SolanaError(
695
+ SOLANA_ERROR__PROGRAM_CLIENTS__INSUFFICIENT_ACCOUNT_METAS,
696
+ {
697
+ actualAccountMetas: instruction.accounts.length,
698
+ expectedAccountMetas: 16,
699
+ },
700
+ );
701
+ }
702
+ let accountIndex = 0;
703
+ const getNextAccount = () => {
704
+ const accountMeta = (instruction.accounts as TAccountMetas)[accountIndex]!;
705
+ accountIndex += 1;
706
+ return accountMeta;
707
+ };
708
+ return {
709
+ programAddress: instruction.programAddress,
710
+ accounts: {
711
+ treeAuthority: getNextAccount(),
712
+ leafOwner: getNextAccount(),
713
+ leafDelegate: getNextAccount(),
714
+ merkleTree: getNextAccount(),
715
+ payer: getNextAccount(),
716
+ treeDelegate: getNextAccount(),
717
+ collectionAuthority: getNextAccount(),
718
+ collectionAuthorityRecordPda: getNextAccount(),
719
+ collectionMint: getNextAccount(),
720
+ collectionMetadata: getNextAccount(),
721
+ editionAccount: getNextAccount(),
722
+ bubblegumSigner: getNextAccount(),
723
+ logWrapper: getNextAccount(),
724
+ compressionProgram: getNextAccount(),
725
+ tokenMetadataProgram: getNextAccount(),
726
+ systemProgram: getNextAccount(),
727
+ },
728
+ data: getMintToCollectionV1InstructionDataDecoder().decode(
729
+ instruction.data,
730
+ ),
731
+ };
732
+ }