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