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

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 (547) hide show
  1. package/README.md +143 -23
  2. package/lib/esm/cli/cli.js +200 -40
  3. package/lib/esm/cli/commands/antCommands.js +40 -14
  4. package/lib/esm/cli/commands/arnsPurchaseCommands.js +46 -7
  5. package/lib/esm/cli/commands/escrowCommands.js +208 -0
  6. package/lib/esm/cli/commands/gatewayWriteCommands.js +132 -22
  7. package/lib/esm/cli/commands/pruneCommands.js +166 -0
  8. package/lib/esm/cli/commands/readCommands.js +10 -2
  9. package/lib/esm/cli/commands/transfer.js +6 -6
  10. package/lib/esm/cli/options.js +141 -2
  11. package/lib/esm/cli/utils.js +280 -39
  12. package/lib/esm/common/ant-registry.js +25 -3
  13. package/lib/esm/common/ant.js +50 -5
  14. package/lib/esm/common/contracts/ao-process.js +4 -6
  15. package/lib/esm/common/io.js +41 -0
  16. package/lib/esm/common/marketplace.js +24 -79
  17. package/lib/esm/constants.js +13 -1
  18. package/lib/esm/solana/ant-readable.js +387 -0
  19. package/lib/esm/solana/ant-registry-readable.js +118 -0
  20. package/lib/esm/solana/ant-registry-writeable.js +457 -0
  21. package/lib/esm/solana/ant-writeable.js +352 -0
  22. package/lib/esm/solana/ata.js +55 -0
  23. package/lib/esm/solana/canonical-message.js +92 -0
  24. package/lib/esm/solana/clusters.js +62 -0
  25. package/lib/esm/solana/constants.js +130 -0
  26. package/lib/esm/solana/delegation-math.js +63 -0
  27. package/lib/esm/solana/deserialize.js +1182 -0
  28. package/lib/esm/solana/escrow.js +797 -0
  29. package/lib/esm/solana/events.js +210 -0
  30. package/lib/esm/solana/funding-plan.js +682 -0
  31. package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +21 -0
  32. package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +21 -0
  33. package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +21 -0
  34. package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +21 -0
  35. package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +21 -0
  36. package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +21 -0
  37. package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +21 -0
  38. package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +21 -0
  39. package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +21 -0
  40. package/lib/esm/solana/generated/ant/events/index.js +16 -0
  41. package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +21 -0
  42. package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +21 -0
  43. package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +21 -0
  44. package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +21 -0
  45. package/lib/esm/solana/generated/ant/events/recordSetEvent.js +21 -0
  46. package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +21 -0
  47. package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +21 -0
  48. package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +21 -0
  49. package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +21 -0
  50. package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +21 -0
  51. package/lib/esm/solana/generated/ant-escrow/events/index.js +5 -0
  52. package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +21 -0
  53. package/lib/esm/solana/generated/arns/events/index.js +13 -0
  54. package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +21 -0
  55. package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +21 -0
  56. package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +21 -0
  57. package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +21 -0
  58. package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +21 -0
  59. package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +21 -0
  60. package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +21 -0
  61. package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +21 -0
  62. package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +21 -0
  63. package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +21 -0
  64. package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +21 -0
  65. package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +21 -0
  66. package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +21 -0
  67. package/lib/esm/solana/generated/core/events/index.js +14 -0
  68. package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +21 -0
  69. package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +21 -0
  70. package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +21 -0
  71. package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +21 -0
  72. package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +21 -0
  73. package/lib/esm/solana/generated/core/events/transferEvent.js +21 -0
  74. package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +21 -0
  75. package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +21 -0
  76. package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +21 -0
  77. package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +21 -0
  78. package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +21 -0
  79. package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +21 -0
  80. package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +21 -0
  81. package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +21 -0
  82. package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +21 -0
  83. package/lib/esm/solana/generated/gar/events/delegationEvent.js +21 -0
  84. package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +21 -0
  85. package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +21 -0
  86. package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +21 -0
  87. package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +21 -0
  88. package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +21 -0
  89. package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +21 -0
  90. package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +21 -0
  91. package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +21 -0
  92. package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +21 -0
  93. package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +21 -0
  94. package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +21 -0
  95. package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +21 -0
  96. package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +21 -0
  97. package/lib/esm/solana/generated/gar/events/index.js +31 -0
  98. package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +21 -0
  99. package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +21 -0
  100. package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +21 -0
  101. package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +21 -0
  102. package/lib/esm/solana/generated/gar/events/redelegationEvent.js +21 -0
  103. package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +21 -0
  104. package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +21 -0
  105. package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +21 -0
  106. package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +21 -0
  107. package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +21 -0
  108. package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +21 -0
  109. package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +21 -0
  110. package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +42 -0
  111. package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +42 -0
  112. package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +45 -0
  113. package/lib/esm/solana/generated/mpl-core/accounts/index.js +12 -0
  114. package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +45 -0
  115. package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +42 -0
  116. package/lib/esm/solana/generated/mpl-core/errors/index.js +8 -0
  117. package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +136 -0
  118. package/lib/esm/solana/generated/mpl-core/index.js +8 -0
  119. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +53 -0
  120. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +53 -0
  121. package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +53 -0
  122. package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +53 -0
  123. package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +53 -0
  124. package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +53 -0
  125. package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +49 -0
  126. package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +49 -0
  127. package/lib/esm/solana/generated/mpl-core/instructions/collect.js +42 -0
  128. package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +50 -0
  129. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +53 -0
  130. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +53 -0
  131. package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +53 -0
  132. package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +53 -0
  133. package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +53 -0
  134. package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +56 -0
  135. package/lib/esm/solana/generated/mpl-core/instructions/index.js +40 -0
  136. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +53 -0
  137. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +53 -0
  138. package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +53 -0
  139. package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +53 -0
  140. package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +53 -0
  141. package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +53 -0
  142. package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +49 -0
  143. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +53 -0
  144. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +45 -0
  145. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +53 -0
  146. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +52 -0
  147. package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +53 -0
  148. package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +53 -0
  149. package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +53 -0
  150. package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +53 -0
  151. package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +53 -0
  152. package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +53 -0
  153. package/lib/esm/solana/generated/mpl-core/program-address.js +1 -0
  154. package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +17 -0
  155. package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +17 -0
  156. package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +17 -0
  157. package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +17 -0
  158. package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +17 -0
  159. package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +18 -0
  160. package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +18 -0
  161. package/lib/esm/solana/generated/mpl-core/types/appData.js +18 -0
  162. package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +18 -0
  163. package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +18 -0
  164. package/lib/esm/solana/generated/mpl-core/types/attribute.js +17 -0
  165. package/lib/esm/solana/generated/mpl-core/types/attributes.js +18 -0
  166. package/lib/esm/solana/generated/mpl-core/types/authority.js +24 -0
  167. package/lib/esm/solana/generated/mpl-core/types/autograph.js +18 -0
  168. package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +17 -0
  169. package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +17 -0
  170. package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +17 -0
  171. package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +17 -0
  172. package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +18 -0
  173. package/lib/esm/solana/generated/mpl-core/types/creator.js +17 -0
  174. package/lib/esm/solana/generated/mpl-core/types/dataSection.js +18 -0
  175. package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +18 -0
  176. package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +17 -0
  177. package/lib/esm/solana/generated/mpl-core/types/dataState.js +23 -0
  178. package/lib/esm/solana/generated/mpl-core/types/edition.js +17 -0
  179. package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +17 -0
  180. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +25 -0
  181. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +25 -0
  182. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +25 -0
  183. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +24 -0
  184. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +28 -0
  185. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +25 -0
  186. package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +18 -0
  187. package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +24 -0
  188. package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +25 -0
  189. package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +17 -0
  190. package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +17 -0
  191. package/lib/esm/solana/generated/mpl-core/types/groups.js +17 -0
  192. package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +18 -0
  193. package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +17 -0
  194. package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +26 -0
  195. package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +17 -0
  196. package/lib/esm/solana/generated/mpl-core/types/index.js +89 -0
  197. package/lib/esm/solana/generated/mpl-core/types/key.js +28 -0
  198. package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +18 -0
  199. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +18 -0
  200. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +18 -0
  201. package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +18 -0
  202. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +18 -0
  203. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +18 -0
  204. package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +25 -0
  205. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +18 -0
  206. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +18 -0
  207. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +18 -0
  208. package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +17 -0
  209. package/lib/esm/solana/generated/mpl-core/types/oracle.js +18 -0
  210. package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +18 -0
  211. package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +18 -0
  212. package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +25 -0
  213. package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +17 -0
  214. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +17 -0
  215. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +17 -0
  216. package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +17 -0
  217. package/lib/esm/solana/generated/mpl-core/types/plugin.js +25 -0
  218. package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +18 -0
  219. package/lib/esm/solana/generated/mpl-core/types/pluginType.js +40 -0
  220. package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +18 -0
  221. package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +25 -0
  222. package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +17 -0
  223. package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +17 -0
  224. package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +17 -0
  225. package/lib/esm/solana/generated/mpl-core/types/royalties.js +18 -0
  226. package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +24 -0
  227. package/lib/esm/solana/generated/mpl-core/types/seed.js +24 -0
  228. package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +17 -0
  229. package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +24 -0
  230. package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +17 -0
  231. package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +17 -0
  232. package/lib/esm/solana/generated/mpl-core/types/updateType.js +24 -0
  233. package/lib/esm/solana/generated/mpl-core/types/validationResult.js +25 -0
  234. package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +24 -0
  235. package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +18 -0
  236. package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +17 -0
  237. package/lib/esm/solana/index.js +85 -0
  238. package/lib/esm/solana/instruction.js +24 -0
  239. package/lib/esm/solana/io-readable.js +1752 -0
  240. package/lib/esm/solana/io-writeable.js +2215 -0
  241. package/lib/esm/solana/json-rpc.js +74 -0
  242. package/lib/esm/solana/metadata.js +66 -0
  243. package/lib/esm/solana/mpl-core.js +142 -0
  244. package/lib/esm/solana/pda.js +317 -0
  245. package/lib/esm/solana/send.js +117 -0
  246. package/lib/esm/solana/spawn-ant.js +210 -0
  247. package/lib/esm/solana/types.js +1 -0
  248. package/lib/esm/types/ant.js +19 -7
  249. package/lib/esm/types/io.js +8 -1
  250. package/lib/esm/utils/ant.js +1 -0
  251. package/lib/esm/utils/ao.js +1 -0
  252. package/lib/esm/version.js +1 -1
  253. package/lib/types/cli/commands/antCommands.d.ts +2 -7
  254. package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +12 -0
  255. package/lib/types/cli/commands/escrowCommands.d.ts +62 -0
  256. package/lib/types/cli/commands/pruneCommands.d.ts +31 -0
  257. package/lib/types/cli/commands/readCommands.d.ts +2 -0
  258. package/lib/types/cli/options.d.ts +112 -0
  259. package/lib/types/cli/types.d.ts +6 -0
  260. package/lib/types/cli/utils.d.ts +43 -5
  261. package/lib/types/common/ant-registry.d.ts +41 -0
  262. package/lib/types/common/ant.d.ts +35 -2
  263. package/lib/types/common/contracts/ao-process.d.ts +2 -16
  264. package/lib/types/common/io.d.ts +42 -2
  265. package/lib/types/common/marketplace.d.ts +2 -14
  266. package/lib/types/constants.d.ts +11 -1
  267. package/lib/types/solana/ant-readable.d.ts +121 -0
  268. package/lib/types/solana/ant-registry-readable.d.ts +90 -0
  269. package/lib/types/solana/ant-registry-writeable.d.ts +234 -0
  270. package/lib/types/solana/ant-writeable.d.ts +162 -0
  271. package/lib/types/solana/ata.d.ts +29 -0
  272. package/lib/types/solana/canonical-message.d.ts +82 -0
  273. package/lib/types/solana/clusters.d.ts +62 -0
  274. package/lib/types/solana/constants.d.ts +103 -0
  275. package/lib/types/solana/delegation-math.d.ts +20 -0
  276. package/lib/types/solana/deserialize.d.ts +440 -0
  277. package/lib/types/solana/escrow.d.ts +403 -0
  278. package/lib/types/solana/events.d.ts +156 -0
  279. package/lib/types/solana/funding-plan.d.ts +210 -0
  280. package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +26 -0
  281. package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +26 -0
  282. package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +28 -0
  283. package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +28 -0
  284. package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +26 -0
  285. package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +26 -0
  286. package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +24 -0
  287. package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +26 -0
  288. package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +26 -0
  289. package/lib/types/solana/generated/ant/events/index.d.ts +15 -0
  290. package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +26 -0
  291. package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +26 -0
  292. package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +28 -0
  293. package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +26 -0
  294. package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +34 -0
  295. package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +30 -0
  296. package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +28 -0
  297. package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +32 -0
  298. package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +36 -0
  299. package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +26 -0
  300. package/lib/types/solana/generated/ant-escrow/events/index.d.ts +4 -0
  301. package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +28 -0
  302. package/lib/types/solana/generated/arns/events/index.d.ts +12 -0
  303. package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +32 -0
  304. package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +34 -0
  305. package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +28 -0
  306. package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +24 -0
  307. package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +28 -0
  308. package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +24 -0
  309. package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +28 -0
  310. package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +26 -0
  311. package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +24 -0
  312. package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +32 -0
  313. package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +32 -0
  314. package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +26 -0
  315. package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +26 -0
  316. package/lib/types/solana/generated/core/events/index.d.ts +13 -0
  317. package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +26 -0
  318. package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +26 -0
  319. package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +30 -0
  320. package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +24 -0
  321. package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +26 -0
  322. package/lib/types/solana/generated/core/events/transferEvent.d.ts +26 -0
  323. package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +28 -0
  324. package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +26 -0
  325. package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +28 -0
  326. package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +26 -0
  327. package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +28 -0
  328. package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +24 -0
  329. package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +26 -0
  330. package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +24 -0
  331. package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +28 -0
  332. package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +28 -0
  333. package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +24 -0
  334. package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +26 -0
  335. package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +26 -0
  336. package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +28 -0
  337. package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +26 -0
  338. package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +24 -0
  339. package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +28 -0
  340. package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +26 -0
  341. package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +24 -0
  342. package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +26 -0
  343. package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +22 -0
  344. package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +26 -0
  345. package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +24 -0
  346. package/lib/types/solana/generated/gar/events/index.d.ts +30 -0
  347. package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +30 -0
  348. package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +28 -0
  349. package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +24 -0
  350. package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +26 -0
  351. package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +30 -0
  352. package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +30 -0
  353. package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +26 -0
  354. package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +28 -0
  355. package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +30 -0
  356. package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +26 -0
  357. package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +28 -0
  358. package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +28 -0
  359. package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +37 -0
  360. package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +37 -0
  361. package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +30 -0
  362. package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +12 -0
  363. package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +30 -0
  364. package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +31 -0
  365. package/lib/types/solana/generated/mpl-core/errors/index.d.ts +8 -0
  366. package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +133 -0
  367. package/lib/types/solana/generated/mpl-core/index.d.ts +8 -0
  368. package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +56 -0
  369. package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +59 -0
  370. package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +60 -0
  371. package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +63 -0
  372. package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +59 -0
  373. package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +63 -0
  374. package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +52 -0
  375. package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +60 -0
  376. package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +39 -0
  377. package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +55 -0
  378. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +58 -0
  379. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +61 -0
  380. package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +77 -0
  381. package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +80 -0
  382. package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +60 -0
  383. package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +63 -0
  384. package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +40 -0
  385. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +56 -0
  386. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +56 -0
  387. package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +60 -0
  388. package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +60 -0
  389. package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +56 -0
  390. package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +60 -0
  391. package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +64 -0
  392. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +59 -0
  393. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +47 -0
  394. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +56 -0
  395. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +62 -0
  396. package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +63 -0
  397. package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +60 -0
  398. package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +66 -0
  399. package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +70 -0
  400. package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +63 -0
  401. package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +67 -0
  402. package/lib/types/solana/generated/mpl-core/program-address.d.ts +7 -0
  403. package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +13 -0
  404. package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +13 -0
  405. package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +13 -0
  406. package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +15 -0
  407. package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +15 -0
  408. package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +22 -0
  409. package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +20 -0
  410. package/lib/types/solana/generated/mpl-core/types/appData.d.ts +20 -0
  411. package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +22 -0
  412. package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +18 -0
  413. package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +16 -0
  414. package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +18 -0
  415. package/lib/types/solana/generated/mpl-core/types/authority.d.ts +29 -0
  416. package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +18 -0
  417. package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +16 -0
  418. package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +13 -0
  419. package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +13 -0
  420. package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +13 -0
  421. package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +28 -0
  422. package/lib/types/solana/generated/mpl-core/types/creator.d.ts +16 -0
  423. package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +20 -0
  424. package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +20 -0
  425. package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +13 -0
  426. package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +16 -0
  427. package/lib/types/solana/generated/mpl-core/types/edition.d.ts +15 -0
  428. package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +15 -0
  429. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +66 -0
  430. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +66 -0
  431. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +64 -0
  432. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +17 -0
  433. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +21 -0
  434. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +59 -0
  435. package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +28 -0
  436. package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +17 -0
  437. package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +86 -0
  438. package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +15 -0
  439. package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +15 -0
  440. package/lib/types/solana/generated/mpl-core/types/groups.d.ts +15 -0
  441. package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +22 -0
  442. package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +16 -0
  443. package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +19 -0
  444. package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +13 -0
  445. package/lib/types/solana/generated/mpl-core/types/index.d.ts +89 -0
  446. package/lib/types/solana/generated/mpl-core/types/key.d.ts +21 -0
  447. package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +24 -0
  448. package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +28 -0
  449. package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +22 -0
  450. package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +20 -0
  451. package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +22 -0
  452. package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +18 -0
  453. package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +31 -0
  454. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +24 -0
  455. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +28 -0
  456. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +22 -0
  457. package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +21 -0
  458. package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +22 -0
  459. package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +26 -0
  460. package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +22 -0
  461. package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +35 -0
  462. package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +13 -0
  463. package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +15 -0
  464. package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +15 -0
  465. package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +13 -0
  466. package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +150 -0
  467. package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +20 -0
  468. package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +33 -0
  469. package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +22 -0
  470. package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +18 -0
  471. package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +15 -0
  472. package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +15 -0
  473. package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +15 -0
  474. package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +22 -0
  475. package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +27 -0
  476. package/lib/types/solana/generated/mpl-core/types/seed.d.ts +36 -0
  477. package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +13 -0
  478. package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +27 -0
  479. package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +15 -0
  480. package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +19 -0
  481. package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +17 -0
  482. package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +18 -0
  483. package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +33 -0
  484. package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +18 -0
  485. package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +16 -0
  486. package/lib/types/solana/index.d.ts +63 -0
  487. package/lib/types/solana/instruction.d.ts +24 -0
  488. package/lib/types/solana/io-readable.d.ts +360 -0
  489. package/lib/types/solana/io-writeable.d.ts +533 -0
  490. package/lib/types/solana/json-rpc.d.ts +32 -0
  491. package/lib/types/solana/metadata.d.ts +69 -0
  492. package/lib/types/solana/mpl-core.d.ts +76 -0
  493. package/lib/types/solana/pda.d.ts +95 -0
  494. package/lib/types/solana/send.d.ts +16 -0
  495. package/lib/types/solana/spawn-ant.d.ts +130 -0
  496. package/lib/types/solana/types.d.ts +67 -0
  497. package/lib/types/types/ant-registry.d.ts +39 -0
  498. package/lib/types/types/ant.d.ts +22 -4
  499. package/lib/types/types/io.d.ts +56 -1
  500. package/lib/types/version.d.ts +1 -1
  501. package/package.json +33 -16
  502. package/lib/cjs/cli/cli.js +0 -822
  503. package/lib/cjs/cli/commands/antCommands.js +0 -113
  504. package/lib/cjs/cli/commands/arnsPurchaseCommands.js +0 -212
  505. package/lib/cjs/cli/commands/gatewayWriteCommands.js +0 -210
  506. package/lib/cjs/cli/commands/readCommands.js +0 -215
  507. package/lib/cjs/cli/commands/transfer.js +0 -159
  508. package/lib/cjs/cli/options.js +0 -470
  509. package/lib/cjs/cli/types.js +0 -2
  510. package/lib/cjs/cli/utils.js +0 -639
  511. package/lib/cjs/common/ant-registry.js +0 -155
  512. package/lib/cjs/common/ant-versions.js +0 -93
  513. package/lib/cjs/common/ant.js +0 -1182
  514. package/lib/cjs/common/arweave.js +0 -27
  515. package/lib/cjs/common/contracts/ao-process.js +0 -224
  516. package/lib/cjs/common/error.js +0 -64
  517. package/lib/cjs/common/faucet.js +0 -150
  518. package/lib/cjs/common/hyperbeam/hb.js +0 -173
  519. package/lib/cjs/common/index.js +0 -42
  520. package/lib/cjs/common/io.js +0 -1423
  521. package/lib/cjs/common/logger.js +0 -83
  522. package/lib/cjs/common/loggers/winston.js +0 -68
  523. package/lib/cjs/common/marketplace.js +0 -731
  524. package/lib/cjs/common/turbo.js +0 -223
  525. package/lib/cjs/constants.js +0 -41
  526. package/lib/cjs/node/index.js +0 -39
  527. package/lib/cjs/package.json +0 -1
  528. package/lib/cjs/types/ant-registry.js +0 -2
  529. package/lib/cjs/types/ant.js +0 -168
  530. package/lib/cjs/types/common.js +0 -2
  531. package/lib/cjs/types/faucet.js +0 -2
  532. package/lib/cjs/types/index.js +0 -37
  533. package/lib/cjs/types/io.js +0 -51
  534. package/lib/cjs/types/token.js +0 -116
  535. package/lib/cjs/utils/ant.js +0 -108
  536. package/lib/cjs/utils/ao.js +0 -432
  537. package/lib/cjs/utils/arweave.js +0 -285
  538. package/lib/cjs/utils/base64.js +0 -62
  539. package/lib/cjs/utils/hash.js +0 -56
  540. package/lib/cjs/utils/index.js +0 -38
  541. package/lib/cjs/utils/json.js +0 -26
  542. package/lib/cjs/utils/processes.js +0 -173
  543. package/lib/cjs/utils/random.js +0 -30
  544. package/lib/cjs/utils/schema.js +0 -15
  545. package/lib/cjs/utils/url.js +0 -37
  546. package/lib/cjs/version.js +0 -20
  547. package/lib/cjs/web/index.js +0 -41
@@ -0,0 +1,74 @@
1
+ /**
2
+ * Helpers for JSON-RPC reads against {@link SolanaRpc} that return a
3
+ * web3.js-shaped `AccountInfo` (Buffer-backed `data`, plain Address strings).
4
+ * Used by the ACL/AntRegistry path so the deserializers can stay agnostic of
5
+ * the RPC client's response shape.
6
+ */
7
+ import { address } from '@solana/kit';
8
+ /**
9
+ * Map an arbitrary commitment string to one of kit's three supported tiers.
10
+ * Anything we don't recognise (or `undefined`) falls back to `confirmed`,
11
+ * which is the project-wide default for read paths.
12
+ */
13
+ function toKitCommitment(commitment) {
14
+ if (commitment === 'finalized' ||
15
+ commitment === 'confirmed' ||
16
+ commitment === 'processed') {
17
+ return commitment;
18
+ }
19
+ return 'confirmed';
20
+ }
21
+ /**
22
+ * Fetch a single account and decode its data into a Buffer-backed shape that
23
+ * looks like the legacy `web3.js` `AccountInfo`. Returns `null` if the account
24
+ * doesn't exist (so callers can handle "missing PDA" without try/catch).
25
+ */
26
+ export async function getAccountInfoLegacy(rpc, pda, commitment) {
27
+ const res = await rpc
28
+ .getAccountInfo(pda, {
29
+ encoding: 'base64',
30
+ commitment: toKitCommitment(commitment),
31
+ })
32
+ .send();
33
+ if (!res.value)
34
+ return null;
35
+ const [dataB64] = res.value.data;
36
+ return {
37
+ data: Buffer.from(dataB64, 'base64'),
38
+ owner: address(res.value.owner),
39
+ lamports: Number(res.value.lamports),
40
+ executable: res.value.executable,
41
+ rentEpoch: 0,
42
+ };
43
+ }
44
+ /**
45
+ * Fetch multiple accounts in a single RPC round-trip and decode each into
46
+ * the legacy `AccountInfo` shape. Missing accounts come back as `null`,
47
+ * preserving 1:1 alignment with the input `pdas` array.
48
+ *
49
+ * Used by paginated readers (ACL pages, etc.) to load all sibling pages
50
+ * via `getMultipleAccountsInfo` rather than firing N parallel
51
+ * `getAccountInfo` calls.
52
+ */
53
+ export async function getMultipleAccountsInfoLegacy(rpc, pdas, commitment) {
54
+ if (pdas.length === 0)
55
+ return [];
56
+ const res = await rpc
57
+ .getMultipleAccounts(pdas, {
58
+ encoding: 'base64',
59
+ commitment: toKitCommitment(commitment),
60
+ })
61
+ .send();
62
+ return res.value.map((acct) => {
63
+ if (!acct)
64
+ return null;
65
+ const [dataB64] = acct.data;
66
+ return {
67
+ data: Buffer.from(dataB64, 'base64'),
68
+ owner: address(acct.owner),
69
+ lamports: Number(acct.lamports),
70
+ executable: acct.executable,
71
+ rentEpoch: 0,
72
+ };
73
+ });
74
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Metaplex-standard JSON metadata builder for AR.IO ANT NFTs.
3
+ *
4
+ * The Core asset's `uri` field on chain points at a JSON file with this
5
+ * shape; marketplaces and DAS providers fetch + parse it for their
6
+ * inline name/image/description display. The 3 ArNS traits (`ArNS Name`,
7
+ * `Type`, `Undername Limit`) live in the on-chain Attributes plugin, NOT
8
+ * in this JSON — see ADR-012.
9
+ *
10
+ * This helper produces the exact same JSON shape as the migration import
11
+ * (`migration/import/src/metadata.ts::buildAntMetadata`); the two paths
12
+ * MUST stay in lock-step or migrated and freshly-spawned ANTs will
13
+ * render differently in marketplace UIs. A regression test in
14
+ * `spawn-ant.test.ts` asserts byte-equality between the two for matching
15
+ * inputs.
16
+ *
17
+ * Pure function. No network, no Turbo, no dependencies. Caller handles
18
+ * uploading the resulting JSON to Arweave (e.g. via `@ardrive/turbo-sdk`
19
+ * with a `HexSolanaSigner` — free for files under 100 KiB) and passes the
20
+ * resulting `ar://${txid}` to `spawnSolanaANT`'s `state.uri`.
21
+ */
22
+ // Re-export the SDK-canonical AR.IO logo TX ID + ar:// protocol from the
23
+ // shared constants module so this metadata builder stays in lock-step with
24
+ // the rest of the SDK + the migration import package's JSON output.
25
+ export { ARIO_LOGO_TX_ID, AR_IO_PROTOCOL as AR_PROTOCOL, } from '../constants.js';
26
+ import { ARIO_LOGO_TX_ID, AR_IO_PROTOCOL as AR_PROTOCOL, } from '../constants.js';
27
+ function makeUri(txId, gateway) {
28
+ return gateway ? `https://${gateway}/raw/${txId}` : `${AR_PROTOCOL}${txId}`;
29
+ }
30
+ /**
31
+ * Build ANT NFT JSON metadata.
32
+ *
33
+ * Output is byte-identical to the migration import's `buildAntMetadata`
34
+ * for matching inputs. Defaults to `ar://` URLs (ADR-012 canonical); pass
35
+ * `gateway` to opt into https URLs.
36
+ */
37
+ export function buildAntMetadata(params) {
38
+ const logoTxId = params.logoTxId || ARIO_LOGO_TX_ID;
39
+ const ticker = params.ticker || 'ANT';
40
+ const arnsName = params.arnsName;
41
+ const gateway = params.gateway;
42
+ const description = params.description ||
43
+ (arnsName
44
+ ? `Arweave Name Token for ${arnsName}.ar.io`
45
+ : 'Arweave Name Token');
46
+ const logoUri = makeUri(logoTxId, gateway);
47
+ const metadata = {
48
+ name: arnsName || params.name,
49
+ symbol: ticker,
50
+ description,
51
+ image: logoUri,
52
+ properties: {
53
+ files: [{ uri: logoUri, type: 'image/png' }],
54
+ // Metaplex standard categories are image|video|audio|vr|html. The
55
+ // semantic "this is an ANT for an ArNS domain" is conveyed by the
56
+ // on-chain Attributes plugin (Type=lease/permabuy), not this JSON.
57
+ category: 'image',
58
+ },
59
+ };
60
+ if (arnsName) {
61
+ metadata.external_url = gateway
62
+ ? `https://${arnsName}.ar.io`
63
+ : `${AR_PROTOCOL}${arnsName}`;
64
+ }
65
+ return metadata;
66
+ }
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Reader for the on-chain Metaplex Core asset (`AssetV1` + plugin chain).
3
+ *
4
+ * The codama-generated decoders in `generated/mpl-core` only cover the
5
+ * fixed-shape header section (`AssetV1`, `PluginHeaderV1`, etc.) — they
6
+ * don't know how to follow the variable-offset registry chain to a
7
+ * specific plugin payload. This module fills that gap with a small
8
+ * walker that:
9
+ *
10
+ * 1. decodes the `AssetV1` prefix (key + owner + update authority +
11
+ * name + uri + seq);
12
+ * 2. follows the `PluginHeaderV1.pluginRegistryOffset` to the
13
+ * `PluginRegistryV1`;
14
+ * 3. iterates registry records to find the requested plugin variant;
15
+ * 4. decodes the `Plugin` enum at the registry record's offset.
16
+ *
17
+ * The same walk lives on-chain in `programs/ario-arns/src/state/mod.rs`
18
+ * (`read_mpl_core_attribute`) and `programs/ario-core/src/mpl_core.rs`
19
+ * (`read_ant_program`). The three implementations are pinned against
20
+ * each other by the migration import's edge-case fixtures and unit
21
+ * tests at all three layers.
22
+ *
23
+ * Reading is best-effort: any parse failure returns `null` rather than
24
+ * throwing, so callers can fall back to canonical defaults
25
+ * (e.g. `ARIO_ANT_PROGRAM_ID`) when an asset was minted without the
26
+ * `ANT Program` attribute or has a layout the walker doesn't recognise.
27
+ */
28
+ import { fetchEncodedAccount, } from '@solana/kit';
29
+ import { getAssetV1Decoder } from './generated/mpl-core/accounts/assetV1.js';
30
+ import { getPluginHeaderV1Decoder } from './generated/mpl-core/accounts/pluginHeaderV1.js';
31
+ import { getPluginRegistryV1Decoder } from './generated/mpl-core/accounts/pluginRegistryV1.js';
32
+ import { getPluginDecoder } from './generated/mpl-core/types/plugin.js';
33
+ import { PluginType } from './generated/mpl-core/types/pluginType.js';
34
+ /**
35
+ * On-chain trait keys. Marketplaces and DAS indexers query these by
36
+ * exact string match — keep in lock-step with:
37
+ * - `migration/import/src/phases/phase2-ants.ts`
38
+ * - `programs/ario-arns/src/mpl_core_cpi.rs::TRAIT_KEY_*`
39
+ * - `programs/ario-core/src/mpl_core.rs::TRAIT_KEY_ANT_PROGRAM`
40
+ */
41
+ export const TRAIT_KEY_ARNS_NAME = 'ArNS Name';
42
+ export const TRAIT_KEY_TYPE = 'Type';
43
+ export const TRAIT_KEY_UNDERNAME_LIMIT = 'Undername Limit';
44
+ export const TRAIT_KEY_ANT_PROGRAM = 'ANT Program';
45
+ /**
46
+ * Read a single attribute value from a Metaplex Core asset's Attributes
47
+ * plugin. Returns `null` when the asset has no plugin section, has no
48
+ * Attributes plugin, the requested key is absent, or any layer of the
49
+ * walk fails to decode. This is a best-effort lookup — callers should
50
+ * use a canonical default rather than treating absence as an error.
51
+ *
52
+ * `data` is the raw account data (post-discriminator? no — MPL Core
53
+ * doesn't use the 8-byte Anchor discriminator, the asset is the
54
+ * account's full data starting from the `Key` enum byte).
55
+ */
56
+ export function readAttribute(data, key) {
57
+ try {
58
+ // ── 1. Asset header (variable size — name and uri are length-prefixed).
59
+ const [, afterAsset] = getAssetV1Decoder().read(data, 0);
60
+ // No plugin section → no attributes.
61
+ if (afterAsset >= data.length)
62
+ return null;
63
+ // ── 2. PluginHeaderV1: 9 bytes (1-byte key + u64 registry offset).
64
+ const [pluginHeader] = getPluginHeaderV1Decoder().read(data, afterAsset);
65
+ const registryOffset = Number(pluginHeader.pluginRegistryOffset);
66
+ if (registryOffset >= data.length)
67
+ return null;
68
+ // ── 3. PluginRegistryV1: list of (pluginType, authority, offset).
69
+ const [registry] = getPluginRegistryV1Decoder().read(data, registryOffset);
70
+ for (const record of registry.registry) {
71
+ // `pluginType` is the kit-decoded numeric `PluginType` enum value
72
+ // (e.g. `PluginType.Attributes === 6`). The matching `Plugin`
73
+ // payload at `record.offset` is a discriminated union whose
74
+ // `__kind` is the string variant name — so we use the numeric
75
+ // enum here and the string tag below.
76
+ if (record.pluginType !== PluginType.Attributes)
77
+ continue;
78
+ const [plugin] = getPluginDecoder().read(data, Number(record.offset));
79
+ if (plugin.__kind !== 'Attributes')
80
+ continue;
81
+ const attrs = plugin.fields[0].attributeList;
82
+ const found = attrs.find((a) => a.key === key);
83
+ return found ? found.value : null;
84
+ }
85
+ return null;
86
+ }
87
+ catch {
88
+ // Any decode failure (truncated buffer, unknown plugin variant, etc.)
89
+ // — treat as "no override" and let the caller fall back.
90
+ return null;
91
+ }
92
+ }
93
+ /**
94
+ * Convenience wrapper: fetch the asset account and parse its
95
+ * `ANT Program` attribute. Returns `null` when the account doesn't
96
+ * exist, has no `ANT Program` trait, or the value can't be parsed —
97
+ * callers should fall back to the canonical `ARIO_ANT_PROGRAM_ID`.
98
+ *
99
+ * Importing this here (rather than wiring it directly into the resolver
100
+ * paths) lets `ant-readable.ts` keep its constructor synchronous and
101
+ * have a separate async `fromAsset(rpc, mint)` factory that does the
102
+ * lookup once and caches the result.
103
+ */
104
+ export async function fetchAntProgramFromAsset(rpc, mint, config) {
105
+ const account = await fetchEncodedAccount(rpc, mint, config);
106
+ if (!account.exists)
107
+ return null;
108
+ const value = readAttribute(account.data, TRAIT_KEY_ANT_PROGRAM);
109
+ if (value === null)
110
+ return null;
111
+ // The ANT Program attribute is a base58-encoded program address.
112
+ // We don't validate length here — the kit `Address` brand is
113
+ // structural and downstream `getProgramDerivedAddress` will reject
114
+ // malformed values. Returning `null` on missing keeps the call site
115
+ // simple ("found a value or didn't"); a malformed value is a holder
116
+ // self-grief that surfaces at the next PDA derivation.
117
+ return value;
118
+ }
119
+ /**
120
+ * Fetch the current owner of an MPL Core asset. Returns `null` when the
121
+ * account doesn't exist or the AssetV1 layout can't be decoded.
122
+ *
123
+ * Used by `SolanaARIOWriteable` to decide whether to bundle
124
+ * `ant.sync_attributes` into a buy / manage tx. The Attributes plugin's
125
+ * `BasePluginAuthority` is `Owner`, so only the current asset holder
126
+ * can sign the inner CPI; if the caller isn't the holder, bundling
127
+ * would abort the whole tx (BD-095 — non-holder ArNS lease management
128
+ * must continue to succeed; the actual ANT owner can call the public
129
+ * `syncAttributes` later to converge state).
130
+ */
131
+ export async function fetchMplCoreOwner(rpc, mint, config) {
132
+ const account = await fetchEncodedAccount(rpc, mint, config);
133
+ if (!account.exists)
134
+ return null;
135
+ try {
136
+ const [asset] = getAssetV1Decoder().read(account.data, 0);
137
+ return asset.owner;
138
+ }
139
+ catch {
140
+ return null;
141
+ }
142
+ }
@@ -0,0 +1,317 @@
1
+ import { createHash } from 'crypto';
2
+ /**
3
+ * PDA derivation helpers for AR.IO Solana programs.
4
+ *
5
+ * Each function derives the on-chain address for a given account type,
6
+ * mirroring the seeds defined in the Anchor programs.
7
+ *
8
+ * All helpers are async — kit's `getProgramDerivedAddress` is async because
9
+ * it may perform bump-seed search off the main thread in some environments.
10
+ */
11
+ import { getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
12
+ import { ACL_CONFIG_SEED, ACL_PAGE_SEED, ALLOWLIST_SEED, ANT_CONFIG_SEED, ANT_CONTROLLERS_SEED, ANT_RECORD_META_SEED, ANT_RECORD_SEED, ARIO_ANT_ESCROW_PROGRAM_ID, ARIO_ANT_PROGRAM_ID, ARIO_ARNS_PROGRAM_ID, ARIO_CONFIG_SEED, ARIO_CORE_PROGRAM_ID, ARIO_GAR_PROGRAM_ID, ARNS_RECORD_SEED, ARNS_REGISTRY_SEED, ARNS_SETTINGS_SEED, BALANCE_SEED, DELEGATION_SEED, DEMAND_FACTOR_SEED, EPOCH_SEED, EPOCH_SETTINGS_SEED, ESCROW_ANT_SEED, ESCROW_TOKEN_SEED, ESCROW_VAULT_SEED, GAR_SETTINGS_SEED, GATEWAY_REGISTRY_SEED, GATEWAY_SEED, OBSERVATION_SEED, OBSERVER_LOOKUP_SEED, PRIMARY_NAME_REQUEST_SEED, PRIMARY_NAME_REVERSE_SEED, PRIMARY_NAME_SEED, REDELEGATION_SEED, RESERVED_NAME_SEED, RETURNED_NAME_SEED, VAULT_COUNTER_SEED, VAULT_SEED, WITHDRAWAL_COUNTER_SEED, WITHDRAWAL_SEED, } from './constants.js';
13
+ const addressEncoder = getAddressEncoder();
14
+ /**
15
+ * Hash a variable-length name for use as PDA seed.
16
+ * Matches Rust: hash(name.to_lowercase().as_bytes())
17
+ */
18
+ export function hashName(name) {
19
+ return createHash('sha256')
20
+ .update(name.toLowerCase())
21
+ .digest()
22
+ .subarray(0, 32);
23
+ }
24
+ // =========================================
25
+ // ario-core PDAs
26
+ // =========================================
27
+ export async function getArioConfigPDA(programId = ARIO_CORE_PROGRAM_ID) {
28
+ return getProgramDerivedAddress({
29
+ programAddress: programId,
30
+ seeds: [ARIO_CONFIG_SEED],
31
+ });
32
+ }
33
+ export async function getBalancePDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
34
+ return getProgramDerivedAddress({
35
+ programAddress: programId,
36
+ seeds: [BALANCE_SEED, addressEncoder.encode(owner)],
37
+ });
38
+ }
39
+ export async function getVaultPDA(owner, vaultId, programId = ARIO_CORE_PROGRAM_ID) {
40
+ const idBuf = Buffer.alloc(8);
41
+ idBuf.writeBigUInt64LE(BigInt(vaultId));
42
+ return getProgramDerivedAddress({
43
+ programAddress: programId,
44
+ seeds: [VAULT_SEED, addressEncoder.encode(owner), idBuf],
45
+ });
46
+ }
47
+ export async function getVaultCounterPDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
48
+ return getProgramDerivedAddress({
49
+ programAddress: programId,
50
+ seeds: [VAULT_COUNTER_SEED, addressEncoder.encode(owner)],
51
+ });
52
+ }
53
+ export async function getPrimaryNamePDA(owner, programId = ARIO_CORE_PROGRAM_ID) {
54
+ return getProgramDerivedAddress({
55
+ programAddress: programId,
56
+ seeds: [PRIMARY_NAME_SEED, addressEncoder.encode(owner)],
57
+ });
58
+ }
59
+ export async function getPrimaryNameRequestPDA(initiator, programId = ARIO_CORE_PROGRAM_ID) {
60
+ return getProgramDerivedAddress({
61
+ programAddress: programId,
62
+ seeds: [PRIMARY_NAME_REQUEST_SEED, addressEncoder.encode(initiator)],
63
+ });
64
+ }
65
+ export async function getPrimaryNameReversePDA(name, programId = ARIO_CORE_PROGRAM_ID) {
66
+ return getProgramDerivedAddress({
67
+ programAddress: programId,
68
+ seeds: [PRIMARY_NAME_REVERSE_SEED, hashName(name)],
69
+ });
70
+ }
71
+ // =========================================
72
+ // ario-gar PDAs
73
+ // =========================================
74
+ export async function getGatewayRegistryPDA(programId = ARIO_GAR_PROGRAM_ID) {
75
+ return getProgramDerivedAddress({
76
+ programAddress: programId,
77
+ seeds: [GATEWAY_REGISTRY_SEED],
78
+ });
79
+ }
80
+ export async function getGarSettingsPDA(programId = ARIO_GAR_PROGRAM_ID) {
81
+ return getProgramDerivedAddress({
82
+ programAddress: programId,
83
+ seeds: [GAR_SETTINGS_SEED],
84
+ });
85
+ }
86
+ export async function getGatewayPDA(operator, programId = ARIO_GAR_PROGRAM_ID) {
87
+ return getProgramDerivedAddress({
88
+ programAddress: programId,
89
+ seeds: [GATEWAY_SEED, addressEncoder.encode(operator)],
90
+ });
91
+ }
92
+ export async function getDelegationPDA(gateway, delegator, programId = ARIO_GAR_PROGRAM_ID) {
93
+ return getProgramDerivedAddress({
94
+ programAddress: programId,
95
+ seeds: [
96
+ DELEGATION_SEED,
97
+ addressEncoder.encode(gateway),
98
+ addressEncoder.encode(delegator),
99
+ ],
100
+ });
101
+ }
102
+ export async function getWithdrawalPDA(owner, withdrawalId, programId = ARIO_GAR_PROGRAM_ID) {
103
+ const idBuf = Buffer.alloc(8);
104
+ idBuf.writeBigUInt64LE(BigInt(withdrawalId));
105
+ return getProgramDerivedAddress({
106
+ programAddress: programId,
107
+ seeds: [WITHDRAWAL_SEED, addressEncoder.encode(owner), idBuf],
108
+ });
109
+ }
110
+ export async function getWithdrawalCounterPDA(owner, programId = ARIO_GAR_PROGRAM_ID) {
111
+ return getProgramDerivedAddress({
112
+ programAddress: programId,
113
+ seeds: [WITHDRAWAL_COUNTER_SEED, addressEncoder.encode(owner)],
114
+ });
115
+ }
116
+ export async function getAllowlistPDA(gateway, delegate, programId = ARIO_GAR_PROGRAM_ID) {
117
+ return getProgramDerivedAddress({
118
+ programAddress: programId,
119
+ seeds: [
120
+ ALLOWLIST_SEED,
121
+ addressEncoder.encode(gateway),
122
+ addressEncoder.encode(delegate),
123
+ ],
124
+ });
125
+ }
126
+ export async function getEpochPDA(epochIndex, programId = ARIO_GAR_PROGRAM_ID) {
127
+ const indexBuf = Buffer.alloc(8);
128
+ indexBuf.writeBigUInt64LE(BigInt(epochIndex));
129
+ return getProgramDerivedAddress({
130
+ programAddress: programId,
131
+ seeds: [EPOCH_SEED, indexBuf],
132
+ });
133
+ }
134
+ export async function getEpochSettingsPDA(programId = ARIO_GAR_PROGRAM_ID) {
135
+ return getProgramDerivedAddress({
136
+ programAddress: programId,
137
+ seeds: [EPOCH_SETTINGS_SEED],
138
+ });
139
+ }
140
+ export async function getRedelegationRecordPDA(delegator, programId = ARIO_GAR_PROGRAM_ID) {
141
+ return getProgramDerivedAddress({
142
+ programAddress: programId,
143
+ seeds: [REDELEGATION_SEED, addressEncoder.encode(delegator)],
144
+ });
145
+ }
146
+ export async function getObservationPDA(epochIndex, observer, programId = ARIO_GAR_PROGRAM_ID) {
147
+ const indexBuf = Buffer.alloc(8);
148
+ indexBuf.writeBigUInt64LE(BigInt(epochIndex));
149
+ return getProgramDerivedAddress({
150
+ programAddress: programId,
151
+ seeds: [OBSERVATION_SEED, indexBuf, addressEncoder.encode(observer)],
152
+ });
153
+ }
154
+ export async function getObserverLookupPDA(observerAddress, programId = ARIO_GAR_PROGRAM_ID) {
155
+ return getProgramDerivedAddress({
156
+ programAddress: programId,
157
+ seeds: [OBSERVER_LOOKUP_SEED, addressEncoder.encode(observerAddress)],
158
+ });
159
+ }
160
+ // =========================================
161
+ // ario-arns PDAs
162
+ // =========================================
163
+ export async function getArnsRegistryPDA(programId = ARIO_ARNS_PROGRAM_ID) {
164
+ return getProgramDerivedAddress({
165
+ programAddress: programId,
166
+ seeds: [ARNS_REGISTRY_SEED],
167
+ });
168
+ }
169
+ export async function getArnsSettingsPDA(programId = ARIO_ARNS_PROGRAM_ID) {
170
+ return getProgramDerivedAddress({
171
+ programAddress: programId,
172
+ seeds: [ARNS_SETTINGS_SEED],
173
+ });
174
+ }
175
+ export async function getArnsRecordPDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
176
+ return getProgramDerivedAddress({
177
+ programAddress: programId,
178
+ seeds: [ARNS_RECORD_SEED, hashName(name)],
179
+ });
180
+ }
181
+ /**
182
+ * Derive ArNS record PDA from a raw 32-byte name hash.
183
+ * Used when resolving prescribed name hashes from Epoch data.
184
+ */
185
+ export async function getArnsRecordPDAFromHash(nameHash, programId = ARIO_ARNS_PROGRAM_ID) {
186
+ return getProgramDerivedAddress({
187
+ programAddress: programId,
188
+ seeds: [ARNS_RECORD_SEED, nameHash],
189
+ });
190
+ }
191
+ export async function getReservedNamePDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
192
+ return getProgramDerivedAddress({
193
+ programAddress: programId,
194
+ seeds: [RESERVED_NAME_SEED, hashName(name)],
195
+ });
196
+ }
197
+ export async function getReturnedNamePDA(name, programId = ARIO_ARNS_PROGRAM_ID) {
198
+ return getProgramDerivedAddress({
199
+ programAddress: programId,
200
+ seeds: [RETURNED_NAME_SEED, hashName(name)],
201
+ });
202
+ }
203
+ export async function getDemandFactorPDA(programId = ARIO_ARNS_PROGRAM_ID) {
204
+ return getProgramDerivedAddress({
205
+ programAddress: programId,
206
+ seeds: [DEMAND_FACTOR_SEED],
207
+ });
208
+ }
209
+ // =========================================
210
+ // ario-ant PDAs
211
+ // =========================================
212
+ export async function getAntConfigPDA(mint, programId = ARIO_ANT_PROGRAM_ID) {
213
+ return getProgramDerivedAddress({
214
+ programAddress: programId,
215
+ seeds: [ANT_CONFIG_SEED, addressEncoder.encode(mint)],
216
+ });
217
+ }
218
+ export async function getAntControllersPDA(mint, programId = ARIO_ANT_PROGRAM_ID) {
219
+ return getProgramDerivedAddress({
220
+ programAddress: programId,
221
+ seeds: [ANT_CONTROLLERS_SEED, addressEncoder.encode(mint)],
222
+ });
223
+ }
224
+ export async function getAntRecordPDA(mint, undername, programId = ARIO_ANT_PROGRAM_ID) {
225
+ const nameHash = createHash('sha256')
226
+ .update(undername.toLowerCase())
227
+ .digest()
228
+ .subarray(0, 32);
229
+ return getProgramDerivedAddress({
230
+ programAddress: programId,
231
+ seeds: [ANT_RECORD_SEED, addressEncoder.encode(mint), nameHash],
232
+ });
233
+ }
234
+ export async function getAntRecordMetadataPDA(mint, undername, programId = ARIO_ANT_PROGRAM_ID) {
235
+ const nameHash = createHash('sha256')
236
+ .update(undername.toLowerCase())
237
+ .digest()
238
+ .subarray(0, 32);
239
+ return getProgramDerivedAddress({
240
+ programAddress: programId,
241
+ seeds: [ANT_RECORD_META_SEED, addressEncoder.encode(mint), nameHash],
242
+ });
243
+ }
244
+ /**
245
+ * Derive the `AclConfig` head PDA for a given wallet address.
246
+ *
247
+ * Seeds: `["acl_config", user]` under the ario-ant program.
248
+ *
249
+ * See ADR-012 (docs/DECISIONS.md): `AclConfig` is the head record for a
250
+ * user's paginated ACL. It tracks `page_count` (how many `AclPage` PDAs
251
+ * exist) and `total_entries` (sum across pages). Frontends point-read
252
+ * this once, then fan out to each `AclPage` via `getMultipleAccountsInfo`.
253
+ */
254
+ export async function getAclConfigPDA(user, programId = ARIO_ANT_PROGRAM_ID) {
255
+ return getProgramDerivedAddress({
256
+ programAddress: programId,
257
+ seeds: [ACL_CONFIG_SEED, addressEncoder.encode(user)],
258
+ });
259
+ }
260
+ /**
261
+ * Derive an `AclPage` PDA for a given user + page index.
262
+ *
263
+ * Seeds: `["acl_page", user, page_idx_le]` where `page_idx_le` is the
264
+ * 8-byte little-endian encoding of `u64` (matches the contract).
265
+ *
266
+ * Each page address is content-derivable from `(user, page_idx)`, so any
267
+ * single page can be loaded in O(1) without scanning sibling pages.
268
+ */
269
+ export async function getAclPagePDA(user, pageIdx, programId = ARIO_ANT_PROGRAM_ID) {
270
+ const idxBuf = Buffer.alloc(8);
271
+ idxBuf.writeBigUInt64LE(BigInt(pageIdx));
272
+ return getProgramDerivedAddress({
273
+ programAddress: programId,
274
+ seeds: [ACL_PAGE_SEED, addressEncoder.encode(user), idxBuf],
275
+ });
276
+ }
277
+ // =========================================
278
+ // ario-ant-escrow PDAs
279
+ // =========================================
280
+ /**
281
+ * Derive the EscrowAnt PDA for a given ANT mint. Exactly one escrow per
282
+ * ANT — re-deriving the address tells you whether an escrow already
283
+ * exists (look up the account and check `data.length`).
284
+ *
285
+ * Seeds: ["escrow_ant", ant_mint]
286
+ * Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_ANT_SEED
287
+ */
288
+ export async function getEscrowAntPDA(antMint, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
289
+ return getProgramDerivedAddress({
290
+ programAddress: programId,
291
+ seeds: [ESCROW_ANT_SEED, addressEncoder.encode(antMint)],
292
+ });
293
+ }
294
+ /**
295
+ * Derive the EscrowToken PDA for a given depositor and asset ID.
296
+ *
297
+ * Seeds: ["escrow_token", depositor, asset_id]
298
+ * Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_TOKEN_SEED
299
+ */
300
+ export async function getEscrowTokenPDA(depositor, assetId, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
301
+ return getProgramDerivedAddress({
302
+ programAddress: programId,
303
+ seeds: [ESCROW_TOKEN_SEED, addressEncoder.encode(depositor), assetId],
304
+ });
305
+ }
306
+ /**
307
+ * Derive the EscrowVault PDA for a given depositor and asset ID.
308
+ *
309
+ * Seeds: ["escrow_vault", depositor, asset_id]
310
+ * Source: contracts/programs/ario-ant-escrow/src/state.rs::ESCROW_VAULT_SEED
311
+ */
312
+ export async function getEscrowVaultPDA(depositor, assetId, programId = ARIO_ANT_ESCROW_PROGRAM_ID) {
313
+ return getProgramDerivedAddress({
314
+ programAddress: programId,
315
+ seeds: [ESCROW_VAULT_SEED, addressEncoder.encode(depositor), assetId],
316
+ });
317
+ }