@ar.io/sdk 3.24.0 → 4.0.0-solana.1

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 (1574) hide show
  1. package/README.md +142 -0
  2. package/lib/cjs/cli/cli.js +160 -39
  3. package/lib/cjs/cli/commands/antCommands.js +40 -14
  4. package/lib/cjs/cli/commands/arnsPurchaseCommands.js +46 -6
  5. package/lib/cjs/cli/commands/escrowCommands.js +219 -0
  6. package/lib/cjs/cli/commands/gatewayWriteCommands.js +132 -22
  7. package/lib/cjs/cli/commands/readCommands.js +10 -2
  8. package/lib/cjs/cli/commands/transfer.js +6 -6
  9. package/lib/cjs/cli/options.js +112 -2
  10. package/lib/cjs/cli/utils.js +315 -38
  11. package/lib/cjs/common/ant-registry.js +58 -3
  12. package/lib/cjs/common/ant.js +83 -5
  13. package/lib/cjs/common/contracts/ao-process.js +4 -6
  14. package/lib/cjs/common/io.js +42 -1
  15. package/lib/cjs/common/marketplace.js +24 -79
  16. package/lib/cjs/constants.js +15 -2
  17. package/lib/cjs/solana/ant-readable.js +429 -0
  18. package/lib/cjs/solana/ant-registry-readable.js +122 -0
  19. package/lib/cjs/solana/ant-registry-writeable.js +461 -0
  20. package/lib/cjs/solana/ant-writeable.js +356 -0
  21. package/lib/cjs/solana/ata.js +60 -0
  22. package/lib/cjs/solana/canonical-message.js +97 -0
  23. package/lib/cjs/solana/clusters.js +65 -0
  24. package/lib/cjs/solana/constants.js +128 -0
  25. package/lib/cjs/solana/deserialize.js +1127 -0
  26. package/lib/cjs/solana/escrow.js +744 -0
  27. package/lib/cjs/solana/events.js +248 -0
  28. package/lib/cjs/solana/funding-plan.js +723 -0
  29. package/lib/cjs/solana/generated/ant/accounts/aclConfig.js +59 -0
  30. package/lib/cjs/solana/generated/ant/accounts/aclPage.js +56 -0
  31. package/lib/cjs/solana/generated/ant/accounts/antConfig.js +55 -0
  32. package/lib/cjs/solana/generated/ant/accounts/antControllers.js +55 -0
  33. package/lib/cjs/solana/generated/ant/accounts/antMigrationConfig.js +59 -0
  34. package/lib/cjs/solana/generated/ant/accounts/antRecord.js +55 -0
  35. package/lib/cjs/solana/generated/ant/accounts/antRecordMetadata.js +55 -0
  36. package/lib/cjs/solana/generated/ant/accounts/index.js +30 -0
  37. package/lib/cjs/solana/generated/ant/errors/arioAnt.js +136 -0
  38. package/lib/cjs/solana/generated/ant/errors/index.js +24 -0
  39. package/lib/cjs/solana/generated/ant/events/aclEntryAddedEvent.js +28 -0
  40. package/lib/cjs/solana/generated/ant/events/aclEntryRemovedEvent.js +28 -0
  41. package/lib/cjs/solana/generated/ant/events/antMetadataUpdatedEvent.js +28 -0
  42. package/lib/cjs/solana/generated/ant/events/antReconciledEvent.js +28 -0
  43. package/lib/cjs/solana/generated/ant/events/antTransferredEvent.js +28 -0
  44. package/lib/cjs/solana/generated/ant/events/attributesClearedEvent.js +28 -0
  45. package/lib/cjs/solana/generated/ant/events/attributesSyncedEvent.js +28 -0
  46. package/lib/cjs/solana/generated/ant/events/controllerAddedEvent.js +28 -0
  47. package/lib/cjs/solana/generated/ant/events/controllerRemovedEvent.js +28 -0
  48. package/lib/cjs/solana/generated/ant/events/index.js +32 -0
  49. package/lib/cjs/solana/generated/ant/events/recordMetadataPrunedEvent.js +28 -0
  50. package/lib/cjs/solana/generated/ant/events/recordMetadataRemovedEvent.js +28 -0
  51. package/lib/cjs/solana/generated/ant/events/recordMetadataUpdatedEvent.js +28 -0
  52. package/lib/cjs/solana/generated/ant/events/recordRemovedEvent.js +28 -0
  53. package/lib/cjs/solana/generated/ant/events/recordSetEvent.js +28 -0
  54. package/lib/cjs/solana/generated/ant/events/recordTransferredEvent.js +28 -0
  55. package/lib/cjs/solana/generated/ant/index.js +26 -0
  56. package/lib/cjs/solana/generated/ant/instructions/addAclPage.js +55 -0
  57. package/lib/cjs/solana/generated/ant/instructions/addController.js +83 -0
  58. package/lib/cjs/solana/generated/ant/instructions/clearAttributes.js +58 -0
  59. package/lib/cjs/solana/generated/ant/instructions/closeAclConfig.js +51 -0
  60. package/lib/cjs/solana/generated/ant/instructions/closeAclPage.js +51 -0
  61. package/lib/cjs/solana/generated/ant/instructions/closeOrphanedRecordMetadata.js +53 -0
  62. package/lib/cjs/solana/generated/ant/instructions/finalizeMigration.js +66 -0
  63. package/lib/cjs/solana/generated/ant/instructions/importAccount.js +77 -0
  64. package/lib/cjs/solana/generated/ant/instructions/index.js +53 -0
  65. package/lib/cjs/solana/generated/ant/instructions/initialize.js +80 -0
  66. package/lib/cjs/solana/generated/ant/instructions/initializeMigration.js +80 -0
  67. package/lib/cjs/solana/generated/ant/instructions/migrateAnt.js +73 -0
  68. package/lib/cjs/solana/generated/ant/instructions/reconcile.js +69 -0
  69. package/lib/cjs/solana/generated/ant/instructions/recordAclController.js +73 -0
  70. package/lib/cjs/solana/generated/ant/instructions/recordAclOwner.js +55 -0
  71. package/lib/cjs/solana/generated/ant/instructions/registerAclConfig.js +77 -0
  72. package/lib/cjs/solana/generated/ant/instructions/removeAclController.js +73 -0
  73. package/lib/cjs/solana/generated/ant/instructions/removeAclOwner.js +55 -0
  74. package/lib/cjs/solana/generated/ant/instructions/removeController.js +76 -0
  75. package/lib/cjs/solana/generated/ant/instructions/removeRecord.js +73 -0
  76. package/lib/cjs/solana/generated/ant/instructions/removeRecordMetadata.js +73 -0
  77. package/lib/cjs/solana/generated/ant/instructions/setDescription.js +73 -0
  78. package/lib/cjs/solana/generated/ant/instructions/setKeywords.js +73 -0
  79. package/lib/cjs/solana/generated/ant/instructions/setLogo.js +73 -0
  80. package/lib/cjs/solana/generated/ant/instructions/setName.js +73 -0
  81. package/lib/cjs/solana/generated/ant/instructions/setRecord.js +80 -0
  82. package/lib/cjs/solana/generated/ant/instructions/setRecordMetadata.js +80 -0
  83. package/lib/cjs/solana/generated/ant/instructions/setTicker.js +73 -0
  84. package/lib/cjs/solana/generated/ant/instructions/syncAttributes.js +60 -0
  85. package/lib/cjs/solana/generated/ant/instructions/transfer.js +88 -0
  86. package/lib/cjs/solana/generated/ant/instructions/transferRecord.js +73 -0
  87. package/lib/cjs/solana/generated/ant/pdas/aclConfig.js +15 -0
  88. package/lib/cjs/solana/generated/ant/pdas/antConfig.js +15 -0
  89. package/lib/cjs/solana/generated/ant/pdas/antControllers.js +15 -0
  90. package/lib/cjs/solana/generated/ant/pdas/controllerAclConfig.js +15 -0
  91. package/lib/cjs/solana/generated/ant/pdas/index.js +30 -0
  92. package/lib/cjs/solana/generated/ant/pdas/migrationConfig.js +15 -0
  93. package/lib/cjs/solana/generated/ant/pdas/newOwnerAclConfig.js +15 -0
  94. package/lib/cjs/solana/generated/ant/pdas/oldOwnerAclConfig.js +15 -0
  95. package/lib/cjs/solana/generated/ant/program-address.js +4 -0
  96. package/lib/cjs/solana/generated/ant/types/aclEntry.js +22 -0
  97. package/lib/cjs/solana/generated/ant/types/index.js +24 -0
  98. package/lib/cjs/solana/generated/ant-escrow/accounts/escrowAnt.js +59 -0
  99. package/lib/cjs/solana/generated/ant-escrow/accounts/escrowToken.js +59 -0
  100. package/lib/cjs/solana/generated/ant-escrow/accounts/index.js +25 -0
  101. package/lib/cjs/solana/generated/ant-escrow/errors/arioAntEscrow.js +69 -0
  102. package/lib/cjs/solana/generated/ant-escrow/errors/index.js +24 -0
  103. package/lib/cjs/solana/generated/ant-escrow/events/escrowCancelledEvent.js +28 -0
  104. package/lib/cjs/solana/generated/ant-escrow/events/escrowClaimedEvent.js +28 -0
  105. package/lib/cjs/solana/generated/ant-escrow/events/escrowDepositedEvent.js +28 -0
  106. package/lib/cjs/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +28 -0
  107. package/lib/cjs/solana/generated/ant-escrow/events/index.js +21 -0
  108. package/lib/cjs/solana/generated/ant-escrow/index.js +26 -0
  109. package/lib/cjs/solana/generated/ant-escrow/instructions/cancelDeposit.js +58 -0
  110. package/lib/cjs/solana/generated/ant-escrow/instructions/cancelTokenDeposit.js +58 -0
  111. package/lib/cjs/solana/generated/ant-escrow/instructions/cancelVaultDeposit.js +58 -0
  112. package/lib/cjs/solana/generated/ant-escrow/instructions/claimAntArweave.js +60 -0
  113. package/lib/cjs/solana/generated/ant-escrow/instructions/claimAntEthereum.js +60 -0
  114. package/lib/cjs/solana/generated/ant-escrow/instructions/claimTokensArweave.js +60 -0
  115. package/lib/cjs/solana/generated/ant-escrow/instructions/claimTokensEthereum.js +60 -0
  116. package/lib/cjs/solana/generated/ant-escrow/instructions/claimVaultArweave.js +63 -0
  117. package/lib/cjs/solana/generated/ant-escrow/instructions/claimVaultEthereum.js +63 -0
  118. package/lib/cjs/solana/generated/ant-escrow/instructions/depositAnt.js +83 -0
  119. package/lib/cjs/solana/generated/ant-escrow/instructions/depositTokens.js +83 -0
  120. package/lib/cjs/solana/generated/ant-escrow/instructions/depositVault.js +83 -0
  121. package/lib/cjs/solana/generated/ant-escrow/instructions/index.js +38 -0
  122. package/lib/cjs/solana/generated/ant-escrow/instructions/updateRecipient.js +53 -0
  123. package/lib/cjs/solana/generated/ant-escrow/instructions/updateTokenRecipient.js +53 -0
  124. package/lib/cjs/solana/generated/ant-escrow/instructions/updateVaultRecipient.js +53 -0
  125. package/lib/cjs/solana/generated/ant-escrow/pdas/depositTokensEscrow.js +15 -0
  126. package/lib/cjs/solana/generated/ant-escrow/pdas/depositVaultEscrow.js +15 -0
  127. package/lib/cjs/solana/generated/ant-escrow/pdas/escrow.js +15 -0
  128. package/lib/cjs/solana/generated/ant-escrow/pdas/index.js +26 -0
  129. package/lib/cjs/solana/generated/ant-escrow/program-address.js +4 -0
  130. package/lib/cjs/solana/generated/arns/accounts/arnsConfig.js +59 -0
  131. package/lib/cjs/solana/generated/arns/accounts/arnsRecord.js +56 -0
  132. package/lib/cjs/solana/generated/arns/accounts/demandFactor.js +59 -0
  133. package/lib/cjs/solana/generated/arns/accounts/index.js +29 -0
  134. package/lib/cjs/solana/generated/arns/accounts/nameRegistry.js +60 -0
  135. package/lib/cjs/solana/generated/arns/accounts/reservedName.js +55 -0
  136. package/lib/cjs/solana/generated/arns/accounts/returnedName.js +55 -0
  137. package/lib/cjs/solana/generated/arns/errors/arioArns.js +121 -0
  138. package/lib/cjs/solana/generated/arns/errors/index.js +24 -0
  139. package/lib/cjs/solana/generated/arns/events/demandFactorUpdatedEvent.js +28 -0
  140. package/lib/cjs/solana/generated/arns/events/index.js +29 -0
  141. package/lib/cjs/solana/generated/arns/events/leaseExtendedEvent.js +28 -0
  142. package/lib/cjs/solana/generated/arns/events/namePurchasedEvent.js +28 -0
  143. package/lib/cjs/solana/generated/arns/events/nameReassignedEvent.js +28 -0
  144. package/lib/cjs/solana/generated/arns/events/nameReleasedEvent.js +28 -0
  145. package/lib/cjs/solana/generated/arns/events/nameReservedEvent.js +28 -0
  146. package/lib/cjs/solana/generated/arns/events/nameUnreservedEvent.js +28 -0
  147. package/lib/cjs/solana/generated/arns/events/nameUpgradedEvent.js +28 -0
  148. package/lib/cjs/solana/generated/arns/events/namesPrunedEvent.js +28 -0
  149. package/lib/cjs/solana/generated/arns/events/reservedNameClaimedEvent.js +28 -0
  150. package/lib/cjs/solana/generated/arns/events/returnedNamePurchasedEvent.js +28 -0
  151. package/lib/cjs/solana/generated/arns/events/undernameIncreasedEvent.js +28 -0
  152. package/lib/cjs/solana/generated/arns/index.js +26 -0
  153. package/lib/cjs/solana/generated/arns/instructions/buyName.js +90 -0
  154. package/lib/cjs/solana/generated/arns/instructions/buyNameFromDelegation.js +96 -0
  155. package/lib/cjs/solana/generated/arns/instructions/buyNameFromFundingPlan.js +100 -0
  156. package/lib/cjs/solana/generated/arns/instructions/buyNameFromOperatorStake.js +96 -0
  157. package/lib/cjs/solana/generated/arns/instructions/buyNameFromWithdrawal.js +96 -0
  158. package/lib/cjs/solana/generated/arns/instructions/buyReturnedName.js +90 -0
  159. package/lib/cjs/solana/generated/arns/instructions/buyReturnedNameFromDelegation.js +96 -0
  160. package/lib/cjs/solana/generated/arns/instructions/buyReturnedNameFromFundingPlan.js +100 -0
  161. package/lib/cjs/solana/generated/arns/instructions/buyReturnedNameFromOperatorStake.js +96 -0
  162. package/lib/cjs/solana/generated/arns/instructions/buyReturnedNameFromWithdrawal.js +96 -0
  163. package/lib/cjs/solana/generated/arns/instructions/claimReservedName.js +66 -0
  164. package/lib/cjs/solana/generated/arns/instructions/createNameRegistry.js +76 -0
  165. package/lib/cjs/solana/generated/arns/instructions/extendLease.js +80 -0
  166. package/lib/cjs/solana/generated/arns/instructions/extendLeaseFromDelegation.js +86 -0
  167. package/lib/cjs/solana/generated/arns/instructions/extendLeaseFromFundingPlan.js +97 -0
  168. package/lib/cjs/solana/generated/arns/instructions/extendLeaseFromOperatorStake.js +86 -0
  169. package/lib/cjs/solana/generated/arns/instructions/extendLeaseFromWithdrawal.js +86 -0
  170. package/lib/cjs/solana/generated/arns/instructions/finalizeMigration.js +66 -0
  171. package/lib/cjs/solana/generated/arns/instructions/getTokenCost.js +71 -0
  172. package/lib/cjs/solana/generated/arns/instructions/importAccount.js +77 -0
  173. package/lib/cjs/solana/generated/arns/instructions/importRegistryEntry.js +70 -0
  174. package/lib/cjs/solana/generated/arns/instructions/increaseUndernameLimit.js +86 -0
  175. package/lib/cjs/solana/generated/arns/instructions/increaseUndernameLimitFromDelegation.js +86 -0
  176. package/lib/cjs/solana/generated/arns/instructions/increaseUndernameLimitFromFundingPlan.js +97 -0
  177. package/lib/cjs/solana/generated/arns/instructions/increaseUndernameLimitFromOperatorStake.js +86 -0
  178. package/lib/cjs/solana/generated/arns/instructions/increaseUndernameLimitFromWithdrawal.js +86 -0
  179. package/lib/cjs/solana/generated/arns/instructions/index.js +64 -0
  180. package/lib/cjs/solana/generated/arns/instructions/initialize.js +83 -0
  181. package/lib/cjs/solana/generated/arns/instructions/pruneExpiredNames.js +80 -0
  182. package/lib/cjs/solana/generated/arns/instructions/pruneExpiredReservation.js +51 -0
  183. package/lib/cjs/solana/generated/arns/instructions/pruneNameToReturned.js +76 -0
  184. package/lib/cjs/solana/generated/arns/instructions/pruneReturnedNames.js +77 -0
  185. package/lib/cjs/solana/generated/arns/instructions/reassignName.js +77 -0
  186. package/lib/cjs/solana/generated/arns/instructions/releaseName.js +76 -0
  187. package/lib/cjs/solana/generated/arns/instructions/reserveName.js +77 -0
  188. package/lib/cjs/solana/generated/arns/instructions/unreserveName.js +66 -0
  189. package/lib/cjs/solana/generated/arns/instructions/updateDemandFactor.js +66 -0
  190. package/lib/cjs/solana/generated/arns/instructions/upgradeName.js +82 -0
  191. package/lib/cjs/solana/generated/arns/instructions/upgradeNameFromDelegation.js +82 -0
  192. package/lib/cjs/solana/generated/arns/instructions/upgradeNameFromFundingPlan.js +97 -0
  193. package/lib/cjs/solana/generated/arns/instructions/upgradeNameFromOperatorStake.js +82 -0
  194. package/lib/cjs/solana/generated/arns/instructions/upgradeNameFromWithdrawal.js +82 -0
  195. package/lib/cjs/solana/generated/arns/pdas/config.js +15 -0
  196. package/lib/cjs/solana/generated/arns/pdas/demandFactor.js +15 -0
  197. package/lib/cjs/solana/generated/arns/pdas/index.js +26 -0
  198. package/lib/cjs/solana/generated/arns/pdas/nameRegistry.js +15 -0
  199. package/lib/cjs/solana/generated/arns/program-address.js +4 -0
  200. package/lib/cjs/solana/generated/arns/types/buyNameParams.js +23 -0
  201. package/lib/cjs/solana/generated/arns/types/buyReturnedNameParams.js +23 -0
  202. package/lib/cjs/solana/generated/arns/types/costIntent.js +32 -0
  203. package/lib/cjs/solana/generated/arns/types/fundingSourceKind.js +39 -0
  204. package/lib/cjs/solana/generated/arns/types/fundingSourceSpec.js +23 -0
  205. package/lib/cjs/solana/generated/arns/types/index.js +30 -0
  206. package/lib/cjs/solana/generated/arns/types/nameEntry.js +22 -0
  207. package/lib/cjs/solana/generated/arns/types/purchaseType.js +29 -0
  208. package/lib/cjs/solana/generated/core/accounts/arioConfig.js +59 -0
  209. package/lib/cjs/solana/generated/core/accounts/balance.js +59 -0
  210. package/lib/cjs/solana/generated/core/accounts/index.js +30 -0
  211. package/lib/cjs/solana/generated/core/accounts/primaryName.js +55 -0
  212. package/lib/cjs/solana/generated/core/accounts/primaryNameRequest.js +55 -0
  213. package/lib/cjs/solana/generated/core/accounts/primaryNameReverse.js +55 -0
  214. package/lib/cjs/solana/generated/core/accounts/vault.js +55 -0
  215. package/lib/cjs/solana/generated/core/accounts/vaultCounter.js +59 -0
  216. package/lib/cjs/solana/generated/core/errors/arioCore.js +115 -0
  217. package/lib/cjs/solana/generated/core/errors/index.js +24 -0
  218. package/lib/cjs/solana/generated/core/events/configUpdatedEvent.js +28 -0
  219. package/lib/cjs/solana/generated/core/events/coreMigrationFinalizedEvent.js +28 -0
  220. package/lib/cjs/solana/generated/core/events/index.js +30 -0
  221. package/lib/cjs/solana/generated/core/events/primaryNameRemovedEvent.js +28 -0
  222. package/lib/cjs/solana/generated/core/events/primaryNameRequestExpiredEvent.js +28 -0
  223. package/lib/cjs/solana/generated/core/events/primaryNameRequestedEvent.js +28 -0
  224. package/lib/cjs/solana/generated/core/events/primaryNameSetEvent.js +28 -0
  225. package/lib/cjs/solana/generated/core/events/supplyFinalizedEvent.js +28 -0
  226. package/lib/cjs/solana/generated/core/events/transferEvent.js +28 -0
  227. package/lib/cjs/solana/generated/core/events/vaultCreatedEvent.js +28 -0
  228. package/lib/cjs/solana/generated/core/events/vaultExtendedEvent.js +28 -0
  229. package/lib/cjs/solana/generated/core/events/vaultIncreasedEvent.js +28 -0
  230. package/lib/cjs/solana/generated/core/events/vaultReleasedEvent.js +28 -0
  231. package/lib/cjs/solana/generated/core/events/vaultRevokedEvent.js +28 -0
  232. package/lib/cjs/solana/generated/core/index.js +26 -0
  233. package/lib/cjs/solana/generated/core/instructions/adminRepairConfig.js +70 -0
  234. package/lib/cjs/solana/generated/core/instructions/approvePrimaryName.js +80 -0
  235. package/lib/cjs/solana/generated/core/instructions/closeExpiredRequest.js +51 -0
  236. package/lib/cjs/solana/generated/core/instructions/createVault.js +86 -0
  237. package/lib/cjs/solana/generated/core/instructions/extendVault.js +70 -0
  238. package/lib/cjs/solana/generated/core/instructions/finalizeMigration.js +66 -0
  239. package/lib/cjs/solana/generated/core/instructions/finalizeSupply.js +70 -0
  240. package/lib/cjs/solana/generated/core/instructions/importAccount.js +77 -0
  241. package/lib/cjs/solana/generated/core/instructions/importBalance.js +95 -0
  242. package/lib/cjs/solana/generated/core/instructions/increaseVault.js +77 -0
  243. package/lib/cjs/solana/generated/core/instructions/index.js +45 -0
  244. package/lib/cjs/solana/generated/core/instructions/initialize.js +80 -0
  245. package/lib/cjs/solana/generated/core/instructions/releaseVault.js +73 -0
  246. package/lib/cjs/solana/generated/core/instructions/removePrimaryName.js +73 -0
  247. package/lib/cjs/solana/generated/core/instructions/removePrimaryNameForBaseName.js +73 -0
  248. package/lib/cjs/solana/generated/core/instructions/requestAndSetPrimaryName.js +89 -0
  249. package/lib/cjs/solana/generated/core/instructions/requestAndSetPrimaryNameFromFundingPlan.js +100 -0
  250. package/lib/cjs/solana/generated/core/instructions/requestPrimaryName.js +86 -0
  251. package/lib/cjs/solana/generated/core/instructions/requestPrimaryNameFromFundingPlan.js +97 -0
  252. package/lib/cjs/solana/generated/core/instructions/revokeVault.js +73 -0
  253. package/lib/cjs/solana/generated/core/instructions/transfer.js +57 -0
  254. package/lib/cjs/solana/generated/core/instructions/updateConfig.js +70 -0
  255. package/lib/cjs/solana/generated/core/instructions/vaultedTransfer.js +86 -0
  256. package/lib/cjs/solana/generated/core/pdas/balance.js +15 -0
  257. package/lib/cjs/solana/generated/core/pdas/config.js +15 -0
  258. package/lib/cjs/solana/generated/core/pdas/index.js +31 -0
  259. package/lib/cjs/solana/generated/core/pdas/primaryName.js +15 -0
  260. package/lib/cjs/solana/generated/core/pdas/primaryNameReverse.js +15 -0
  261. package/lib/cjs/solana/generated/core/pdas/recipientVaultCounter.js +15 -0
  262. package/lib/cjs/solana/generated/core/pdas/request.js +15 -0
  263. package/lib/cjs/solana/generated/core/pdas/requestAndSetPrimaryNamePrimaryName.js +15 -0
  264. package/lib/cjs/solana/generated/core/pdas/vaultCounter.js +15 -0
  265. package/lib/cjs/solana/generated/core/program-address.js +4 -0
  266. package/lib/cjs/solana/generated/core/types/fundingSourceKind.js +39 -0
  267. package/lib/cjs/solana/generated/core/types/fundingSourceSpec.js +23 -0
  268. package/lib/cjs/solana/generated/core/types/index.js +25 -0
  269. package/lib/cjs/solana/generated/gar/accounts/allowlistEntry.js +59 -0
  270. package/lib/cjs/solana/generated/gar/accounts/delegation.js +59 -0
  271. package/lib/cjs/solana/generated/gar/accounts/epoch.js +59 -0
  272. package/lib/cjs/solana/generated/gar/accounts/epochSettings.js +59 -0
  273. package/lib/cjs/solana/generated/gar/accounts/gateway.js +56 -0
  274. package/lib/cjs/solana/generated/gar/accounts/gatewayRegistry.js +60 -0
  275. package/lib/cjs/solana/generated/gar/accounts/gatewaySettings.js +59 -0
  276. package/lib/cjs/solana/generated/gar/accounts/index.js +35 -0
  277. package/lib/cjs/solana/generated/gar/accounts/observation.js +59 -0
  278. package/lib/cjs/solana/generated/gar/accounts/observerLookup.js +59 -0
  279. package/lib/cjs/solana/generated/gar/accounts/redelegationRecord.js +59 -0
  280. package/lib/cjs/solana/generated/gar/accounts/withdrawal.js +59 -0
  281. package/lib/cjs/solana/generated/gar/accounts/withdrawalCounter.js +59 -0
  282. package/lib/cjs/solana/generated/gar/errors/arioGar.js +200 -0
  283. package/lib/cjs/solana/generated/gar/errors/index.js +24 -0
  284. package/lib/cjs/solana/generated/gar/events/allowlistToggledEvent.js +28 -0
  285. package/lib/cjs/solana/generated/gar/events/delegateAllowlistedEvent.js +28 -0
  286. package/lib/cjs/solana/generated/gar/events/delegationClosedEvent.js +28 -0
  287. package/lib/cjs/solana/generated/gar/events/delegationDecreasedEvent.js +28 -0
  288. package/lib/cjs/solana/generated/gar/events/delegationEvent.js +28 -0
  289. package/lib/cjs/solana/generated/gar/events/epochClosedEvent.js +28 -0
  290. package/lib/cjs/solana/generated/gar/events/epochCreatedEvent.js +28 -0
  291. package/lib/cjs/solana/generated/gar/events/epochDistributedEvent.js +28 -0
  292. package/lib/cjs/solana/generated/gar/events/epochPrescribedEvent.js +28 -0
  293. package/lib/cjs/solana/generated/gar/events/epochWeightsTalliedEvent.js +28 -0
  294. package/lib/cjs/solana/generated/gar/events/epochsToggledEvent.js +28 -0
  295. package/lib/cjs/solana/generated/gar/events/fundingPlanAppliedEvent.js +28 -0
  296. package/lib/cjs/solana/generated/gar/events/garMigrationFinalizedEvent.js +28 -0
  297. package/lib/cjs/solana/generated/gar/events/gatewayFinalizedEvent.js +28 -0
  298. package/lib/cjs/solana/generated/gar/events/gatewayJoinedEvent.js +28 -0
  299. package/lib/cjs/solana/generated/gar/events/gatewayLeavingEvent.js +28 -0
  300. package/lib/cjs/solana/generated/gar/events/gatewayPrunedEvent.js +28 -0
  301. package/lib/cjs/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +28 -0
  302. package/lib/cjs/solana/generated/gar/events/index.js +47 -0
  303. package/lib/cjs/solana/generated/gar/events/instantWithdrawalEvent.js +28 -0
  304. package/lib/cjs/solana/generated/gar/events/observationSubmittedEvent.js +28 -0
  305. package/lib/cjs/solana/generated/gar/events/observerAddressUpdatedEvent.js +28 -0
  306. package/lib/cjs/solana/generated/gar/events/operatorStakeIncreasedEvent.js +28 -0
  307. package/lib/cjs/solana/generated/gar/events/redelegationEvent.js +28 -0
  308. package/lib/cjs/solana/generated/gar/events/residueVaultCreatedEvent.js +28 -0
  309. package/lib/cjs/solana/generated/gar/events/rewardsCompoundedEvent.js +28 -0
  310. package/lib/cjs/solana/generated/gar/events/stakePaymentEvent.js +28 -0
  311. package/lib/cjs/solana/generated/gar/events/withdrawalCancelledEvent.js +28 -0
  312. package/lib/cjs/solana/generated/gar/events/withdrawalClaimedEvent.js +28 -0
  313. package/lib/cjs/solana/generated/gar/events/withdrawalCreatedEvent.js +28 -0
  314. package/lib/cjs/solana/generated/gar/events/withdrawalPaymentEvent.js +28 -0
  315. package/lib/cjs/solana/generated/gar/index.js +26 -0
  316. package/lib/cjs/solana/generated/gar/instructions/adminRepairSettings.js +70 -0
  317. package/lib/cjs/solana/generated/gar/instructions/allowDelegate.js +76 -0
  318. package/lib/cjs/solana/generated/gar/instructions/cancelWithdrawal.js +70 -0
  319. package/lib/cjs/solana/generated/gar/instructions/claimDelegateFromLeavingGateway.js +76 -0
  320. package/lib/cjs/solana/generated/gar/instructions/claimWithdrawal.js +73 -0
  321. package/lib/cjs/solana/generated/gar/instructions/closeDrainedWithdrawal.js +51 -0
  322. package/lib/cjs/solana/generated/gar/instructions/closeEmptyDelegation.js +51 -0
  323. package/lib/cjs/solana/generated/gar/instructions/closeEpoch.js +73 -0
  324. package/lib/cjs/solana/generated/gar/instructions/closeObservation.js +70 -0
  325. package/lib/cjs/solana/generated/gar/instructions/compoundDelegationRewards.js +51 -0
  326. package/lib/cjs/solana/generated/gar/instructions/createEpoch.js +79 -0
  327. package/lib/cjs/solana/generated/gar/instructions/createGatewayRegistry.js +76 -0
  328. package/lib/cjs/solana/generated/gar/instructions/decreaseDelegateStake.js +80 -0
  329. package/lib/cjs/solana/generated/gar/instructions/decreaseOperatorStake.js +83 -0
  330. package/lib/cjs/solana/generated/gar/instructions/deductDelegationForPayment.js +77 -0
  331. package/lib/cjs/solana/generated/gar/instructions/deductOperatorStakeForPayment.js +80 -0
  332. package/lib/cjs/solana/generated/gar/instructions/deductWithdrawalForPayment.js +77 -0
  333. package/lib/cjs/solana/generated/gar/instructions/delegateStake.js +83 -0
  334. package/lib/cjs/solana/generated/gar/instructions/disallowDelegate.js +69 -0
  335. package/lib/cjs/solana/generated/gar/instructions/distributeEpoch.js +86 -0
  336. package/lib/cjs/solana/generated/gar/instructions/finalizeGone.js +69 -0
  337. package/lib/cjs/solana/generated/gar/instructions/finalizeMigration.js +66 -0
  338. package/lib/cjs/solana/generated/gar/instructions/importAccount.js +77 -0
  339. package/lib/cjs/solana/generated/gar/instructions/importRegistryEntry.js +70 -0
  340. package/lib/cjs/solana/generated/gar/instructions/increaseOperatorStake.js +80 -0
  341. package/lib/cjs/solana/generated/gar/instructions/index.js +66 -0
  342. package/lib/cjs/solana/generated/gar/instructions/initialize.js +80 -0
  343. package/lib/cjs/solana/generated/gar/instructions/initializeEpochs.js +80 -0
  344. package/lib/cjs/solana/generated/gar/instructions/instantWithdrawal.js +73 -0
  345. package/lib/cjs/solana/generated/gar/instructions/joinNetwork.js +90 -0
  346. package/lib/cjs/solana/generated/gar/instructions/leaveNetwork.js +89 -0
  347. package/lib/cjs/solana/generated/gar/instructions/migrateSettingsSetArnsProgramId.js +77 -0
  348. package/lib/cjs/solana/generated/gar/instructions/migrateSettingsSupplyCounters.js +70 -0
  349. package/lib/cjs/solana/generated/gar/instructions/payFromFundingPlan.js +91 -0
  350. package/lib/cjs/solana/generated/gar/instructions/prescribeEpoch.js +79 -0
  351. package/lib/cjs/solana/generated/gar/instructions/pruneGateway.js +89 -0
  352. package/lib/cjs/solana/generated/gar/instructions/redelegateStake.js +86 -0
  353. package/lib/cjs/solana/generated/gar/instructions/releaseTreasuryAuthority.js +77 -0
  354. package/lib/cjs/solana/generated/gar/instructions/saveObservations.js +80 -0
  355. package/lib/cjs/solana/generated/gar/instructions/setAllowlistEnabled.js +73 -0
  356. package/lib/cjs/solana/generated/gar/instructions/setEpochsEnabled.js +70 -0
  357. package/lib/cjs/solana/generated/gar/instructions/tallyWeights.js +79 -0
  358. package/lib/cjs/solana/generated/gar/instructions/updateGatewaySettings.js +74 -0
  359. package/lib/cjs/solana/generated/gar/instructions/updateObserverAddress.js +80 -0
  360. package/lib/cjs/solana/generated/gar/pdas/allowlistEntry.js +15 -0
  361. package/lib/cjs/solana/generated/gar/pdas/decreaseOperatorStakeWithdrawalCounter.js +15 -0
  362. package/lib/cjs/solana/generated/gar/pdas/epoch.js +15 -0
  363. package/lib/cjs/solana/generated/gar/pdas/epochSettings.js +15 -0
  364. package/lib/cjs/solana/generated/gar/pdas/gateway.js +15 -0
  365. package/lib/cjs/solana/generated/gar/pdas/index.js +35 -0
  366. package/lib/cjs/solana/generated/gar/pdas/newObserverLookup.js +15 -0
  367. package/lib/cjs/solana/generated/gar/pdas/observation.js +15 -0
  368. package/lib/cjs/solana/generated/gar/pdas/payFromFundingPlanWithdrawalCounter.js +15 -0
  369. package/lib/cjs/solana/generated/gar/pdas/redelegationRecord.js +15 -0
  370. package/lib/cjs/solana/generated/gar/pdas/registry.js +15 -0
  371. package/lib/cjs/solana/generated/gar/pdas/settings.js +15 -0
  372. package/lib/cjs/solana/generated/gar/pdas/withdrawalCounter.js +15 -0
  373. package/lib/cjs/solana/generated/gar/program-address.js +4 -0
  374. package/lib/cjs/solana/generated/gar/types/fundingSourceKind.js +39 -0
  375. package/lib/cjs/solana/generated/gar/types/fundingSourceSpec.js +23 -0
  376. package/lib/cjs/solana/generated/gar/types/gatewaySettings2.js +22 -0
  377. package/lib/cjs/solana/generated/gar/types/gatewaySlot.js +22 -0
  378. package/lib/cjs/solana/generated/gar/types/gatewayStats.js +22 -0
  379. package/lib/cjs/solana/generated/gar/types/gatewayStatus.js +30 -0
  380. package/lib/cjs/solana/generated/gar/types/gatewayWeights.js +22 -0
  381. package/lib/cjs/solana/generated/gar/types/index.js +32 -0
  382. package/lib/cjs/solana/generated/gar/types/protocol.js +29 -0
  383. package/lib/cjs/solana/generated/gar/types/registryIndex.js +22 -0
  384. package/lib/cjs/solana/generated/mpl-core/accounts/assetV1.js +52 -0
  385. package/lib/cjs/solana/generated/mpl-core/accounts/collectionV1.js +52 -0
  386. package/lib/cjs/solana/generated/mpl-core/accounts/hashedAssetV1.js +56 -0
  387. package/lib/cjs/solana/generated/mpl-core/accounts/index.js +28 -0
  388. package/lib/cjs/solana/generated/mpl-core/accounts/pluginHeaderV1.js +56 -0
  389. package/lib/cjs/solana/generated/mpl-core/accounts/pluginRegistryV1.js +52 -0
  390. package/lib/cjs/solana/generated/mpl-core/errors/index.js +24 -0
  391. package/lib/cjs/solana/generated/mpl-core/errors/mplCore.js +142 -0
  392. package/lib/cjs/solana/generated/mpl-core/index.js +24 -0
  393. package/lib/cjs/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +62 -0
  394. package/lib/cjs/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +62 -0
  395. package/lib/cjs/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +62 -0
  396. package/lib/cjs/solana/generated/mpl-core/instructions/addPluginV1.js +62 -0
  397. package/lib/cjs/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +62 -0
  398. package/lib/cjs/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +62 -0
  399. package/lib/cjs/solana/generated/mpl-core/instructions/burnCollectionV1.js +58 -0
  400. package/lib/cjs/solana/generated/mpl-core/instructions/burnV1.js +58 -0
  401. package/lib/cjs/solana/generated/mpl-core/instructions/collect.js +51 -0
  402. package/lib/cjs/solana/generated/mpl-core/instructions/compressV1.js +59 -0
  403. package/lib/cjs/solana/generated/mpl-core/instructions/createCollectionV1.js +62 -0
  404. package/lib/cjs/solana/generated/mpl-core/instructions/createCollectionV2.js +62 -0
  405. package/lib/cjs/solana/generated/mpl-core/instructions/createV1.js +62 -0
  406. package/lib/cjs/solana/generated/mpl-core/instructions/createV2.js +62 -0
  407. package/lib/cjs/solana/generated/mpl-core/instructions/decompressV1.js +62 -0
  408. package/lib/cjs/solana/generated/mpl-core/instructions/executeV1.js +65 -0
  409. package/lib/cjs/solana/generated/mpl-core/instructions/index.js +56 -0
  410. package/lib/cjs/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +62 -0
  411. package/lib/cjs/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +62 -0
  412. package/lib/cjs/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +62 -0
  413. package/lib/cjs/solana/generated/mpl-core/instructions/removePluginV1.js +62 -0
  414. package/lib/cjs/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +62 -0
  415. package/lib/cjs/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +62 -0
  416. package/lib/cjs/solana/generated/mpl-core/instructions/transferV1.js +58 -0
  417. package/lib/cjs/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +62 -0
  418. package/lib/cjs/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +54 -0
  419. package/lib/cjs/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +62 -0
  420. package/lib/cjs/solana/generated/mpl-core/instructions/updateCollectionV1.js +61 -0
  421. package/lib/cjs/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +62 -0
  422. package/lib/cjs/solana/generated/mpl-core/instructions/updatePluginV1.js +62 -0
  423. package/lib/cjs/solana/generated/mpl-core/instructions/updateV1.js +62 -0
  424. package/lib/cjs/solana/generated/mpl-core/instructions/updateV2.js +62 -0
  425. package/lib/cjs/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +62 -0
  426. package/lib/cjs/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +62 -0
  427. package/lib/cjs/solana/generated/mpl-core/program-address.js +4 -0
  428. package/lib/cjs/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +22 -0
  429. package/lib/cjs/solana/generated/mpl-core/types/addBlocker.js +22 -0
  430. package/lib/cjs/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +22 -0
  431. package/lib/cjs/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +22 -0
  432. package/lib/cjs/solana/generated/mpl-core/types/agentIdentity.js +22 -0
  433. package/lib/cjs/solana/generated/mpl-core/types/agentIdentityInitInfo.js +23 -0
  434. package/lib/cjs/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +23 -0
  435. package/lib/cjs/solana/generated/mpl-core/types/appData.js +23 -0
  436. package/lib/cjs/solana/generated/mpl-core/types/appDataInitInfo.js +23 -0
  437. package/lib/cjs/solana/generated/mpl-core/types/appDataUpdateInfo.js +23 -0
  438. package/lib/cjs/solana/generated/mpl-core/types/attribute.js +22 -0
  439. package/lib/cjs/solana/generated/mpl-core/types/attributes.js +23 -0
  440. package/lib/cjs/solana/generated/mpl-core/types/authority.js +31 -0
  441. package/lib/cjs/solana/generated/mpl-core/types/autograph.js +23 -0
  442. package/lib/cjs/solana/generated/mpl-core/types/autographSignature.js +22 -0
  443. package/lib/cjs/solana/generated/mpl-core/types/bubblegumV2.js +22 -0
  444. package/lib/cjs/solana/generated/mpl-core/types/burnDelegate.js +22 -0
  445. package/lib/cjs/solana/generated/mpl-core/types/closeGroupV1Args.js +22 -0
  446. package/lib/cjs/solana/generated/mpl-core/types/compressionProof.js +23 -0
  447. package/lib/cjs/solana/generated/mpl-core/types/creator.js +22 -0
  448. package/lib/cjs/solana/generated/mpl-core/types/dataSection.js +23 -0
  449. package/lib/cjs/solana/generated/mpl-core/types/dataSectionInitInfo.js +23 -0
  450. package/lib/cjs/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +22 -0
  451. package/lib/cjs/solana/generated/mpl-core/types/dataState.js +29 -0
  452. package/lib/cjs/solana/generated/mpl-core/types/edition.js +22 -0
  453. package/lib/cjs/solana/generated/mpl-core/types/externalCheckResult.js +22 -0
  454. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapter.js +32 -0
  455. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +32 -0
  456. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapterKey.js +32 -0
  457. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +30 -0
  458. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapterType.js +34 -0
  459. package/lib/cjs/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +32 -0
  460. package/lib/cjs/solana/generated/mpl-core/types/externalRegistryRecord.js +23 -0
  461. package/lib/cjs/solana/generated/mpl-core/types/externalValidationResult.js +30 -0
  462. package/lib/cjs/solana/generated/mpl-core/types/extraAccount.js +32 -0
  463. package/lib/cjs/solana/generated/mpl-core/types/freezeDelegate.js +22 -0
  464. package/lib/cjs/solana/generated/mpl-core/types/freezeExecute.js +22 -0
  465. package/lib/cjs/solana/generated/mpl-core/types/groups.js +22 -0
  466. package/lib/cjs/solana/generated/mpl-core/types/hashablePluginSchema.js +23 -0
  467. package/lib/cjs/solana/generated/mpl-core/types/hashedAssetSchema.js +22 -0
  468. package/lib/cjs/solana/generated/mpl-core/types/hookableLifecycleEvent.js +32 -0
  469. package/lib/cjs/solana/generated/mpl-core/types/immutableMetadata.js +22 -0
  470. package/lib/cjs/solana/generated/mpl-core/types/index.js +105 -0
  471. package/lib/cjs/solana/generated/mpl-core/types/key.js +34 -0
  472. package/lib/cjs/solana/generated/mpl-core/types/lifecycleHook.js +23 -0
  473. package/lib/cjs/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +23 -0
  474. package/lib/cjs/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +23 -0
  475. package/lib/cjs/solana/generated/mpl-core/types/linkedAppData.js +23 -0
  476. package/lib/cjs/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +23 -0
  477. package/lib/cjs/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +23 -0
  478. package/lib/cjs/solana/generated/mpl-core/types/linkedDataKey.js +32 -0
  479. package/lib/cjs/solana/generated/mpl-core/types/linkedLifecycleHook.js +23 -0
  480. package/lib/cjs/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +23 -0
  481. package/lib/cjs/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +23 -0
  482. package/lib/cjs/solana/generated/mpl-core/types/masterEdition.js +22 -0
  483. package/lib/cjs/solana/generated/mpl-core/types/oracle.js +23 -0
  484. package/lib/cjs/solana/generated/mpl-core/types/oracleInitInfo.js +23 -0
  485. package/lib/cjs/solana/generated/mpl-core/types/oracleUpdateInfo.js +23 -0
  486. package/lib/cjs/solana/generated/mpl-core/types/oracleValidation.js +32 -0
  487. package/lib/cjs/solana/generated/mpl-core/types/permanentBurnDelegate.js +22 -0
  488. package/lib/cjs/solana/generated/mpl-core/types/permanentFreezeDelegate.js +22 -0
  489. package/lib/cjs/solana/generated/mpl-core/types/permanentFreezeExecute.js +22 -0
  490. package/lib/cjs/solana/generated/mpl-core/types/permanentTransferDelegate.js +22 -0
  491. package/lib/cjs/solana/generated/mpl-core/types/plugin.js +32 -0
  492. package/lib/cjs/solana/generated/mpl-core/types/pluginAuthorityPair.js +23 -0
  493. package/lib/cjs/solana/generated/mpl-core/types/pluginType.js +46 -0
  494. package/lib/cjs/solana/generated/mpl-core/types/registryRecord.js +23 -0
  495. package/lib/cjs/solana/generated/mpl-core/types/relationshipKind.js +31 -0
  496. package/lib/cjs/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +22 -0
  497. package/lib/cjs/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +22 -0
  498. package/lib/cjs/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +22 -0
  499. package/lib/cjs/solana/generated/mpl-core/types/royalties.js +23 -0
  500. package/lib/cjs/solana/generated/mpl-core/types/ruleSet.js +31 -0
  501. package/lib/cjs/solana/generated/mpl-core/types/seed.js +31 -0
  502. package/lib/cjs/solana/generated/mpl-core/types/transferDelegate.js +22 -0
  503. package/lib/cjs/solana/generated/mpl-core/types/updateAuthority.js +31 -0
  504. package/lib/cjs/solana/generated/mpl-core/types/updateDelegate.js +22 -0
  505. package/lib/cjs/solana/generated/mpl-core/types/updateGroupV1Args.js +22 -0
  506. package/lib/cjs/solana/generated/mpl-core/types/updateType.js +30 -0
  507. package/lib/cjs/solana/generated/mpl-core/types/validationResult.js +31 -0
  508. package/lib/cjs/solana/generated/mpl-core/types/validationResultsOffset.js +31 -0
  509. package/lib/cjs/solana/generated/mpl-core/types/verifiedCreators.js +23 -0
  510. package/lib/cjs/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +22 -0
  511. package/lib/cjs/solana/index.js +180 -0
  512. package/lib/cjs/solana/instruction.js +30 -0
  513. package/lib/cjs/solana/io-readable.js +1389 -0
  514. package/lib/cjs/solana/io-writeable.js +1994 -0
  515. package/lib/cjs/solana/json-rpc.js +78 -0
  516. package/lib/cjs/solana/metadata.js +72 -0
  517. package/lib/cjs/solana/mpl-core.js +148 -0
  518. package/lib/cjs/solana/pda.js +355 -0
  519. package/lib/cjs/solana/send.js +164 -0
  520. package/lib/cjs/solana/spawn-ant.js +215 -0
  521. package/lib/cjs/solana/types.js +2 -0
  522. package/lib/cjs/types/ant.js +19 -7
  523. package/lib/cjs/types/io.js +8 -1
  524. package/lib/cjs/utils/ant.js +1 -0
  525. package/lib/cjs/utils/ao.js +1 -0
  526. package/lib/cjs/version.js +1 -1
  527. package/lib/esm/cli/cli.js +128 -40
  528. package/lib/esm/cli/commands/antCommands.js +40 -14
  529. package/lib/esm/cli/commands/arnsPurchaseCommands.js +46 -7
  530. package/lib/esm/cli/commands/escrowCommands.js +208 -0
  531. package/lib/esm/cli/commands/gatewayWriteCommands.js +132 -22
  532. package/lib/esm/cli/commands/readCommands.js +10 -2
  533. package/lib/esm/cli/commands/transfer.js +6 -6
  534. package/lib/esm/cli/options.js +112 -2
  535. package/lib/esm/cli/utils.js +280 -39
  536. package/lib/esm/common/ant-registry.js +25 -3
  537. package/lib/esm/common/ant.js +50 -5
  538. package/lib/esm/common/contracts/ao-process.js +4 -6
  539. package/lib/esm/common/io.js +41 -0
  540. package/lib/esm/common/marketplace.js +24 -79
  541. package/lib/esm/constants.js +13 -1
  542. package/lib/esm/solana/ant-readable.js +389 -0
  543. package/lib/esm/solana/ant-registry-readable.js +118 -0
  544. package/lib/esm/solana/ant-registry-writeable.js +457 -0
  545. package/lib/esm/solana/ant-writeable.js +352 -0
  546. package/lib/esm/solana/ata.js +55 -0
  547. package/lib/esm/solana/canonical-message.js +92 -0
  548. package/lib/esm/solana/clusters.js +62 -0
  549. package/lib/esm/solana/constants.js +124 -0
  550. package/lib/esm/solana/deserialize.js +1098 -0
  551. package/lib/esm/solana/escrow.js +739 -0
  552. package/lib/esm/solana/events.js +210 -0
  553. package/lib/esm/solana/funding-plan.js +682 -0
  554. package/lib/esm/solana/generated/ant/accounts/aclConfig.js +46 -0
  555. package/lib/esm/solana/generated/ant/accounts/aclPage.js +44 -0
  556. package/lib/esm/solana/generated/ant/accounts/antConfig.js +43 -0
  557. package/lib/esm/solana/generated/ant/accounts/antControllers.js +43 -0
  558. package/lib/esm/solana/generated/ant/accounts/antMigrationConfig.js +46 -0
  559. package/lib/esm/solana/generated/ant/accounts/antRecord.js +43 -0
  560. package/lib/esm/solana/generated/ant/accounts/antRecordMetadata.js +43 -0
  561. package/lib/esm/solana/generated/ant/accounts/index.js +14 -0
  562. package/lib/esm/solana/generated/ant/errors/arioAnt.js +130 -0
  563. package/lib/esm/solana/generated/ant/errors/index.js +8 -0
  564. package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +21 -0
  565. package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +21 -0
  566. package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +21 -0
  567. package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +21 -0
  568. package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +21 -0
  569. package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +21 -0
  570. package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +21 -0
  571. package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +21 -0
  572. package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +21 -0
  573. package/lib/esm/solana/generated/ant/events/index.js +16 -0
  574. package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +21 -0
  575. package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +21 -0
  576. package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +21 -0
  577. package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +21 -0
  578. package/lib/esm/solana/generated/ant/events/recordSetEvent.js +21 -0
  579. package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +21 -0
  580. package/lib/esm/solana/generated/ant/index.js +10 -0
  581. package/lib/esm/solana/generated/ant/instructions/addAclPage.js +46 -0
  582. package/lib/esm/solana/generated/ant/instructions/addController.js +73 -0
  583. package/lib/esm/solana/generated/ant/instructions/clearAttributes.js +49 -0
  584. package/lib/esm/solana/generated/ant/instructions/closeAclConfig.js +42 -0
  585. package/lib/esm/solana/generated/ant/instructions/closeAclPage.js +42 -0
  586. package/lib/esm/solana/generated/ant/instructions/closeOrphanedRecordMetadata.js +44 -0
  587. package/lib/esm/solana/generated/ant/instructions/finalizeMigration.js +56 -0
  588. package/lib/esm/solana/generated/ant/instructions/importAccount.js +67 -0
  589. package/lib/esm/solana/generated/ant/instructions/index.js +37 -0
  590. package/lib/esm/solana/generated/ant/instructions/initialize.js +70 -0
  591. package/lib/esm/solana/generated/ant/instructions/initializeMigration.js +70 -0
  592. package/lib/esm/solana/generated/ant/instructions/migrateAnt.js +63 -0
  593. package/lib/esm/solana/generated/ant/instructions/reconcile.js +59 -0
  594. package/lib/esm/solana/generated/ant/instructions/recordAclController.js +63 -0
  595. package/lib/esm/solana/generated/ant/instructions/recordAclOwner.js +46 -0
  596. package/lib/esm/solana/generated/ant/instructions/registerAclConfig.js +67 -0
  597. package/lib/esm/solana/generated/ant/instructions/removeAclController.js +63 -0
  598. package/lib/esm/solana/generated/ant/instructions/removeAclOwner.js +46 -0
  599. package/lib/esm/solana/generated/ant/instructions/removeController.js +66 -0
  600. package/lib/esm/solana/generated/ant/instructions/removeRecord.js +63 -0
  601. package/lib/esm/solana/generated/ant/instructions/removeRecordMetadata.js +63 -0
  602. package/lib/esm/solana/generated/ant/instructions/setDescription.js +63 -0
  603. package/lib/esm/solana/generated/ant/instructions/setKeywords.js +63 -0
  604. package/lib/esm/solana/generated/ant/instructions/setLogo.js +63 -0
  605. package/lib/esm/solana/generated/ant/instructions/setName.js +63 -0
  606. package/lib/esm/solana/generated/ant/instructions/setRecord.js +70 -0
  607. package/lib/esm/solana/generated/ant/instructions/setRecordMetadata.js +70 -0
  608. package/lib/esm/solana/generated/ant/instructions/setTicker.js +63 -0
  609. package/lib/esm/solana/generated/ant/instructions/syncAttributes.js +51 -0
  610. package/lib/esm/solana/generated/ant/instructions/transfer.js +78 -0
  611. package/lib/esm/solana/generated/ant/instructions/transferRecord.js +63 -0
  612. package/lib/esm/solana/generated/ant/pdas/aclConfig.js +12 -0
  613. package/lib/esm/solana/generated/ant/pdas/antConfig.js +12 -0
  614. package/lib/esm/solana/generated/ant/pdas/antControllers.js +12 -0
  615. package/lib/esm/solana/generated/ant/pdas/controllerAclConfig.js +12 -0
  616. package/lib/esm/solana/generated/ant/pdas/index.js +14 -0
  617. package/lib/esm/solana/generated/ant/pdas/migrationConfig.js +12 -0
  618. package/lib/esm/solana/generated/ant/pdas/newOwnerAclConfig.js +12 -0
  619. package/lib/esm/solana/generated/ant/pdas/oldOwnerAclConfig.js +12 -0
  620. package/lib/esm/solana/generated/ant/program-address.js +1 -0
  621. package/lib/esm/solana/generated/ant/types/aclEntry.js +17 -0
  622. package/lib/esm/solana/generated/ant/types/index.js +8 -0
  623. package/lib/esm/solana/generated/ant-escrow/accounts/escrowAnt.js +46 -0
  624. package/lib/esm/solana/generated/ant-escrow/accounts/escrowToken.js +46 -0
  625. package/lib/esm/solana/generated/ant-escrow/accounts/index.js +9 -0
  626. package/lib/esm/solana/generated/ant-escrow/errors/arioAntEscrow.js +64 -0
  627. package/lib/esm/solana/generated/ant-escrow/errors/index.js +8 -0
  628. package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +21 -0
  629. package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +21 -0
  630. package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +21 -0
  631. package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +21 -0
  632. package/lib/esm/solana/generated/ant-escrow/events/index.js +5 -0
  633. package/lib/esm/solana/generated/ant-escrow/index.js +10 -0
  634. package/lib/esm/solana/generated/ant-escrow/instructions/cancelDeposit.js +49 -0
  635. package/lib/esm/solana/generated/ant-escrow/instructions/cancelTokenDeposit.js +49 -0
  636. package/lib/esm/solana/generated/ant-escrow/instructions/cancelVaultDeposit.js +49 -0
  637. package/lib/esm/solana/generated/ant-escrow/instructions/claimAntArweave.js +51 -0
  638. package/lib/esm/solana/generated/ant-escrow/instructions/claimAntEthereum.js +51 -0
  639. package/lib/esm/solana/generated/ant-escrow/instructions/claimTokensArweave.js +51 -0
  640. package/lib/esm/solana/generated/ant-escrow/instructions/claimTokensEthereum.js +51 -0
  641. package/lib/esm/solana/generated/ant-escrow/instructions/claimVaultArweave.js +54 -0
  642. package/lib/esm/solana/generated/ant-escrow/instructions/claimVaultEthereum.js +54 -0
  643. package/lib/esm/solana/generated/ant-escrow/instructions/depositAnt.js +73 -0
  644. package/lib/esm/solana/generated/ant-escrow/instructions/depositTokens.js +73 -0
  645. package/lib/esm/solana/generated/ant-escrow/instructions/depositVault.js +73 -0
  646. package/lib/esm/solana/generated/ant-escrow/instructions/index.js +22 -0
  647. package/lib/esm/solana/generated/ant-escrow/instructions/updateRecipient.js +44 -0
  648. package/lib/esm/solana/generated/ant-escrow/instructions/updateTokenRecipient.js +44 -0
  649. package/lib/esm/solana/generated/ant-escrow/instructions/updateVaultRecipient.js +44 -0
  650. package/lib/esm/solana/generated/ant-escrow/pdas/depositTokensEscrow.js +12 -0
  651. package/lib/esm/solana/generated/ant-escrow/pdas/depositVaultEscrow.js +12 -0
  652. package/lib/esm/solana/generated/ant-escrow/pdas/escrow.js +12 -0
  653. package/lib/esm/solana/generated/ant-escrow/pdas/index.js +10 -0
  654. package/lib/esm/solana/generated/ant-escrow/program-address.js +1 -0
  655. package/lib/esm/solana/generated/arns/accounts/arnsConfig.js +46 -0
  656. package/lib/esm/solana/generated/arns/accounts/arnsRecord.js +44 -0
  657. package/lib/esm/solana/generated/arns/accounts/demandFactor.js +46 -0
  658. package/lib/esm/solana/generated/arns/accounts/index.js +13 -0
  659. package/lib/esm/solana/generated/arns/accounts/nameRegistry.js +47 -0
  660. package/lib/esm/solana/generated/arns/accounts/reservedName.js +43 -0
  661. package/lib/esm/solana/generated/arns/accounts/returnedName.js +43 -0
  662. package/lib/esm/solana/generated/arns/errors/arioArns.js +116 -0
  663. package/lib/esm/solana/generated/arns/errors/index.js +8 -0
  664. package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +21 -0
  665. package/lib/esm/solana/generated/arns/events/index.js +13 -0
  666. package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +21 -0
  667. package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +21 -0
  668. package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +21 -0
  669. package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +21 -0
  670. package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +21 -0
  671. package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +21 -0
  672. package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +21 -0
  673. package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +21 -0
  674. package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +21 -0
  675. package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +21 -0
  676. package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +21 -0
  677. package/lib/esm/solana/generated/arns/index.js +10 -0
  678. package/lib/esm/solana/generated/arns/instructions/buyName.js +80 -0
  679. package/lib/esm/solana/generated/arns/instructions/buyNameFromDelegation.js +86 -0
  680. package/lib/esm/solana/generated/arns/instructions/buyNameFromFundingPlan.js +90 -0
  681. package/lib/esm/solana/generated/arns/instructions/buyNameFromOperatorStake.js +86 -0
  682. package/lib/esm/solana/generated/arns/instructions/buyNameFromWithdrawal.js +86 -0
  683. package/lib/esm/solana/generated/arns/instructions/buyReturnedName.js +80 -0
  684. package/lib/esm/solana/generated/arns/instructions/buyReturnedNameFromDelegation.js +86 -0
  685. package/lib/esm/solana/generated/arns/instructions/buyReturnedNameFromFundingPlan.js +90 -0
  686. package/lib/esm/solana/generated/arns/instructions/buyReturnedNameFromOperatorStake.js +86 -0
  687. package/lib/esm/solana/generated/arns/instructions/buyReturnedNameFromWithdrawal.js +86 -0
  688. package/lib/esm/solana/generated/arns/instructions/claimReservedName.js +56 -0
  689. package/lib/esm/solana/generated/arns/instructions/createNameRegistry.js +66 -0
  690. package/lib/esm/solana/generated/arns/instructions/extendLease.js +70 -0
  691. package/lib/esm/solana/generated/arns/instructions/extendLeaseFromDelegation.js +76 -0
  692. package/lib/esm/solana/generated/arns/instructions/extendLeaseFromFundingPlan.js +87 -0
  693. package/lib/esm/solana/generated/arns/instructions/extendLeaseFromOperatorStake.js +76 -0
  694. package/lib/esm/solana/generated/arns/instructions/extendLeaseFromWithdrawal.js +76 -0
  695. package/lib/esm/solana/generated/arns/instructions/finalizeMigration.js +56 -0
  696. package/lib/esm/solana/generated/arns/instructions/getTokenCost.js +61 -0
  697. package/lib/esm/solana/generated/arns/instructions/importAccount.js +67 -0
  698. package/lib/esm/solana/generated/arns/instructions/importRegistryEntry.js +60 -0
  699. package/lib/esm/solana/generated/arns/instructions/increaseUndernameLimit.js +76 -0
  700. package/lib/esm/solana/generated/arns/instructions/increaseUndernameLimitFromDelegation.js +76 -0
  701. package/lib/esm/solana/generated/arns/instructions/increaseUndernameLimitFromFundingPlan.js +87 -0
  702. package/lib/esm/solana/generated/arns/instructions/increaseUndernameLimitFromOperatorStake.js +76 -0
  703. package/lib/esm/solana/generated/arns/instructions/increaseUndernameLimitFromWithdrawal.js +76 -0
  704. package/lib/esm/solana/generated/arns/instructions/index.js +48 -0
  705. package/lib/esm/solana/generated/arns/instructions/initialize.js +73 -0
  706. package/lib/esm/solana/generated/arns/instructions/pruneExpiredNames.js +70 -0
  707. package/lib/esm/solana/generated/arns/instructions/pruneExpiredReservation.js +42 -0
  708. package/lib/esm/solana/generated/arns/instructions/pruneNameToReturned.js +66 -0
  709. package/lib/esm/solana/generated/arns/instructions/pruneReturnedNames.js +67 -0
  710. package/lib/esm/solana/generated/arns/instructions/reassignName.js +67 -0
  711. package/lib/esm/solana/generated/arns/instructions/releaseName.js +66 -0
  712. package/lib/esm/solana/generated/arns/instructions/reserveName.js +67 -0
  713. package/lib/esm/solana/generated/arns/instructions/unreserveName.js +56 -0
  714. package/lib/esm/solana/generated/arns/instructions/updateDemandFactor.js +56 -0
  715. package/lib/esm/solana/generated/arns/instructions/upgradeName.js +72 -0
  716. package/lib/esm/solana/generated/arns/instructions/upgradeNameFromDelegation.js +72 -0
  717. package/lib/esm/solana/generated/arns/instructions/upgradeNameFromFundingPlan.js +87 -0
  718. package/lib/esm/solana/generated/arns/instructions/upgradeNameFromOperatorStake.js +72 -0
  719. package/lib/esm/solana/generated/arns/instructions/upgradeNameFromWithdrawal.js +72 -0
  720. package/lib/esm/solana/generated/arns/pdas/config.js +12 -0
  721. package/lib/esm/solana/generated/arns/pdas/demandFactor.js +12 -0
  722. package/lib/esm/solana/generated/arns/pdas/index.js +10 -0
  723. package/lib/esm/solana/generated/arns/pdas/nameRegistry.js +12 -0
  724. package/lib/esm/solana/generated/arns/program-address.js +1 -0
  725. package/lib/esm/solana/generated/arns/types/buyNameParams.js +18 -0
  726. package/lib/esm/solana/generated/arns/types/buyReturnedNameParams.js +18 -0
  727. package/lib/esm/solana/generated/arns/types/costIntent.js +26 -0
  728. package/lib/esm/solana/generated/arns/types/fundingSourceKind.js +33 -0
  729. package/lib/esm/solana/generated/arns/types/fundingSourceSpec.js +18 -0
  730. package/lib/esm/solana/generated/arns/types/index.js +14 -0
  731. package/lib/esm/solana/generated/arns/types/nameEntry.js +17 -0
  732. package/lib/esm/solana/generated/arns/types/purchaseType.js +23 -0
  733. package/lib/esm/solana/generated/core/accounts/arioConfig.js +46 -0
  734. package/lib/esm/solana/generated/core/accounts/balance.js +46 -0
  735. package/lib/esm/solana/generated/core/accounts/index.js +14 -0
  736. package/lib/esm/solana/generated/core/accounts/primaryName.js +43 -0
  737. package/lib/esm/solana/generated/core/accounts/primaryNameRequest.js +43 -0
  738. package/lib/esm/solana/generated/core/accounts/primaryNameReverse.js +43 -0
  739. package/lib/esm/solana/generated/core/accounts/vault.js +43 -0
  740. package/lib/esm/solana/generated/core/accounts/vaultCounter.js +46 -0
  741. package/lib/esm/solana/generated/core/errors/arioCore.js +110 -0
  742. package/lib/esm/solana/generated/core/errors/index.js +8 -0
  743. package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +21 -0
  744. package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +21 -0
  745. package/lib/esm/solana/generated/core/events/index.js +14 -0
  746. package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +21 -0
  747. package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +21 -0
  748. package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +21 -0
  749. package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +21 -0
  750. package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +21 -0
  751. package/lib/esm/solana/generated/core/events/transferEvent.js +21 -0
  752. package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +21 -0
  753. package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +21 -0
  754. package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +21 -0
  755. package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +21 -0
  756. package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +21 -0
  757. package/lib/esm/solana/generated/core/index.js +10 -0
  758. package/lib/esm/solana/generated/core/instructions/adminRepairConfig.js +60 -0
  759. package/lib/esm/solana/generated/core/instructions/approvePrimaryName.js +70 -0
  760. package/lib/esm/solana/generated/core/instructions/closeExpiredRequest.js +42 -0
  761. package/lib/esm/solana/generated/core/instructions/createVault.js +76 -0
  762. package/lib/esm/solana/generated/core/instructions/extendVault.js +60 -0
  763. package/lib/esm/solana/generated/core/instructions/finalizeMigration.js +56 -0
  764. package/lib/esm/solana/generated/core/instructions/finalizeSupply.js +60 -0
  765. package/lib/esm/solana/generated/core/instructions/importAccount.js +67 -0
  766. package/lib/esm/solana/generated/core/instructions/importBalance.js +85 -0
  767. package/lib/esm/solana/generated/core/instructions/increaseVault.js +67 -0
  768. package/lib/esm/solana/generated/core/instructions/index.js +29 -0
  769. package/lib/esm/solana/generated/core/instructions/initialize.js +70 -0
  770. package/lib/esm/solana/generated/core/instructions/releaseVault.js +63 -0
  771. package/lib/esm/solana/generated/core/instructions/removePrimaryName.js +63 -0
  772. package/lib/esm/solana/generated/core/instructions/removePrimaryNameForBaseName.js +63 -0
  773. package/lib/esm/solana/generated/core/instructions/requestAndSetPrimaryName.js +79 -0
  774. package/lib/esm/solana/generated/core/instructions/requestAndSetPrimaryNameFromFundingPlan.js +90 -0
  775. package/lib/esm/solana/generated/core/instructions/requestPrimaryName.js +76 -0
  776. package/lib/esm/solana/generated/core/instructions/requestPrimaryNameFromFundingPlan.js +87 -0
  777. package/lib/esm/solana/generated/core/instructions/revokeVault.js +63 -0
  778. package/lib/esm/solana/generated/core/instructions/transfer.js +48 -0
  779. package/lib/esm/solana/generated/core/instructions/updateConfig.js +60 -0
  780. package/lib/esm/solana/generated/core/instructions/vaultedTransfer.js +76 -0
  781. package/lib/esm/solana/generated/core/pdas/balance.js +12 -0
  782. package/lib/esm/solana/generated/core/pdas/config.js +12 -0
  783. package/lib/esm/solana/generated/core/pdas/index.js +15 -0
  784. package/lib/esm/solana/generated/core/pdas/primaryName.js +12 -0
  785. package/lib/esm/solana/generated/core/pdas/primaryNameReverse.js +12 -0
  786. package/lib/esm/solana/generated/core/pdas/recipientVaultCounter.js +12 -0
  787. package/lib/esm/solana/generated/core/pdas/request.js +12 -0
  788. package/lib/esm/solana/generated/core/pdas/requestAndSetPrimaryNamePrimaryName.js +12 -0
  789. package/lib/esm/solana/generated/core/pdas/vaultCounter.js +12 -0
  790. package/lib/esm/solana/generated/core/program-address.js +1 -0
  791. package/lib/esm/solana/generated/core/types/fundingSourceKind.js +33 -0
  792. package/lib/esm/solana/generated/core/types/fundingSourceSpec.js +18 -0
  793. package/lib/esm/solana/generated/core/types/index.js +9 -0
  794. package/lib/esm/solana/generated/gar/accounts/allowlistEntry.js +46 -0
  795. package/lib/esm/solana/generated/gar/accounts/delegation.js +46 -0
  796. package/lib/esm/solana/generated/gar/accounts/epoch.js +46 -0
  797. package/lib/esm/solana/generated/gar/accounts/epochSettings.js +46 -0
  798. package/lib/esm/solana/generated/gar/accounts/gateway.js +44 -0
  799. package/lib/esm/solana/generated/gar/accounts/gatewayRegistry.js +47 -0
  800. package/lib/esm/solana/generated/gar/accounts/gatewaySettings.js +46 -0
  801. package/lib/esm/solana/generated/gar/accounts/index.js +19 -0
  802. package/lib/esm/solana/generated/gar/accounts/observation.js +46 -0
  803. package/lib/esm/solana/generated/gar/accounts/observerLookup.js +46 -0
  804. package/lib/esm/solana/generated/gar/accounts/redelegationRecord.js +46 -0
  805. package/lib/esm/solana/generated/gar/accounts/withdrawal.js +46 -0
  806. package/lib/esm/solana/generated/gar/accounts/withdrawalCounter.js +46 -0
  807. package/lib/esm/solana/generated/gar/errors/arioGar.js +194 -0
  808. package/lib/esm/solana/generated/gar/errors/index.js +8 -0
  809. package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +21 -0
  810. package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +21 -0
  811. package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +21 -0
  812. package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +21 -0
  813. package/lib/esm/solana/generated/gar/events/delegationEvent.js +21 -0
  814. package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +21 -0
  815. package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +21 -0
  816. package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +21 -0
  817. package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +21 -0
  818. package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +21 -0
  819. package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +21 -0
  820. package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +21 -0
  821. package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +21 -0
  822. package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +21 -0
  823. package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +21 -0
  824. package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +21 -0
  825. package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +21 -0
  826. package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +21 -0
  827. package/lib/esm/solana/generated/gar/events/index.js +31 -0
  828. package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +21 -0
  829. package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +21 -0
  830. package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +21 -0
  831. package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +21 -0
  832. package/lib/esm/solana/generated/gar/events/redelegationEvent.js +21 -0
  833. package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +21 -0
  834. package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +21 -0
  835. package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +21 -0
  836. package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +21 -0
  837. package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +21 -0
  838. package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +21 -0
  839. package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +21 -0
  840. package/lib/esm/solana/generated/gar/index.js +10 -0
  841. package/lib/esm/solana/generated/gar/instructions/adminRepairSettings.js +60 -0
  842. package/lib/esm/solana/generated/gar/instructions/allowDelegate.js +66 -0
  843. package/lib/esm/solana/generated/gar/instructions/cancelWithdrawal.js +60 -0
  844. package/lib/esm/solana/generated/gar/instructions/claimDelegateFromLeavingGateway.js +66 -0
  845. package/lib/esm/solana/generated/gar/instructions/claimWithdrawal.js +63 -0
  846. package/lib/esm/solana/generated/gar/instructions/closeDrainedWithdrawal.js +42 -0
  847. package/lib/esm/solana/generated/gar/instructions/closeEmptyDelegation.js +42 -0
  848. package/lib/esm/solana/generated/gar/instructions/closeEpoch.js +63 -0
  849. package/lib/esm/solana/generated/gar/instructions/closeObservation.js +60 -0
  850. package/lib/esm/solana/generated/gar/instructions/compoundDelegationRewards.js +42 -0
  851. package/lib/esm/solana/generated/gar/instructions/createEpoch.js +69 -0
  852. package/lib/esm/solana/generated/gar/instructions/createGatewayRegistry.js +66 -0
  853. package/lib/esm/solana/generated/gar/instructions/decreaseDelegateStake.js +70 -0
  854. package/lib/esm/solana/generated/gar/instructions/decreaseOperatorStake.js +73 -0
  855. package/lib/esm/solana/generated/gar/instructions/deductDelegationForPayment.js +67 -0
  856. package/lib/esm/solana/generated/gar/instructions/deductOperatorStakeForPayment.js +70 -0
  857. package/lib/esm/solana/generated/gar/instructions/deductWithdrawalForPayment.js +67 -0
  858. package/lib/esm/solana/generated/gar/instructions/delegateStake.js +73 -0
  859. package/lib/esm/solana/generated/gar/instructions/disallowDelegate.js +59 -0
  860. package/lib/esm/solana/generated/gar/instructions/distributeEpoch.js +76 -0
  861. package/lib/esm/solana/generated/gar/instructions/finalizeGone.js +59 -0
  862. package/lib/esm/solana/generated/gar/instructions/finalizeMigration.js +56 -0
  863. package/lib/esm/solana/generated/gar/instructions/importAccount.js +67 -0
  864. package/lib/esm/solana/generated/gar/instructions/importRegistryEntry.js +60 -0
  865. package/lib/esm/solana/generated/gar/instructions/increaseOperatorStake.js +70 -0
  866. package/lib/esm/solana/generated/gar/instructions/index.js +50 -0
  867. package/lib/esm/solana/generated/gar/instructions/initialize.js +70 -0
  868. package/lib/esm/solana/generated/gar/instructions/initializeEpochs.js +70 -0
  869. package/lib/esm/solana/generated/gar/instructions/instantWithdrawal.js +63 -0
  870. package/lib/esm/solana/generated/gar/instructions/joinNetwork.js +80 -0
  871. package/lib/esm/solana/generated/gar/instructions/leaveNetwork.js +79 -0
  872. package/lib/esm/solana/generated/gar/instructions/migrateSettingsSetArnsProgramId.js +67 -0
  873. package/lib/esm/solana/generated/gar/instructions/migrateSettingsSupplyCounters.js +60 -0
  874. package/lib/esm/solana/generated/gar/instructions/payFromFundingPlan.js +81 -0
  875. package/lib/esm/solana/generated/gar/instructions/prescribeEpoch.js +69 -0
  876. package/lib/esm/solana/generated/gar/instructions/pruneGateway.js +79 -0
  877. package/lib/esm/solana/generated/gar/instructions/redelegateStake.js +76 -0
  878. package/lib/esm/solana/generated/gar/instructions/releaseTreasuryAuthority.js +67 -0
  879. package/lib/esm/solana/generated/gar/instructions/saveObservations.js +70 -0
  880. package/lib/esm/solana/generated/gar/instructions/setAllowlistEnabled.js +63 -0
  881. package/lib/esm/solana/generated/gar/instructions/setEpochsEnabled.js +60 -0
  882. package/lib/esm/solana/generated/gar/instructions/tallyWeights.js +69 -0
  883. package/lib/esm/solana/generated/gar/instructions/updateGatewaySettings.js +64 -0
  884. package/lib/esm/solana/generated/gar/instructions/updateObserverAddress.js +70 -0
  885. package/lib/esm/solana/generated/gar/pdas/allowlistEntry.js +12 -0
  886. package/lib/esm/solana/generated/gar/pdas/decreaseOperatorStakeWithdrawalCounter.js +12 -0
  887. package/lib/esm/solana/generated/gar/pdas/epoch.js +12 -0
  888. package/lib/esm/solana/generated/gar/pdas/epochSettings.js +12 -0
  889. package/lib/esm/solana/generated/gar/pdas/gateway.js +12 -0
  890. package/lib/esm/solana/generated/gar/pdas/index.js +19 -0
  891. package/lib/esm/solana/generated/gar/pdas/newObserverLookup.js +12 -0
  892. package/lib/esm/solana/generated/gar/pdas/observation.js +12 -0
  893. package/lib/esm/solana/generated/gar/pdas/payFromFundingPlanWithdrawalCounter.js +12 -0
  894. package/lib/esm/solana/generated/gar/pdas/redelegationRecord.js +12 -0
  895. package/lib/esm/solana/generated/gar/pdas/registry.js +12 -0
  896. package/lib/esm/solana/generated/gar/pdas/settings.js +12 -0
  897. package/lib/esm/solana/generated/gar/pdas/withdrawalCounter.js +12 -0
  898. package/lib/esm/solana/generated/gar/program-address.js +1 -0
  899. package/lib/esm/solana/generated/gar/types/fundingSourceKind.js +33 -0
  900. package/lib/esm/solana/generated/gar/types/fundingSourceSpec.js +18 -0
  901. package/lib/esm/solana/generated/gar/types/gatewaySettings2.js +17 -0
  902. package/lib/esm/solana/generated/gar/types/gatewaySlot.js +17 -0
  903. package/lib/esm/solana/generated/gar/types/gatewayStats.js +17 -0
  904. package/lib/esm/solana/generated/gar/types/gatewayStatus.js +24 -0
  905. package/lib/esm/solana/generated/gar/types/gatewayWeights.js +17 -0
  906. package/lib/esm/solana/generated/gar/types/index.js +16 -0
  907. package/lib/esm/solana/generated/gar/types/protocol.js +23 -0
  908. package/lib/esm/solana/generated/gar/types/registryIndex.js +17 -0
  909. package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +42 -0
  910. package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +42 -0
  911. package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +45 -0
  912. package/lib/esm/solana/generated/mpl-core/accounts/index.js +12 -0
  913. package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +45 -0
  914. package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +42 -0
  915. package/lib/esm/solana/generated/mpl-core/errors/index.js +8 -0
  916. package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +136 -0
  917. package/lib/esm/solana/generated/mpl-core/index.js +8 -0
  918. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +53 -0
  919. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +53 -0
  920. package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +53 -0
  921. package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +53 -0
  922. package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +53 -0
  923. package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +53 -0
  924. package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +49 -0
  925. package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +49 -0
  926. package/lib/esm/solana/generated/mpl-core/instructions/collect.js +42 -0
  927. package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +50 -0
  928. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +53 -0
  929. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +53 -0
  930. package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +53 -0
  931. package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +53 -0
  932. package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +53 -0
  933. package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +56 -0
  934. package/lib/esm/solana/generated/mpl-core/instructions/index.js +40 -0
  935. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +53 -0
  936. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +53 -0
  937. package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +53 -0
  938. package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +53 -0
  939. package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +53 -0
  940. package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +53 -0
  941. package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +49 -0
  942. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +53 -0
  943. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +45 -0
  944. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +53 -0
  945. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +52 -0
  946. package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +53 -0
  947. package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +53 -0
  948. package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +53 -0
  949. package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +53 -0
  950. package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +53 -0
  951. package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +53 -0
  952. package/lib/esm/solana/generated/mpl-core/program-address.js +1 -0
  953. package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +17 -0
  954. package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +17 -0
  955. package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +17 -0
  956. package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +17 -0
  957. package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +17 -0
  958. package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +18 -0
  959. package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +18 -0
  960. package/lib/esm/solana/generated/mpl-core/types/appData.js +18 -0
  961. package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +18 -0
  962. package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +18 -0
  963. package/lib/esm/solana/generated/mpl-core/types/attribute.js +17 -0
  964. package/lib/esm/solana/generated/mpl-core/types/attributes.js +18 -0
  965. package/lib/esm/solana/generated/mpl-core/types/authority.js +24 -0
  966. package/lib/esm/solana/generated/mpl-core/types/autograph.js +18 -0
  967. package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +17 -0
  968. package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +17 -0
  969. package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +17 -0
  970. package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +17 -0
  971. package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +18 -0
  972. package/lib/esm/solana/generated/mpl-core/types/creator.js +17 -0
  973. package/lib/esm/solana/generated/mpl-core/types/dataSection.js +18 -0
  974. package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +18 -0
  975. package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +17 -0
  976. package/lib/esm/solana/generated/mpl-core/types/dataState.js +23 -0
  977. package/lib/esm/solana/generated/mpl-core/types/edition.js +17 -0
  978. package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +17 -0
  979. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +25 -0
  980. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +25 -0
  981. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +25 -0
  982. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +24 -0
  983. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +28 -0
  984. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +25 -0
  985. package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +18 -0
  986. package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +24 -0
  987. package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +25 -0
  988. package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +17 -0
  989. package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +17 -0
  990. package/lib/esm/solana/generated/mpl-core/types/groups.js +17 -0
  991. package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +18 -0
  992. package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +17 -0
  993. package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +26 -0
  994. package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +17 -0
  995. package/lib/esm/solana/generated/mpl-core/types/index.js +89 -0
  996. package/lib/esm/solana/generated/mpl-core/types/key.js +28 -0
  997. package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +18 -0
  998. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +18 -0
  999. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +18 -0
  1000. package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +18 -0
  1001. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +18 -0
  1002. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +18 -0
  1003. package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +25 -0
  1004. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +18 -0
  1005. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +18 -0
  1006. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +18 -0
  1007. package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +17 -0
  1008. package/lib/esm/solana/generated/mpl-core/types/oracle.js +18 -0
  1009. package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +18 -0
  1010. package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +18 -0
  1011. package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +25 -0
  1012. package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +17 -0
  1013. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +17 -0
  1014. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +17 -0
  1015. package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +17 -0
  1016. package/lib/esm/solana/generated/mpl-core/types/plugin.js +25 -0
  1017. package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +18 -0
  1018. package/lib/esm/solana/generated/mpl-core/types/pluginType.js +40 -0
  1019. package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +18 -0
  1020. package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +25 -0
  1021. package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +17 -0
  1022. package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +17 -0
  1023. package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +17 -0
  1024. package/lib/esm/solana/generated/mpl-core/types/royalties.js +18 -0
  1025. package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +24 -0
  1026. package/lib/esm/solana/generated/mpl-core/types/seed.js +24 -0
  1027. package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +17 -0
  1028. package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +24 -0
  1029. package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +17 -0
  1030. package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +17 -0
  1031. package/lib/esm/solana/generated/mpl-core/types/updateType.js +24 -0
  1032. package/lib/esm/solana/generated/mpl-core/types/validationResult.js +25 -0
  1033. package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +24 -0
  1034. package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +18 -0
  1035. package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +17 -0
  1036. package/lib/esm/solana/index.js +85 -0
  1037. package/lib/esm/solana/instruction.js +24 -0
  1038. package/lib/esm/solana/io-readable.js +1349 -0
  1039. package/lib/esm/solana/io-writeable.js +1956 -0
  1040. package/lib/esm/solana/json-rpc.js +74 -0
  1041. package/lib/esm/solana/metadata.js +66 -0
  1042. package/lib/esm/solana/mpl-core.js +142 -0
  1043. package/lib/esm/solana/pda.js +317 -0
  1044. package/lib/esm/solana/send.js +159 -0
  1045. package/lib/esm/solana/spawn-ant.js +210 -0
  1046. package/lib/esm/solana/types.js +1 -0
  1047. package/lib/esm/types/ant.js +19 -7
  1048. package/lib/esm/types/io.js +8 -1
  1049. package/lib/esm/utils/ant.js +1 -0
  1050. package/lib/esm/utils/ao.js +1 -0
  1051. package/lib/esm/version.js +1 -1
  1052. package/lib/types/cli/commands/antCommands.d.ts +2 -7
  1053. package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +12 -0
  1054. package/lib/types/cli/commands/escrowCommands.d.ts +62 -0
  1055. package/lib/types/cli/commands/readCommands.d.ts +2 -0
  1056. package/lib/types/cli/options.d.ts +86 -0
  1057. package/lib/types/cli/types.d.ts +6 -0
  1058. package/lib/types/cli/utils.d.ts +43 -5
  1059. package/lib/types/common/ant-registry.d.ts +41 -0
  1060. package/lib/types/common/ant.d.ts +35 -2
  1061. package/lib/types/common/contracts/ao-process.d.ts +2 -16
  1062. package/lib/types/common/io.d.ts +42 -2
  1063. package/lib/types/common/marketplace.d.ts +2 -14
  1064. package/lib/types/constants.d.ts +11 -1
  1065. package/lib/types/solana/ant-readable.d.ts +121 -0
  1066. package/lib/types/solana/ant-registry-readable.d.ts +90 -0
  1067. package/lib/types/solana/ant-registry-writeable.d.ts +234 -0
  1068. package/lib/types/solana/ant-writeable.d.ts +162 -0
  1069. package/lib/types/solana/ata.d.ts +29 -0
  1070. package/lib/types/solana/canonical-message.d.ts +82 -0
  1071. package/lib/types/solana/clusters.d.ts +62 -0
  1072. package/lib/types/solana/constants.d.ts +97 -0
  1073. package/lib/types/solana/deserialize.d.ts +400 -0
  1074. package/lib/types/solana/escrow.d.ts +357 -0
  1075. package/lib/types/solana/events.d.ts +156 -0
  1076. package/lib/types/solana/funding-plan.d.ts +210 -0
  1077. package/lib/types/solana/generated/ant/accounts/aclConfig.d.ts +56 -0
  1078. package/lib/types/solana/generated/ant/accounts/aclPage.d.ts +44 -0
  1079. package/lib/types/solana/generated/ant/accounts/antConfig.d.ts +63 -0
  1080. package/lib/types/solana/generated/ant/accounts/antControllers.d.ts +51 -0
  1081. package/lib/types/solana/generated/ant/accounts/antMigrationConfig.d.ts +44 -0
  1082. package/lib/types/solana/generated/ant/accounts/antRecord.d.ts +75 -0
  1083. package/lib/types/solana/generated/ant/accounts/antRecordMetadata.d.ts +59 -0
  1084. package/lib/types/solana/generated/ant/accounts/index.d.ts +14 -0
  1085. package/lib/types/solana/generated/ant/errors/arioAnt.d.ts +127 -0
  1086. package/lib/types/solana/generated/ant/errors/index.d.ts +8 -0
  1087. package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +26 -0
  1088. package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +26 -0
  1089. package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +28 -0
  1090. package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +28 -0
  1091. package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +26 -0
  1092. package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +26 -0
  1093. package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +24 -0
  1094. package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +26 -0
  1095. package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +26 -0
  1096. package/lib/types/solana/generated/ant/events/index.d.ts +15 -0
  1097. package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +26 -0
  1098. package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +26 -0
  1099. package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +28 -0
  1100. package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +26 -0
  1101. package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +34 -0
  1102. package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +30 -0
  1103. package/lib/types/solana/generated/ant/index.d.ts +10 -0
  1104. package/lib/types/solana/generated/ant/instructions/addAclPage.d.ts +39 -0
  1105. package/lib/types/solana/generated/ant/instructions/addController.d.ts +95 -0
  1106. package/lib/types/solana/generated/ant/instructions/clearAttributes.d.ts +67 -0
  1107. package/lib/types/solana/generated/ant/instructions/closeAclConfig.d.ts +43 -0
  1108. package/lib/types/solana/generated/ant/instructions/closeAclPage.d.ts +39 -0
  1109. package/lib/types/solana/generated/ant/instructions/closeOrphanedRecordMetadata.d.ts +55 -0
  1110. package/lib/types/solana/generated/ant/instructions/finalizeMigration.d.ts +42 -0
  1111. package/lib/types/solana/generated/ant/instructions/importAccount.d.ts +60 -0
  1112. package/lib/types/solana/generated/ant/instructions/index.d.ts +37 -0
  1113. package/lib/types/solana/generated/ant/instructions/initialize.d.ts +103 -0
  1114. package/lib/types/solana/generated/ant/instructions/initializeMigration.d.ts +78 -0
  1115. package/lib/types/solana/generated/ant/instructions/migrateAnt.d.ts +51 -0
  1116. package/lib/types/solana/generated/ant/instructions/reconcile.d.ts +51 -0
  1117. package/lib/types/solana/generated/ant/instructions/recordAclController.d.ts +66 -0
  1118. package/lib/types/solana/generated/ant/instructions/recordAclOwner.d.ts +53 -0
  1119. package/lib/types/solana/generated/ant/instructions/registerAclConfig.d.ts +53 -0
  1120. package/lib/types/solana/generated/ant/instructions/removeAclController.d.ts +66 -0
  1121. package/lib/types/solana/generated/ant/instructions/removeAclOwner.d.ts +53 -0
  1122. package/lib/types/solana/generated/ant/instructions/removeController.d.ts +59 -0
  1123. package/lib/types/solana/generated/ant/instructions/removeRecord.d.ts +81 -0
  1124. package/lib/types/solana/generated/ant/instructions/removeRecordMetadata.d.ts +59 -0
  1125. package/lib/types/solana/generated/ant/instructions/setDescription.d.ts +53 -0
  1126. package/lib/types/solana/generated/ant/instructions/setKeywords.d.ts +53 -0
  1127. package/lib/types/solana/generated/ant/instructions/setLogo.d.ts +53 -0
  1128. package/lib/types/solana/generated/ant/instructions/setName.d.ts +53 -0
  1129. package/lib/types/solana/generated/ant/instructions/setRecord.d.ts +91 -0
  1130. package/lib/types/solana/generated/ant/instructions/setRecordMetadata.d.ts +94 -0
  1131. package/lib/types/solana/generated/ant/instructions/setTicker.d.ts +53 -0
  1132. package/lib/types/solana/generated/ant/instructions/syncAttributes.d.ts +77 -0
  1133. package/lib/types/solana/generated/ant/instructions/transfer.d.ts +162 -0
  1134. package/lib/types/solana/generated/ant/instructions/transferRecord.d.ts +56 -0
  1135. package/lib/types/solana/generated/ant/pdas/aclConfig.d.ts +14 -0
  1136. package/lib/types/solana/generated/ant/pdas/antConfig.d.ts +14 -0
  1137. package/lib/types/solana/generated/ant/pdas/antControllers.d.ts +14 -0
  1138. package/lib/types/solana/generated/ant/pdas/controllerAclConfig.d.ts +14 -0
  1139. package/lib/types/solana/generated/ant/pdas/index.d.ts +14 -0
  1140. package/lib/types/solana/generated/ant/pdas/migrationConfig.d.ts +11 -0
  1141. package/lib/types/solana/generated/ant/pdas/newOwnerAclConfig.d.ts +14 -0
  1142. package/lib/types/solana/generated/ant/pdas/oldOwnerAclConfig.d.ts +14 -0
  1143. package/lib/types/solana/generated/ant/program-address.d.ts +7 -0
  1144. package/lib/types/solana/generated/ant/types/aclEntry.d.ts +27 -0
  1145. package/lib/types/solana/generated/ant/types/index.d.ts +8 -0
  1146. package/lib/types/solana/generated/ant-escrow/accounts/escrowAnt.d.ts +116 -0
  1147. package/lib/types/solana/generated/ant-escrow/accounts/escrowToken.d.ts +100 -0
  1148. package/lib/types/solana/generated/ant-escrow/accounts/index.d.ts +9 -0
  1149. package/lib/types/solana/generated/ant-escrow/errors/arioAntEscrow.d.ts +61 -0
  1150. package/lib/types/solana/generated/ant-escrow/errors/index.d.ts +8 -0
  1151. package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +28 -0
  1152. package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +32 -0
  1153. package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +36 -0
  1154. package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +26 -0
  1155. package/lib/types/solana/generated/ant-escrow/events/index.d.ts +4 -0
  1156. package/lib/types/solana/generated/ant-escrow/index.d.ts +10 -0
  1157. package/lib/types/solana/generated/ant-escrow/instructions/cancelDeposit.d.ts +69 -0
  1158. package/lib/types/solana/generated/ant-escrow/instructions/cancelTokenDeposit.d.ts +59 -0
  1159. package/lib/types/solana/generated/ant-escrow/instructions/cancelVaultDeposit.d.ts +59 -0
  1160. package/lib/types/solana/generated/ant-escrow/instructions/claimAntArweave.d.ts +105 -0
  1161. package/lib/types/solana/generated/ant-escrow/instructions/claimAntEthereum.d.ts +54 -0
  1162. package/lib/types/solana/generated/ant-escrow/instructions/claimTokensArweave.d.ts +69 -0
  1163. package/lib/types/solana/generated/ant-escrow/instructions/claimTokensEthereum.d.ts +60 -0
  1164. package/lib/types/solana/generated/ant-escrow/instructions/claimVaultArweave.d.ts +65 -0
  1165. package/lib/types/solana/generated/ant-escrow/instructions/claimVaultEthereum.d.ts +92 -0
  1166. package/lib/types/solana/generated/ant-escrow/instructions/depositAnt.d.ts +117 -0
  1167. package/lib/types/solana/generated/ant-escrow/instructions/depositTokens.d.ts +101 -0
  1168. package/lib/types/solana/generated/ant-escrow/instructions/depositVault.d.ts +97 -0
  1169. package/lib/types/solana/generated/ant-escrow/instructions/index.d.ts +22 -0
  1170. package/lib/types/solana/generated/ant-escrow/instructions/updateRecipient.d.ts +56 -0
  1171. package/lib/types/solana/generated/ant-escrow/instructions/updateTokenRecipient.d.ts +52 -0
  1172. package/lib/types/solana/generated/ant-escrow/instructions/updateVaultRecipient.d.ts +52 -0
  1173. package/lib/types/solana/generated/ant-escrow/pdas/depositTokensEscrow.d.ts +15 -0
  1174. package/lib/types/solana/generated/ant-escrow/pdas/depositVaultEscrow.d.ts +15 -0
  1175. package/lib/types/solana/generated/ant-escrow/pdas/escrow.d.ts +14 -0
  1176. package/lib/types/solana/generated/ant-escrow/pdas/index.d.ts +10 -0
  1177. package/lib/types/solana/generated/ant-escrow/program-address.d.ts +7 -0
  1178. package/lib/types/solana/generated/arns/accounts/arnsConfig.d.ts +76 -0
  1179. package/lib/types/solana/generated/arns/accounts/arnsRecord.d.ts +92 -0
  1180. package/lib/types/solana/generated/arns/accounts/demandFactor.d.ts +72 -0
  1181. package/lib/types/solana/generated/arns/accounts/index.d.ts +13 -0
  1182. package/lib/types/solana/generated/arns/accounts/nameRegistry.d.ts +65 -0
  1183. package/lib/types/solana/generated/arns/accounts/reservedName.d.ts +51 -0
  1184. package/lib/types/solana/generated/arns/accounts/returnedName.d.ts +47 -0
  1185. package/lib/types/solana/generated/arns/errors/arioArns.d.ts +113 -0
  1186. package/lib/types/solana/generated/arns/errors/index.d.ts +8 -0
  1187. package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +28 -0
  1188. package/lib/types/solana/generated/arns/events/index.d.ts +12 -0
  1189. package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +32 -0
  1190. package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +34 -0
  1191. package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +28 -0
  1192. package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +24 -0
  1193. package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +28 -0
  1194. package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +24 -0
  1195. package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +28 -0
  1196. package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +26 -0
  1197. package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +24 -0
  1198. package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +32 -0
  1199. package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +32 -0
  1200. package/lib/types/solana/generated/arns/index.d.ts +10 -0
  1201. package/lib/types/solana/generated/arns/instructions/buyName.d.ts +81 -0
  1202. package/lib/types/solana/generated/arns/instructions/buyNameFromDelegation.d.ts +87 -0
  1203. package/lib/types/solana/generated/arns/instructions/buyNameFromFundingPlan.d.ts +99 -0
  1204. package/lib/types/solana/generated/arns/instructions/buyNameFromOperatorStake.d.ts +84 -0
  1205. package/lib/types/solana/generated/arns/instructions/buyNameFromWithdrawal.d.ts +84 -0
  1206. package/lib/types/solana/generated/arns/instructions/buyReturnedName.d.ts +75 -0
  1207. package/lib/types/solana/generated/arns/instructions/buyReturnedNameFromDelegation.d.ts +96 -0
  1208. package/lib/types/solana/generated/arns/instructions/buyReturnedNameFromFundingPlan.d.ts +102 -0
  1209. package/lib/types/solana/generated/arns/instructions/buyReturnedNameFromOperatorStake.d.ts +93 -0
  1210. package/lib/types/solana/generated/arns/instructions/buyReturnedNameFromWithdrawal.d.ts +87 -0
  1211. package/lib/types/solana/generated/arns/instructions/claimReservedName.d.ts +45 -0
  1212. package/lib/types/solana/generated/arns/instructions/createNameRegistry.d.ts +48 -0
  1213. package/lib/types/solana/generated/arns/instructions/extendLease.d.ts +62 -0
  1214. package/lib/types/solana/generated/arns/instructions/extendLeaseFromDelegation.d.ts +74 -0
  1215. package/lib/types/solana/generated/arns/instructions/extendLeaseFromFundingPlan.d.ts +90 -0
  1216. package/lib/types/solana/generated/arns/instructions/extendLeaseFromOperatorStake.d.ts +71 -0
  1217. package/lib/types/solana/generated/arns/instructions/extendLeaseFromWithdrawal.d.ts +71 -0
  1218. package/lib/types/solana/generated/arns/instructions/finalizeMigration.d.ts +42 -0
  1219. package/lib/types/solana/generated/arns/instructions/getTokenCost.d.ts +66 -0
  1220. package/lib/types/solana/generated/arns/instructions/importAccount.d.ts +60 -0
  1221. package/lib/types/solana/generated/arns/instructions/importRegistryEntry.d.ts +54 -0
  1222. package/lib/types/solana/generated/arns/instructions/increaseUndernameLimit.d.ts +65 -0
  1223. package/lib/types/solana/generated/arns/instructions/increaseUndernameLimitFromDelegation.d.ts +74 -0
  1224. package/lib/types/solana/generated/arns/instructions/increaseUndernameLimitFromFundingPlan.d.ts +90 -0
  1225. package/lib/types/solana/generated/arns/instructions/increaseUndernameLimitFromOperatorStake.d.ts +71 -0
  1226. package/lib/types/solana/generated/arns/instructions/increaseUndernameLimitFromWithdrawal.d.ts +71 -0
  1227. package/lib/types/solana/generated/arns/instructions/index.d.ts +48 -0
  1228. package/lib/types/solana/generated/arns/instructions/initialize.d.ts +90 -0
  1229. package/lib/types/solana/generated/arns/instructions/pruneExpiredNames.d.ts +56 -0
  1230. package/lib/types/solana/generated/arns/instructions/pruneExpiredReservation.d.ts +37 -0
  1231. package/lib/types/solana/generated/arns/instructions/pruneNameToReturned.d.ts +54 -0
  1232. package/lib/types/solana/generated/arns/instructions/pruneReturnedNames.d.ts +50 -0
  1233. package/lib/types/solana/generated/arns/instructions/reassignName.d.ts +53 -0
  1234. package/lib/types/solana/generated/arns/instructions/releaseName.d.ts +54 -0
  1235. package/lib/types/solana/generated/arns/instructions/reserveName.d.ts +61 -0
  1236. package/lib/types/solana/generated/arns/instructions/unreserveName.d.ts +45 -0
  1237. package/lib/types/solana/generated/arns/instructions/updateDemandFactor.d.ts +42 -0
  1238. package/lib/types/solana/generated/arns/instructions/upgradeName.d.ts +60 -0
  1239. package/lib/types/solana/generated/arns/instructions/upgradeNameFromDelegation.d.ts +69 -0
  1240. package/lib/types/solana/generated/arns/instructions/upgradeNameFromFundingPlan.d.ts +86 -0
  1241. package/lib/types/solana/generated/arns/instructions/upgradeNameFromOperatorStake.d.ts +66 -0
  1242. package/lib/types/solana/generated/arns/instructions/upgradeNameFromWithdrawal.d.ts +66 -0
  1243. package/lib/types/solana/generated/arns/pdas/config.d.ts +11 -0
  1244. package/lib/types/solana/generated/arns/pdas/demandFactor.d.ts +11 -0
  1245. package/lib/types/solana/generated/arns/pdas/index.d.ts +10 -0
  1246. package/lib/types/solana/generated/arns/pdas/nameRegistry.d.ts +11 -0
  1247. package/lib/types/solana/generated/arns/program-address.d.ts +7 -0
  1248. package/lib/types/solana/generated/arns/types/buyNameParams.d.ts +32 -0
  1249. package/lib/types/solana/generated/arns/types/buyReturnedNameParams.d.ts +26 -0
  1250. package/lib/types/solana/generated/arns/types/costIntent.d.ts +19 -0
  1251. package/lib/types/solana/generated/arns/types/fundingSourceKind.d.ts +26 -0
  1252. package/lib/types/solana/generated/arns/types/fundingSourceSpec.d.ts +21 -0
  1253. package/lib/types/solana/generated/arns/types/index.d.ts +14 -0
  1254. package/lib/types/solana/generated/arns/types/nameEntry.d.ts +21 -0
  1255. package/lib/types/solana/generated/arns/types/purchaseType.d.ts +16 -0
  1256. package/lib/types/solana/generated/core/accounts/arioConfig.d.ts +84 -0
  1257. package/lib/types/solana/generated/core/accounts/balance.d.ts +40 -0
  1258. package/lib/types/solana/generated/core/accounts/index.d.ts +14 -0
  1259. package/lib/types/solana/generated/core/accounts/primaryName.d.ts +43 -0
  1260. package/lib/types/solana/generated/core/accounts/primaryNameRequest.d.ts +47 -0
  1261. package/lib/types/solana/generated/core/accounts/primaryNameReverse.d.ts +39 -0
  1262. package/lib/types/solana/generated/core/accounts/vault.d.ts +59 -0
  1263. package/lib/types/solana/generated/core/accounts/vaultCounter.d.ts +40 -0
  1264. package/lib/types/solana/generated/core/errors/arioCore.d.ts +107 -0
  1265. package/lib/types/solana/generated/core/errors/index.d.ts +8 -0
  1266. package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +26 -0
  1267. package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +26 -0
  1268. package/lib/types/solana/generated/core/events/index.d.ts +13 -0
  1269. package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +26 -0
  1270. package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +26 -0
  1271. package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +30 -0
  1272. package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +24 -0
  1273. package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +26 -0
  1274. package/lib/types/solana/generated/core/events/transferEvent.d.ts +26 -0
  1275. package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +28 -0
  1276. package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +26 -0
  1277. package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +28 -0
  1278. package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +26 -0
  1279. package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +28 -0
  1280. package/lib/types/solana/generated/core/index.d.ts +10 -0
  1281. package/lib/types/solana/generated/core/instructions/adminRepairConfig.d.ts +51 -0
  1282. package/lib/types/solana/generated/core/instructions/approvePrimaryName.d.ts +93 -0
  1283. package/lib/types/solana/generated/core/instructions/closeExpiredRequest.d.ts +39 -0
  1284. package/lib/types/solana/generated/core/instructions/createVault.d.ts +69 -0
  1285. package/lib/types/solana/generated/core/instructions/extendVault.d.ts +50 -0
  1286. package/lib/types/solana/generated/core/instructions/finalizeMigration.d.ts +42 -0
  1287. package/lib/types/solana/generated/core/instructions/finalizeSupply.d.ts +59 -0
  1288. package/lib/types/solana/generated/core/instructions/importAccount.d.ts +60 -0
  1289. package/lib/types/solana/generated/core/instructions/importBalance.d.ts +153 -0
  1290. package/lib/types/solana/generated/core/instructions/increaseVault.d.ts +59 -0
  1291. package/lib/types/solana/generated/core/instructions/index.d.ts +29 -0
  1292. package/lib/types/solana/generated/core/instructions/initialize.d.ts +99 -0
  1293. package/lib/types/solana/generated/core/instructions/releaseVault.d.ts +54 -0
  1294. package/lib/types/solana/generated/core/instructions/removePrimaryName.d.ts +53 -0
  1295. package/lib/types/solana/generated/core/instructions/removePrimaryNameForBaseName.d.ts +75 -0
  1296. package/lib/types/solana/generated/core/instructions/requestAndSetPrimaryName.d.ts +85 -0
  1297. package/lib/types/solana/generated/core/instructions/requestAndSetPrimaryNameFromFundingPlan.d.ts +98 -0
  1298. package/lib/types/solana/generated/core/instructions/requestPrimaryName.d.ts +68 -0
  1299. package/lib/types/solana/generated/core/instructions/requestPrimaryNameFromFundingPlan.d.ts +90 -0
  1300. package/lib/types/solana/generated/core/instructions/revokeVault.d.ts +54 -0
  1301. package/lib/types/solana/generated/core/instructions/transfer.d.ts +43 -0
  1302. package/lib/types/solana/generated/core/instructions/updateConfig.d.ts +59 -0
  1303. package/lib/types/solana/generated/core/instructions/vaultedTransfer.d.ts +76 -0
  1304. package/lib/types/solana/generated/core/pdas/balance.d.ts +14 -0
  1305. package/lib/types/solana/generated/core/pdas/config.d.ts +11 -0
  1306. package/lib/types/solana/generated/core/pdas/index.d.ts +15 -0
  1307. package/lib/types/solana/generated/core/pdas/primaryName.d.ts +14 -0
  1308. package/lib/types/solana/generated/core/pdas/primaryNameReverse.d.ts +14 -0
  1309. package/lib/types/solana/generated/core/pdas/recipientVaultCounter.d.ts +14 -0
  1310. package/lib/types/solana/generated/core/pdas/request.d.ts +14 -0
  1311. package/lib/types/solana/generated/core/pdas/requestAndSetPrimaryNamePrimaryName.d.ts +14 -0
  1312. package/lib/types/solana/generated/core/pdas/vaultCounter.d.ts +14 -0
  1313. package/lib/types/solana/generated/core/program-address.d.ts +7 -0
  1314. package/lib/types/solana/generated/core/types/fundingSourceKind.d.ts +26 -0
  1315. package/lib/types/solana/generated/core/types/fundingSourceSpec.d.ts +21 -0
  1316. package/lib/types/solana/generated/core/types/index.d.ts +9 -0
  1317. package/lib/types/solana/generated/gar/accounts/allowlistEntry.d.ts +36 -0
  1318. package/lib/types/solana/generated/gar/accounts/delegation.d.ts +42 -0
  1319. package/lib/types/solana/generated/gar/accounts/epoch.d.ts +118 -0
  1320. package/lib/types/solana/generated/gar/accounts/epochSettings.d.ts +120 -0
  1321. package/lib/types/solana/generated/gar/accounts/gateway.d.ts +106 -0
  1322. package/lib/types/solana/generated/gar/accounts/gatewayRegistry.d.ts +59 -0
  1323. package/lib/types/solana/generated/gar/accounts/gatewaySettings.d.ts +94 -0
  1324. package/lib/types/solana/generated/gar/accounts/index.d.ts +19 -0
  1325. package/lib/types/solana/generated/gar/accounts/observation.d.ts +54 -0
  1326. package/lib/types/solana/generated/gar/accounts/observerLookup.d.ts +32 -0
  1327. package/lib/types/solana/generated/gar/accounts/redelegationRecord.d.ts +44 -0
  1328. package/lib/types/solana/generated/gar/accounts/withdrawal.d.ts +82 -0
  1329. package/lib/types/solana/generated/gar/accounts/withdrawalCounter.d.ts +34 -0
  1330. package/lib/types/solana/generated/gar/errors/arioGar.d.ts +188 -0
  1331. package/lib/types/solana/generated/gar/errors/index.d.ts +8 -0
  1332. package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +24 -0
  1333. package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +26 -0
  1334. package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +24 -0
  1335. package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +28 -0
  1336. package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +28 -0
  1337. package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +24 -0
  1338. package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +26 -0
  1339. package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +26 -0
  1340. package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +28 -0
  1341. package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +26 -0
  1342. package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +24 -0
  1343. package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +28 -0
  1344. package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +26 -0
  1345. package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +24 -0
  1346. package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +26 -0
  1347. package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +22 -0
  1348. package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +26 -0
  1349. package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +24 -0
  1350. package/lib/types/solana/generated/gar/events/index.d.ts +30 -0
  1351. package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +30 -0
  1352. package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +28 -0
  1353. package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +24 -0
  1354. package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +26 -0
  1355. package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +30 -0
  1356. package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +30 -0
  1357. package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +26 -0
  1358. package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +28 -0
  1359. package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +30 -0
  1360. package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +26 -0
  1361. package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +28 -0
  1362. package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +28 -0
  1363. package/lib/types/solana/generated/gar/index.d.ts +10 -0
  1364. package/lib/types/solana/generated/gar/instructions/adminRepairSettings.d.ts +55 -0
  1365. package/lib/types/solana/generated/gar/instructions/allowDelegate.d.ts +51 -0
  1366. package/lib/types/solana/generated/gar/instructions/cancelWithdrawal.d.ts +63 -0
  1367. package/lib/types/solana/generated/gar/instructions/claimDelegateFromLeavingGateway.d.ts +93 -0
  1368. package/lib/types/solana/generated/gar/instructions/claimWithdrawal.d.ts +54 -0
  1369. package/lib/types/solana/generated/gar/instructions/closeDrainedWithdrawal.d.ts +53 -0
  1370. package/lib/types/solana/generated/gar/instructions/closeEmptyDelegation.d.ts +51 -0
  1371. package/lib/types/solana/generated/gar/instructions/closeEpoch.d.ts +50 -0
  1372. package/lib/types/solana/generated/gar/instructions/closeObservation.d.ts +50 -0
  1373. package/lib/types/solana/generated/gar/instructions/compoundDelegationRewards.d.ts +37 -0
  1374. package/lib/types/solana/generated/gar/instructions/createEpoch.d.ts +63 -0
  1375. package/lib/types/solana/generated/gar/instructions/createGatewayRegistry.d.ts +48 -0
  1376. package/lib/types/solana/generated/gar/instructions/decreaseDelegateStake.d.ts +62 -0
  1377. package/lib/types/solana/generated/gar/instructions/decreaseOperatorStake.d.ts +59 -0
  1378. package/lib/types/solana/generated/gar/instructions/deductDelegationForPayment.d.ts +65 -0
  1379. package/lib/types/solana/generated/gar/instructions/deductOperatorStakeForPayment.d.ts +62 -0
  1380. package/lib/types/solana/generated/gar/instructions/deductWithdrawalForPayment.d.ts +62 -0
  1381. package/lib/types/solana/generated/gar/instructions/delegateStake.d.ts +65 -0
  1382. package/lib/types/solana/generated/gar/instructions/disallowDelegate.d.ts +48 -0
  1383. package/lib/types/solana/generated/gar/instructions/distributeEpoch.d.ts +74 -0
  1384. package/lib/types/solana/generated/gar/instructions/finalizeGone.d.ts +72 -0
  1385. package/lib/types/solana/generated/gar/instructions/finalizeMigration.d.ts +42 -0
  1386. package/lib/types/solana/generated/gar/instructions/importAccount.d.ts +60 -0
  1387. package/lib/types/solana/generated/gar/instructions/importRegistryEntry.d.ts +58 -0
  1388. package/lib/types/solana/generated/gar/instructions/increaseOperatorStake.d.ts +59 -0
  1389. package/lib/types/solana/generated/gar/instructions/index.d.ts +50 -0
  1390. package/lib/types/solana/generated/gar/instructions/initialize.d.ts +102 -0
  1391. package/lib/types/solana/generated/gar/instructions/initializeEpochs.d.ts +91 -0
  1392. package/lib/types/solana/generated/gar/instructions/instantWithdrawal.d.ts +57 -0
  1393. package/lib/types/solana/generated/gar/instructions/joinNetwork.d.ts +123 -0
  1394. package/lib/types/solana/generated/gar/instructions/leaveNetwork.d.ts +135 -0
  1395. package/lib/types/solana/generated/gar/instructions/migrateSettingsSetArnsProgramId.d.ts +71 -0
  1396. package/lib/types/solana/generated/gar/instructions/migrateSettingsSupplyCounters.d.ts +55 -0
  1397. package/lib/types/solana/generated/gar/instructions/payFromFundingPlan.d.ts +116 -0
  1398. package/lib/types/solana/generated/gar/instructions/prescribeEpoch.d.ts +68 -0
  1399. package/lib/types/solana/generated/gar/instructions/pruneGateway.d.ts +120 -0
  1400. package/lib/types/solana/generated/gar/instructions/redelegateStake.d.ts +116 -0
  1401. package/lib/types/solana/generated/gar/instructions/releaseTreasuryAuthority.d.ts +74 -0
  1402. package/lib/types/solana/generated/gar/instructions/saveObservations.d.ts +65 -0
  1403. package/lib/types/solana/generated/gar/instructions/setAllowlistEnabled.d.ts +50 -0
  1404. package/lib/types/solana/generated/gar/instructions/setEpochsEnabled.d.ts +47 -0
  1405. package/lib/types/solana/generated/gar/instructions/tallyWeights.d.ts +56 -0
  1406. package/lib/types/solana/generated/gar/instructions/updateGatewaySettings.d.ts +83 -0
  1407. package/lib/types/solana/generated/gar/instructions/updateObserverAddress.d.ts +56 -0
  1408. package/lib/types/solana/generated/gar/pdas/allowlistEntry.d.ts +15 -0
  1409. package/lib/types/solana/generated/gar/pdas/decreaseOperatorStakeWithdrawalCounter.d.ts +14 -0
  1410. package/lib/types/solana/generated/gar/pdas/epoch.d.ts +14 -0
  1411. package/lib/types/solana/generated/gar/pdas/epochSettings.d.ts +11 -0
  1412. package/lib/types/solana/generated/gar/pdas/gateway.d.ts +14 -0
  1413. package/lib/types/solana/generated/gar/pdas/index.d.ts +19 -0
  1414. package/lib/types/solana/generated/gar/pdas/newObserverLookup.d.ts +14 -0
  1415. package/lib/types/solana/generated/gar/pdas/observation.d.ts +15 -0
  1416. package/lib/types/solana/generated/gar/pdas/payFromFundingPlanWithdrawalCounter.d.ts +14 -0
  1417. package/lib/types/solana/generated/gar/pdas/redelegationRecord.d.ts +14 -0
  1418. package/lib/types/solana/generated/gar/pdas/registry.d.ts +11 -0
  1419. package/lib/types/solana/generated/gar/pdas/settings.d.ts +11 -0
  1420. package/lib/types/solana/generated/gar/pdas/withdrawalCounter.d.ts +14 -0
  1421. package/lib/types/solana/generated/gar/program-address.d.ts +7 -0
  1422. package/lib/types/solana/generated/gar/types/fundingSourceKind.d.ts +26 -0
  1423. package/lib/types/solana/generated/gar/types/fundingSourceSpec.d.ts +21 -0
  1424. package/lib/types/solana/generated/gar/types/gatewaySettings2.d.ts +32 -0
  1425. package/lib/types/solana/generated/gar/types/gatewaySlot.d.ts +37 -0
  1426. package/lib/types/solana/generated/gar/types/gatewayStats.d.ts +22 -0
  1427. package/lib/types/solana/generated/gar/types/gatewayStatus.d.ts +17 -0
  1428. package/lib/types/solana/generated/gar/types/gatewayWeights.d.ts +48 -0
  1429. package/lib/types/solana/generated/gar/types/index.d.ts +16 -0
  1430. package/lib/types/solana/generated/gar/types/protocol.d.ts +16 -0
  1431. package/lib/types/solana/generated/gar/types/registryIndex.d.ts +25 -0
  1432. package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +37 -0
  1433. package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +37 -0
  1434. package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +30 -0
  1435. package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +12 -0
  1436. package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +30 -0
  1437. package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +31 -0
  1438. package/lib/types/solana/generated/mpl-core/errors/index.d.ts +8 -0
  1439. package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +133 -0
  1440. package/lib/types/solana/generated/mpl-core/index.d.ts +8 -0
  1441. package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +56 -0
  1442. package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +59 -0
  1443. package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +60 -0
  1444. package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +63 -0
  1445. package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +59 -0
  1446. package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +63 -0
  1447. package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +52 -0
  1448. package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +60 -0
  1449. package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +39 -0
  1450. package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +55 -0
  1451. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +58 -0
  1452. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +61 -0
  1453. package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +77 -0
  1454. package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +80 -0
  1455. package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +60 -0
  1456. package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +63 -0
  1457. package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +40 -0
  1458. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +56 -0
  1459. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +56 -0
  1460. package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +60 -0
  1461. package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +60 -0
  1462. package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +56 -0
  1463. package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +60 -0
  1464. package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +64 -0
  1465. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +59 -0
  1466. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +47 -0
  1467. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +56 -0
  1468. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +62 -0
  1469. package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +63 -0
  1470. package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +60 -0
  1471. package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +66 -0
  1472. package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +70 -0
  1473. package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +63 -0
  1474. package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +67 -0
  1475. package/lib/types/solana/generated/mpl-core/program-address.d.ts +7 -0
  1476. package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +13 -0
  1477. package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +13 -0
  1478. package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +13 -0
  1479. package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +15 -0
  1480. package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +15 -0
  1481. package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +22 -0
  1482. package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +20 -0
  1483. package/lib/types/solana/generated/mpl-core/types/appData.d.ts +20 -0
  1484. package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +22 -0
  1485. package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +18 -0
  1486. package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +16 -0
  1487. package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +18 -0
  1488. package/lib/types/solana/generated/mpl-core/types/authority.d.ts +29 -0
  1489. package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +18 -0
  1490. package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +16 -0
  1491. package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +13 -0
  1492. package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +13 -0
  1493. package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +13 -0
  1494. package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +28 -0
  1495. package/lib/types/solana/generated/mpl-core/types/creator.d.ts +16 -0
  1496. package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +20 -0
  1497. package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +20 -0
  1498. package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +13 -0
  1499. package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +16 -0
  1500. package/lib/types/solana/generated/mpl-core/types/edition.d.ts +15 -0
  1501. package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +15 -0
  1502. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +66 -0
  1503. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +66 -0
  1504. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +64 -0
  1505. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +17 -0
  1506. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +21 -0
  1507. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +59 -0
  1508. package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +28 -0
  1509. package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +17 -0
  1510. package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +86 -0
  1511. package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +15 -0
  1512. package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +15 -0
  1513. package/lib/types/solana/generated/mpl-core/types/groups.d.ts +15 -0
  1514. package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +22 -0
  1515. package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +16 -0
  1516. package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +19 -0
  1517. package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +13 -0
  1518. package/lib/types/solana/generated/mpl-core/types/index.d.ts +89 -0
  1519. package/lib/types/solana/generated/mpl-core/types/key.d.ts +21 -0
  1520. package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +24 -0
  1521. package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +28 -0
  1522. package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +22 -0
  1523. package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +20 -0
  1524. package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +22 -0
  1525. package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +18 -0
  1526. package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +31 -0
  1527. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +24 -0
  1528. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +28 -0
  1529. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +22 -0
  1530. package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +21 -0
  1531. package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +22 -0
  1532. package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +26 -0
  1533. package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +22 -0
  1534. package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +35 -0
  1535. package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +13 -0
  1536. package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +15 -0
  1537. package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +15 -0
  1538. package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +13 -0
  1539. package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +150 -0
  1540. package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +20 -0
  1541. package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +33 -0
  1542. package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +22 -0
  1543. package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +18 -0
  1544. package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +15 -0
  1545. package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +15 -0
  1546. package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +15 -0
  1547. package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +22 -0
  1548. package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +27 -0
  1549. package/lib/types/solana/generated/mpl-core/types/seed.d.ts +36 -0
  1550. package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +13 -0
  1551. package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +27 -0
  1552. package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +15 -0
  1553. package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +19 -0
  1554. package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +17 -0
  1555. package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +18 -0
  1556. package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +33 -0
  1557. package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +18 -0
  1558. package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +16 -0
  1559. package/lib/types/solana/index.d.ts +63 -0
  1560. package/lib/types/solana/instruction.d.ts +24 -0
  1561. package/lib/types/solana/io-readable.d.ts +224 -0
  1562. package/lib/types/solana/io-writeable.d.ts +430 -0
  1563. package/lib/types/solana/json-rpc.d.ts +32 -0
  1564. package/lib/types/solana/metadata.d.ts +69 -0
  1565. package/lib/types/solana/mpl-core.d.ts +76 -0
  1566. package/lib/types/solana/pda.d.ts +95 -0
  1567. package/lib/types/solana/send.d.ts +45 -0
  1568. package/lib/types/solana/spawn-ant.d.ts +130 -0
  1569. package/lib/types/solana/types.d.ts +67 -0
  1570. package/lib/types/types/ant-registry.d.ts +39 -0
  1571. package/lib/types/types/ant.d.ts +22 -4
  1572. package/lib/types/types/io.d.ts +56 -1
  1573. package/lib/types/version.d.ts +1 -1
  1574. package/package.json +22 -4
@@ -0,0 +1,1956 @@
1
+ /**
2
+ * Solana implementation of AoARIOWrite interface.
3
+ *
4
+ * Extends SolanaARIOReadable with write operations that build and send
5
+ * Solana transactions via Codama-generated instruction builders.
6
+ *
7
+ * All instruction encoding (discriminators, account ordering, Borsh codecs,
8
+ * default value resolution for token/system programs) is delegated to the
9
+ * generated builders in `./generated/{core,gar,arns}/instructions/`. The
10
+ * builders are derived from the on-chain IDL and stay in sync via codegen.
11
+ *
12
+ * This file's job is just to:
13
+ * 1. Translate the AO-style SDK params into the builder's input shape.
14
+ * 2. Pre-derive the PDAs that the *Async builders can't infer (the ones
15
+ * whose seeds depend on runtime state — e.g. the next withdrawal id
16
+ * from the on-chain counter, or the buyer's ATA from a runtime mint).
17
+ * 3. Append remaining_accounts (gateway PDAs, name registry) for the
18
+ * epoch crank instructions, since Codama doesn't generate a typed
19
+ * surface for them.
20
+ */
21
+ import { AccountRole, address, fetchEncodedAccount, getAddressDecoder, } from '@solana/kit';
22
+ import { buildCreateAtaIdempotentIx, getAssociatedTokenAddressKit, } from './ata.js';
23
+ import { deserializeArnsRecord, deserializeEpochSettingsFull, } from './deserialize.js';
24
+ import { buildFundingPlan as buildFundingPlanCore, buildFundingPlanRemainingAccounts, computeResidueIndexes, predictResidueVaults, } from './funding-plan.js';
25
+ import { getBuyNameFromDelegationInstructionAsync, getBuyNameFromFundingPlanInstructionAsync, getBuyNameFromOperatorStakeInstructionAsync, getBuyNameFromWithdrawalInstructionAsync, getBuyNameInstructionAsync, getBuyReturnedNameFromDelegationInstructionAsync, getBuyReturnedNameFromFundingPlanInstructionAsync, getBuyReturnedNameFromOperatorStakeInstructionAsync, getBuyReturnedNameFromWithdrawalInstructionAsync, getBuyReturnedNameInstructionAsync, getExtendLeaseFromDelegationInstructionAsync, getExtendLeaseFromFundingPlanInstructionAsync, getExtendLeaseFromOperatorStakeInstructionAsync, getExtendLeaseFromWithdrawalInstructionAsync, getExtendLeaseInstructionAsync, getIncreaseUndernameLimitFromDelegationInstructionAsync, getIncreaseUndernameLimitFromFundingPlanInstructionAsync, getIncreaseUndernameLimitFromOperatorStakeInstructionAsync, getIncreaseUndernameLimitFromWithdrawalInstructionAsync, getIncreaseUndernameLimitInstructionAsync, getReassignNameInstructionAsync, getReleaseNameInstructionAsync, getUpgradeNameFromDelegationInstructionAsync, getUpgradeNameFromFundingPlanInstructionAsync, getUpgradeNameFromOperatorStakeInstructionAsync, getUpgradeNameFromWithdrawalInstructionAsync, getUpgradeNameInstructionAsync, } from './generated/arns/instructions/index.js';
26
+ import { PurchaseType } from './generated/arns/types/index.js';
27
+ import { FundingSourceKind as GeneratedFundingSourceKindEnum } from './generated/gar/types/index.js';
28
+ /** Maps the SDK's user-facing FundingSourceKind string union to the
29
+ * Codama-generated enum used by the on-chain ix payload. */
30
+ function toGeneratedFundingSourceSpec(s) {
31
+ const kindMap = {
32
+ balance: GeneratedFundingSourceKindEnum.Balance,
33
+ delegation: GeneratedFundingSourceKindEnum.Delegation,
34
+ operatorStake: GeneratedFundingSourceKindEnum.OperatorStake,
35
+ withdrawal: GeneratedFundingSourceKindEnum.Withdrawal,
36
+ };
37
+ return { kind: kindMap[s.kind], amount: s.amount };
38
+ }
39
+ import { getSyncAttributesInstruction } from './generated/ant/instructions/syncAttributes.js';
40
+ import { getApprovePrimaryNameInstructionAsync, getCloseExpiredRequestInstruction, getCreateVaultInstructionAsync, getExtendVaultInstructionAsync, getIncreaseVaultInstructionAsync, getReleaseVaultInstructionAsync, getRequestAndSetPrimaryNameFromFundingPlanInstructionAsync, getRequestPrimaryNameFromFundingPlanInstructionAsync, getRequestPrimaryNameInstructionAsync, getRevokeVaultInstructionAsync, getTransferInstruction, getVaultedTransferInstructionAsync, } from './generated/core/instructions/index.js';
41
+ import { getDelegationDecoder } from './generated/gar/accounts/delegation.js';
42
+ import { getGatewayDecoder } from './generated/gar/accounts/gateway.js';
43
+ import { getAllowDelegateInstructionAsync, getCancelWithdrawalInstruction, getClaimDelegateFromLeavingGatewayInstructionAsync, getClaimWithdrawalInstructionAsync, getCloseEpochInstructionAsync, getCreateEpochInstructionAsync, getDecreaseDelegateStakeInstructionAsync, getDecreaseOperatorStakeInstructionAsync, getDelegateStakeInstructionAsync, getDisallowDelegateInstructionAsync, getDistributeEpochInstructionAsync, getIncreaseOperatorStakeInstructionAsync, getInstantWithdrawalInstructionAsync, getJoinNetworkInstructionAsync, getLeaveNetworkInstructionAsync, getPrescribeEpochInstructionAsync, getRedelegateStakeInstructionAsync, getSaveObservationsInstructionAsync, getSetAllowlistEnabledInstructionAsync, getTallyWeightsInstructionAsync, getUpdateGatewaySettingsInstructionAsync, } from './generated/gar/instructions/index.js';
44
+ import { Protocol } from './generated/gar/types/index.js';
45
+ import { SolanaARIOReadable } from './io-readable.js';
46
+ import { getAntRecordPDA, getArioConfigPDA, getArnsRecordPDA, getArnsRegistryPDA, getArnsSettingsPDA, getDelegationPDA, getDemandFactorPDA, getEpochPDA, getEpochSettingsPDA, getGarSettingsPDA, getGatewayPDA, getGatewayRegistryPDA, getObserverLookupPDA, getPrimaryNamePDA, getPrimaryNameRequestPDA, getPrimaryNameReversePDA, getReservedNamePDA, getReturnedNamePDA, getVaultPDA, getWithdrawalCounterPDA, getWithdrawalPDA, hashName, } from './pda.js';
47
+ import { sendAndConfirm } from './send.js';
48
+ const addressDecoder = getAddressDecoder();
49
+ /** Resolve mARIOToken | number to a plain number */
50
+ function toAmount(qty) {
51
+ if (typeof qty === 'number')
52
+ return qty;
53
+ return qty.valueOf();
54
+ }
55
+ /**
56
+ * Append additional `AccountMeta`s to a Codama-generated instruction.
57
+ *
58
+ * The generated `getXInstruction[Async]` builders return frozen objects with
59
+ * a typed, fixed `accounts` tuple. The Solana program accepts extra
60
+ * `remaining_accounts` for epoch crank ops (gateway PDAs, name registry) and
61
+ * for primary-name authorization (arnsRecord, demandFactor, antRecord — see
62
+ * `_buildPrimaryNameValidationAccounts`), but
63
+ * Codama has no typed surface for them — so we splice them in here.
64
+ */
65
+ function withRemainingAccounts(ix, remaining) {
66
+ const accounts = [
67
+ ...(ix.accounts ?? []),
68
+ ...remaining,
69
+ ];
70
+ return { ...ix, accounts };
71
+ }
72
+ /**
73
+ * Split a primary name into its undername + base parts using the same rule
74
+ * as the on-chain `splitn(2, '_')` in `programs/ario-core/src/instructions/primary_name.rs`:
75
+ * everything before the first '_' is the undername, the rest is the base.
76
+ *
77
+ * Exposed as a top-level helper so it can be unit-tested without spinning up
78
+ * an `SolanaARIOWriteable`. Lowercases the input to match contract behavior.
79
+ */
80
+ export function splitPrimaryName(name) {
81
+ const lower = name.toLowerCase();
82
+ const ix = lower.indexOf('_');
83
+ if (ix === -1) {
84
+ return { isUndername: false, baseName: lower, undername: null };
85
+ }
86
+ return {
87
+ isUndername: true,
88
+ baseName: lower.slice(ix + 1),
89
+ undername: lower.slice(0, ix),
90
+ };
91
+ }
92
+ /**
93
+ * Solana-backed read-write client for the AR.IO protocol.
94
+ *
95
+ * Usage:
96
+ * ```ts
97
+ * import {
98
+ * createSolanaRpc,
99
+ * createSolanaRpcSubscriptions,
100
+ * generateKeyPairSigner,
101
+ * } from '@solana/kit';
102
+ * import { SolanaARIOWriteable } from '@ar.io/sdk/solana';
103
+ *
104
+ * const rpc = createSolanaRpc('https://api.mainnet-beta.solana.com');
105
+ * const rpcSubscriptions = createSolanaRpcSubscriptions('wss://api.mainnet-beta.solana.com');
106
+ * const signer = await generateKeyPairSigner();
107
+ * const ario = new SolanaARIOWriteable({ rpc, rpcSubscriptions, signer });
108
+ *
109
+ * await ario.transfer({ target: 'RecipientPubkey...', qty: 100_000_000 });
110
+ * ```
111
+ */
112
+ export class SolanaARIOWriteable extends SolanaARIOReadable {
113
+ signer;
114
+ rpcSubscriptions;
115
+ constructor(config) {
116
+ super(config);
117
+ this.signer = config.signer;
118
+ this.rpcSubscriptions = config.rpcSubscriptions;
119
+ }
120
+ /** The signer's on-chain address. */
121
+ get signerAddress() {
122
+ return this.signer.address;
123
+ }
124
+ async sendTransaction(instructions, computeUnitLimit = 400_000) {
125
+ return sendAndConfirm({
126
+ rpc: this.rpc,
127
+ rpcSubscriptions: this.rpcSubscriptions,
128
+ signer: this.signer,
129
+ instructions,
130
+ commitment: this.commitment,
131
+ computeUnitLimit,
132
+ });
133
+ }
134
+ /** Helper to get the ARIO mint and treasury from ArioConfig */
135
+ async getCoreConfig() {
136
+ const [configPda] = await getArioConfigPDA(this.coreProgram);
137
+ const account = await fetchEncodedAccount(this.rpc, configPda, {
138
+ commitment: this.commitment,
139
+ });
140
+ if (!account.exists)
141
+ throw new Error('ArioConfig not found');
142
+ const data = Buffer.from(account.data);
143
+ // ArioConfig: [8 disc][32 authority][32 mint][32 arns_program][32 treasury]
144
+ const mint = addressDecoder.decode(data.subarray(40, 72));
145
+ const treasury = addressDecoder.decode(data.subarray(104, 136));
146
+ return { mint, treasury };
147
+ }
148
+ async getMint() {
149
+ return (await this.getCoreConfig()).mint;
150
+ }
151
+ /** Helper to get ArNS config fields (mint and treasury) */
152
+ async getArnsConfig() {
153
+ const [settingsPda] = await getArnsSettingsPDA(this.arnsProgram);
154
+ const account = await fetchEncodedAccount(this.rpc, settingsPda, {
155
+ commitment: this.commitment,
156
+ });
157
+ if (!account.exists)
158
+ throw new Error('ArnsConfig not found');
159
+ const data = Buffer.from(account.data);
160
+ // ArnsConfig layout: [8 disc][32 authority][32 mint][32 treasury]...
161
+ const mint = addressDecoder.decode(data.subarray(40, 72));
162
+ const treasury = addressDecoder.decode(data.subarray(72, 104));
163
+ return { mint, treasury };
164
+ }
165
+ /** Helper to get GAR config fields (mint, stake pool, protocol pool) */
166
+ async getGarConfig() {
167
+ const [settingsPda] = await getGarSettingsPDA(this.garProgram);
168
+ const account = await fetchEncodedAccount(this.rpc, settingsPda, {
169
+ commitment: this.commitment,
170
+ });
171
+ if (!account.exists)
172
+ throw new Error('GarSettings not found');
173
+ const data = Buffer.from(account.data);
174
+ // GarSettings: [8 disc][32 authority][32 mint][8+8+8+8+8+8=48 u64s][4 u32][1 bool]
175
+ // [32 migration_authority][32 stake_token_account][32 protocol_token_account][1 bump]
176
+ const mint = addressDecoder.decode(data.subarray(40, 72));
177
+ const stakeTokenAccount = addressDecoder.decode(data.subarray(157, 189));
178
+ const protocolTokenAccount = addressDecoder.decode(data.subarray(189, 221));
179
+ return { mint, stakeTokenAccount, protocolTokenAccount };
180
+ }
181
+ // =========================================
182
+ // Codama default-PDA injection helpers
183
+ // =========================================
184
+ //
185
+ // Codama's auto-generated `getXInstructionAsync` builders fall back to
186
+ // calling `find<Account>Pda()` (no args) when a "defaultable" account is
187
+ // omitted from the input. Those `find*Pda` helpers default to the
188
+ // **placeholder** program addresses baked into the generated client
189
+ // (`ARioArnsProgXXX...`, `ArioCoreProgXXX...`, etc.), *not* the env- or
190
+ // constructor-overridden program ID we actually deploy at. The result is a
191
+ // PDA derived against the wrong program id, which on-chain shows up as
192
+ // Anchor `AccountNotInitialized` (#3012) for `config` / `demand_factor` /
193
+ // `name_registry` / `settings` / etc.
194
+ //
195
+ // The wrappers below pre-derive each program's defaultable PDAs against
196
+ // the **real** program id and merge them into the input so codama never
197
+ // touches its placeholder defaults. Caller-provided values still win
198
+ // because spread order is `(...defaults, ...input)`.
199
+ /**
200
+ * Inject ARNS default PDAs (config, demandFactor, nameRegistry).
201
+ *
202
+ * Extra fields not consumed by a given builder are harmlessly ignored
203
+ * (codama only reads the named keys from `input`).
204
+ */
205
+ async withArnsDefaults(input) {
206
+ const [config] = await getArnsSettingsPDA(this.arnsProgram);
207
+ const [demandFactor] = await getDemandFactorPDA(this.arnsProgram);
208
+ const [nameRegistry] = await getArnsRegistryPDA(this.arnsProgram);
209
+ return { config, demandFactor, nameRegistry, ...input };
210
+ }
211
+ /** Inject ARIO core default PDAs (config). */
212
+ async withCoreDefaults(input) {
213
+ const [config] = await getArioConfigPDA(this.coreProgram);
214
+ return { config, ...input };
215
+ }
216
+ /** Inject GAR default PDAs (settings, epochSettings, registry). */
217
+ async withGarDefaults(input) {
218
+ const [settings] = await getGarSettingsPDA(this.garProgram);
219
+ const [epochSettings] = await getEpochSettingsPDA(this.garProgram);
220
+ const [registry] = await getGatewayRegistryPDA(this.garProgram);
221
+ return { settings, epochSettings, registry, ...input };
222
+ }
223
+ /** Read WithdrawalCounter's next_id (returns 0n if not yet created) */
224
+ async getNextWithdrawalId(owner) {
225
+ const [counterPda] = await getWithdrawalCounterPDA(owner, this.garProgram);
226
+ const account = await fetchEncodedAccount(this.rpc, counterPda, {
227
+ commitment: this.commitment,
228
+ });
229
+ if (!account.exists)
230
+ return 0n;
231
+ // WithdrawalCounter: [8 disc][32 owner][8 next_id]
232
+ return Buffer.from(account.data).readBigUInt64LE(40);
233
+ }
234
+ // =========================================
235
+ // Token operations (ario-core)
236
+ // =========================================
237
+ async transfer(params, _options) {
238
+ const amount = toAmount(params.qty);
239
+ const recipient = address(params.target);
240
+ const mint = await this.getMint();
241
+ const fromATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
242
+ const toATA = await getAssociatedTokenAddressKit(mint, recipient);
243
+ const ix = getTransferInstruction({
244
+ fromTokenAccount: fromATA,
245
+ toTokenAccount: toATA,
246
+ authority: this.signer,
247
+ amount,
248
+ }, { programAddress: this.coreProgram });
249
+ const sig = await this.sendTransaction([ix]);
250
+ return { id: sig };
251
+ }
252
+ async vaultedTransfer(params, _options) {
253
+ const amount = toAmount(params.quantity);
254
+ const lockSeconds = Math.floor(params.lockLengthMs / 1000);
255
+ const recipient = address(params.recipient);
256
+ const mint = await this.getMint();
257
+ // Vault PDA depends on the recipient's *current* vault counter id, which
258
+ // the codegen builder can't infer — derive it manually.
259
+ const nextId = await this.getNextVaultId(recipient);
260
+ const [vaultPda] = await getVaultPDA(recipient, nextId, this.coreProgram);
261
+ const senderATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
262
+ const vaultATA = await getAssociatedTokenAddressKit(mint, vaultPda, true);
263
+ const ix = await getVaultedTransferInstructionAsync(await this.withCoreDefaults({
264
+ vault: vaultPda,
265
+ senderTokenAccount: senderATA,
266
+ vaultTokenAccount: vaultATA,
267
+ recipient,
268
+ sender: this.signer,
269
+ amount,
270
+ lockDurationSeconds: lockSeconds,
271
+ revocable: params.revokable ?? false,
272
+ }), { programAddress: this.coreProgram });
273
+ // The on-chain CreateVault / VaultedTransfer constraint is
274
+ // `Account<TokenAccount>` (NOT `init`) — Anchor expects the vault ATA to
275
+ // already exist. Bundle an idempotent CreateAssociatedTokenAccount in
276
+ // the same tx so the caller doesn't need a separate setup step.
277
+ const createVaultAtaIx = buildCreateAtaIdempotentIx(this.signer.address, vaultATA, vaultPda, mint);
278
+ const sig = await this.sendTransaction([createVaultAtaIx, ix]);
279
+ return { id: sig };
280
+ }
281
+ async createVault(params, _options) {
282
+ const amount = toAmount(params.quantity);
283
+ const lockSeconds = Math.floor(params.lockLengthMs / 1000);
284
+ const mint = await this.getMint();
285
+ const nextId = await this.getNextVaultId(this.signer.address);
286
+ const [vaultPda] = await getVaultPDA(this.signer.address, nextId, this.coreProgram);
287
+ const ownerATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
288
+ const vaultATA = await getAssociatedTokenAddressKit(mint, vaultPda, true);
289
+ const ix = await getCreateVaultInstructionAsync(await this.withCoreDefaults({
290
+ vault: vaultPda,
291
+ ownerTokenAccount: ownerATA,
292
+ vaultTokenAccount: vaultATA,
293
+ owner: this.signer,
294
+ amount,
295
+ lockDurationSeconds: lockSeconds,
296
+ }), { programAddress: this.coreProgram });
297
+ // See note in vaultedTransfer above — vault ATA is not init'd by the
298
+ // on-chain handler; bundle the create.
299
+ const createVaultAtaIx = buildCreateAtaIdempotentIx(this.signer.address, vaultATA, vaultPda, mint);
300
+ const sig = await this.sendTransaction([createVaultAtaIx, ix]);
301
+ return { id: sig };
302
+ }
303
+ /** Read VaultCounter's next_id (returns 0n if not yet created). */
304
+ async getNextVaultId(owner) {
305
+ // VaultCounter PDA derivation lives in pda.ts as getVaultCounterPDA.
306
+ const { getVaultCounterPDA } = await import('./pda.js');
307
+ const [counterPda] = await getVaultCounterPDA(owner, this.coreProgram);
308
+ const account = await fetchEncodedAccount(this.rpc, counterPda, {
309
+ commitment: this.commitment,
310
+ });
311
+ if (!account.exists)
312
+ return 0n;
313
+ return Buffer.from(account.data).readBigUInt64LE(40);
314
+ }
315
+ async extendVault(params, _options) {
316
+ const additionalSeconds = Math.floor(params.extendLengthMs / 1000);
317
+ const [vaultPda] = await getVaultPDA(this.signer.address, BigInt(params.vaultId), this.coreProgram);
318
+ const ix = await getExtendVaultInstructionAsync(await this.withCoreDefaults({
319
+ vault: vaultPda,
320
+ owner: this.signer,
321
+ additionalSeconds,
322
+ }), { programAddress: this.coreProgram });
323
+ const sig = await this.sendTransaction([ix]);
324
+ return { id: sig };
325
+ }
326
+ async increaseVault(params, _options) {
327
+ const amount = toAmount(params.quantity);
328
+ const mint = await this.getMint();
329
+ const [vaultPda] = await getVaultPDA(this.signer.address, BigInt(params.vaultId), this.coreProgram);
330
+ const ownerATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
331
+ const vaultATA = await getAssociatedTokenAddressKit(mint, vaultPda, true);
332
+ const ix = await getIncreaseVaultInstructionAsync(await this.withCoreDefaults({
333
+ vault: vaultPda,
334
+ ownerTokenAccount: ownerATA,
335
+ vaultTokenAccount: vaultATA,
336
+ owner: this.signer,
337
+ amount,
338
+ }), { programAddress: this.coreProgram });
339
+ const sig = await this.sendTransaction([ix]);
340
+ return { id: sig };
341
+ }
342
+ async revokeVault(params, _options) {
343
+ const recipient = address(params.recipient);
344
+ const mint = await this.getMint();
345
+ const [vaultPda] = await getVaultPDA(recipient, BigInt(params.vaultId), this.coreProgram);
346
+ const vaultATA = await getAssociatedTokenAddressKit(mint, vaultPda, true);
347
+ const controllerATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
348
+ const ix = await getRevokeVaultInstructionAsync(await this.withCoreDefaults({
349
+ vault: vaultPda,
350
+ vaultTokenAccount: vaultATA,
351
+ controllerTokenAccount: controllerATA,
352
+ controller: this.signer,
353
+ }), { programAddress: this.coreProgram });
354
+ const sig = await this.sendTransaction([ix]);
355
+ return { id: sig };
356
+ }
357
+ // =========================================
358
+ // Gateway operations (ario-gar)
359
+ // =========================================
360
+ async joinNetwork(params, _options) {
361
+ const garConfig = await this.getGarConfig();
362
+ const operatorATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
363
+ const observerAddress = params.observerAddress
364
+ ? address(params.observerAddress)
365
+ : this.signer.address;
366
+ const [observerLookupPda] = await getObserverLookupPDA(observerAddress, this.garProgram);
367
+ const ix = await getJoinNetworkInstructionAsync(await this.withGarDefaults({
368
+ operatorTokenAccount: operatorATA,
369
+ stakeTokenAccount: garConfig.stakeTokenAccount,
370
+ observerLookup: observerLookupPda,
371
+ operator: this.signer,
372
+ operatorStake: BigInt(params.operatorStake),
373
+ label: params.label ?? '',
374
+ fqdn: params.fqdn ?? '',
375
+ port: params.port ?? 443,
376
+ protocol: Protocol.Https,
377
+ properties: params.properties ?? null,
378
+ note: params.note ?? null,
379
+ autoStake: params.autoStake ?? false,
380
+ allowDelegatedStaking: params.allowDelegatedStaking === true ||
381
+ params.allowDelegatedStaking === 'allowlist',
382
+ delegateRewardShareRatio: params.delegateRewardShareRatio ?? 0,
383
+ minDelegateStake: params.minDelegatedStake !== undefined
384
+ ? BigInt(params.minDelegatedStake)
385
+ : null,
386
+ observerAddress,
387
+ }), { programAddress: this.garProgram });
388
+ const sig = await this.sendTransaction([ix], 1_000_000);
389
+ return { id: sig };
390
+ }
391
+ async leaveNetwork(_options) {
392
+ // BD-102: leave_network may produce 1 or 2 Withdrawal PDAs. The
393
+ // protected exit vault uses `next_id`; the optional excess vault
394
+ // uses `next_id + 1`. The SDK always derives both PDAs and passes
395
+ // them to the codama-emitted builder — the contract's
396
+ // `Option<UncheckedAccount>` excess slot is consumed only when the
397
+ // post-stake excess is positive. Passing it unconditionally keeps
398
+ // the SDK side stateless (no need to fetch gateway.operator_stake +
399
+ // settings.min_operator_stake to decide).
400
+ const nextId = await this.getNextWithdrawalId(this.signer.address);
401
+ const [exitVaultPda] = await getWithdrawalPDA(this.signer.address, nextId, this.garProgram);
402
+ const [excessVaultPda] = await getWithdrawalPDA(this.signer.address, nextId + 1n, this.garProgram);
403
+ const ix = await getLeaveNetworkInstructionAsync(await this.withGarDefaults({
404
+ withdrawal: exitVaultPda,
405
+ excessWithdrawal: excessVaultPda,
406
+ operator: this.signer,
407
+ }), { programAddress: this.garProgram });
408
+ const sig = await this.sendTransaction([ix], 1_000_000);
409
+ return { id: sig };
410
+ }
411
+ async updateGatewaySettings(params, _options) {
412
+ const ix = await getUpdateGatewaySettingsInstructionAsync(await this.withGarDefaults({
413
+ operator: this.signer,
414
+ label: params.label ?? null,
415
+ fqdn: params.fqdn ?? null,
416
+ port: params.port ?? null,
417
+ // Codama exposes `protocol` as Option<Protocol>. We only ever updated
418
+ // the URL parts above, so leave protocol untouched (None).
419
+ protocol: null,
420
+ properties: params.properties ?? null,
421
+ note: params.note ?? null,
422
+ autoStake: params.autoStake ?? null,
423
+ allowDelegatedStaking: typeof params.allowDelegatedStaking === 'boolean'
424
+ ? params.allowDelegatedStaking
425
+ : null,
426
+ delegateRewardShareRatio: params.delegateRewardShareRatio ?? null,
427
+ minDelegateStake: params.minDelegatedStake !== undefined
428
+ ? BigInt(params.minDelegatedStake)
429
+ : null,
430
+ }), { programAddress: this.garProgram });
431
+ const sig = await this.sendTransaction([ix], 1_000_000);
432
+ return { id: sig };
433
+ }
434
+ async increaseOperatorStake(params, _options) {
435
+ const amount = toAmount(params.increaseQty);
436
+ const garConfig = await this.getGarConfig();
437
+ const operatorATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
438
+ const ix = await getIncreaseOperatorStakeInstructionAsync(await this.withGarDefaults({
439
+ operatorTokenAccount: operatorATA,
440
+ stakeTokenAccount: garConfig.stakeTokenAccount,
441
+ operator: this.signer,
442
+ amount,
443
+ }), { programAddress: this.garProgram });
444
+ const sig = await this.sendTransaction([ix], 1_000_000);
445
+ return { id: sig };
446
+ }
447
+ async decreaseOperatorStake(params, _options) {
448
+ const amount = toAmount(params.decreaseQty);
449
+ const nextId = await this.getNextWithdrawalId(this.signer.address);
450
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, nextId, this.garProgram);
451
+ const ix = await getDecreaseOperatorStakeInstructionAsync(await this.withGarDefaults({
452
+ withdrawal: withdrawalPda,
453
+ operator: this.signer,
454
+ amount,
455
+ }), { programAddress: this.garProgram });
456
+ const sig = await this.sendTransaction([ix], 1_000_000);
457
+ return { id: sig };
458
+ }
459
+ async delegateStake(params, _options) {
460
+ const amount = toAmount(params.stakeQty);
461
+ const target = address(params.target);
462
+ const garConfig = await this.getGarConfig();
463
+ const [gatewayPda] = await getGatewayPDA(target, this.garProgram);
464
+ const [delegationPda] = await getDelegationPDA(target, this.signer.address, this.garProgram);
465
+ const delegatorATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
466
+ const ix = await getDelegateStakeInstructionAsync(await this.withGarDefaults({
467
+ gateway: gatewayPda,
468
+ delegation: delegationPda,
469
+ delegatorTokenAccount: delegatorATA,
470
+ stakeTokenAccount: garConfig.stakeTokenAccount,
471
+ delegator: this.signer,
472
+ amount,
473
+ }), { programAddress: this.garProgram });
474
+ const sig = await this.sendTransaction([ix], 1_000_000);
475
+ return { id: sig };
476
+ }
477
+ async decreaseDelegateStake(params, _options) {
478
+ const amount = toAmount(params.decreaseQty);
479
+ const target = address(params.target);
480
+ const [gatewayPda] = await getGatewayPDA(target, this.garProgram);
481
+ const [delegationPda] = await getDelegationPDA(target, this.signer.address, this.garProgram);
482
+ const nextId = await this.getNextWithdrawalId(this.signer.address);
483
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, nextId, this.garProgram);
484
+ const ix = await getDecreaseDelegateStakeInstructionAsync(await this.withGarDefaults({
485
+ gateway: gatewayPda,
486
+ delegation: delegationPda,
487
+ withdrawal: withdrawalPda,
488
+ delegator: this.signer,
489
+ amount,
490
+ }), { programAddress: this.garProgram });
491
+ const sig = await this.sendTransaction([ix], 1_000_000);
492
+ return { id: sig };
493
+ }
494
+ async instantWithdrawal(params, _options) {
495
+ const garConfig = await this.getGarConfig();
496
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, BigInt(params.vaultId), this.garProgram);
497
+ const ownerATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
498
+ const ix = await getInstantWithdrawalInstructionAsync(await this.withGarDefaults({
499
+ withdrawal: withdrawalPda,
500
+ stakeTokenAccount: garConfig.stakeTokenAccount,
501
+ ownerTokenAccount: ownerATA,
502
+ protocolTokenAccount: garConfig.protocolTokenAccount,
503
+ owner: this.signer,
504
+ }), { programAddress: this.garProgram });
505
+ const sig = await this.sendTransaction([ix], 1_000_000);
506
+ return { id: sig };
507
+ }
508
+ async cancelWithdrawal(params, _options) {
509
+ const gateway = params.gatewayAddress
510
+ ? address(params.gatewayAddress)
511
+ : this.signer.address;
512
+ const [gatewayPda] = await getGatewayPDA(gateway, this.garProgram);
513
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, BigInt(params.vaultId), this.garProgram);
514
+ const isDelegate = gateway !== this.signer.address;
515
+ const delegation = isDelegate
516
+ ? (await getDelegationPDA(gateway, this.signer.address, this.garProgram))[0]
517
+ : undefined;
518
+ const [settingsPda] = await getGarSettingsPDA(this.garProgram);
519
+ const ix = getCancelWithdrawalInstruction({
520
+ settings: settingsPda,
521
+ gateway: gatewayPda,
522
+ withdrawal: withdrawalPda,
523
+ delegation,
524
+ owner: this.signer,
525
+ }, { programAddress: this.garProgram });
526
+ const sig = await this.sendTransaction([ix], 1_000_000);
527
+ return { id: sig };
528
+ }
529
+ async saveObservations(params, _options) {
530
+ let epochIndex;
531
+ if (params.epochIndex !== undefined) {
532
+ epochIndex = params.epochIndex;
533
+ }
534
+ else {
535
+ const [settingsPda] = await getEpochSettingsPDA(this.garProgram);
536
+ const settingsAccount = await fetchEncodedAccount(this.rpc, settingsPda, {
537
+ commitment: this.commitment,
538
+ });
539
+ if (!settingsAccount.exists)
540
+ throw new Error('EpochSettings not found');
541
+ const settings = deserializeEpochSettingsFull(Buffer.from(settingsAccount.data));
542
+ epochIndex = settings.currentEpochIndex;
543
+ }
544
+ // Build the [u8; 375] gateway_results bitfield. On-chain convention:
545
+ // bit set (1) = passed, bit clear (0) = failed.
546
+ let resultsBuf;
547
+ let gatewayCount;
548
+ if (params.gatewayResults) {
549
+ resultsBuf = Buffer.alloc(375);
550
+ resultsBuf.set(params.gatewayResults.subarray(0, 375));
551
+ gatewayCount = params.gatewayCount ?? 0;
552
+ }
553
+ else {
554
+ const registryAddresses = await this.getRegistryGatewayAddresses();
555
+ gatewayCount = registryAddresses.length;
556
+ resultsBuf = Buffer.alloc(375, 0xff); // start all-passed
557
+ const failedSet = new Set(params.failedGateways);
558
+ for (let i = 0; i < gatewayCount; i++) {
559
+ if (failedSet.has(registryAddresses[i])) {
560
+ resultsBuf[Math.floor(i / 8)] &= ~(1 << (i % 8));
561
+ }
562
+ }
563
+ // Clear bits beyond the active gateway count.
564
+ for (let i = gatewayCount; i < 3000; i++) {
565
+ resultsBuf[Math.floor(i / 8)] &= ~(1 << (i % 8));
566
+ }
567
+ }
568
+ // report_tx_id is a fixed [u8; 32] (Arweave TX ID). The legacy SDK
569
+ // truncates the raw string bytes; mirror that for compatibility.
570
+ const reportTxId = Buffer.alloc(32);
571
+ Buffer.from(params.reportTxId).copy(reportTxId, 0, 0, Math.min(32, params.reportTxId.length));
572
+ const ix = await getSaveObservationsInstructionAsync({
573
+ observer: this.signer,
574
+ epochIndex: BigInt(epochIndex),
575
+ gatewayResults: new Uint8Array(resultsBuf),
576
+ gatewayCount,
577
+ reportTxId: new Uint8Array(reportTxId),
578
+ }, { programAddress: this.garProgram });
579
+ const sig = await this.sendTransaction([ix], 1_000_000);
580
+ return { id: sig };
581
+ }
582
+ async redelegateStake(params, _options) {
583
+ const amount = toAmount(params.stakeQty);
584
+ const source = address(params.source);
585
+ const target = address(params.target);
586
+ const garConfig = await this.getGarConfig();
587
+ const [sourceGatewayPda] = await getGatewayPDA(source, this.garProgram);
588
+ const [targetGatewayPda] = await getGatewayPDA(target, this.garProgram);
589
+ const [sourceDelegationPda] = await getDelegationPDA(source, this.signer.address, this.garProgram);
590
+ const [targetDelegationPda] = await getDelegationPDA(target, this.signer.address, this.garProgram);
591
+ const delegatorATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
592
+ const ix = await getRedelegateStakeInstructionAsync(await this.withGarDefaults({
593
+ sourceGateway: sourceGatewayPda,
594
+ targetGateway: targetGatewayPda,
595
+ sourceDelegation: sourceDelegationPda,
596
+ targetDelegation: targetDelegationPda,
597
+ delegatorTokenAccount: delegatorATA,
598
+ stakeTokenAccount: garConfig.stakeTokenAccount,
599
+ protocolTokenAccount: garConfig.protocolTokenAccount,
600
+ delegator: this.signer,
601
+ amount,
602
+ }), { programAddress: this.garProgram });
603
+ const sig = await this.sendTransaction([ix], 1_000_000);
604
+ return { id: sig };
605
+ }
606
+ // =========================================
607
+ // ArNS operations (ario-arns)
608
+ // =========================================
609
+ async buyRecord(params, _options) {
610
+ const arnsConfig = await this.getArnsConfig();
611
+ const buyerATA = await getAssociatedTokenAddressKit(arnsConfig.mint, this.signer.address);
612
+ const antPubkey = address(params.processId ?? '11111111111111111111111111111111');
613
+ const [arnsRecord] = await getArnsRecordPDA(params.name, this.arnsProgram);
614
+ const [reservedNameCheck] = await getReservedNamePDA(params.name, this.arnsProgram);
615
+ const [returnedNameCheck] = await getReturnedNamePDA(params.name, this.arnsProgram);
616
+ const buyNameParams = {
617
+ name: params.name,
618
+ purchaseType: params.type === 'permabuy' ? PurchaseType.Permabuy : PurchaseType.Lease,
619
+ years: params.years ?? 1,
620
+ ant: antPubkey,
621
+ };
622
+ // Phase 4 of FUND_FROM_PLAN.md: dispatch on params.fundFrom. The pre-Phase-4
623
+ // path always fell through to the balance-funded `buyName` ix even when
624
+ // CLI-set `--fund-from stakes`; we now route to the corresponding on-chain
625
+ // wrapper for each mode.
626
+ let ix;
627
+ if (params.fundFrom === 'stakes' && params.gatewayAddress) {
628
+ const gatewayAddr = address(params.gatewayAddress);
629
+ const garConfig = await this.getGarConfig();
630
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
631
+ const [gatewayPda] = await getGatewayPDA(gatewayAddr, this.garProgram);
632
+ const baseShared = {
633
+ config: await this.arnsConfigPda(),
634
+ demandFactor: await this.demandFactorPda(),
635
+ arnsRecord,
636
+ nameRegistry: await this.nameRegistryPda(),
637
+ reservedNameCheck,
638
+ returnedNameCheck,
639
+ garSettings,
640
+ gateway: gatewayPda,
641
+ stakeTokenAccount: garConfig.stakeTokenAccount,
642
+ protocolTokenAccount: arnsConfig.treasury,
643
+ buyer: this.signer,
644
+ garProgram: this.garProgram,
645
+ params: buyNameParams,
646
+ };
647
+ if (params.fundAsOperator) {
648
+ ix = await getBuyNameFromOperatorStakeInstructionAsync(baseShared, {
649
+ programAddress: this.arnsProgram,
650
+ });
651
+ }
652
+ else {
653
+ const [delegationPda] = await getDelegationPDA(gatewayAddr, this.signer.address, this.garProgram);
654
+ ix = await getBuyNameFromDelegationInstructionAsync({ ...baseShared, delegation: delegationPda }, { programAddress: this.arnsProgram });
655
+ }
656
+ }
657
+ else if (params.fundFrom === 'withdrawal' &&
658
+ params.withdrawalId !== undefined) {
659
+ const garConfig = await this.getGarConfig();
660
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
661
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, params.withdrawalId, this.garProgram);
662
+ ix = await getBuyNameFromWithdrawalInstructionAsync({
663
+ config: await this.arnsConfigPda(),
664
+ demandFactor: await this.demandFactorPda(),
665
+ arnsRecord,
666
+ nameRegistry: await this.nameRegistryPda(),
667
+ reservedNameCheck,
668
+ returnedNameCheck,
669
+ garSettings,
670
+ withdrawal: withdrawalPda,
671
+ stakeTokenAccount: garConfig.stakeTokenAccount,
672
+ protocolTokenAccount: arnsConfig.treasury,
673
+ buyer: this.signer,
674
+ garProgram: this.garProgram,
675
+ params: buyNameParams,
676
+ }, { programAddress: this.arnsProgram });
677
+ }
678
+ else if (params.fundFrom === 'plan' || params.fundFrom === 'any') {
679
+ ix = await this._buildBuyNameFromFundingPlanIx({
680
+ params,
681
+ antPubkey,
682
+ arnsRecord,
683
+ reservedNameCheck,
684
+ returnedNameCheck,
685
+ buyNameParams,
686
+ arnsConfig,
687
+ });
688
+ }
689
+ else {
690
+ // 'balance' or undefined falls through to the original direct-buy path.
691
+ ix = await getBuyNameInstructionAsync(await this.withArnsDefaults({
692
+ arnsRecord,
693
+ buyerTokenAccount: buyerATA,
694
+ protocolTokenAccount: arnsConfig.treasury,
695
+ reservedNameCheck,
696
+ returnedNameCheck,
697
+ buyer: this.signer,
698
+ params: buyNameParams,
699
+ }), { programAddress: this.arnsProgram });
700
+ }
701
+ // Sprint 4 / ADR-016: bundle `ant.sync_attributes` IFF the buyer
702
+ // owns the ANT (preserves BD-096 — non-holder buys defer the trait
703
+ // sync to a later `syncAttributes()` call by the actual owner).
704
+ // Pass `antPubkey` as assetOverride: the ArnsRecord PDA is CREATED
705
+ // by the buy_name ix, so it doesn't exist on-chain at SDK build
706
+ // time — the helper would 404 if it tried to read it.
707
+ const syncIx = await this._buildSyncAttributesIxIfOwner(params.name, antPubkey);
708
+ const sig = await this.sendTransaction(syncIx ? [ix, syncIx] : [ix]);
709
+ return { id: sig };
710
+ }
711
+ /**
712
+ * Resolve a `FundingPlan` for a fee-paying ArNS ix. When `params.sources`
713
+ * is set, use it verbatim (caller-supplied plan); otherwise discover the
714
+ * user's sources and build a plan via the Lua-faithful planner.
715
+ *
716
+ * Throws `InsufficientFundingError` (as a thrown Error with the structured
717
+ * payload as `cause`) when no plan covers `amountNeeded`.
718
+ */
719
+ async _resolveFundingPlan(params, amountNeeded) {
720
+ // `'plan'` is the explicit "I'll supply my own sources, skip discovery"
721
+ // mode (per FUNDING_MODES.md). Fail loudly if a caller picks `'plan'`
722
+ // without sources — pre-2026-05 the SDK silently fell through to
723
+ // discovery, making `'plan'` a synonym for `'any'`. The new semantic
724
+ // matches the doc: `'any'` discovers, `'plan'` uses what you give it.
725
+ if (params.fundFrom === 'plan' && !params.sources?.length) {
726
+ throw new Error("fundFrom: 'plan' requires explicit `sources`. Pass them via " +
727
+ "params.sources, or use fundFrom: 'any' to let the SDK discover " +
728
+ 'and plan automatically.');
729
+ }
730
+ if (params.sources?.length) {
731
+ // Caller supplied an explicit plan; build the FundingPlan envelope
732
+ // around it without source discovery. Each Delegation/OperatorStake
733
+ // source MUST carry an explicit `gateway` field so the executor knows
734
+ // which gateway PDA to slot in. Earlier single-gateway flows used
735
+ // `params.gatewayAddress` as a fallback for the first stake source —
736
+ // we preserve that for back-compat in the explicit-plan path.
737
+ const hasBalance = params.sources.some((s) => s.kind === 'balance');
738
+ const fallbackGateway = params.gatewayAddress
739
+ ? address(params.gatewayAddress)
740
+ : undefined;
741
+ const gatewayPerSource = params.sources.map((s) => {
742
+ if (s.kind !== 'delegation' && s.kind !== 'operatorStake')
743
+ return undefined;
744
+ const explicit = s.gateway;
745
+ if (explicit)
746
+ return address(explicit);
747
+ if (fallbackGateway)
748
+ return fallbackGateway;
749
+ throw new Error('sources includes delegation/operatorStake but no gateway is set on that source and gatewayAddress is unset');
750
+ });
751
+ // Auto-detect residue: for each Delegation source, fetch the live
752
+ // Delegation + Gateway PDAs and compute the post-drain. If it lands
753
+ // in (0, min_delegation_amount), that source will trigger an on-
754
+ // chain residue auto-vault and we must reserve a residue PDA slot.
755
+ const residueDelegationIndexes = await this._detectResidueIndexes(params.sources, gatewayPerSource);
756
+ return {
757
+ sources: params.sources.map((s) => ({
758
+ kind: s.kind,
759
+ amount: s.amount,
760
+ ...(s.withdrawalId !== undefined
761
+ ? { withdrawalId: s.withdrawalId }
762
+ : {}),
763
+ })),
764
+ gatewayPerSource,
765
+ residueDelegationIndexes,
766
+ hasBalanceSource: hasBalance,
767
+ };
768
+ }
769
+ // No explicit sources: discover + plan.
770
+ const arnsConfig = await this.getArnsConfig();
771
+ const { discoverFundingSources } = await import('./funding-plan.js');
772
+ const sources = await discoverFundingSources(this.rpc, this.signer.address, {
773
+ arioMint: arnsConfig.mint,
774
+ garProgram: this.garProgram,
775
+ });
776
+ const plan = buildFundingPlanCore(sources, amountNeeded, {
777
+ fundFrom: params.fundFrom,
778
+ preferGateway: params.gatewayAddress
779
+ ? address(params.gatewayAddress)
780
+ : undefined,
781
+ fundAsOperator: params.fundAsOperator,
782
+ });
783
+ if ('kind' in plan) {
784
+ const err = new Error(plan.message);
785
+ err.cause = plan;
786
+ throw err;
787
+ }
788
+ return plan;
789
+ }
790
+ /**
791
+ * Build a `buy_name_from_funding_plan` ix using the funding-plan module.
792
+ * Resolves per-source PDAs (Delegation, Withdrawal) and the residue-vault
793
+ * PDA prediction in one shot.
794
+ */
795
+ async _buildBuyNameFromFundingPlanIx(args) {
796
+ const garConfig = await this.getGarConfig();
797
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
798
+ const buyerATA = await getAssociatedTokenAddressKit(args.arnsConfig.mint, this.signer.address);
799
+ const cost = await this._estimateBuyNameCost(args.buyNameParams);
800
+ const plan = await this._resolveFundingPlan(args.params, cost);
801
+ const { remainingAccounts, withdrawalCounter, residueVaultCount } = await this._materializeFundingPlan(args.params, plan);
802
+ return await getBuyNameFromFundingPlanInstructionAsync({
803
+ config: await this.arnsConfigPda(),
804
+ demandFactor: await this.demandFactorPda(),
805
+ arnsRecord: args.arnsRecord,
806
+ nameRegistry: await this.nameRegistryPda(),
807
+ reservedNameCheck: args.reservedNameCheck,
808
+ returnedNameCheck: args.returnedNameCheck,
809
+ garSettings,
810
+ stakeTokenAccount: garConfig.stakeTokenAccount,
811
+ protocolTokenAccount: args.arnsConfig.treasury,
812
+ payerTokenAccount: plan.hasBalanceSource ? buyerATA : undefined,
813
+ buyer: this.signer,
814
+ withdrawalCounter,
815
+ garProgram: this.garProgram,
816
+ params: args.buyNameParams,
817
+ sources: plan.sources.map(toGeneratedFundingSourceSpec),
818
+ discountAccountCount: 0,
819
+ residueVaultCount,
820
+ }, {
821
+ programAddress: this.arnsProgram,
822
+ }).then((ix) => remainingAccounts.length > 0
823
+ ? withRemainingAccounts(ix, remainingAccounts)
824
+ : ix);
825
+ }
826
+ /**
827
+ * For an explicit caller-supplied plan, detect which Delegation sources
828
+ * will trigger an on-chain residue auto-vault. Reads each (Delegation,
829
+ * Gateway) pair in parallel; computes post-drain; flags `(0, min)`.
830
+ *
831
+ * Hard-fails on RPC error or missing PDA — silently skipping would let
832
+ * the on-chain handler reject the tx with `MissingResidueVault` and
833
+ * burn fees. The error message points at remediation.
834
+ */
835
+ async _detectResidueIndexes(sources, gatewayPerSource) {
836
+ const delegationIndexes = sources
837
+ .map((s, i) => ({ s, i }))
838
+ .filter(({ s }) => s.kind === 'delegation');
839
+ if (delegationIndexes.length === 0)
840
+ return [];
841
+ const owner = this.signer.address;
842
+ const reads = await Promise.all(delegationIndexes.map(async ({ i }) => {
843
+ const gateway = gatewayPerSource[i];
844
+ if (!gateway) {
845
+ throw new Error(`funding plan source #${i} is a Delegation but gatewayPerSource[${i}] is undefined; set source.gateway or params.gatewayAddress`);
846
+ }
847
+ const [delegationPda] = await getDelegationPDA(gateway, owner, this.garProgram);
848
+ const [gatewayPda] = await getGatewayPDA(gateway, this.garProgram);
849
+ const [delAcct, gwAcct] = await Promise.all([
850
+ fetchEncodedAccount(this.rpc, delegationPda, {
851
+ commitment: this.commitment,
852
+ }),
853
+ fetchEncodedAccount(this.rpc, gatewayPda, {
854
+ commitment: this.commitment,
855
+ }),
856
+ ]);
857
+ if (!delAcct.exists) {
858
+ throw new Error(`residue auto-detect failed: Delegation PDA ${delegationPda} not found for source #${i} (gateway ${gateway}); ensure the delegation exists or pass an explicit funding plan with residue hints`);
859
+ }
860
+ if (!gwAcct.exists) {
861
+ throw new Error(`residue auto-detect failed: Gateway PDA ${gatewayPda} not found for source #${i}`);
862
+ }
863
+ return { i, delAcct, gwAcct };
864
+ }));
865
+ const delegationDecoder = getDelegationDecoder();
866
+ const gatewayDecoder = getGatewayDecoder();
867
+ const states = new Array(sources.length).fill(undefined);
868
+ for (const { i, delAcct, gwAcct } of reads) {
869
+ const delegation = delegationDecoder.decode(delAcct.data);
870
+ const gateway = gatewayDecoder.decode(gwAcct.data);
871
+ states[i] = {
872
+ delegationAmount: delegation.amount,
873
+ minDelegationAmount: gateway.settings.minDelegationAmount,
874
+ };
875
+ }
876
+ return computeResidueIndexes(sources, states);
877
+ }
878
+ /**
879
+ * Materialize a `FundingPlan` into the on-chain ix's per-source remaining
880
+ * accounts, residue-vault PDAs, and the withdrawal_counter slot. Shared
881
+ * across all 5 ArNS funding-plan ix dispatches and the 2 ario-core
882
+ * primary-name funding-plan dispatches.
883
+ *
884
+ * Throws when the plan has Withdrawal sources whose ids cannot be
885
+ * resolved from either `spec.withdrawalId` (preferred) or
886
+ * `params.withdrawalId` (single-withdrawal back-compat).
887
+ */
888
+ async _materializeFundingPlan(params, plan) {
889
+ // Resolve withdrawalIds: prefer per-source `spec.withdrawalId` (the
890
+ // multi-withdrawal canonical path — discoverFundingSources sets it
891
+ // and explicit caller plans can too); fall back to params.withdrawalId
892
+ // for single-withdrawal CLI back-compat.
893
+ const withdrawalSpecs = (params.sources ?? plan.sources).filter((s) => s.kind === 'withdrawal');
894
+ const withdrawalIds = withdrawalSpecs.map((s, idx) => {
895
+ const specId = s.withdrawalId;
896
+ if (specId !== undefined)
897
+ return BigInt(specId);
898
+ if (params.withdrawalId !== undefined && idx === 0) {
899
+ return BigInt(params.withdrawalId);
900
+ }
901
+ throw new Error(`funding plan Withdrawal source #${idx} has no withdrawalId; set it on the source spec or pass params.withdrawalId for single-withdrawal plans`);
902
+ });
903
+ const { residueVaults, withdrawalCounter } = await predictResidueVaults(this.rpc, this.signer.address, plan, { garProgram: this.garProgram });
904
+ const remainingAccounts = await buildFundingPlanRemainingAccounts(plan, this.signer.address, { withdrawalIds, residueVaults, garProgram: this.garProgram });
905
+ return {
906
+ remainingAccounts: remainingAccounts,
907
+ withdrawalCounter,
908
+ residueVaultCount: residueVaults.length,
909
+ };
910
+ }
911
+ /**
912
+ * Best-effort cost estimation for `buy_name`. Reads the live DemandFactor
913
+ * + ArnsConfig and applies the on-chain pricing math. Used by the funding-
914
+ * plan path so callers don't have to compute cost client-side.
915
+ *
916
+ * The estimate may be 1-2 mARIO higher than the actual on-chain cost when a
917
+ * demand-factor period rolls during the tx; the on-chain handler reads the
918
+ * live demand-factor and verifies sum(sources) == cost, so an overestimate
919
+ * fails fast with `FundingPlanAmountMismatch`. Callers should retry with a
920
+ * fresh estimate on that error.
921
+ */
922
+ async _estimateBuyNameCost(buyNameParams) {
923
+ // Importing the pricing helpers from generated/ would couple the SDK to
924
+ // codegen layout; instead we re-implement the same math (see
925
+ // programs/ario-arns/src/pricing.rs::calculate_registration_fee).
926
+ const [demandFactorPda] = await getDemandFactorPDA(this.arnsProgram);
927
+ const dfAccount = await fetchEncodedAccount(this.rpc, demandFactorPda, {
928
+ commitment: this.commitment,
929
+ });
930
+ if (!dfAccount.exists)
931
+ throw new Error('DemandFactor not found');
932
+ // Layout: disc(8) + current_demand_factor(8) + ... + fees[51](u64×51).
933
+ // Fees array starts at offset that depends on the struct layout — we
934
+ // safely read the first 8+51*8 bytes.
935
+ const data = Buffer.from(dfAccount.data);
936
+ const dv = new DataView(data.buffer, data.byteOffset, data.byteLength);
937
+ const demandFactor = dv.getBigUint64(8, true);
938
+ // Fees layout is: disc(8) + current_demand_factor(8) +
939
+ // purchases_this_period(8) + revenue_this_period(8) +
940
+ // period_zero_start_timestamp(8) + ... + fees[51]
941
+ // To stay decoupled from non-fee fields, we read the whole array
942
+ // assuming fees starts at a known offset. See ArNS DemandFactor struct.
943
+ // Pragmatic fallback: use a fixed fees offset of 56 (post-disc + 6 u64s).
944
+ const FEES_OFFSET = 56;
945
+ if (data.length < FEES_OFFSET + 51 * 8) {
946
+ throw new Error('DemandFactor account data too short for fees array');
947
+ }
948
+ const nameLen = buyNameParams.name.length;
949
+ const idx = Math.min(Math.max(nameLen, 1), 51) - 1;
950
+ const baseFee = dv.getBigUint64(FEES_OFFSET + idx * 8, true);
951
+ const SCALE = 1000000n; // DEMAND_FACTOR_SCALE
952
+ if (buyNameParams.purchaseType === PurchaseType.Permabuy) {
953
+ // Permabuy = base_fee * 20% * 20 (annual share × 20 years cap)
954
+ const permabuy = (baseFee * 200000n) / SCALE; // 20% annual
955
+ return (permabuy * 20n * demandFactor) / SCALE;
956
+ }
957
+ // Lease: base_fee * (1 + 0.20 * years) * demand_factor
958
+ const leasePct = SCALE + 200000n * BigInt(buyNameParams.years);
959
+ return (((baseFee * leasePct) / SCALE) * demandFactor) / SCALE;
960
+ }
961
+ async arnsConfigPda() {
962
+ // The ArNS config (`Settings`) PDA is seeded with `arns_config` — NOT
963
+ // the `ario_config` seed used by the ario-core `Config` PDA. Earlier
964
+ // revisions of this helper called `getArioConfigPDA(this.arnsProgram)`
965
+ // which composes the wrong seed against the right program; the
966
+ // resulting PDA points at an account that never exists, and every
967
+ // fund-from-stakes / withdrawal / funding-plan path simulated as
968
+ // AccountNotInitialized (#3012) on the `config` slot.
969
+ const [pda] = await getArnsSettingsPDA(this.arnsProgram);
970
+ return pda;
971
+ }
972
+ async demandFactorPda() {
973
+ const [pda] = await getDemandFactorPDA(this.arnsProgram);
974
+ return pda;
975
+ }
976
+ async nameRegistryPda() {
977
+ const [pda] = await getArnsRegistryPDA(this.arnsProgram);
978
+ return pda;
979
+ }
980
+ async upgradeRecord(params, _options) {
981
+ const ix = await this._buildManageStakeIx({
982
+ params,
983
+ operation: 'upgrade',
984
+ });
985
+ const syncIx = await this._buildSyncAttributesIxIfOwner(params.name);
986
+ const sig = await this.sendTransaction(syncIx ? [ix, syncIx] : [ix]);
987
+ return { id: sig };
988
+ }
989
+ async syncAttributes(params, _options) {
990
+ // Public method — caller is asking explicitly to sync. Build the ix
991
+ // unconditionally; if they don't actually own the ANT, the on-chain
992
+ // handler returns NotNftHolder. (The bundle path uses
993
+ // `_buildSyncAttributesIxIfOwner`, which skips when not the owner so
994
+ // the wrapping arns ix can still succeed for non-holder management
995
+ // — see BD-095.)
996
+ const ix = await this._buildSyncAttributesIxUnconditional(params.name);
997
+ const sig = await this.sendTransaction([ix]);
998
+ return { id: sig };
999
+ }
1000
+ /**
1001
+ * Build a `sync_attributes` instruction for `name` IFF the signer is
1002
+ * the current MPL Core asset owner. Returns `null` otherwise.
1003
+ *
1004
+ * Sprint 4 / ADR-016: bundle helper for `buyRecord`, `upgradeRecord`,
1005
+ * `increaseUndernameLimit`, `reassignName`, and `buyReturnedName`.
1006
+ * Returning `null` lets the caller send the arns ix alone — preserves
1007
+ * BD-095 (non-holder ArNS lease management) and BD-096 (deferred
1008
+ * trait sync for non-holder buyers). The actual ANT owner reconciles
1009
+ * state later via the public `syncAttributes()`.
1010
+ *
1011
+ * `extendLease` is NOT a caller of this helper — extend_lease changes
1012
+ * only `end_timestamp`, which isn't mirrored in any Attributes-plugin
1013
+ * trait (BD-095 last row). `releaseName` is also excluded — release_name
1014
+ * closes the ArnsRecord PDA, so a follow-up `sync_attributes` would
1015
+ * fail the PDA-existence check.
1016
+ *
1017
+ * `assetOverride` MUST be set when the bundling ix mutates
1018
+ * `record.ant` mid-tx (i.e. `reassign_name`). The on-chain record
1019
+ * still points at the OLD asset at SDK build time, so without the
1020
+ * override the bundled sync would target the wrong asset and fail
1021
+ * the post-reassign `record.ant == asset.key()` check. The owner
1022
+ * check runs against the supplied asset (= new ANT for reassign),
1023
+ * matching the pre-reshape "new owner reconciles later" semantic.
1024
+ */
1025
+ async _buildSyncAttributesIxIfOwner(name, assetOverride) {
1026
+ let asset;
1027
+ if (assetOverride !== undefined) {
1028
+ asset = assetOverride;
1029
+ }
1030
+ else {
1031
+ const record = await this.getArNSRecord({ name });
1032
+ asset = address(record.processId);
1033
+ }
1034
+ const { fetchMplCoreOwner } = await import('./mpl-core.js');
1035
+ const owner = await fetchMplCoreOwner(this.rpc, asset, {
1036
+ commitment: this.commitment,
1037
+ });
1038
+ if (owner === null || owner !== this.signer.address) {
1039
+ return null;
1040
+ }
1041
+ return this._buildSyncAttributesIxFor(name, asset);
1042
+ }
1043
+ /**
1044
+ * Build a `sync_attributes` instruction unconditionally (no owner
1045
+ * check). Used by the public `syncAttributes()` method, where the
1046
+ * caller is asking explicitly — if they aren't the owner the chain
1047
+ * returns NotNftHolder.
1048
+ */
1049
+ async _buildSyncAttributesIxUnconditional(name) {
1050
+ const record = await this.getArNSRecord({ name });
1051
+ return this._buildSyncAttributesIxFor(name, address(record.processId));
1052
+ }
1053
+ /** Pure builder; no RPC. Used by both gated + unconditional helpers. */
1054
+ async _buildSyncAttributesIxFor(name, asset) {
1055
+ const [arnsRecord] = await getArnsRecordPDA(name, this.arnsProgram);
1056
+ return getSyncAttributesInstruction({
1057
+ asset,
1058
+ payer: this.signer,
1059
+ authority: this.signer,
1060
+ arnsRecord,
1061
+ name,
1062
+ }, { programAddress: this.antProgram });
1063
+ }
1064
+ async extendLease(params, _options) {
1065
+ const ix = await this._buildManageStakeIx({
1066
+ params,
1067
+ operation: 'extend',
1068
+ years: params.years,
1069
+ });
1070
+ // BD-095: extend_lease changes only `end_timestamp`, which isn't
1071
+ // mirrored in any Metaplex Attributes plugin trait. No bundle.
1072
+ const sig = await this.sendTransaction([ix]);
1073
+ return { id: sig };
1074
+ }
1075
+ async increaseUndernameLimit(params, _options) {
1076
+ const ix = await this._buildManageStakeIx({
1077
+ params,
1078
+ operation: 'increaseUndername',
1079
+ quantity: params.increaseCount,
1080
+ });
1081
+ const syncIx = await this._buildSyncAttributesIxIfOwner(params.name);
1082
+ const sig = await this.sendTransaction(syncIx ? [ix, syncIx] : [ix]);
1083
+ return { id: sig };
1084
+ }
1085
+ /**
1086
+ * Shared dispatch helper for the 3 manage variants (upgrade / extend /
1087
+ * increaseUndername). They share the same account shape per the
1088
+ * `manage_from_delegation_accounts!` / `manage_from_operator_stake_accounts!`
1089
+ * macros in `programs/ario-arns/src/instructions/manage_from_stake.rs`.
1090
+ * Only the operation-specific extra args differ (years for extend,
1091
+ * quantity for increaseUndername).
1092
+ */
1093
+ async _buildManageStakeIx(args) {
1094
+ const arnsConfig = await this.getArnsConfig();
1095
+ const callerATA = await getAssociatedTokenAddressKit(arnsConfig.mint, this.signer.address);
1096
+ const [arnsRecord] = await getArnsRecordPDA(args.params.name, this.arnsProgram);
1097
+ // Balance / undefined → original direct-transfer ix (matches pre-Phase-4).
1098
+ if (!args.params.fundFrom ||
1099
+ args.params.fundFrom === 'balance' ||
1100
+ args.params.fundFrom === 'turbo') {
1101
+ const baseAccounts = await this.withArnsDefaults({
1102
+ arnsRecord,
1103
+ callerTokenAccount: callerATA,
1104
+ protocolTokenAccount: arnsConfig.treasury,
1105
+ caller: this.signer,
1106
+ });
1107
+ if (args.operation === 'upgrade') {
1108
+ return getUpgradeNameInstructionAsync(baseAccounts, {
1109
+ programAddress: this.arnsProgram,
1110
+ });
1111
+ }
1112
+ if (args.operation === 'extend') {
1113
+ return getExtendLeaseInstructionAsync({ ...baseAccounts, years: args.years }, { programAddress: this.arnsProgram });
1114
+ }
1115
+ return getIncreaseUndernameLimitInstructionAsync({ ...baseAccounts, quantity: args.quantity }, { programAddress: this.arnsProgram });
1116
+ }
1117
+ // Stake / withdrawal / funding-plan paths share an account skeleton.
1118
+ const garConfig = await this.getGarConfig();
1119
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
1120
+ const sharedManageBase = {
1121
+ config: await this.arnsConfigPda(),
1122
+ demandFactor: await this.demandFactorPda(),
1123
+ arnsRecord,
1124
+ garSettings,
1125
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1126
+ protocolTokenAccount: arnsConfig.treasury,
1127
+ caller: this.signer,
1128
+ garProgram: this.garProgram,
1129
+ };
1130
+ if (args.params.fundFrom === 'stakes' && args.params.gatewayAddress) {
1131
+ const gatewayAddr = address(args.params.gatewayAddress);
1132
+ const [gatewayPda] = await getGatewayPDA(gatewayAddr, this.garProgram);
1133
+ const stakeBase = { ...sharedManageBase, gateway: gatewayPda };
1134
+ if (args.params.fundAsOperator) {
1135
+ if (args.operation === 'upgrade')
1136
+ return getUpgradeNameFromOperatorStakeInstructionAsync(stakeBase, {
1137
+ programAddress: this.arnsProgram,
1138
+ });
1139
+ if (args.operation === 'extend')
1140
+ return getExtendLeaseFromOperatorStakeInstructionAsync({ ...stakeBase, years: args.years }, { programAddress: this.arnsProgram });
1141
+ return getIncreaseUndernameLimitFromOperatorStakeInstructionAsync({ ...stakeBase, quantity: args.quantity }, { programAddress: this.arnsProgram });
1142
+ }
1143
+ const [delegationPda] = await getDelegationPDA(gatewayAddr, this.signer.address, this.garProgram);
1144
+ const delBase = { ...stakeBase, delegation: delegationPda };
1145
+ if (args.operation === 'upgrade')
1146
+ return getUpgradeNameFromDelegationInstructionAsync(delBase, {
1147
+ programAddress: this.arnsProgram,
1148
+ });
1149
+ if (args.operation === 'extend')
1150
+ return getExtendLeaseFromDelegationInstructionAsync({ ...delBase, years: args.years }, { programAddress: this.arnsProgram });
1151
+ return getIncreaseUndernameLimitFromDelegationInstructionAsync({ ...delBase, quantity: args.quantity }, { programAddress: this.arnsProgram });
1152
+ }
1153
+ if (args.params.fundFrom === 'withdrawal' &&
1154
+ args.params.withdrawalId !== undefined) {
1155
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, args.params.withdrawalId, this.garProgram);
1156
+ const wBase = { ...sharedManageBase, withdrawal: withdrawalPda };
1157
+ if (args.operation === 'upgrade')
1158
+ return getUpgradeNameFromWithdrawalInstructionAsync(wBase, {
1159
+ programAddress: this.arnsProgram,
1160
+ });
1161
+ if (args.operation === 'extend')
1162
+ return getExtendLeaseFromWithdrawalInstructionAsync({ ...wBase, years: args.years }, { programAddress: this.arnsProgram });
1163
+ return getIncreaseUndernameLimitFromWithdrawalInstructionAsync({ ...wBase, quantity: args.quantity }, { programAddress: this.arnsProgram });
1164
+ }
1165
+ if (args.params.fundFrom === 'plan' || args.params.fundFrom === 'any') {
1166
+ // Cost estimation for manage variants: each operation has its own
1167
+ // pricing path. Keep it pragmatic — let the planner build the plan
1168
+ // around the user's desired total (caller can pass explicit sources
1169
+ // to bypass cost estimation entirely).
1170
+ const cost = await this._estimateManageStakeCost({
1171
+ operation: args.operation,
1172
+ name: args.params.name,
1173
+ years: args.years,
1174
+ quantity: args.quantity,
1175
+ });
1176
+ const plan = await this._resolveFundingPlan(args.params, cost);
1177
+ const buyerATA = await getAssociatedTokenAddressKit(arnsConfig.mint, this.signer.address);
1178
+ const { remainingAccounts, withdrawalCounter, residueVaultCount } = await this._materializeFundingPlan(args.params, plan);
1179
+ const fpBase = {
1180
+ config: await this.arnsConfigPda(),
1181
+ demandFactor: await this.demandFactorPda(),
1182
+ arnsRecord,
1183
+ garSettings,
1184
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1185
+ protocolTokenAccount: arnsConfig.treasury,
1186
+ payerTokenAccount: plan.hasBalanceSource ? buyerATA : undefined,
1187
+ caller: this.signer,
1188
+ withdrawalCounter,
1189
+ garProgram: this.garProgram,
1190
+ sources: plan.sources.map(toGeneratedFundingSourceSpec),
1191
+ discountAccountCount: 0,
1192
+ residueVaultCount,
1193
+ };
1194
+ let ix;
1195
+ if (args.operation === 'upgrade')
1196
+ ix = await getUpgradeNameFromFundingPlanInstructionAsync(fpBase, {
1197
+ programAddress: this.arnsProgram,
1198
+ });
1199
+ else if (args.operation === 'extend')
1200
+ ix = await getExtendLeaseFromFundingPlanInstructionAsync({ ...fpBase, years: args.years }, { programAddress: this.arnsProgram });
1201
+ else
1202
+ ix = await getIncreaseUndernameLimitFromFundingPlanInstructionAsync({ ...fpBase, quantity: args.quantity }, { programAddress: this.arnsProgram });
1203
+ return remainingAccounts.length > 0
1204
+ ? withRemainingAccounts(ix, remainingAccounts)
1205
+ : ix;
1206
+ }
1207
+ throw new Error(`unsupported fundFrom mode '${args.params.fundFrom}' for ${args.operation}`);
1208
+ }
1209
+ /**
1210
+ * Cost estimate for manage operations (upgrade / extend / increaseUndername).
1211
+ * Reads the live DemandFactor account + applies the on-chain pricing math.
1212
+ */
1213
+ async _estimateManageStakeCost(args) {
1214
+ const [demandFactorPda] = await getDemandFactorPDA(this.arnsProgram);
1215
+ const dfAccount = await fetchEncodedAccount(this.rpc, demandFactorPda, {
1216
+ commitment: this.commitment,
1217
+ });
1218
+ if (!dfAccount.exists)
1219
+ throw new Error('DemandFactor not found');
1220
+ const data = Buffer.from(dfAccount.data);
1221
+ const dv = new DataView(data.buffer, data.byteOffset, data.byteLength);
1222
+ const demandFactor = dv.getBigUint64(8, true);
1223
+ const FEES_OFFSET = 56;
1224
+ const idx = Math.min(Math.max(args.name.length, 1), 51) - 1;
1225
+ const baseFee = dv.getBigUint64(FEES_OFFSET + idx * 8, true);
1226
+ const SCALE = 1000000n;
1227
+ if (args.operation === 'upgrade') {
1228
+ // Permabuy upgrade: 20% × 20 × demand_factor
1229
+ const permabuy = (baseFee * 200000n) / SCALE;
1230
+ return (permabuy * 20n * demandFactor) / SCALE;
1231
+ }
1232
+ if (args.operation === 'extend') {
1233
+ // Lease extension fee: base_fee * 0.20 * years * demand_factor
1234
+ return ((baseFee * 200000n * BigInt(args.years) * demandFactor) /
1235
+ SCALE /
1236
+ SCALE);
1237
+ }
1238
+ // increaseUndername: base_fee * UNDERNAME_LEASE_FEE_PCT * quantity * demand_factor
1239
+ // UNDERNAME_LEASE_FEE_PCT = 1% = 10_000 in RATE_SCALE = 1_000_000.
1240
+ return ((baseFee * 10000n * BigInt(args.quantity) * demandFactor) /
1241
+ SCALE /
1242
+ SCALE);
1243
+ }
1244
+ // =========================================
1245
+ // Primary name operations (ario-core)
1246
+ // =========================================
1247
+ /**
1248
+ * Build the `remaining_accounts` slice + the `antProgramId` arg the
1249
+ * four ario-core primary-name instructions consume. Sprint 2/5
1250
+ * reshape (ADR-016): ario-core no longer reads MPL Core asset bytes.
1251
+ * Authorization is "caller is the AntRecord.owner for this name" via
1252
+ * PDA-seed-pinned lookup.
1253
+ *
1254
+ * Layouts the on-chain handlers expect:
1255
+ * request_primary_name: [arnsRecord, demandFactor]
1256
+ * request_and_set_primary_name: [arnsRecord, demandFactor, antRecord]
1257
+ * approve_primary_name: [arnsRecord, antRecord]
1258
+ * remove_primary_name_for_base_name: [arnsRecord, antRecord(@)]
1259
+ *
1260
+ * `antRecord` keys off the undername part for undernames (e.g.
1261
+ * "blog_arweave" → AntRecord at "blog") or the canonical "@" sentinel
1262
+ * for base names. `removeForBaseName` is special — it always uses "@"
1263
+ * regardless of whether the primary name being removed is an undername,
1264
+ * since the *base* name owner is the one revoking it.
1265
+ *
1266
+ * `antProgram` honors ADR-016 / BD-100 pluggability: the asset's
1267
+ * `ANT Program` Attributes-plugin trait selects which program owns the
1268
+ * AntRecord PDA. Absent / unparseable → canonical fallback. Both the
1269
+ * PDA derivation here and the `ant_program_id` arg the caller passes
1270
+ * to the on-chain ix MUST agree (the handler re-derives and rejects
1271
+ * mismatches).
1272
+ */
1273
+ async _buildPrimaryNameValidationAccounts(name, variant) {
1274
+ const { isUndername, baseName, undername } = splitPrimaryName(name);
1275
+ const [arnsRecordPda] = await getArnsRecordPDA(baseName, this.arnsProgram);
1276
+ const remaining = [
1277
+ { address: arnsRecordPda, role: AccountRole.READONLY },
1278
+ ];
1279
+ // Fee-charging variants need the demand factor for fee scaling.
1280
+ if (variant === 'request' || variant === 'requestAndSet') {
1281
+ const [demandFactorPda] = await getDemandFactorPDA(this.arnsProgram);
1282
+ remaining.push({ address: demandFactorPda, role: AccountRole.READONLY });
1283
+ }
1284
+ // ANT-auth variants need the AntRecord PDA. We have to read the
1285
+ // ArnsRecord first to recover the ANT mint, then read the asset's
1286
+ // `ANT Program` trait (ADR-016 / BD-100) to pick the right program
1287
+ // for the AntRecord PDA derivation.
1288
+ let antProgram = this.antProgram;
1289
+ if (variant !== 'request') {
1290
+ const arnsAccount = await fetchEncodedAccount(this.rpc, arnsRecordPda, {
1291
+ commitment: this.commitment,
1292
+ });
1293
+ if (!arnsAccount.exists) {
1294
+ throw new Error(`ArNS record not found for base name: ${baseName}`);
1295
+ }
1296
+ const arnsRecord = deserializeArnsRecord(Buffer.from(arnsAccount.data));
1297
+ const antMint = address(arnsRecord.processId);
1298
+ const { fetchAntProgramFromAsset } = await import('./mpl-core.js');
1299
+ antProgram =
1300
+ (await fetchAntProgramFromAsset(this.rpc, antMint, {
1301
+ commitment: this.commitment,
1302
+ })) ?? this.antProgram;
1303
+ // removeForBaseName always uses the "@" undername (the base-name
1304
+ // owner's record). The other ANT-auth variants use the undername
1305
+ // part if the primary name is an undername.
1306
+ const antUndername = variant === 'removeForBaseName' || !isUndername || undername === null
1307
+ ? '@'
1308
+ : undername;
1309
+ const [antRecordPda] = await getAntRecordPDA(antMint, antUndername, antProgram);
1310
+ remaining.push({ address: antRecordPda, role: AccountRole.READONLY });
1311
+ }
1312
+ return { remaining, antProgram };
1313
+ }
1314
+ async requestPrimaryName(params, _options) {
1315
+ const coreConfig = await this.getCoreConfig();
1316
+ const signerATA = await getAssociatedTokenAddressKit(coreConfig.mint, this.signer.address);
1317
+ const { remaining } = await this._buildPrimaryNameValidationAccounts(params.name, 'request');
1318
+ // Phase 4 of FUND_FROM_PLAN.md: dispatch primary-name funding via the
1319
+ // funding-plan ix when caller asks for stakes/withdrawal/plan/any. The
1320
+ // direct-transfer ix stays the path for fundFrom='balance' / undefined.
1321
+ let ix;
1322
+ if (!params.fundFrom ||
1323
+ params.fundFrom === 'balance' ||
1324
+ params.fundFrom === 'turbo') {
1325
+ ix = withRemainingAccounts(await getRequestPrimaryNameInstructionAsync(await this.withCoreDefaults({
1326
+ initiatorTokenAccount: signerATA,
1327
+ protocolTokenAccount: coreConfig.treasury,
1328
+ initiator: this.signer,
1329
+ name: params.name,
1330
+ }), { programAddress: this.coreProgram }), remaining);
1331
+ }
1332
+ else {
1333
+ ix = await this._buildPrimaryNameFromFundingPlanIx({
1334
+ params,
1335
+ coreConfig,
1336
+ validationAccounts: remaining,
1337
+ operation: 'request',
1338
+ });
1339
+ }
1340
+ const sig = await this.sendTransaction([ix]);
1341
+ return { id: sig };
1342
+ }
1343
+ async setPrimaryName(params, _options) {
1344
+ // setPrimaryName routes to the on-chain `request_and_set_primary_name`
1345
+ // path — the auto-approve flow when the caller owns the AntRecord
1346
+ // for the matching name (undername part, or "@" for base names).
1347
+ const coreConfig = await this.getCoreConfig();
1348
+ const signerATA = await getAssociatedTokenAddressKit(coreConfig.mint, this.signer.address);
1349
+ const { remaining, antProgram } = await this._buildPrimaryNameValidationAccounts(params.name, 'requestAndSet');
1350
+ if (!params.fundFrom ||
1351
+ params.fundFrom === 'balance' ||
1352
+ params.fundFrom === 'turbo') {
1353
+ // Direct-transfer path: delegate to requestPrimaryName for now (this
1354
+ // matches the pre-Phase-4 placeholder; the on-chain
1355
+ // request_and_set_primary_name ix uses the same fee charge so the
1356
+ // routing is functionally identical).
1357
+ void signerATA;
1358
+ return this.requestPrimaryName(params, _options);
1359
+ }
1360
+ const ix = await this._buildPrimaryNameFromFundingPlanIx({
1361
+ params,
1362
+ coreConfig,
1363
+ validationAccounts: remaining,
1364
+ operation: 'requestAndSet',
1365
+ antProgramId: antProgram,
1366
+ });
1367
+ const sig = await this.sendTransaction([ix]);
1368
+ return { id: sig };
1369
+ }
1370
+ /**
1371
+ * Build a `request_primary_name_from_funding_plan` or
1372
+ * `request_and_set_primary_name_from_funding_plan` ix. Forwards both:
1373
+ * - validation accounts (ArnsRecord + DemandFactor [+ ant_asset
1374
+ * [+ AntRecord]]) — passed via remaining_accounts at indices
1375
+ * [0..validation_account_count)
1376
+ * - per-source PDAs from the funding plan — passed at indices
1377
+ * [validation_account_count..)
1378
+ *
1379
+ * The on-chain handler (programs/ario-core/src/instructions/primary_name.rs)
1380
+ * splits remaining_accounts at `validation_account_count` and forwards the
1381
+ * funding-source slice to ario-gar's pay_from_funding_plan via CPI.
1382
+ */
1383
+ async _buildPrimaryNameFromFundingPlanIx(args) {
1384
+ // Estimate the fee — primary-name fee = PRIMARY_NAME_REQUEST_BASE_FEE *
1385
+ // demand_factor / DEMAND_FACTOR_SCALE. Read demand_factor from chain.
1386
+ const [demandFactorPda] = await getDemandFactorPDA(this.arnsProgram);
1387
+ const dfAccount = await fetchEncodedAccount(this.rpc, demandFactorPda, {
1388
+ commitment: this.commitment,
1389
+ });
1390
+ if (!dfAccount.exists)
1391
+ throw new Error('DemandFactor not found');
1392
+ const dv = new DataView(dfAccount.data.buffer, dfAccount.data.byteOffset, dfAccount.data.byteLength);
1393
+ const demandFactor = dv.getBigUint64(8, true);
1394
+ const PRIMARY_NAME_REQUEST_BASE_FEE = 200000n; // 0.2 ARIO in mARIO
1395
+ const SCALE = 1000000n;
1396
+ const fee = (PRIMARY_NAME_REQUEST_BASE_FEE * demandFactor) / SCALE;
1397
+ const plan = await this._resolveFundingPlan(args.params, fee);
1398
+ const garConfig = await this.getGarConfig();
1399
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
1400
+ const initiatorATA = await getAssociatedTokenAddressKit(args.coreConfig.mint, this.signer.address);
1401
+ const { remainingAccounts: fundingRemaining, withdrawalCounter, residueVaultCount, } = await this._materializeFundingPlan(args.params, plan);
1402
+ const allRemaining = [
1403
+ ...args.validationAccounts,
1404
+ ...fundingRemaining,
1405
+ ];
1406
+ const validationAccountCount = args.validationAccounts.length;
1407
+ const baseFp = {
1408
+ config: await this._coreConfigPda(),
1409
+ garSettings,
1410
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1411
+ protocolTokenAccount: args.coreConfig.treasury,
1412
+ payerTokenAccount: plan.hasBalanceSource ? initiatorATA : undefined,
1413
+ initiator: this.signer,
1414
+ withdrawalCounter,
1415
+ garProgram: this.garProgram,
1416
+ sources: plan.sources.map(toGeneratedFundingSourceSpec),
1417
+ validationAccountCount,
1418
+ residueVaultCount,
1419
+ };
1420
+ let ix;
1421
+ if (args.operation === 'request') {
1422
+ const [requestPda] = await getPrimaryNameRequestPDA(this.signer.address, this.coreProgram);
1423
+ ix = await getRequestPrimaryNameFromFundingPlanInstructionAsync({ ...baseFp, request: requestPda, name: args.params.name }, { programAddress: this.coreProgram });
1424
+ }
1425
+ else {
1426
+ const [primaryNamePda] = await getPrimaryNamePDA(this.signer.address, this.coreProgram);
1427
+ const [primaryNameReversePda] = await getPrimaryNameReversePDA(args.params.name, this.coreProgram);
1428
+ ix = await getRequestAndSetPrimaryNameFromFundingPlanInstructionAsync({
1429
+ ...baseFp,
1430
+ primaryName: primaryNamePda,
1431
+ primaryNameReverse: primaryNameReversePda,
1432
+ name: args.params.name,
1433
+ reverseLookupHash: hashName(args.params.name),
1434
+ antProgramId: args.antProgramId ?? this.antProgram,
1435
+ }, { programAddress: this.coreProgram });
1436
+ }
1437
+ return allRemaining.length > 0
1438
+ ? withRemainingAccounts(ix, allRemaining)
1439
+ : ix;
1440
+ }
1441
+ async _coreConfigPda() {
1442
+ const [pda] = await getArioConfigPDA(this.coreProgram);
1443
+ return pda;
1444
+ }
1445
+ /**
1446
+ * Approve a previously-created primary name request. The signer must be
1447
+ * the AntRecord.owner for the requested name (undername part for
1448
+ * undernames, "@" for base names) — Sprint 2 / ADR-016 reshape.
1449
+ *
1450
+ * Mirrors the on-chain `approve_primary_name` instruction
1451
+ * (`programs/ario-core/src/instructions/primary_name.rs`).
1452
+ * remaining_accounts: [arns_record(base), ant_record(undername | @)].
1453
+ */
1454
+ async approvePrimaryName(params, _options) {
1455
+ const [requestPda] = await getPrimaryNameRequestPDA(params.initiator, this.coreProgram);
1456
+ const [primaryNamePda] = await getPrimaryNamePDA(params.initiator, this.coreProgram);
1457
+ const [primaryNameReversePda] = await getPrimaryNameReversePDA(params.name, this.coreProgram);
1458
+ const { remaining, antProgram } = await this._buildPrimaryNameValidationAccounts(params.name, 'approve');
1459
+ const ix = withRemainingAccounts(await getApprovePrimaryNameInstructionAsync({
1460
+ request: requestPda,
1461
+ initiator: params.initiator,
1462
+ primaryName: primaryNamePda,
1463
+ primaryNameReverse: primaryNameReversePda,
1464
+ nameOwner: this.signer,
1465
+ reverseLookupHash: hashName(params.name),
1466
+ antProgramId: antProgram,
1467
+ }, { programAddress: this.coreProgram }), remaining);
1468
+ const sig = await this.sendTransaction([ix]);
1469
+ return { id: sig };
1470
+ }
1471
+ // =========================================
1472
+ // Vault release (ario-core)
1473
+ // =========================================
1474
+ /** Release tokens from an unlocked vault back to the owner. */
1475
+ async releaseVault(params, _options) {
1476
+ const mint = await this.getMint();
1477
+ const [vaultPda] = await getVaultPDA(this.signer.address, BigInt(params.vaultId), this.coreProgram);
1478
+ const vaultATA = await getAssociatedTokenAddressKit(mint, vaultPda, true);
1479
+ const ownerATA = await getAssociatedTokenAddressKit(mint, this.signer.address);
1480
+ const ix = await getReleaseVaultInstructionAsync(await this.withCoreDefaults({
1481
+ vault: vaultPda,
1482
+ vaultTokenAccount: vaultATA,
1483
+ ownerTokenAccount: ownerATA,
1484
+ owner: this.signer,
1485
+ }), { programAddress: this.coreProgram });
1486
+ const sig = await this.sendTransaction([ix]);
1487
+ return { id: sig };
1488
+ }
1489
+ // =========================================
1490
+ // Close expired primary name request (ario-core)
1491
+ // =========================================
1492
+ /** Close an expired primary name request (permissionless — anyone can call). */
1493
+ async closeExpiredRequest(params, _options) {
1494
+ const initiatorPubkey = address(params.initiator);
1495
+ const [requestPda] = await getPrimaryNameRequestPDA(initiatorPubkey, this.coreProgram);
1496
+ const ix = getCloseExpiredRequestInstruction({
1497
+ request: requestPda,
1498
+ initiator: initiatorPubkey,
1499
+ payer: this.signer,
1500
+ }, { programAddress: this.coreProgram });
1501
+ const sig = await this.sendTransaction([ix]);
1502
+ return { id: sig };
1503
+ }
1504
+ // =========================================
1505
+ // Withdrawal claim (ario-gar)
1506
+ // =========================================
1507
+ /** Claim tokens from a completed withdrawal (after lock period). */
1508
+ async claimWithdrawal(params, _options) {
1509
+ const garConfig = await this.getGarConfig();
1510
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, BigInt(params.withdrawalId), this.garProgram);
1511
+ const ownerATA = await getAssociatedTokenAddressKit(garConfig.mint, this.signer.address);
1512
+ const ix = await getClaimWithdrawalInstructionAsync(await this.withGarDefaults({
1513
+ withdrawal: withdrawalPda,
1514
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1515
+ ownerTokenAccount: ownerATA,
1516
+ owner: this.signer,
1517
+ }), { programAddress: this.garProgram });
1518
+ const sig = await this.sendTransaction([ix], 1_000_000);
1519
+ return { id: sig };
1520
+ }
1521
+ // =========================================
1522
+ // Claim delegation from leaving gateway (ario-gar)
1523
+ // =========================================
1524
+ /** Claim delegated stake from a gateway that is leaving the network. */
1525
+ async claimDelegateFromLeavingGateway(params, _options) {
1526
+ const gateway = address(params.gatewayAddress);
1527
+ const [gatewayPda] = await getGatewayPDA(gateway, this.garProgram);
1528
+ const [delegationPda] = await getDelegationPDA(gateway, this.signer.address, this.garProgram);
1529
+ const nextId = await this.getNextWithdrawalId(this.signer.address);
1530
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, nextId, this.garProgram);
1531
+ // The on-chain handler is permissionless since `af38a40` (delegator +
1532
+ // payer split — anyone can crank). The IDL exposes both fields:
1533
+ // `delegator: Address` (no signature, just the seeds-derivation key)
1534
+ // and `payer: Signer` (covers rent on the init_if_needed withdrawal
1535
+ // counter + the new withdrawal account). The SDK's primary self-
1536
+ // claim path passes the signer for both roles; cranker callers can
1537
+ // pass distinct addresses by adding a `payer?` param to this method
1538
+ // (out of scope here — feature gap; tracked in
1539
+ // docs/E2E_TEST_COVERAGE_PLAN.md Phase 3.3).
1540
+ const ix = await getClaimDelegateFromLeavingGatewayInstructionAsync({
1541
+ gateway: gatewayPda,
1542
+ delegation: delegationPda,
1543
+ withdrawal: withdrawalPda,
1544
+ delegator: this.signer.address,
1545
+ payer: this.signer,
1546
+ }, { programAddress: this.garProgram });
1547
+ const sig = await this.sendTransaction([ix], 1_000_000);
1548
+ return { id: sig };
1549
+ }
1550
+ // =========================================
1551
+ // Delegation allowlist (ario-gar)
1552
+ // =========================================
1553
+ /** Add an address to the gateway's delegation allowlist. */
1554
+ async allowDelegate(params, _options) {
1555
+ const ix = await getAllowDelegateInstructionAsync({
1556
+ delegate: address(params.delegate),
1557
+ operator: this.signer,
1558
+ }, { programAddress: this.garProgram });
1559
+ const sig = await this.sendTransaction([ix], 1_000_000);
1560
+ return { id: sig };
1561
+ }
1562
+ /** Remove an address from the gateway's delegation allowlist. */
1563
+ async disallowDelegate(params, _options) {
1564
+ const ix = await getDisallowDelegateInstructionAsync({
1565
+ delegate: address(params.delegate),
1566
+ operator: this.signer,
1567
+ }, { programAddress: this.garProgram });
1568
+ const sig = await this.sendTransaction([ix], 1_000_000);
1569
+ return { id: sig };
1570
+ }
1571
+ /** Enable or disable the delegation allowlist for the gateway. */
1572
+ async setAllowlistEnabled(params, _options) {
1573
+ const ix = await getSetAllowlistEnabledInstructionAsync(await this.withGarDefaults({
1574
+ operator: this.signer,
1575
+ enabled: params.enabled,
1576
+ }), { programAddress: this.garProgram });
1577
+ const sig = await this.sendTransaction([ix], 1_000_000);
1578
+ return { id: sig };
1579
+ }
1580
+ // =========================================
1581
+ // Buy returned name (ario-arns)
1582
+ // =========================================
1583
+ /**
1584
+ * Buy a name from the returned name auction (Dutch auction with premium).
1585
+ *
1586
+ * Phase 4: now dispatches on `params.fundFrom`. Note that for
1587
+ * `buyReturnedName`, only the protocol share funds from the chosen source;
1588
+ * the initiator share is always a direct buyer-ATA → initiator-ATA SPL
1589
+ * transfer (matches the on-chain `_from_*` variant behavior).
1590
+ */
1591
+ async buyReturnedName(params, _options) {
1592
+ const arnsConfig = await this.getArnsConfig();
1593
+ const buyerATA = await getAssociatedTokenAddressKit(arnsConfig.mint, this.signer.address);
1594
+ const antPubkey = address(params.processId);
1595
+ // Read the ReturnedName to find the original initiator (gets the premium).
1596
+ const [returnedNamePda] = await getReturnedNamePDA(params.name, this.arnsProgram);
1597
+ const returnedNameAccount = await fetchEncodedAccount(this.rpc, returnedNamePda, { commitment: this.commitment });
1598
+ if (!returnedNameAccount.exists) {
1599
+ throw new Error(`Returned name not found: ${params.name}`);
1600
+ }
1601
+ const returnedNameData = Buffer.from(returnedNameAccount.data);
1602
+ const nameLen = returnedNameData.readUInt32LE(8);
1603
+ const initiatorOffset = 8 + 4 + nameLen + 32;
1604
+ const initiator = addressDecoder.decode(returnedNameData.subarray(initiatorOffset, initiatorOffset + 32));
1605
+ const initiatorATA = await getAssociatedTokenAddressKit(arnsConfig.mint, initiator);
1606
+ const [arnsRecord] = await getArnsRecordPDA(params.name, this.arnsProgram);
1607
+ const buyParams = {
1608
+ name: params.name,
1609
+ purchaseType: params.type === 'permabuy' ? PurchaseType.Permabuy : PurchaseType.Lease,
1610
+ years: params.years ?? 1,
1611
+ ant: antPubkey,
1612
+ };
1613
+ let ix;
1614
+ if (!params.fundFrom ||
1615
+ params.fundFrom === 'balance' ||
1616
+ params.fundFrom === 'turbo') {
1617
+ ix = await getBuyReturnedNameInstructionAsync(await this.withArnsDefaults({
1618
+ arnsRecord,
1619
+ returnedName: returnedNamePda,
1620
+ buyerTokenAccount: buyerATA,
1621
+ protocolTokenAccount: arnsConfig.treasury,
1622
+ initiatorTokenAccount: initiatorATA,
1623
+ buyer: this.signer,
1624
+ params: buyParams,
1625
+ }), { programAddress: this.arnsProgram });
1626
+ }
1627
+ else {
1628
+ const garConfig = await this.getGarConfig();
1629
+ const [garSettings] = await getGarSettingsPDA(this.garProgram);
1630
+ const sharedReturnedBase = {
1631
+ config: await this.arnsConfigPda(),
1632
+ demandFactor: await this.demandFactorPda(),
1633
+ returnedName: returnedNamePda,
1634
+ arnsRecord,
1635
+ nameRegistry: await this.nameRegistryPda(),
1636
+ buyerTokenAccount: buyerATA,
1637
+ initiatorTokenAccount: initiatorATA,
1638
+ garSettings,
1639
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1640
+ protocolTokenAccount: arnsConfig.treasury,
1641
+ buyer: this.signer,
1642
+ garProgram: this.garProgram,
1643
+ params: buyParams,
1644
+ };
1645
+ if (params.fundFrom === 'stakes' && params.gatewayAddress) {
1646
+ const gatewayAddr = address(params.gatewayAddress);
1647
+ const [gatewayPda] = await getGatewayPDA(gatewayAddr, this.garProgram);
1648
+ if (params.fundAsOperator) {
1649
+ ix = await getBuyReturnedNameFromOperatorStakeInstructionAsync({ ...sharedReturnedBase, gateway: gatewayPda }, { programAddress: this.arnsProgram });
1650
+ }
1651
+ else {
1652
+ const [delegationPda] = await getDelegationPDA(gatewayAddr, this.signer.address, this.garProgram);
1653
+ ix = await getBuyReturnedNameFromDelegationInstructionAsync({
1654
+ ...sharedReturnedBase,
1655
+ gateway: gatewayPda,
1656
+ delegation: delegationPda,
1657
+ }, { programAddress: this.arnsProgram });
1658
+ }
1659
+ }
1660
+ else if (params.fundFrom === 'withdrawal' &&
1661
+ params.withdrawalId !== undefined) {
1662
+ const [withdrawalPda] = await getWithdrawalPDA(this.signer.address, params.withdrawalId, this.garProgram);
1663
+ ix = await getBuyReturnedNameFromWithdrawalInstructionAsync({ ...sharedReturnedBase, withdrawal: withdrawalPda }, { programAddress: this.arnsProgram });
1664
+ }
1665
+ else if (params.fundFrom === 'plan' || params.fundFrom === 'any') {
1666
+ // Returned-name pricing is dynamic (Dutch auction premium); we trust
1667
+ // explicit caller-supplied sources here and skip auto-discovery if
1668
+ // sources is provided. For 'any' without sources, we fall back to a
1669
+ // best-effort estimate using the plain registration fee — caller can
1670
+ // always retry with explicit sources on FundingPlanAmountMismatch.
1671
+ const cost = await this._estimateBuyNameCost({
1672
+ name: params.name,
1673
+ purchaseType: buyParams.purchaseType,
1674
+ years: buyParams.years,
1675
+ });
1676
+ const plan = await this._resolveFundingPlan(params, cost);
1677
+ const { remainingAccounts, withdrawalCounter, residueVaultCount } = await this._materializeFundingPlan(params, plan);
1678
+ ix = await getBuyReturnedNameFromFundingPlanInstructionAsync({
1679
+ ...sharedReturnedBase,
1680
+ payerTokenAccount: plan.hasBalanceSource ? buyerATA : undefined,
1681
+ withdrawalCounter,
1682
+ sources: plan.sources.map(toGeneratedFundingSourceSpec),
1683
+ discountAccountCount: 0,
1684
+ residueVaultCount,
1685
+ }, { programAddress: this.arnsProgram });
1686
+ if (remainingAccounts.length > 0)
1687
+ ix = withRemainingAccounts(ix, remainingAccounts);
1688
+ }
1689
+ else {
1690
+ throw new Error(`unsupported fundFrom mode '${params.fundFrom}' for buyReturnedName`);
1691
+ }
1692
+ }
1693
+ // Sprint 4 / ADR-016: bundle ant.sync_attributes after the buy so the
1694
+ // Attributes plugin reflects the new record holder. assetOverride =
1695
+ // antPubkey because the ArnsRecord PDA is created by buy_returned_name
1696
+ // and doesn't exist on-chain at SDK build time.
1697
+ const syncIx = await this._buildSyncAttributesIxIfOwner(params.name, antPubkey);
1698
+ const sig = await this.sendTransaction(syncIx ? [ix, syncIx] : [ix]);
1699
+ return { id: sig };
1700
+ }
1701
+ // =========================================
1702
+ // Name management (ario-arns)
1703
+ // =========================================
1704
+ /** Reassign an ArNS name to a different ANT. */
1705
+ async reassignName(params, _options) {
1706
+ const newAnt = address(params.processId);
1707
+ const [arnsRecord] = await getArnsRecordPDA(params.name, this.arnsProgram);
1708
+ const ix = await getReassignNameInstructionAsync(await this.withArnsDefaults({
1709
+ arnsRecord,
1710
+ caller: this.signer,
1711
+ newAnt,
1712
+ }), { programAddress: this.arnsProgram });
1713
+ // The on-chain handler validates the new ANT via `remaining_accounts[0]`
1714
+ // (must be MPL-Core-owned + key matches `newAnt`). The codama builder
1715
+ // for reassign_name only encodes the typed accounts above, so we tag
1716
+ // the new ANT asset on as a readonly remaining account.
1717
+ //
1718
+ // Sprint 4 / ADR-016: post-reassign the record points at `newAnt`. The
1719
+ // bundled `sync_attributes` MUST target `newAnt` — without the
1720
+ // override, the helper would read the on-chain record at SDK build
1721
+ // time (still pointing at the OLD asset), build a sync ix for the
1722
+ // OLD asset, and fail the post-reassign `record.ant == asset.key()`
1723
+ // check. The owner-check inside _buildSyncAttributesIxIfOwner runs
1724
+ // against `newAnt`, so the bundle fires only when the reassign
1725
+ // caller is also the new ANT's holder; otherwise the ix is sent
1726
+ // alone and the new owner runs `syncAttributes()` later (BD-095/096).
1727
+ const syncIx = await this._buildSyncAttributesIxIfOwner(params.name, newAnt);
1728
+ const reassignWithMetas = withRemainingAccounts(ix, [
1729
+ { address: newAnt, role: AccountRole.READONLY },
1730
+ ]);
1731
+ const sig = await this.sendTransaction(syncIx ? [reassignWithMetas, syncIx] : [reassignWithMetas]);
1732
+ return { id: sig };
1733
+ }
1734
+ /** Release a permabuy name back to the registry (creates a returned name auction). */
1735
+ async releaseName(params, _options) {
1736
+ const [returnedNamePda] = await getReturnedNamePDA(params.name, this.arnsProgram);
1737
+ const [arnsRecord] = await getArnsRecordPDA(params.name, this.arnsProgram);
1738
+ const ix = await getReleaseNameInstructionAsync(await this.withArnsDefaults({
1739
+ arnsRecord,
1740
+ returnedName: returnedNamePda,
1741
+ caller: this.signer,
1742
+ }), { programAddress: this.arnsProgram });
1743
+ // Note: no sync_attributes bundle here — release_name closes the
1744
+ // ArnsRecord PDA, so a follow-up sync would fail PDA validation. The
1745
+ // asset's stale traits remain pointing at the released name; off-chain
1746
+ // resolvers should treat ArnsRecord as the source of truth and ignore
1747
+ // a "ArNS Name" trait that no longer resolves.
1748
+ const sig = await this.sendTransaction([ix]);
1749
+ return { id: sig };
1750
+ }
1751
+ // =========================================
1752
+ // Epoch cranking (ario-gar) — permissionless
1753
+ // =========================================
1754
+ /**
1755
+ * Create a new epoch. Permissionless — anyone can call when the next
1756
+ * epoch's start time has arrived.
1757
+ */
1758
+ async createEpoch(_options) {
1759
+ const garConfig = await this.getGarConfig();
1760
+ const [epochSettingsPda] = await getEpochSettingsPDA(this.garProgram);
1761
+ const settingsAccount = await fetchEncodedAccount(this.rpc, epochSettingsPda, { commitment: this.commitment });
1762
+ if (!settingsAccount.exists)
1763
+ throw new Error('EpochSettings not found');
1764
+ const settings = deserializeEpochSettingsFull(Buffer.from(settingsAccount.data));
1765
+ const epochIndex = settings.currentEpochIndex;
1766
+ const [epochPda] = await getEpochPDA(epochIndex, this.garProgram);
1767
+ const ix = await getCreateEpochInstructionAsync(await this.withGarDefaults({
1768
+ epoch: epochPda,
1769
+ protocolTokenAccount: garConfig.protocolTokenAccount,
1770
+ payer: this.signer,
1771
+ }), { programAddress: this.garProgram });
1772
+ const sig = await this.sendTransaction([ix], 1_000_000);
1773
+ return { id: sig };
1774
+ }
1775
+ /**
1776
+ * Tally weights for a batch of gateways. Permissionless — call repeatedly
1777
+ * until all gateways are processed. Pass gateway PDAs as
1778
+ * `gatewayAccounts`; they're appended as `remaining_accounts`.
1779
+ */
1780
+ async tallyWeights(params, _options) {
1781
+ const ix = await getTallyWeightsInstructionAsync(await this.withGarDefaults({
1782
+ payer: this.signer,
1783
+ epochIndex: BigInt(params.epochIndex),
1784
+ }), { programAddress: this.garProgram });
1785
+ const remaining = params.gatewayAccounts.map((address) => ({
1786
+ address,
1787
+ role: AccountRole.WRITABLE,
1788
+ }));
1789
+ const sig = await this.sendTransaction([withRemainingAccounts(ix, remaining)], 1_000_000);
1790
+ return { id: sig };
1791
+ }
1792
+ /**
1793
+ * Prescribe observers and names for an epoch. Permissionless — call after
1794
+ * weights are tallied. Gateway PDAs are appended as `remaining_accounts`,
1795
+ * and the optional `nameRegistryAccount` (must be last) enables the name
1796
+ * prescription leg.
1797
+ */
1798
+ async prescribeEpoch(params, _options) {
1799
+ const ix = await getPrescribeEpochInstructionAsync(await this.withGarDefaults({
1800
+ payer: this.signer,
1801
+ epochIndex: BigInt(params.epochIndex),
1802
+ }), { programAddress: this.garProgram });
1803
+ const remaining = params.gatewayAccounts.map((address) => ({
1804
+ address,
1805
+ role: AccountRole.READONLY,
1806
+ }));
1807
+ if (params.nameRegistryAccount) {
1808
+ remaining.push({
1809
+ address: params.nameRegistryAccount,
1810
+ role: AccountRole.READONLY,
1811
+ });
1812
+ }
1813
+ const sig = await this.sendTransaction([withRemainingAccounts(ix, remaining)], 1_000_000);
1814
+ return { id: sig };
1815
+ }
1816
+ /**
1817
+ * Distribute rewards for a completed epoch in batches. Permissionless —
1818
+ * call after epoch ends. Gateway PDAs appended as `remaining_accounts`.
1819
+ */
1820
+ async distributeEpoch(params, _options) {
1821
+ const garConfig = await this.getGarConfig();
1822
+ const ix = await getDistributeEpochInstructionAsync(await this.withGarDefaults({
1823
+ protocolTokenAccount: garConfig.protocolTokenAccount,
1824
+ stakeTokenAccount: garConfig.stakeTokenAccount,
1825
+ payer: this.signer,
1826
+ epochIndex: BigInt(params.epochIndex),
1827
+ }), { programAddress: this.garProgram });
1828
+ const remaining = params.gatewayAccounts.map((address) => ({
1829
+ address,
1830
+ role: AccountRole.WRITABLE,
1831
+ }));
1832
+ const sig = await this.sendTransaction([withRemainingAccounts(ix, remaining)], 1_000_000);
1833
+ return { id: sig };
1834
+ }
1835
+ /**
1836
+ * Close an old epoch account and reclaim rent. Permissionless — call after
1837
+ * the epoch is distributed and at least 7 epochs have passed.
1838
+ */
1839
+ async closeEpoch(params, _options) {
1840
+ const ix = await getCloseEpochInstructionAsync(await this.withGarDefaults({
1841
+ payer: this.signer,
1842
+ epochIndex: BigInt(params.epochIndex),
1843
+ }), { programAddress: this.garProgram });
1844
+ const sig = await this.sendTransaction([ix]);
1845
+ return { id: sig };
1846
+ }
1847
+ // =========================================
1848
+ // Cranker helpers
1849
+ // =========================================
1850
+ /**
1851
+ * Get gateway PDAs for a batch starting at registryIndex.
1852
+ * Reads the GatewayRegistry and derives PDAs for the next `batchSize`
1853
+ * active gateways.
1854
+ */
1855
+ async getRegistryGatewayPDAs(startIndex, batchSize) {
1856
+ const [registryPda] = await getGatewayRegistryPDA(this.garProgram);
1857
+ const registryAccount = await fetchEncodedAccount(this.rpc, registryPda, {
1858
+ commitment: this.commitment,
1859
+ });
1860
+ if (!registryAccount.exists)
1861
+ return [];
1862
+ const registryData = Buffer.from(registryAccount.data);
1863
+ const count = registryData.readUInt32LE(40); // 8 disc + 32 authority
1864
+ const slotsOffset = 48; // 8 + 32 + 4 + 4
1865
+ // GatewaySlot: address(32) + composite_weight(8) + start_timestamp(8)
1866
+ // + status(1) + _padding(7) = 56 bytes.
1867
+ const SLOT_STRIDE = 56;
1868
+ const pdas = [];
1869
+ const end = Math.min(startIndex + batchSize, count);
1870
+ const zero = '11111111111111111111111111111111';
1871
+ for (let i = startIndex; i < end && i < 3000; i++) {
1872
+ const slotOffset = slotsOffset + i * SLOT_STRIDE;
1873
+ const addr = addressDecoder.decode(registryData.subarray(slotOffset, slotOffset + 32));
1874
+ if (addr === zero)
1875
+ continue;
1876
+ const [gatewayPda] = await getGatewayPDA(addr, this.garProgram);
1877
+ pdas.push(gatewayPda);
1878
+ }
1879
+ return pdas;
1880
+ }
1881
+ /** Get ALL active gateway PDAs from the registry. */
1882
+ async getAllRegistryGatewayPDAs() {
1883
+ const [registryPda] = await getGatewayRegistryPDA(this.garProgram);
1884
+ const registryAccount = await fetchEncodedAccount(this.rpc, registryPda, {
1885
+ commitment: this.commitment,
1886
+ });
1887
+ if (!registryAccount.exists)
1888
+ return [];
1889
+ const registryData = Buffer.from(registryAccount.data);
1890
+ const count = registryData.readUInt32LE(40);
1891
+ const slotsOffset = 48;
1892
+ const SLOT_STRIDE = 56;
1893
+ const pdas = [];
1894
+ const zero = '11111111111111111111111111111111';
1895
+ for (let i = 0; i < count && i < 3000; i++) {
1896
+ const slotOffset = slotsOffset + i * SLOT_STRIDE;
1897
+ const addr = addressDecoder.decode(registryData.subarray(slotOffset, slotOffset + 32));
1898
+ if (addr === zero)
1899
+ continue;
1900
+ const [gatewayPda] = await getGatewayPDA(addr, this.garProgram);
1901
+ pdas.push(gatewayPda);
1902
+ }
1903
+ return pdas;
1904
+ }
1905
+ /**
1906
+ * Read the raw epoch account data for cranker state inspection.
1907
+ * Returns null if the epoch account doesn't exist yet.
1908
+ */
1909
+ async getEpochRaw(epochIndex) {
1910
+ const [epochPda] = await getEpochPDA(epochIndex, this.garProgram);
1911
+ const account = await fetchEncodedAccount(this.rpc, epochPda, {
1912
+ commitment: this.commitment,
1913
+ });
1914
+ if (!account.exists)
1915
+ return null;
1916
+ try {
1917
+ return this.fetchEpochRawFields(Buffer.from(account.data));
1918
+ }
1919
+ catch {
1920
+ return null;
1921
+ }
1922
+ }
1923
+ /**
1924
+ * Parse raw epoch account data for cranker-relevant fields.
1925
+ * Offsets match the Rust Epoch zero-copy struct (repr(C)).
1926
+ *
1927
+ * Layout after 8-byte discriminator:
1928
+ * [8 epoch_index][8 start_ts][8 end_ts][8 total_eligible][8 per_gw]
1929
+ * [8 per_obs][8 reward_rate][8 weight_lo][8 weight_hi][32 hashchain]
1930
+ * [4 active_gw_count][4 dist_idx][4 tally_idx]
1931
+ * [1 observer_count][1 name_count][1 obs_submitted][1 rewards_dist]
1932
+ * [1 weights_tallied][1 prescriptions_done][1 bump][1 _pad1]
1933
+ * [6000 failure_counts][1600 prescribed_observers]
1934
+ * [1600 prescribed_observer_gateways][64 prescribed_names]
1935
+ * [7 has_observed][5 _pad2]
1936
+ */
1937
+ fetchEpochRawFields(data) {
1938
+ const base = 8;
1939
+ const endTimestamp = Number(data.readBigInt64LE(base + 16));
1940
+ const activeGatewayCount = data.readUInt32LE(base + 104);
1941
+ const distributionIndex = data.readUInt32LE(base + 108);
1942
+ const tallyIndex = data.readUInt32LE(base + 112);
1943
+ const rewardsDistributed = data.readUInt8(base + 119);
1944
+ const weightsTallied = data.readUInt8(base + 120);
1945
+ const prescriptionsDone = data.readUInt8(base + 121);
1946
+ return {
1947
+ tallyIndex,
1948
+ distributionIndex,
1949
+ weightsTallied,
1950
+ prescriptionsDone,
1951
+ rewardsDistributed,
1952
+ activeGatewayCount,
1953
+ endTimestamp,
1954
+ };
1955
+ }
1956
+ }