@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,352 @@
1
+ /**
2
+ * Solana implementation of ANT (Arweave Name Token) write interface.
3
+ *
4
+ * Extends SolanaANTReadable with write operations that build and send
5
+ * Solana transactions to the ario-ant program.
6
+ *
7
+ * All instruction encoding is delegated to the Codama-generated builders in
8
+ * `./generated/ant/instructions/` — they own the discriminator + Borsh codec
9
+ * + account-meta wiring derived from the on-chain IDL.
10
+ *
11
+ * ACL maintenance (ADR-012, paginated per-user ACL):
12
+ * The on-chain handlers for `add_controller`, `remove_controller`, and
13
+ * `transfer` *require* the controller / new-owner / old-owner ACL
14
+ * accounts as instruction inputs and write the ACL inline as part of
15
+ * the same atomic ix. This SDK's job is therefore reduced to two
16
+ * things:
17
+ * 1. **Preflight resolution** — ask the composed
18
+ * `SolanaANTRegistryWriteable` to pick the right page and emit
19
+ * any `register_acl_config` / `add_acl_page` ixs that need to be
20
+ * prepended so the contract's account validation succeeds.
21
+ * 2. **Ex-controller cleanup on transfer** — a wrapped transfer
22
+ * cannot atomically `swap_remove` every ex-controller's ACL
23
+ * entry (variable cardinality, no clean way to express variadic
24
+ * accounts in Codama). The SDK reads the controllers list and
25
+ * delegates to `registry.bulkRemoveControllerEntries`, which
26
+ * produces the right `remove_acl_controller` ixs to append into
27
+ * the transfer tx. Permissionless heal flows clean up any drift
28
+ * if a marketplace transfer bypasses this SDK entirely.
29
+ */
30
+ import { address, } from '@solana/kit';
31
+ import { getAddControllerInstructionAsync, getMigrateAntInstructionAsync, getReconcileInstructionAsync, getRemoveControllerInstructionAsync, getRemoveRecordInstructionAsync, getSetDescriptionInstructionAsync, getSetKeywordsInstructionAsync, getSetLogoInstructionAsync, getSetNameInstructionAsync, getSetRecordInstructionAsync, getSetRecordMetadataInstructionAsync, getSetTickerInstructionAsync, getTransferInstructionAsync, getTransferRecordInstructionAsync, } from '@ar.io/solana-contracts/ant';
32
+ import { SolanaANTReadable } from './ant-readable.js';
33
+ import { SolanaANTRegistryWriteable } from './ant-registry-writeable.js';
34
+ import { deserializeAntControllers } from './deserialize.js';
35
+ import { getAccountInfoLegacy } from './json-rpc.js';
36
+ import { getAntControllersPDA, getAntRecordMetadataPDA, getAntRecordPDA, } from './pda.js';
37
+ import { sendAndConfirm } from './send.js';
38
+ /**
39
+ * Solana-backed read-write client for a single ANT (Arweave Name Token).
40
+ *
41
+ * Usage:
42
+ * ```ts
43
+ * import { createSolanaRpc, createSolanaRpcSubscriptions, createKeyPairSignerFromBytes } from '@solana/kit';
44
+ * import { SolanaANTWriteable } from '@ar.io/sdk/solana';
45
+ *
46
+ * const rpc = createSolanaRpc('https://api.mainnet-beta.solana.com');
47
+ * const rpcSubscriptions = createSolanaRpcSubscriptions('wss://api.mainnet-beta.solana.com');
48
+ * const signer = await createKeyPairSignerFromBytes(secretKeyBytes);
49
+ * const ant = new SolanaANTWriteable({
50
+ * rpc,
51
+ * rpcSubscriptions,
52
+ * processId: 'MetaplexCoreAssetAddress...',
53
+ * signer,
54
+ * });
55
+ *
56
+ * await ant.setRecord({ undername: 'docs', transactionId: '...', ttlSeconds: 3600 });
57
+ * ```
58
+ */
59
+ export class SolanaANTWriteable extends SolanaANTReadable {
60
+ signer;
61
+ rpcSubscriptions;
62
+ constructor(config) {
63
+ const registry = config.registry ??
64
+ new SolanaANTRegistryWriteable({
65
+ rpc: config.rpc,
66
+ signer: config.signer,
67
+ commitment: config.commitment,
68
+ logger: config.logger,
69
+ antProgramId: config.antProgramId,
70
+ });
71
+ super({ ...config, registry });
72
+ this.signer = config.signer;
73
+ this.rpcSubscriptions = config.rpcSubscriptions;
74
+ }
75
+ /**
76
+ * Build, sign, and send a transaction.
77
+ *
78
+ * Plain pass-through to `sendAndConfirm` — every ANT write whose ACL
79
+ * footprint is bounded (controllers add/remove, owner swap on
80
+ * transfer) is handled inline by the contract handlers. Variable-
81
+ * length cleanup (notably ex-controller wipe after transfer) is
82
+ * pre-built by the caller via `registry.bulkRemoveControllerEntries`
83
+ * and appended into the same `instructions` array, so this method
84
+ * doesn't need its own ACL plumbing.
85
+ */
86
+ async sendTransaction(instructions) {
87
+ return sendAndConfirm({
88
+ rpc: this.rpc,
89
+ rpcSubscriptions: this.rpcSubscriptions,
90
+ signer: this.signer,
91
+ instructions,
92
+ commitment: this.commitment,
93
+ computeUnitLimit: 400_000,
94
+ });
95
+ }
96
+ // =========================================
97
+ // Record operations
98
+ // =========================================
99
+ async setRecord(params, _options) {
100
+ const [recordPda] = await getAntRecordPDA(this.mint, params.undername, this.antProgram);
101
+ // Per-record metadata (display name / logo / description / keywords)
102
+ // moved out of `set_record` into a dedicated `set_record_metadata`
103
+ // instruction when `AntRecord` was split (ARNS-712). These fields are
104
+ // not part of `AoANTSetUndernameRecordParams` today, but we keep the
105
+ // forward path here so callers can pass them on the params object and
106
+ // we'll bundle a `set_record_metadata` ix into the same tx.
107
+ const extra = params;
108
+ const ixs = [];
109
+ ixs.push(await getSetRecordInstructionAsync({
110
+ asset: this.mint,
111
+ record: recordPda,
112
+ caller: this.signer,
113
+ undername: params.undername,
114
+ target: params.transactionId,
115
+ targetProtocol: params.targetProtocol ?? 0,
116
+ ttlSeconds: params.ttlSeconds,
117
+ priority: params.priority ?? null,
118
+ recordOwner: params.owner ? address(params.owner) : null,
119
+ }, { programAddress: this.antProgram }));
120
+ const hasMetadata = extra.displayName !== undefined ||
121
+ extra.logo !== undefined ||
122
+ extra.description !== undefined ||
123
+ extra.keywords !== undefined;
124
+ if (hasMetadata) {
125
+ const [metadataPda] = await getAntRecordMetadataPDA(this.mint, params.undername, this.antProgram);
126
+ ixs.push(await getSetRecordMetadataInstructionAsync({
127
+ asset: this.mint,
128
+ record: recordPda,
129
+ recordMetadata: metadataPda,
130
+ caller: this.signer,
131
+ undername: params.undername,
132
+ displayName: extra.displayName ?? null,
133
+ recordLogo: extra.logo ?? null,
134
+ recordDescription: extra.description ?? null,
135
+ recordKeywords: extra.keywords ?? null,
136
+ }, { programAddress: this.antProgram }));
137
+ }
138
+ const sig = await this.sendTransaction(ixs);
139
+ return { id: sig };
140
+ }
141
+ async setBaseNameRecord(params, options) {
142
+ return this.setRecord({ ...params, undername: '@' }, options);
143
+ }
144
+ async setUndernameRecord(params, options) {
145
+ return this.setRecord(params, options);
146
+ }
147
+ async removeRecord(params, _options) {
148
+ const [recordPda] = await getAntRecordPDA(this.mint, params.undername, this.antProgram);
149
+ const ix = await getRemoveRecordInstructionAsync({
150
+ asset: this.mint,
151
+ record: recordPda,
152
+ caller: this.signer,
153
+ }, { programAddress: this.antProgram });
154
+ const sig = await this.sendTransaction([ix]);
155
+ return { id: sig };
156
+ }
157
+ async removeUndernameRecord(params, options) {
158
+ return this.removeRecord(params, options);
159
+ }
160
+ async transferRecord(params, _options) {
161
+ const [recordPda] = await getAntRecordPDA(this.mint, params.undername, this.antProgram);
162
+ const ix = await getTransferRecordInstructionAsync({
163
+ asset: this.mint,
164
+ record: recordPda,
165
+ caller: this.signer,
166
+ newOwner: address(params.recipient),
167
+ }, { programAddress: this.antProgram });
168
+ const sig = await this.sendTransaction([ix]);
169
+ return { id: sig };
170
+ }
171
+ // =========================================
172
+ // Controller operations
173
+ // =========================================
174
+ async addController(params, _options) {
175
+ const controller = address(params.controller);
176
+ // ADR-012 (ACL): contract `add_controller` requires the controller's
177
+ // `AclConfig` + a destination `AclPage` and writes the
178
+ // `record_controller` entry inline. Resolve them here and prepend
179
+ // any `register_acl_config` / `add_acl_page` bootstrap ixs needed
180
+ // for first-time controllers.
181
+ const dest = await this.registry.resolveDestinationAclAccounts({
182
+ user: controller,
183
+ });
184
+ const addIx = await getAddControllerInstructionAsync({
185
+ asset: this.mint,
186
+ caller: this.signer,
187
+ controller,
188
+ controllerAclConfig: dest.aclConfigPda,
189
+ controllerAclPage: dest.aclPagePda,
190
+ }, { programAddress: this.antProgram });
191
+ const sig = await this.sendTransaction([...dest.prepIxs, addIx]);
192
+ return { id: sig };
193
+ }
194
+ async removeController(params, _options) {
195
+ const controller = address(params.controller);
196
+ // ADR-012 (ACL): contract `remove_controller` requires the page
197
+ // currently holding `(asset, Controller)`. Resolve via the
198
+ // registry; if the entry can't be found we still pass page 0 as a
199
+ // placeholder so the on-chain handler surfaces `AclEntryNotFound`
200
+ // (or, more likely, the page-belongs check fails first) rather
201
+ // than us silently swallowing the removal.
202
+ const source = await this.registry.resolveSourceAclAccountsForEntry({
203
+ user: controller,
204
+ asset: this.mint,
205
+ role: 'controller',
206
+ });
207
+ const aclConfigPda = source?.aclConfigPda ??
208
+ (await this.registry.deriveAclConfigPda(controller));
209
+ const aclPagePda = source?.aclPagePda ??
210
+ (await this.registry.deriveAclPagePda(controller, 0n));
211
+ const removeIx = await getRemoveControllerInstructionAsync({
212
+ asset: this.mint,
213
+ caller: this.signer,
214
+ controller,
215
+ controllerAclConfig: aclConfigPda,
216
+ controllerAclPage: aclPagePda,
217
+ }, { programAddress: this.antProgram });
218
+ const sig = await this.sendTransaction([removeIx]);
219
+ return { id: sig };
220
+ }
221
+ // =========================================
222
+ // Metadata operations
223
+ // =========================================
224
+ async setName(params, _options) {
225
+ const ix = await getSetNameInstructionAsync({ asset: this.mint, caller: this.signer, name: params.name }, { programAddress: this.antProgram });
226
+ const sig = await this.sendTransaction([ix]);
227
+ return { id: sig };
228
+ }
229
+ async setTicker(params, _options) {
230
+ const ix = await getSetTickerInstructionAsync({ asset: this.mint, caller: this.signer, ticker: params.ticker }, { programAddress: this.antProgram });
231
+ const sig = await this.sendTransaction([ix]);
232
+ return { id: sig };
233
+ }
234
+ async setDescription(params, _options) {
235
+ const ix = await getSetDescriptionInstructionAsync({
236
+ asset: this.mint,
237
+ caller: this.signer,
238
+ description: params.description,
239
+ }, { programAddress: this.antProgram });
240
+ const sig = await this.sendTransaction([ix]);
241
+ return { id: sig };
242
+ }
243
+ async setKeywords(params, _options) {
244
+ const ix = await getSetKeywordsInstructionAsync({ asset: this.mint, caller: this.signer, keywords: params.keywords }, { programAddress: this.antProgram });
245
+ const sig = await this.sendTransaction([ix]);
246
+ return { id: sig };
247
+ }
248
+ async setLogo(params, _options) {
249
+ const ix = await getSetLogoInstructionAsync({ asset: this.mint, caller: this.signer, logo: params.txId }, { programAddress: this.antProgram });
250
+ const sig = await this.sendTransaction([ix]);
251
+ return { id: sig };
252
+ }
253
+ // =========================================
254
+ // Transfer (wrapped ario_ant::transfer — CPI into MPL Core +
255
+ // inline reconcile + inline owner ACL swap)
256
+ // =========================================
257
+ async transfer(params, _options) {
258
+ const newOwner = address(params.target);
259
+ const oldOwner = this.signer.address;
260
+ // Resolve the new owner's destination ACL accounts (and bootstrap
261
+ // them if missing). The contract requires a non-full page; the
262
+ // registry preflight emits `register_acl_config` / `add_acl_page`
263
+ // ixs so the wrapped `transfer` ix's account validation succeeds.
264
+ const newOwnerDest = await this.registry.resolveDestinationAclAccounts({
265
+ user: newOwner,
266
+ });
267
+ // Resolve the old owner's source ACL accounts. The current owner
268
+ // *must* have a live `(asset, Owner)` entry — every spawn /
269
+ // import path seeds it, so a missing entry indicates state
270
+ // corruption. We surface that as `AclEntryNotFound` from the
271
+ // contract by passing the derived PDAs as a fallback rather than
272
+ // failing client-side here.
273
+ const oldOwnerSource = await this.registry.resolveSourceAclAccountsForEntry({
274
+ user: oldOwner,
275
+ asset: this.mint,
276
+ role: 'owner',
277
+ });
278
+ const oldOwnerAclConfigPda = oldOwnerSource?.aclConfigPda ??
279
+ (await this.registry.deriveAclConfigPda(oldOwner));
280
+ const oldOwnerAclPagePda = oldOwnerSource?.aclPagePda ??
281
+ (await this.registry.deriveAclPagePda(oldOwner, 0n));
282
+ const transferIx = await getTransferInstructionAsync({
283
+ asset: this.mint,
284
+ caller: this.signer,
285
+ newOwner,
286
+ newOwnerAclConfig: newOwnerDest.aclConfigPda,
287
+ newOwnerAclPage: newOwnerDest.aclPagePda,
288
+ oldOwnerAclConfig: oldOwnerAclConfigPda,
289
+ oldOwnerAclPage: oldOwnerAclPagePda,
290
+ }, { programAddress: this.antProgram });
291
+ // Ex-controller cleanup. The wrapped contract handler clears
292
+ // `AntControllers` via inline reconcile, but it cannot atomically
293
+ // `swap_remove` each ex-controller's ACL entry (variable-length;
294
+ // accounts can't be cleanly variadic in Codama). Read the live
295
+ // controllers list before the transfer and let the registry build
296
+ // the cleanup ixs — same-tx so frontends never see a stale "I
297
+ // control this ANT" entry. Permissionless heal flows clean up any
298
+ // drift if a marketplace transfer bypasses this SDK entirely.
299
+ const [controllersPda] = await getAntControllersPDA(this.mint, this.antProgram);
300
+ const controllersAccount = await getAccountInfoLegacy(this.rpc, controllersPda, this.commitment);
301
+ const exControllers = controllersAccount
302
+ ? deserializeAntControllers(controllersAccount.data).controllers
303
+ : [];
304
+ const cleanupIxs = await this.registry.bulkRemoveControllerEntries({
305
+ asset: this.mint,
306
+ controllers: exControllers,
307
+ });
308
+ const sig = await this.sendTransaction([
309
+ ...newOwnerDest.prepIxs,
310
+ transferIx,
311
+ ...cleanupIxs,
312
+ ]);
313
+ return { id: sig };
314
+ }
315
+ // =========================================
316
+ // Reconcile (Solana-specific)
317
+ // =========================================
318
+ async reconcile(_options) {
319
+ const ix = await getReconcileInstructionAsync({ asset: this.mint, caller: this.signer }, { programAddress: this.antProgram });
320
+ const sig = await this.sendTransaction([ix]);
321
+ return { id: sig };
322
+ }
323
+ // =========================================
324
+ // AO-specific methods (not applicable on Solana)
325
+ // =========================================
326
+ async releaseName(_params, _options) {
327
+ throw new Error('releaseName not applicable on Solana — use ario-arns program directly');
328
+ }
329
+ async reassignName(_params, _options) {
330
+ throw new Error('reassignName not applicable on Solana — use ario-arns program directly');
331
+ }
332
+ async approvePrimaryNameRequest(_params, _options) {
333
+ throw new Error('approvePrimaryNameRequest not applicable on Solana — use ario-core program directly');
334
+ }
335
+ async removePrimaryNames(_params, _options) {
336
+ throw new Error('removePrimaryNames not applicable on Solana — use ario-core program directly');
337
+ }
338
+ /**
339
+ * Migrate this ANT's on-chain state to the latest schema version.
340
+ * On Solana, "upgrade" means per-ANT data migration, not process forking.
341
+ * Returns the transaction signature if migration was needed.
342
+ */
343
+ async upgrade(_params) {
344
+ const needs = await this.needsMigration();
345
+ if (!needs) {
346
+ return { id: '', needsMigration: false };
347
+ }
348
+ const ix = await getMigrateAntInstructionAsync({ asset: this.mint, payer: this.signer }, { programAddress: this.antProgram });
349
+ const sig = await this.sendTransaction([ix]);
350
+ return { id: sig, needsMigration: true };
351
+ }
352
+ }
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Associated Token Account derivation, kit-native.
3
+ * Mirrors the classic SPL `getAssociatedTokenAddress` function but returns
4
+ * a kit `Address` without the web3.js dependency.
5
+ *
6
+ * TODO(C7): replace with `findAssociatedTokenPda` from `@solana-program/associated-token`
7
+ * once that package is added as a dependency.
8
+ */
9
+ import { address, getAddressEncoder, getProgramDerivedAddress, } from '@solana/kit';
10
+ import { SYSTEM_PROGRAM_ADDRESS, TOKEN_PROGRAM_ADDRESS, } from './instruction.js';
11
+ export const ATA_PROGRAM_ADDRESS = address('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL');
12
+ const addressEncoder = getAddressEncoder();
13
+ /**
14
+ * Derive the Associated Token Account (ATA) address for a given owner + mint.
15
+ *
16
+ * @param mint — the SPL token mint address
17
+ * @param owner — the owner's wallet address (or a PDA if `allowOwnerOffCurve = true`)
18
+ * @param allowOwnerOffCurve — unused; kit derives regardless of curve. Kept for
19
+ * parity with the old `@solana/spl-token` signature so call sites don't change.
20
+ */
21
+ export async function getAssociatedTokenAddressKit(mint, owner, _allowOwnerOffCurve = false) {
22
+ const [ata] = await getProgramDerivedAddress({
23
+ programAddress: ATA_PROGRAM_ADDRESS,
24
+ seeds: [
25
+ addressEncoder.encode(owner),
26
+ addressEncoder.encode(TOKEN_PROGRAM_ADDRESS),
27
+ addressEncoder.encode(mint),
28
+ ],
29
+ });
30
+ return ata;
31
+ }
32
+ /**
33
+ * Build an idempotent CreateAssociatedTokenAccount instruction. Safe to
34
+ * include in any tx — if the ATA already exists, the SPL ATA program
35
+ * silently succeeds.
36
+ *
37
+ * Used to pre-create vault / escrow ATAs in the same tx as the program
38
+ * instruction that consumes them. Anchor's `Account<TokenAccount>` constraint
39
+ * does NOT init the account, so the caller is responsible.
40
+ */
41
+ export function buildCreateAtaIdempotentIx(payer, ata, owner, mint) {
42
+ return {
43
+ programAddress: ATA_PROGRAM_ADDRESS,
44
+ accounts: [
45
+ // role 3 = writable signer; role 1 = writable; role 0 = readonly
46
+ { address: payer, role: 3 },
47
+ { address: ata, role: 1 },
48
+ { address: owner, role: 0 },
49
+ { address: mint, role: 0 },
50
+ { address: SYSTEM_PROGRAM_ADDRESS, role: 0 },
51
+ { address: TOKEN_PROGRAM_ADDRESS, role: 0 },
52
+ ],
53
+ data: new Uint8Array([1]), // SPL ATA program: 1 = CreateIdempotent
54
+ };
55
+ }
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Canonical claim-message helper for `ario-ant-escrow`.
3
+ *
4
+ * Produces the EXACT bytes a recipient signs to release an escrowed
5
+ * ANT. Output MUST be byte-identical to the Rust implementation in
6
+ * `contracts/programs/ario-ant-escrow/src/canonical.rs::build_canonical_message`.
7
+ * Cross-language equivalence is asserted by `canonical-message.test.ts`
8
+ * which spawns the Rust `canonical` example binary and diffs the bytes.
9
+ *
10
+ * Format (UTF-8, line-feed separated, no trailing newline):
11
+ *
12
+ * ```text
13
+ * ar.io ant-escrow claim v1
14
+ * network: <network>
15
+ * ant: <ant_mint_base58>
16
+ * claimant: <claimant_solana_pubkey_base58>
17
+ * nonce: <nonce_hex_lowercase>
18
+ * ```
19
+ *
20
+ * Wallets sign these bytes directly:
21
+ * - Arweave: `wallet.signMessage(bytes)` → 512-byte RSA-PSS sig
22
+ * - Ethereum: `wallet.signMessage(bytes)` → 65-byte ECDSA + EIP-191 sig
23
+ * (the wallet applies the EIP-191 prefix; on-chain code re-applies it).
24
+ */
25
+ /** Header literal — must match Rust `CANONICAL_HEADER`. */
26
+ const CANONICAL_HEADER = 'ar.io ant-escrow claim v1';
27
+ /**
28
+ * Build the canonical claim message bytes. UTF-8 encoded, no trailing
29
+ * newline, exactly the format shown in the docstring.
30
+ *
31
+ * @throws if `nonce` isn't exactly 32 bytes — guards against accidentally
32
+ * passing a hex string or a different-sized buffer.
33
+ */
34
+ export function canonicalMessage(input) {
35
+ if (input.nonce.length !== 32) {
36
+ throw new Error(`canonicalMessage: nonce must be 32 bytes, got ${input.nonce.length}`);
37
+ }
38
+ const text = `${CANONICAL_HEADER}\n` +
39
+ `network: ${input.network}\n` +
40
+ `ant: ${input.antMint}\n` +
41
+ `claimant: ${input.claimant}\n` +
42
+ `nonce: ${bytesToHexLower(input.nonce)}`;
43
+ return new TextEncoder().encode(text);
44
+ }
45
+ /** Header literal — must match Rust `CANONICAL_HEADER_V2`. */
46
+ const CANONICAL_HEADER_V2 = 'ar.io escrow claim v2';
47
+ /**
48
+ * Build the v2 canonical claim message bytes for token/vault escrows.
49
+ * UTF-8 encoded, no trailing newline.
50
+ *
51
+ * Format:
52
+ * ```text
53
+ * ar.io escrow claim v2
54
+ * network: <network>
55
+ * type: <token|vault>
56
+ * asset: <asset_id_hex_lowercase_64chars>
57
+ * amount: <u64_decimal>
58
+ * claimant: <base58>
59
+ * nonce: <hex_lowercase_64chars>
60
+ * ```
61
+ *
62
+ * @throws if `assetId` or `nonce` aren't exactly 32 bytes.
63
+ */
64
+ export function canonicalMessageV2(input) {
65
+ if (input.assetId.length !== 32) {
66
+ throw new Error(`canonicalMessageV2: assetId must be 32 bytes, got ${input.assetId.length}`);
67
+ }
68
+ if (input.nonce.length !== 32) {
69
+ throw new Error(`canonicalMessageV2: nonce must be 32 bytes, got ${input.nonce.length}`);
70
+ }
71
+ const text = `${CANONICAL_HEADER_V2}\n` +
72
+ `network: ${input.network}\n` +
73
+ `type: ${input.assetType}\n` +
74
+ `asset: ${bytesToHexLower(input.assetId)}\n` +
75
+ `amount: ${input.amount.toString()}\n` +
76
+ `claimant: ${input.claimant}\n` +
77
+ `nonce: ${bytesToHexLower(input.nonce)}`;
78
+ return new TextEncoder().encode(text);
79
+ }
80
+ // =========================================
81
+ // Shared utilities
82
+ // =========================================
83
+ /** Lowercase-hex encoding. Matches Rust `encode_hex_lowercase`. */
84
+ export function bytesToHexLower(bytes) {
85
+ let s = '';
86
+ for (let i = 0; i < bytes.length; i++) {
87
+ const b = bytes[i];
88
+ s += (b >>> 4).toString(16);
89
+ s += (b & 0x0f).toString(16);
90
+ }
91
+ return s;
92
+ }
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Cluster-specific deployment constants for AR.IO programs.
3
+ *
4
+ * Mainnet IDs are baked into the IDL at codegen time and surfaced via the
5
+ * placeholder constants in `./constants.ts` (e.g. `ARIO_CORE_PROGRAM_ID`).
6
+ * This module exposes the same values for *other* clusters where the
7
+ * programs are deployed at non-default addresses — primarily devnet.
8
+ *
9
+ * Source of truth: `/devnet-config.json` at the repo root. Keep these
10
+ * exports in sync when devnet is redeployed; the bundled drift test
11
+ * (`clusters.test.ts`) will fail CI on mismatch.
12
+ *
13
+ * Usage:
14
+ * ```ts
15
+ * import { ARIO } from '@ar.io/sdk';
16
+ * import { DEVNET_PROGRAM_IDS, DEVNET_RPC_URL } from '@ar.io/sdk/solana';
17
+ * import { createSolanaRpc, createSolanaRpcSubscriptions } from '@solana/kit';
18
+ *
19
+ * const rpc = createSolanaRpc(DEVNET_RPC_URL);
20
+ * const rpcSubscriptions = createSolanaRpcSubscriptions(
21
+ * DEVNET_RPC_URL.replace(/^https/, 'wss'),
22
+ * );
23
+ * const ario = ARIO.init({
24
+ * backend: 'solana',
25
+ * rpc,
26
+ * rpcSubscriptions,
27
+ * programIds: DEVNET_PROGRAM_IDS,
28
+ * });
29
+ * ```
30
+ */
31
+ import { address } from '@solana/kit';
32
+ /**
33
+ * Default JSON-RPC URL for the Solana devnet cluster.
34
+ *
35
+ * Public devnet rate-limits aggressively — for high-volume work, swap in
36
+ * a premium RPC (QuickNode / Helius / Triton). Derive the WS URL with
37
+ * `DEVNET_RPC_URL.replace(/^https/, 'wss')`.
38
+ */
39
+ export const DEVNET_RPC_URL = 'https://api.devnet.solana.com';
40
+ /**
41
+ * AR.IO program IDs deployed on Solana devnet.
42
+ *
43
+ * Shape matches the `programIds` argument of
44
+ * `ARIO.init({ backend: 'solana', programIds, ... })`.
45
+ *
46
+ * `antEscrow` is `null` because `ario-ant-escrow` is not deployed on
47
+ * devnet — the `sol_big_mod_exp` syscall it depends on is inactive on
48
+ * all public clusters today.
49
+ */
50
+ export const DEVNET_PROGRAM_IDS = {
51
+ core: address('83CQLP848zzCgnZ4LTq87g6hvxTooNLX7YXXkUUGv5ig'),
52
+ gar: address('AF8QAEaR4hzsqeUDwEdeTXMYtdyFegTENBdnJro6WVLR'),
53
+ arns: address('2HgSCKYjcapJPdHRKqkLrGXm7kvBmCP45ZyhWEm87oM1'),
54
+ ant: address('8ZMuXhiK7DorjPUg8RB1rzu7CvsABMk38WDJRbM62y2C'),
55
+ antEscrow: null,
56
+ };
57
+ /** ARIO SPL Token mint on devnet. */
58
+ export const DEVNET_ARIO_MINT = address('BZ3nczDe8To3c39eN7Beq9FW34BveUcEs9sDNkbGxn4U');
59
+ /** Protocol treasury token account on devnet (owner = ArioConfig PDA). */
60
+ export const DEVNET_TREASURY_TOKEN_ACCOUNT = address('WLh1PNwSg5QstPeATJxD21cb6wvYkj4ibQetkz5RTn3');
61
+ /** Protocol stake token account on devnet (owner = GatewaySettings PDA). */
62
+ export const DEVNET_STAKE_TOKEN_ACCOUNT = address('6vV7qQTf8Bv6SVagLKMSj3dnK7Vv9uaiujpMsHTJ2onF');