@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
@@ -53,6 +53,69 @@ export const optionMap = {
53
53
  alias: '--hyperbeam-url <hyperbeamUrl>',
54
54
  description: 'The URL for a custom hyperbeam node',
55
55
  },
56
+ ao: {
57
+ alias: '--ao',
58
+ description: 'Use the legacy AO backend instead of Solana',
59
+ type: 'boolean',
60
+ },
61
+ rpcUrl: {
62
+ alias: '--rpc-url <rpcUrl>',
63
+ description: 'Solana RPC URL (defaults to mainnet-beta)',
64
+ },
65
+ antProgramId: {
66
+ alias: '--ant-program-id <antProgramId>',
67
+ description: 'Override the ario-ant program id (Solana backend). Defaults to the SDK-bundled mainnet id; ' +
68
+ 'set this when querying localnet/devnet (see migration/localnet/out/localnet.env -> ARIO_ANT_PROGRAM_ID).',
69
+ },
70
+ coreProgramId: {
71
+ alias: '--core-program-id <coreProgramId>',
72
+ description: 'Override the ario-core program id (Solana backend). See ARIO_CORE_PROGRAM_ID in localnet.env.',
73
+ },
74
+ garProgramId: {
75
+ alias: '--gar-program-id <garProgramId>',
76
+ description: 'Override the ario-gar program id (Solana backend). See ARIO_GAR_PROGRAM_ID in localnet.env.',
77
+ },
78
+ arnsProgramId: {
79
+ alias: '--arns-program-id <arnsProgramId>',
80
+ description: 'Override the ario-arns program id (Solana backend). See ARIO_ARNS_PROGRAM_ID in localnet.env.',
81
+ },
82
+ escrowProgramId: {
83
+ alias: '--escrow-program-id <escrowProgramId>',
84
+ description: 'Override the ario-ant-escrow program id. Defaults to the SDK-bundled placeholder; ' +
85
+ 'set when running against a deployed devnet/mainnet instance.',
86
+ },
87
+ ant: {
88
+ alias: '--ant <antMint>',
89
+ description: 'The Metaplex Core ANT mint pubkey (base58)',
90
+ },
91
+ recipientArweave: {
92
+ alias: '--recipient-arweave <jwkFile>',
93
+ description: 'Path to an Arweave JWK file. The "n" field (RSA-4096 modulus) is used as the escrow recipient identity.',
94
+ },
95
+ recipientEthereum: {
96
+ alias: '--recipient-ethereum <0xAddress>',
97
+ description: 'A 0x-prefixed Ethereum address to use as the escrow recipient identity.',
98
+ },
99
+ newRecipientArweave: {
100
+ alias: '--new-recipient-arweave <jwkFile>',
101
+ description: 'New Arweave JWK file (for `escrow update-recipient`).',
102
+ },
103
+ newRecipientEthereum: {
104
+ alias: '--new-recipient-ethereum <0xAddress>',
105
+ description: 'New Ethereum address (for `escrow update-recipient`).',
106
+ },
107
+ signatureFile: {
108
+ alias: '--signature-file <path>',
109
+ description: 'Path to a binary signature file (512 bytes for Arweave PSS, 65 bytes for Ethereum r||s||v).',
110
+ },
111
+ saltLen: {
112
+ alias: '--salt-len <bytes>',
113
+ description: 'PSS salt length (Arweave only; defaults to 32, the wallet-default).',
114
+ },
115
+ claimant: {
116
+ alias: '--claimant <pubkey>',
117
+ description: 'Solana pubkey that will receive the ANT on claim.',
118
+ },
56
119
  cuUrl: {
57
120
  alias: '--cu-url <cuUrl>',
58
121
  description: 'The URL for a custom compute unit',
@@ -236,7 +299,11 @@ export const optionMap = {
236
299
  },
237
300
  transactionId: {
238
301
  alias: '--transaction-id <transactionId>',
239
- description: 'The transaction ID to interact with',
302
+ description: 'The content target (Arweave TX ID, IPFS CID, etc.)',
303
+ },
304
+ targetProtocol: {
305
+ alias: '--target-protocol <targetProtocol>',
306
+ description: 'Storage protocol for the target: "arweave" (default) or "ipfs"',
240
307
  },
241
308
  ttlSeconds: {
242
309
  alias: '--ttl-seconds <ttlSeconds>',
@@ -275,7 +342,31 @@ export const optionMap = {
275
342
  },
276
343
  fundFrom: {
277
344
  alias: '--fund-from <fundFrom>',
278
- description: 'Where to fund the action from. e.g. "balance", "stakes", or "any',
345
+ description: 'Funding source: balance | stakes | withdrawal | plan | any | turbo. ' +
346
+ "'stakes' requires --gateway-address (uses delegation; add --fund-as-operator " +
347
+ "for operator stake). 'withdrawal' requires --withdrawal-id. 'plan' / 'any' " +
348
+ 'use the multi-source funding plan (see --funding-plan-json or auto-discover).',
349
+ },
350
+ gatewayAddress: {
351
+ alias: '--gateway-address <gatewayAddress>',
352
+ description: 'Gateway operator address for funding from stakes. Required when --fund-from is "stakes"',
353
+ },
354
+ fundAsOperator: {
355
+ alias: '--fund-as-operator',
356
+ description: 'Fund from operator stake instead of delegation (default: delegation)',
357
+ type: 'boolean',
358
+ },
359
+ withdrawalId: {
360
+ alias: '--withdrawal-id <withdrawalId>',
361
+ description: 'Withdrawal vault id (u64) — required when --fund-from is "withdrawal" (Solana). ' +
362
+ 'Find with `ar.io listMyWithdrawals` or query Withdrawal PDAs directly.',
363
+ },
364
+ fundingPlanJson: {
365
+ alias: '--funding-plan-json <json>',
366
+ description: 'Explicit funding plan as JSON: [{"kind":"balance","amount":"100"},...]. ' +
367
+ "Used when --fund-from is 'plan' or 'any' to bypass auto-discovery. " +
368
+ "kind is 'balance' | 'delegation' | 'operatorStake' | 'withdrawal'; " +
369
+ 'amount is a string-encoded mARIO bigint. Sum must equal the operation cost.',
279
370
  },
280
371
  revokable: {
281
372
  alias: '--revokable',
@@ -307,6 +398,10 @@ export const optionMap = {
307
398
  alias: '--module <module>',
308
399
  description: 'The module ID to use for spawning the ANT process',
309
400
  },
401
+ metadataUri: {
402
+ alias: '--metadata-uri <metadataUri>',
403
+ description: 'Solana spawn-ant only: URI baked into the Metaplex Core asset (e.g. "ar://<txid>" or "https://<gateway>/raw/<txid>"). Build the JSON with `buildAntMetadata` from `@ar.io/sdk/solana` and upload via Turbo. See sdk/scripts/devnet-validation/populate-ant.ts.',
404
+ },
310
405
  token: {
311
406
  alias: '-t, --token <type>',
312
407
  description: 'Crypto token type for wallet or action',
@@ -326,6 +421,35 @@ export const optionMap = {
326
421
  description: 'Reassign all affiliated names to the new process',
327
422
  type: 'boolean',
328
423
  },
424
+ // -----------------------------------------------------------------
425
+ // Prune / cleanup flags (Solana-only — see pruneCommands.ts)
426
+ // -----------------------------------------------------------------
427
+ gateway: {
428
+ alias: '--gateway <gateway>',
429
+ description: 'The gateway operator address (prune / finalize commands)',
430
+ },
431
+ delegator: {
432
+ alias: '--delegator <delegator>',
433
+ description: 'The delegator address (close-empty-delegation)',
434
+ },
435
+ observer: {
436
+ alias: '--observer <observer>',
437
+ description: 'The observer address (close-observation)',
438
+ },
439
+ max: {
440
+ alias: '--max <max>',
441
+ description: 'Per-tx batch size (1-255, u8) for prune-expired-names / prune-returned-names',
442
+ },
443
+ arnsRecords: {
444
+ alias: '--arns-records <arnsRecords...>',
445
+ description: 'Explicit ArnsRecord PDAs to prune. Default: discover via getExpiredArnsRecords.',
446
+ type: 'array',
447
+ },
448
+ returnedNames: {
449
+ alias: '--returned-names <returnedNames...>',
450
+ description: 'Explicit ReturnedName PDAs to prune. Default: discover via getExpiredReturnedNames.',
451
+ type: 'array',
452
+ },
329
453
  };
330
454
  export const walletOptions = [
331
455
  optionMap.walletFile,
@@ -342,12 +466,22 @@ export const globalOptions = [
342
466
  optionMap.arioProcessId,
343
467
  optionMap.cuUrl,
344
468
  optionMap.hyperbeamUrl,
469
+ optionMap.ao,
470
+ optionMap.rpcUrl,
471
+ optionMap.antProgramId,
472
+ optionMap.coreProgramId,
473
+ optionMap.garProgramId,
474
+ optionMap.arnsProgramId,
345
475
  ];
346
476
  export const writeActionOptions = [optionMap.skipConfirmation, optionMap.tags];
347
477
  export const arnsPurchaseOptions = [
348
478
  ...writeActionOptions,
349
479
  optionMap.name,
350
480
  optionMap.fundFrom,
481
+ optionMap.gatewayAddress,
482
+ optionMap.fundAsOperator,
483
+ optionMap.withdrawalId,
484
+ optionMap.fundingPlanJson,
351
485
  optionMap.paidBy,
352
486
  optionMap.paymentUrl,
353
487
  optionMap.referrer,
@@ -437,10 +571,15 @@ export const antStateOptions = [
437
571
  optionMap.ttlSeconds,
438
572
  optionMap.logo,
439
573
  optionMap.module,
574
+ // Required for Solana spawn-ant; ignored by AO. Without this entry,
575
+ // Commander rejects --metadata-uri as an unknown option even though
576
+ // spawnSolanaANTFromOptions in utils.ts reads it as `(options as any).metadataUri`.
577
+ optionMap.metadataUri,
440
578
  ];
441
579
  export const setAntBaseNameOptions = [
442
580
  optionMap.processId,
443
581
  optionMap.transactionId,
582
+ optionMap.targetProtocol,
444
583
  optionMap.ttlSeconds,
445
584
  optionMap.owner,
446
585
  optionMap.displayName,
@@ -14,26 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { readFileSync } from 'fs';
17
- /**
18
- * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
19
- *
20
- * Licensed under the Apache License, Version 2.0 (the "License");
21
- * you may not use this file except in compliance with the License.
22
- * You may obtain a copy of the License at
23
- *
24
- * http://www.apache.org/licenses/LICENSE-2.0
25
- *
26
- * Unless required by applicable law or agreed to in writing, software
27
- * distributed under the License is distributed on an "AS IS" BASIS,
28
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
29
- * See the License for the specific language governing permissions and
30
- * limitations under the License.
31
- */
32
17
  import { EthereumSigner } from '@dha-team/arbundles';
33
18
  import { connect } from '@permaweb/aoconnect';
19
+ import { address, createKeyPairSignerFromBytes, createSolanaRpc, createSolanaRpcSubscriptions, } from '@solana/kit';
20
+ import bs58 from 'bs58';
34
21
  import { program } from 'commander';
35
22
  import prompts from 'prompts';
36
- import { ANT, ANTRegistry, ANT_REGISTRY_ID, ANT_REGISTRY_TESTNET_ID, AOProcess, ARIO, ARIOToken, ARIO_DEVNET_PROCESS_ID, ARIO_MAINNET_PROCESS_ID, ARIO_TESTNET_PROCESS_ID, ArweaveSigner, DEFAULT_CU_URL, Logger, createAoSigner, fromB64Url, fundFromOptions, initANTStateForAddress, isValidFundFrom, isValidIntent, mARIOToken, sha256B64Url, validIntents, } from '../node/index.js';
23
+ import { ANT, ANTRegistry, ANT_REGISTRY_ID, ANT_REGISTRY_TESTNET_ID, AOProcess, ARIO, ARIOToken, ARIO_DEVNET_PROCESS_ID, ARIO_MAINNET_PROCESS_ID, ARIO_TESTNET_PROCESS_ID, ArweaveSigner, Logger, createAoSigner, fromB64Url, fundFromOptions, initANTStateForAddress, isValidFundFrom, isValidIntent, mARIOToken, sha256B64Url, validIntents, } from '../node/index.js';
37
24
  import { globalOptions } from './options.js';
38
25
  export const defaultTtlSecondsCLI = 3600;
39
26
  export function stringifyJsonForCLIDisplay(json) {
@@ -141,19 +128,46 @@ function aoProcessFromOptions(options) {
141
128
  }
142
129
  export function readARIOFromOptions(options) {
143
130
  setLoggerIfDebug(options);
131
+ if (options.ao) {
132
+ return ARIO.init({
133
+ hyperbeamUrl: options.hyperbeamUrl,
134
+ process: aoProcessFromOptions({
135
+ cuUrl: 'http://localhost:6363',
136
+ ...options,
137
+ }),
138
+ paymentUrl: options.paymentUrl,
139
+ });
140
+ }
141
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
144
142
  return ARIO.init({
145
- hyperbeamUrl: options.hyperbeamUrl,
146
- process: aoProcessFromOptions({
147
- cuUrl: DEFAULT_CU_URL,
148
- ...options,
149
- }),
150
- paymentUrl: options.paymentUrl,
143
+ backend: 'solana',
144
+ rpc: createSolanaRpc(rpcUrl),
145
+ ...(options.coreProgramId
146
+ ? { coreProgramId: address(options.coreProgramId) }
147
+ : {}),
148
+ ...(options.garProgramId
149
+ ? { garProgramId: address(options.garProgramId) }
150
+ : {}),
151
+ ...(options.arnsProgramId
152
+ ? { arnsProgramId: address(options.arnsProgramId) }
153
+ : {}),
151
154
  });
152
155
  }
153
- export function readANTRegistryFromOptions(options) {
156
+ export async function readANTRegistryFromOptions(options) {
157
+ setLoggerIfDebug(options);
158
+ if (options.ao) {
159
+ return ANTRegistry.init({
160
+ process: aoProcessFromOptions(options),
161
+ hyperbeamUrl: options.hyperbeamUrl,
162
+ });
163
+ }
164
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
154
165
  return ANTRegistry.init({
155
- process: aoProcessFromOptions(options),
156
- hyperbeamUrl: options.hyperbeamUrl,
166
+ backend: 'solana',
167
+ rpc: createSolanaRpc(rpcUrl),
168
+ ...(options.antProgramId
169
+ ? { antProgramId: address(options.antProgramId) }
170
+ : {}),
157
171
  });
158
172
  }
159
173
  export function contractSignerFromOptions(options) {
@@ -181,17 +195,85 @@ export function requiredContractSignerFromOptions(options) {
181
195
  export function requiredAoSignerFromOptions(options) {
182
196
  return createAoSigner(requiredContractSignerFromOptions(options).signer);
183
197
  }
184
- export function writeARIOFromOptions(options) {
185
- const { signer, signerAddress } = requiredContractSignerFromOptions(options);
198
+ /** Derive a WS URL from an HTTP/HTTPS RPC URL by swapping the scheme. */
199
+ function wsUrlFromRpcUrl(rpcUrl) {
200
+ // Surfpool and `solana-test-validator` follow Solana's well-known localhost
201
+ // convention: HTTP RPC on 8899 and WebSocket on 8900 (a separate port).
202
+ // Public RPCs (mainnet/devnet/testnet) put both on the same port (443/443),
203
+ // so a naive `http→ws` swap works there but breaks against any local
204
+ // validator. Bump the port iff we recognise the localhost+8899 pair.
205
+ let url;
206
+ try {
207
+ url = new URL(rpcUrl);
208
+ }
209
+ catch {
210
+ return rpcUrl.replace(/^http/, 'ws');
211
+ }
212
+ const isLocalhost = url.hostname === 'localhost' ||
213
+ url.hostname === '127.0.0.1' ||
214
+ url.hostname === '0.0.0.0';
215
+ if (isLocalhost && url.port === '8899') {
216
+ url.port = '8900';
217
+ }
218
+ url.protocol = url.protocol === 'https:' ? 'wss:' : 'ws:';
219
+ return url.toString().replace(/\/$/, '');
220
+ }
221
+ /**
222
+ * Load a Solana KeyPairSigner from --private-key (base58) or --wallet-file
223
+ * (JSON array of bytes). Throws with a helpful message if neither is set.
224
+ */
225
+ async function loadSolanaSignerFromOptions(options) {
226
+ let secretKey;
227
+ if (options.privateKey) {
228
+ secretKey = bs58.decode(options.privateKey);
229
+ }
230
+ else if (options.walletFile) {
231
+ const raw = readFileSync(options.walletFile, 'utf-8');
232
+ secretKey = new Uint8Array(JSON.parse(raw));
233
+ }
234
+ else {
235
+ throw new Error('Solana write operations require a signer.\n' +
236
+ 'Provide a Solana keypair with --wallet-file <path-to-keypair.json> ' +
237
+ 'or --private-key <base58-encoded-key>');
238
+ }
239
+ return createKeyPairSignerFromBytes(secretKey);
240
+ }
241
+ export async function writeARIOFromOptions(options) {
186
242
  setLoggerIfDebug(options);
243
+ if (options.ao) {
244
+ const { signer, signerAddress } = requiredContractSignerFromOptions(options);
245
+ return {
246
+ ario: ARIO.init({
247
+ process: aoProcessFromOptions(options),
248
+ signer,
249
+ paymentUrl: options.paymentUrl,
250
+ hyperbeamUrl: options.hyperbeamUrl,
251
+ }),
252
+ signerAddress,
253
+ };
254
+ }
255
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
256
+ const signer = await loadSolanaSignerFromOptions(options);
187
257
  return {
188
258
  ario: ARIO.init({
189
- process: aoProcessFromOptions(options),
259
+ backend: 'solana',
260
+ rpc: createSolanaRpc(rpcUrl),
261
+ rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
190
262
  signer,
191
- paymentUrl: options.paymentUrl,
192
- hyperbeamUrl: options.hyperbeamUrl,
263
+ // Forward program-id overrides to mirror `readARIOFromOptions` so
264
+ // localnet / devnet writes target the deployed program IDs instead of
265
+ // silently falling back to the SDK's mainnet defaults.
266
+ ...(options.coreProgramId
267
+ ? { coreProgramId: address(options.coreProgramId) }
268
+ : {}),
269
+ ...(options.garProgramId
270
+ ? { garProgramId: address(options.garProgramId) }
271
+ : {}),
272
+ ...(options.arnsProgramId
273
+ ? { arnsProgramId: address(options.arnsProgramId) }
274
+ : {}),
193
275
  }),
194
- signerAddress,
276
+ signerAddress: signer.address,
195
277
  };
196
278
  }
197
279
  export function formatARIOWithCommas(value) {
@@ -453,18 +535,43 @@ function ANTProcessFromOptions(options) {
453
535
  }),
454
536
  });
455
537
  }
456
- export function readANTFromOptions(options) {
538
+ export async function readANTFromOptions(options) {
539
+ if (options.ao) {
540
+ return ANT.init({
541
+ process: ANTProcessFromOptions(options),
542
+ hyperbeamUrl: options.hyperbeamUrl,
543
+ });
544
+ }
545
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
457
546
  return ANT.init({
458
- process: ANTProcessFromOptions(options),
459
- hyperbeamUrl: options.hyperbeamUrl,
547
+ backend: 'solana',
548
+ processId: requiredProcessIdFromOptions(options),
549
+ rpc: createSolanaRpc(rpcUrl),
550
+ ...(options.antProgramId
551
+ ? { antProgramId: address(options.antProgramId) }
552
+ : {}),
460
553
  });
461
554
  }
462
- export function writeANTFromOptions(options, signer) {
463
- signer ??= requiredContractSignerFromOptions(options).signer;
555
+ export async function writeANTFromOptions(options, signer) {
556
+ if (options.ao) {
557
+ signer ??= requiredContractSignerFromOptions(options).signer;
558
+ return ANT.init({
559
+ process: ANTProcessFromOptions(options),
560
+ signer,
561
+ hyperbeamUrl: options.hyperbeamUrl,
562
+ });
563
+ }
564
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
565
+ const kitSigner = await loadSolanaSignerFromOptions(options);
464
566
  return ANT.init({
465
- process: ANTProcessFromOptions(options),
466
- signer,
467
- hyperbeamUrl: options.hyperbeamUrl,
567
+ backend: 'solana',
568
+ processId: requiredProcessIdFromOptions(options),
569
+ rpc: createSolanaRpc(rpcUrl),
570
+ rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
571
+ signer: kitSigner,
572
+ ...(options.antProgramId
573
+ ? { antProgramId: address(options.antProgramId) }
574
+ : {}),
468
575
  });
469
576
  }
470
577
  export function booleanFromOptions(options, key) {
@@ -527,6 +634,60 @@ export function getANTStateFromOptions(options) {
527
634
  : defaultTtlSecondsCLI,
528
635
  });
529
636
  }
637
+ /**
638
+ * Spawn a fresh ANT on Solana from CLI options.
639
+ *
640
+ * Resolves the signer the same way `writeARIOFromOptions` does (KeyPairSigner
641
+ * from `--wallet-file` or `--private-key`), then bundles MPL Core `CreateV1` +
642
+ * `ario_ant::initialize` into a single transaction. The signer's address
643
+ * becomes the ANT owner on chain — no separate `--address` is required.
644
+ *
645
+ * Maps the CLI's AO-shaped options (`--name`, `--ticker`, `--description`,
646
+ * `--keywords`, `--logo`, `--target` for the @ record tx id) onto the Solana
647
+ * `InitializeAntParams` payload. AO-only state fields like `controllers` and
648
+ * `balances` are intentionally dropped — they don't exist on Solana.
649
+ */
650
+ export async function spawnSolanaANTFromOptions(options) {
651
+ setLoggerIfDebug(options);
652
+ const { spawnSolanaANT } = await import('../solana/spawn-ant.js');
653
+ const rpcUrl = options.rpcUrl ?? 'https://api.mainnet-beta.solana.com';
654
+ const kitSigner = await loadSolanaSignerFromOptions(options);
655
+ const name = options.name ?? `ANT-${kitSigner.address.slice(0, 8)}`;
656
+ // ANT NFT metadata URI — required so the asset renders correctly in
657
+ // marketplaces. Caller must upload a JSON metadata file (build via
658
+ // `buildAntMetadata` from `@ar.io/sdk/solana`, host on Arweave via Turbo
659
+ // or any other gateway) and pass the resulting URI here.
660
+ const metadataUri = options.metadataUri;
661
+ if (!metadataUri || typeof metadataUri !== 'string') {
662
+ throw new Error('spawn-ant: --metadata-uri is required.\n\n' +
663
+ 'Build the JSON metadata with `buildAntMetadata` from `@ar.io/sdk/solana`,\n' +
664
+ 'upload it to Arweave (free for files under 100 KiB via @ardrive/turbo-sdk\n' +
665
+ 'with a `HexSolanaSigner`), then pass the resulting URI:\n' +
666
+ ' --metadata-uri "ar://<txid>" (canonical AR.IO scheme)\n' +
667
+ ' --metadata-uri "https://<gateway>/raw/<txid>" (immediate render)\n\n' +
668
+ 'See sdk/scripts/devnet-validation/populate-ant.ts for an end-to-end example.');
669
+ }
670
+ return spawnSolanaANT({
671
+ rpc: createSolanaRpc(rpcUrl),
672
+ rpcSubscriptions: createSolanaRpcSubscriptions(wsUrlFromRpcUrl(rpcUrl)),
673
+ signer: kitSigner,
674
+ state: {
675
+ name,
676
+ uri: metadataUri,
677
+ ticker: options.ticker,
678
+ description: options.description,
679
+ keywords: options.keywords,
680
+ logo: options.logo,
681
+ // `--target` is the AO convention for the @ record's tx id (see
682
+ // initANTStateForAddress). Reuse it on Solana so the CLI surface stays
683
+ // identical between backends.
684
+ transactionId: options.target,
685
+ },
686
+ ...(options.antProgramId
687
+ ? { antProgramId: address(options.antProgramId) }
688
+ : {}),
689
+ });
690
+ }
530
691
  export function getTokenCostParamsFromOptions(o) {
531
692
  o.intent ??= 'Buy-Name';
532
693
  o.type ??= 'lease';
@@ -557,6 +718,86 @@ export function fundFromFromOptions(o) {
557
718
  export function referrerFromOptions(o) {
558
719
  return o.referrer;
559
720
  }
721
+ /** Parse `--withdrawal-id` from CLI options into a bigint. */
722
+ export function withdrawalIdFromOptions(o) {
723
+ if (o.withdrawalId === undefined)
724
+ return undefined;
725
+ try {
726
+ return BigInt(o.withdrawalId);
727
+ }
728
+ catch {
729
+ throw new Error(`Invalid --withdrawal-id: '${o.withdrawalId}' is not a valid u64 integer`);
730
+ }
731
+ }
732
+ /**
733
+ * Parse `--funding-plan-json` into a `FundingSourceSpec[]`. Validates each
734
+ * entry's `kind` against the on-chain enum and parses `amount` as a bigint.
735
+ * Each Delegation/OperatorStake entry MAY carry a `gateway` field (base58
736
+ * Solana address) — required when the plan spans multiple gateways.
737
+ *
738
+ * Format examples:
739
+ * '[{"kind":"balance","amount":"100"},{"kind":"withdrawal","amount":"500"}]'
740
+ * '[{"kind":"delegation","amount":"100","gateway":"Gw1..."},{"kind":"delegation","amount":"50","gateway":"Gw2..."}]'
741
+ *
742
+ * Returns undefined when the flag isn't set; throws Error on malformed JSON
743
+ * or unknown kinds.
744
+ */
745
+ export function fundingPlanFromOptions(o) {
746
+ if (!o.fundingPlanJson)
747
+ return undefined;
748
+ let parsed;
749
+ try {
750
+ parsed = JSON.parse(o.fundingPlanJson);
751
+ }
752
+ catch (err) {
753
+ throw new Error(`--funding-plan-json is not valid JSON: ${err.message}`);
754
+ }
755
+ if (!Array.isArray(parsed)) {
756
+ throw new Error('--funding-plan-json must be a JSON array');
757
+ }
758
+ const validKinds = new Set([
759
+ 'balance',
760
+ 'delegation',
761
+ 'operatorStake',
762
+ 'withdrawal',
763
+ ]);
764
+ return parsed.map((entry, idx) => {
765
+ if (typeof entry !== 'object' ||
766
+ entry === null ||
767
+ typeof entry.kind !== 'string' ||
768
+ typeof entry.amount !== 'string') {
769
+ throw new Error(`--funding-plan-json[${idx}] must be { kind: string, amount: string, gateway?: string }`);
770
+ }
771
+ const e = entry;
772
+ if (!validKinds.has(e.kind)) {
773
+ throw new Error(`--funding-plan-json[${idx}].kind must be one of ${[...validKinds].join(', ')} (got '${e.kind}')`);
774
+ }
775
+ let amount;
776
+ try {
777
+ amount = BigInt(e.amount);
778
+ }
779
+ catch {
780
+ throw new Error(`--funding-plan-json[${idx}].amount '${e.amount}' is not a valid u64`);
781
+ }
782
+ if (amount <= 0n) {
783
+ throw new Error(`--funding-plan-json[${idx}].amount must be > 0 (got ${e.amount})`);
784
+ }
785
+ const out = {
786
+ kind: e.kind,
787
+ amount,
788
+ };
789
+ if (e.gateway !== undefined) {
790
+ if (typeof e.gateway !== 'string') {
791
+ throw new Error(`--funding-plan-json[${idx}].gateway must be a base58 Solana address`);
792
+ }
793
+ if (e.kind !== 'delegation' && e.kind !== 'operatorStake') {
794
+ throw new Error(`--funding-plan-json[${idx}].gateway is only valid for kind 'delegation' or 'operatorStake' (got '${e.kind}')`);
795
+ }
796
+ out.gateway = e.gateway;
797
+ }
798
+ return out;
799
+ });
800
+ }
560
801
  export function assertLockLengthInRange(lockLengthMs, assertMin = true) {
561
802
  const minLockLengthMs = 1209600000; // 14 days
562
803
  const maxLockLengthMs = 378432000000; // ~12 years
@@ -20,10 +20,32 @@ import { AOProcess, InvalidContractConfigurationError } from './index.js';
20
20
  import { Logger } from './logger.js';
21
21
  export class ANTRegistry {
22
22
  static init(config) {
23
- if (config !== undefined && 'signer' in config) {
24
- return new AoANTRegistryWriteable(config);
23
+ if (config && 'backend' in config && config.backend === 'solana') {
24
+ return (async () => {
25
+ if ('signer' in config) {
26
+ const { SolanaANTRegistryWriteable } = await import('../solana/ant-registry-writeable.js');
27
+ return new SolanaANTRegistryWriteable({
28
+ rpc: config.rpc,
29
+ signer: config.signer,
30
+ commitment: config.commitment,
31
+ logger: config.logger,
32
+ antProgramId: config.antProgramId,
33
+ });
34
+ }
35
+ const { SolanaANTRegistryReadable } = await import('../solana/ant-registry-readable.js');
36
+ return new SolanaANTRegistryReadable({
37
+ rpc: config.rpc,
38
+ commitment: config.commitment,
39
+ logger: config.logger,
40
+ antProgramId: config.antProgramId,
41
+ });
42
+ })();
43
+ }
44
+ const aoConfig = config;
45
+ if (aoConfig !== undefined && 'signer' in aoConfig) {
46
+ return new AoANTRegistryWriteable(aoConfig);
25
47
  }
26
- return new AoANTRegistryReadable(config);
48
+ return new AoANTRegistryReadable(aoConfig);
27
49
  }
28
50
  }
29
51
  export class AoANTRegistryReadable {
@@ -32,10 +32,14 @@ export class ANT {
32
32
  static get versions() {
33
33
  return ANTVersions.init();
34
34
  }
35
- /**
36
- * Spawn a new ANT.
37
- */
38
- static spawn = spawnANT;
35
+ static async spawn(params) {
36
+ if (params && params.backend === 'solana') {
37
+ const { spawnSolanaANT } = await import('../solana/spawn-ant.js');
38
+ const { backend: _backend, ...rest } = params;
39
+ return spawnSolanaANT(rest);
40
+ }
41
+ return spawnANT(params);
42
+ }
39
43
  /**
40
44
  * Fork an ANT to a new process.
41
45
  *
@@ -188,7 +192,48 @@ export class ANT {
188
192
  return { forkedProcessId, reassignedNames, failedReassignedNames };
189
193
  }
190
194
  static init(config) {
191
- if (config !== undefined && 'signer' in config) {
195
+ // Solana backend async, loads transport lazily to keep AO-only bundles small
196
+ if ('backend' in config && config.backend === 'solana') {
197
+ return (async () => {
198
+ const { SolanaANTReadable } = await import('../solana/ant-readable.js');
199
+ const { SolanaANTWriteable } = await import('../solana/ant-writeable.js');
200
+ // ADR-016 / BD-100: when no explicit `antProgramId` is passed,
201
+ // resolve it from the asset's `ANT Program` Attributes-plugin
202
+ // entry. Without this auto-detection, third-party (BYO-ANT)
203
+ // assets would silently mis-derive PDAs through the canonical
204
+ // default. Users who already know the program (e.g. immediately
205
+ // after `ANT.spawn`) can short-circuit by passing it explicitly.
206
+ let antProgramId = config.antProgramId;
207
+ if (!antProgramId) {
208
+ const { fetchAntProgramFromAsset } = await import('../solana/mpl-core.js');
209
+ const { ARIO_ANT_PROGRAM_ID } = await import('../solana/constants.js');
210
+ const { address } = await import('@solana/kit');
211
+ const detected = await fetchAntProgramFromAsset(config.rpc, address(config.processId), { commitment: config.commitment ?? 'confirmed' });
212
+ antProgramId = detected ?? ARIO_ANT_PROGRAM_ID;
213
+ }
214
+ if (config.signer) {
215
+ if (!config.rpcSubscriptions) {
216
+ throw new Error('ANT.init({ backend: "solana", signer }) requires rpcSubscriptions for transaction confirmation.');
217
+ }
218
+ return new SolanaANTWriteable({
219
+ rpc: config.rpc,
220
+ rpcSubscriptions: config.rpcSubscriptions,
221
+ processId: config.processId,
222
+ signer: config.signer,
223
+ commitment: config.commitment,
224
+ antProgramId,
225
+ });
226
+ }
227
+ return new SolanaANTReadable({
228
+ rpc: config.rpc,
229
+ processId: config.processId,
230
+ commitment: config.commitment,
231
+ antProgramId,
232
+ });
233
+ })();
234
+ }
235
+ // AO backend (stays sync)
236
+ if ('signer' in config) {
192
237
  return new AoANTWriteable(config);
193
238
  }
194
239
  return new AoANTReadable(config);