@ar.io/sdk 4.0.0-solana.9 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (533) hide show
  1. package/README.md +721 -673
  2. package/lib/esm/cli/cli.js +28 -152
  3. package/lib/esm/cli/commands/antCommands.js +5 -66
  4. package/lib/esm/cli/commands/arnsPurchaseCommands.js +7 -28
  5. package/lib/esm/cli/commands/escrowCommands.js +23 -4
  6. package/lib/esm/cli/commands/gatewayWriteCommands.js +15 -8
  7. package/lib/esm/cli/commands/pruneCommands.js +14 -26
  8. package/lib/esm/cli/commands/readCommands.js +12 -1
  9. package/lib/esm/cli/options.js +2 -75
  10. package/lib/esm/cli/utils.js +96 -209
  11. package/lib/esm/common/ant-registry.js +12 -160
  12. package/lib/esm/common/ant.js +40 -1208
  13. package/lib/esm/common/faucet.js +17 -6
  14. package/lib/esm/common/index.js +0 -4
  15. package/lib/esm/common/io.js +13 -1441
  16. package/lib/esm/constants.js +0 -18
  17. package/lib/esm/solana/ant-readable.js +391 -54
  18. package/lib/esm/solana/ant-registry-readable.js +15 -0
  19. package/lib/esm/solana/ant-registry-writeable.js +19 -4
  20. package/lib/esm/solana/ant-writeable.js +43 -11
  21. package/lib/esm/solana/ata.js +15 -0
  22. package/lib/esm/solana/canonical-message.js +45 -9
  23. package/lib/esm/solana/clusters.js +71 -22
  24. package/lib/esm/solana/constants.js +21 -5
  25. package/lib/esm/solana/delegation-math.js +49 -0
  26. package/lib/esm/solana/deserialize.js +263 -727
  27. package/lib/esm/solana/escrow.js +145 -103
  28. package/lib/esm/solana/events.js +20 -199
  29. package/lib/esm/solana/funding-plan.js +19 -2
  30. package/lib/esm/solana/index.js +53 -12
  31. package/lib/esm/solana/instruction.js +15 -0
  32. package/lib/esm/solana/io-readable.js +510 -58
  33. package/lib/esm/solana/io-writeable.js +1179 -183
  34. package/lib/esm/solana/json-rpc.js +20 -4
  35. package/lib/esm/solana/metadata.js +15 -0
  36. package/lib/esm/solana/mpl-core.js +55 -5
  37. package/lib/esm/solana/pda.js +15 -0
  38. package/lib/esm/solana/predict-prescribed-observers.js +110 -0
  39. package/lib/esm/solana/retry.js +117 -0
  40. package/lib/esm/solana/rpc-circuit-breaker.js +258 -0
  41. package/lib/esm/solana/send.js +258 -3
  42. package/lib/esm/solana/spawn-ant.js +16 -2
  43. package/lib/esm/types/ant.js +8 -8
  44. package/lib/esm/types/io.js +0 -10
  45. package/lib/esm/utils/ant.js +0 -64
  46. package/lib/esm/utils/index.js +0 -3
  47. package/lib/esm/version.js +1 -1
  48. package/lib/types/cli/commands/antCommands.d.ts +6 -9
  49. package/lib/types/cli/commands/arnsPurchaseCommands.d.ts +27 -13
  50. package/lib/types/cli/commands/escrowCommands.d.ts +6 -0
  51. package/lib/types/cli/commands/gatewayWriteCommands.d.ts +12 -11
  52. package/lib/types/cli/commands/pruneCommands.d.ts +11 -11
  53. package/lib/types/cli/commands/readCommands.d.ts +25 -22
  54. package/lib/types/cli/commands/transfer.d.ts +9 -9
  55. package/lib/types/cli/options.d.ts +0 -57
  56. package/lib/types/cli/types.d.ts +6 -14
  57. package/lib/types/cli/utils.d.ts +34 -32
  58. package/lib/types/common/ant-registry.d.ts +35 -74
  59. package/lib/types/common/ant.d.ts +52 -570
  60. package/lib/types/common/faucet.d.ts +20 -8
  61. package/lib/types/common/index.d.ts +0 -3
  62. package/lib/types/common/io.d.ts +56 -288
  63. package/lib/types/constants.d.ts +0 -17
  64. package/lib/types/solana/ant-readable.d.ts +65 -6
  65. package/lib/types/solana/ant-registry-readable.d.ts +17 -2
  66. package/lib/types/solana/ant-registry-writeable.d.ts +20 -5
  67. package/lib/types/solana/ant-writeable.d.ts +39 -24
  68. package/lib/types/solana/ata.d.ts +15 -0
  69. package/lib/types/solana/canonical-message.d.ts +44 -5
  70. package/lib/types/solana/clusters.d.ts +68 -21
  71. package/lib/types/solana/constants.d.ts +16 -0
  72. package/lib/types/solana/delegation-math.d.ts +25 -0
  73. package/lib/types/solana/deserialize.d.ts +28 -198
  74. package/lib/types/solana/escrow.d.ts +128 -51
  75. package/lib/types/solana/events.d.ts +26 -144
  76. package/lib/types/solana/funding-plan.d.ts +15 -0
  77. package/lib/types/solana/index.d.ts +27 -3
  78. package/lib/types/solana/instruction.d.ts +15 -0
  79. package/lib/types/solana/io-readable.d.ts +185 -46
  80. package/lib/types/solana/io-writeable.d.ts +450 -77
  81. package/lib/types/solana/json-rpc.d.ts +15 -0
  82. package/lib/types/solana/metadata.d.ts +15 -0
  83. package/lib/types/solana/mpl-core.d.ts +44 -0
  84. package/lib/types/solana/predict-prescribed-observers.d.ts +28 -0
  85. package/lib/types/solana/retry.d.ts +62 -0
  86. package/lib/types/solana/rpc-circuit-breaker.d.ts +78 -0
  87. package/lib/types/solana/send.d.ts +80 -2
  88. package/lib/types/solana/spawn-ant.d.ts +15 -0
  89. package/lib/types/solana/types.d.ts +15 -0
  90. package/lib/types/types/ant-registry.d.ts +4 -4
  91. package/lib/types/types/ant.d.ts +92 -92
  92. package/lib/types/types/common.d.ts +18 -74
  93. package/lib/types/types/faucet.d.ts +2 -2
  94. package/lib/types/types/io.d.ts +189 -158
  95. package/lib/types/types/token.d.ts +0 -12
  96. package/lib/types/utils/ant.d.ts +1 -12
  97. package/lib/types/utils/index.d.ts +0 -3
  98. package/lib/types/version.d.ts +1 -1
  99. package/package.json +23 -37
  100. package/lib/esm/common/ant-versions.js +0 -87
  101. package/lib/esm/common/arweave.js +0 -21
  102. package/lib/esm/common/contracts/ao-process.js +0 -218
  103. package/lib/esm/common/hyperbeam/hb.js +0 -169
  104. package/lib/esm/common/marketplace.js +0 -669
  105. package/lib/esm/common/turbo.js +0 -215
  106. package/lib/esm/node/index.js +0 -20
  107. package/lib/esm/solana/generated/ant/events/aclEntryAddedEvent.js +0 -21
  108. package/lib/esm/solana/generated/ant/events/aclEntryRemovedEvent.js +0 -21
  109. package/lib/esm/solana/generated/ant/events/antMetadataUpdatedEvent.js +0 -21
  110. package/lib/esm/solana/generated/ant/events/antReconciledEvent.js +0 -21
  111. package/lib/esm/solana/generated/ant/events/antTransferredEvent.js +0 -21
  112. package/lib/esm/solana/generated/ant/events/attributesClearedEvent.js +0 -21
  113. package/lib/esm/solana/generated/ant/events/attributesSyncedEvent.js +0 -21
  114. package/lib/esm/solana/generated/ant/events/controllerAddedEvent.js +0 -21
  115. package/lib/esm/solana/generated/ant/events/controllerRemovedEvent.js +0 -21
  116. package/lib/esm/solana/generated/ant/events/index.js +0 -16
  117. package/lib/esm/solana/generated/ant/events/recordMetadataPrunedEvent.js +0 -21
  118. package/lib/esm/solana/generated/ant/events/recordMetadataRemovedEvent.js +0 -21
  119. package/lib/esm/solana/generated/ant/events/recordMetadataUpdatedEvent.js +0 -21
  120. package/lib/esm/solana/generated/ant/events/recordRemovedEvent.js +0 -21
  121. package/lib/esm/solana/generated/ant/events/recordSetEvent.js +0 -21
  122. package/lib/esm/solana/generated/ant/events/recordTransferredEvent.js +0 -21
  123. package/lib/esm/solana/generated/ant-escrow/events/escrowCancelledEvent.js +0 -21
  124. package/lib/esm/solana/generated/ant-escrow/events/escrowClaimedEvent.js +0 -21
  125. package/lib/esm/solana/generated/ant-escrow/events/escrowDepositedEvent.js +0 -21
  126. package/lib/esm/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.js +0 -21
  127. package/lib/esm/solana/generated/ant-escrow/events/index.js +0 -5
  128. package/lib/esm/solana/generated/arns/events/demandFactorUpdatedEvent.js +0 -21
  129. package/lib/esm/solana/generated/arns/events/index.js +0 -13
  130. package/lib/esm/solana/generated/arns/events/leaseExtendedEvent.js +0 -21
  131. package/lib/esm/solana/generated/arns/events/namePurchasedEvent.js +0 -21
  132. package/lib/esm/solana/generated/arns/events/nameReassignedEvent.js +0 -21
  133. package/lib/esm/solana/generated/arns/events/nameReleasedEvent.js +0 -21
  134. package/lib/esm/solana/generated/arns/events/nameReservedEvent.js +0 -21
  135. package/lib/esm/solana/generated/arns/events/nameUnreservedEvent.js +0 -21
  136. package/lib/esm/solana/generated/arns/events/nameUpgradedEvent.js +0 -21
  137. package/lib/esm/solana/generated/arns/events/namesPrunedEvent.js +0 -21
  138. package/lib/esm/solana/generated/arns/events/reservedNameClaimedEvent.js +0 -21
  139. package/lib/esm/solana/generated/arns/events/returnedNamePurchasedEvent.js +0 -21
  140. package/lib/esm/solana/generated/arns/events/undernameIncreasedEvent.js +0 -21
  141. package/lib/esm/solana/generated/core/events/configUpdatedEvent.js +0 -21
  142. package/lib/esm/solana/generated/core/events/coreMigrationFinalizedEvent.js +0 -21
  143. package/lib/esm/solana/generated/core/events/index.js +0 -14
  144. package/lib/esm/solana/generated/core/events/primaryNameRemovedEvent.js +0 -21
  145. package/lib/esm/solana/generated/core/events/primaryNameRequestExpiredEvent.js +0 -21
  146. package/lib/esm/solana/generated/core/events/primaryNameRequestedEvent.js +0 -21
  147. package/lib/esm/solana/generated/core/events/primaryNameSetEvent.js +0 -21
  148. package/lib/esm/solana/generated/core/events/supplyFinalizedEvent.js +0 -21
  149. package/lib/esm/solana/generated/core/events/transferEvent.js +0 -21
  150. package/lib/esm/solana/generated/core/events/vaultCreatedEvent.js +0 -21
  151. package/lib/esm/solana/generated/core/events/vaultExtendedEvent.js +0 -21
  152. package/lib/esm/solana/generated/core/events/vaultIncreasedEvent.js +0 -21
  153. package/lib/esm/solana/generated/core/events/vaultReleasedEvent.js +0 -21
  154. package/lib/esm/solana/generated/core/events/vaultRevokedEvent.js +0 -21
  155. package/lib/esm/solana/generated/gar/events/allowlistToggledEvent.js +0 -21
  156. package/lib/esm/solana/generated/gar/events/delegateAllowlistedEvent.js +0 -21
  157. package/lib/esm/solana/generated/gar/events/delegationClosedEvent.js +0 -21
  158. package/lib/esm/solana/generated/gar/events/delegationDecreasedEvent.js +0 -21
  159. package/lib/esm/solana/generated/gar/events/delegationEvent.js +0 -21
  160. package/lib/esm/solana/generated/gar/events/epochClosedEvent.js +0 -21
  161. package/lib/esm/solana/generated/gar/events/epochCreatedEvent.js +0 -21
  162. package/lib/esm/solana/generated/gar/events/epochDistributedEvent.js +0 -21
  163. package/lib/esm/solana/generated/gar/events/epochPrescribedEvent.js +0 -21
  164. package/lib/esm/solana/generated/gar/events/epochWeightsTalliedEvent.js +0 -21
  165. package/lib/esm/solana/generated/gar/events/epochsToggledEvent.js +0 -21
  166. package/lib/esm/solana/generated/gar/events/fundingPlanAppliedEvent.js +0 -21
  167. package/lib/esm/solana/generated/gar/events/garMigrationFinalizedEvent.js +0 -21
  168. package/lib/esm/solana/generated/gar/events/gatewayFinalizedEvent.js +0 -21
  169. package/lib/esm/solana/generated/gar/events/gatewayJoinedEvent.js +0 -21
  170. package/lib/esm/solana/generated/gar/events/gatewayLeavingEvent.js +0 -21
  171. package/lib/esm/solana/generated/gar/events/gatewayPrunedEvent.js +0 -21
  172. package/lib/esm/solana/generated/gar/events/gatewaySettingsUpdatedEvent.js +0 -21
  173. package/lib/esm/solana/generated/gar/events/index.js +0 -31
  174. package/lib/esm/solana/generated/gar/events/instantWithdrawalEvent.js +0 -21
  175. package/lib/esm/solana/generated/gar/events/observationSubmittedEvent.js +0 -21
  176. package/lib/esm/solana/generated/gar/events/observerAddressUpdatedEvent.js +0 -21
  177. package/lib/esm/solana/generated/gar/events/operatorStakeIncreasedEvent.js +0 -21
  178. package/lib/esm/solana/generated/gar/events/redelegationEvent.js +0 -21
  179. package/lib/esm/solana/generated/gar/events/residueVaultCreatedEvent.js +0 -21
  180. package/lib/esm/solana/generated/gar/events/rewardsCompoundedEvent.js +0 -21
  181. package/lib/esm/solana/generated/gar/events/stakePaymentEvent.js +0 -21
  182. package/lib/esm/solana/generated/gar/events/withdrawalCancelledEvent.js +0 -21
  183. package/lib/esm/solana/generated/gar/events/withdrawalClaimedEvent.js +0 -21
  184. package/lib/esm/solana/generated/gar/events/withdrawalCreatedEvent.js +0 -21
  185. package/lib/esm/solana/generated/gar/events/withdrawalPaymentEvent.js +0 -21
  186. package/lib/esm/solana/generated/mpl-core/accounts/assetV1.js +0 -42
  187. package/lib/esm/solana/generated/mpl-core/accounts/collectionV1.js +0 -42
  188. package/lib/esm/solana/generated/mpl-core/accounts/hashedAssetV1.js +0 -45
  189. package/lib/esm/solana/generated/mpl-core/accounts/index.js +0 -12
  190. package/lib/esm/solana/generated/mpl-core/accounts/pluginHeaderV1.js +0 -45
  191. package/lib/esm/solana/generated/mpl-core/accounts/pluginRegistryV1.js +0 -42
  192. package/lib/esm/solana/generated/mpl-core/errors/index.js +0 -8
  193. package/lib/esm/solana/generated/mpl-core/errors/mplCore.js +0 -136
  194. package/lib/esm/solana/generated/mpl-core/index.js +0 -8
  195. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.js +0 -53
  196. package/lib/esm/solana/generated/mpl-core/instructions/addCollectionPluginV1.js +0 -53
  197. package/lib/esm/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.js +0 -53
  198. package/lib/esm/solana/generated/mpl-core/instructions/addPluginV1.js +0 -53
  199. package/lib/esm/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.js +0 -53
  200. package/lib/esm/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.js +0 -53
  201. package/lib/esm/solana/generated/mpl-core/instructions/burnCollectionV1.js +0 -49
  202. package/lib/esm/solana/generated/mpl-core/instructions/burnV1.js +0 -49
  203. package/lib/esm/solana/generated/mpl-core/instructions/collect.js +0 -42
  204. package/lib/esm/solana/generated/mpl-core/instructions/compressV1.js +0 -50
  205. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV1.js +0 -53
  206. package/lib/esm/solana/generated/mpl-core/instructions/createCollectionV2.js +0 -53
  207. package/lib/esm/solana/generated/mpl-core/instructions/createV1.js +0 -53
  208. package/lib/esm/solana/generated/mpl-core/instructions/createV2.js +0 -53
  209. package/lib/esm/solana/generated/mpl-core/instructions/decompressV1.js +0 -53
  210. package/lib/esm/solana/generated/mpl-core/instructions/executeV1.js +0 -56
  211. package/lib/esm/solana/generated/mpl-core/instructions/index.js +0 -40
  212. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.js +0 -53
  213. package/lib/esm/solana/generated/mpl-core/instructions/removeCollectionPluginV1.js +0 -53
  214. package/lib/esm/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.js +0 -53
  215. package/lib/esm/solana/generated/mpl-core/instructions/removePluginV1.js +0 -53
  216. package/lib/esm/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.js +0 -53
  217. package/lib/esm/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.js +0 -53
  218. package/lib/esm/solana/generated/mpl-core/instructions/transferV1.js +0 -49
  219. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.js +0 -53
  220. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionInfoV1.js +0 -45
  221. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionPluginV1.js +0 -53
  222. package/lib/esm/solana/generated/mpl-core/instructions/updateCollectionV1.js +0 -52
  223. package/lib/esm/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.js +0 -53
  224. package/lib/esm/solana/generated/mpl-core/instructions/updatePluginV1.js +0 -53
  225. package/lib/esm/solana/generated/mpl-core/instructions/updateV1.js +0 -53
  226. package/lib/esm/solana/generated/mpl-core/instructions/updateV2.js +0 -53
  227. package/lib/esm/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.js +0 -53
  228. package/lib/esm/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.js +0 -53
  229. package/lib/esm/solana/generated/mpl-core/program-address.js +0 -1
  230. package/lib/esm/solana/generated/mpl-core/types/addAssetsToGroupV1Args.js +0 -17
  231. package/lib/esm/solana/generated/mpl-core/types/addBlocker.js +0 -17
  232. package/lib/esm/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.js +0 -17
  233. package/lib/esm/solana/generated/mpl-core/types/addGroupsToGroupV1Args.js +0 -17
  234. package/lib/esm/solana/generated/mpl-core/types/agentIdentity.js +0 -17
  235. package/lib/esm/solana/generated/mpl-core/types/agentIdentityInitInfo.js +0 -18
  236. package/lib/esm/solana/generated/mpl-core/types/agentIdentityUpdateInfo.js +0 -18
  237. package/lib/esm/solana/generated/mpl-core/types/appData.js +0 -18
  238. package/lib/esm/solana/generated/mpl-core/types/appDataInitInfo.js +0 -18
  239. package/lib/esm/solana/generated/mpl-core/types/appDataUpdateInfo.js +0 -18
  240. package/lib/esm/solana/generated/mpl-core/types/attribute.js +0 -17
  241. package/lib/esm/solana/generated/mpl-core/types/attributes.js +0 -18
  242. package/lib/esm/solana/generated/mpl-core/types/authority.js +0 -24
  243. package/lib/esm/solana/generated/mpl-core/types/autograph.js +0 -18
  244. package/lib/esm/solana/generated/mpl-core/types/autographSignature.js +0 -17
  245. package/lib/esm/solana/generated/mpl-core/types/bubblegumV2.js +0 -17
  246. package/lib/esm/solana/generated/mpl-core/types/burnDelegate.js +0 -17
  247. package/lib/esm/solana/generated/mpl-core/types/closeGroupV1Args.js +0 -17
  248. package/lib/esm/solana/generated/mpl-core/types/compressionProof.js +0 -18
  249. package/lib/esm/solana/generated/mpl-core/types/creator.js +0 -17
  250. package/lib/esm/solana/generated/mpl-core/types/dataSection.js +0 -18
  251. package/lib/esm/solana/generated/mpl-core/types/dataSectionInitInfo.js +0 -18
  252. package/lib/esm/solana/generated/mpl-core/types/dataSectionUpdateInfo.js +0 -17
  253. package/lib/esm/solana/generated/mpl-core/types/dataState.js +0 -23
  254. package/lib/esm/solana/generated/mpl-core/types/edition.js +0 -17
  255. package/lib/esm/solana/generated/mpl-core/types/externalCheckResult.js +0 -17
  256. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapter.js +0 -25
  257. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.js +0 -25
  258. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterKey.js +0 -25
  259. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterSchema.js +0 -24
  260. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterType.js +0 -28
  261. package/lib/esm/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.js +0 -25
  262. package/lib/esm/solana/generated/mpl-core/types/externalRegistryRecord.js +0 -18
  263. package/lib/esm/solana/generated/mpl-core/types/externalValidationResult.js +0 -24
  264. package/lib/esm/solana/generated/mpl-core/types/extraAccount.js +0 -25
  265. package/lib/esm/solana/generated/mpl-core/types/freezeDelegate.js +0 -17
  266. package/lib/esm/solana/generated/mpl-core/types/freezeExecute.js +0 -17
  267. package/lib/esm/solana/generated/mpl-core/types/groups.js +0 -17
  268. package/lib/esm/solana/generated/mpl-core/types/hashablePluginSchema.js +0 -18
  269. package/lib/esm/solana/generated/mpl-core/types/hashedAssetSchema.js +0 -17
  270. package/lib/esm/solana/generated/mpl-core/types/hookableLifecycleEvent.js +0 -26
  271. package/lib/esm/solana/generated/mpl-core/types/immutableMetadata.js +0 -17
  272. package/lib/esm/solana/generated/mpl-core/types/index.js +0 -89
  273. package/lib/esm/solana/generated/mpl-core/types/key.js +0 -28
  274. package/lib/esm/solana/generated/mpl-core/types/lifecycleHook.js +0 -18
  275. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookInitInfo.js +0 -18
  276. package/lib/esm/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.js +0 -18
  277. package/lib/esm/solana/generated/mpl-core/types/linkedAppData.js +0 -18
  278. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataInitInfo.js +0 -18
  279. package/lib/esm/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.js +0 -18
  280. package/lib/esm/solana/generated/mpl-core/types/linkedDataKey.js +0 -25
  281. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHook.js +0 -18
  282. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.js +0 -18
  283. package/lib/esm/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.js +0 -18
  284. package/lib/esm/solana/generated/mpl-core/types/masterEdition.js +0 -17
  285. package/lib/esm/solana/generated/mpl-core/types/oracle.js +0 -18
  286. package/lib/esm/solana/generated/mpl-core/types/oracleInitInfo.js +0 -18
  287. package/lib/esm/solana/generated/mpl-core/types/oracleUpdateInfo.js +0 -18
  288. package/lib/esm/solana/generated/mpl-core/types/oracleValidation.js +0 -25
  289. package/lib/esm/solana/generated/mpl-core/types/permanentBurnDelegate.js +0 -17
  290. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeDelegate.js +0 -17
  291. package/lib/esm/solana/generated/mpl-core/types/permanentFreezeExecute.js +0 -17
  292. package/lib/esm/solana/generated/mpl-core/types/permanentTransferDelegate.js +0 -17
  293. package/lib/esm/solana/generated/mpl-core/types/plugin.js +0 -25
  294. package/lib/esm/solana/generated/mpl-core/types/pluginAuthorityPair.js +0 -18
  295. package/lib/esm/solana/generated/mpl-core/types/pluginType.js +0 -40
  296. package/lib/esm/solana/generated/mpl-core/types/registryRecord.js +0 -18
  297. package/lib/esm/solana/generated/mpl-core/types/relationshipKind.js +0 -25
  298. package/lib/esm/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.js +0 -17
  299. package/lib/esm/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.js +0 -17
  300. package/lib/esm/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.js +0 -17
  301. package/lib/esm/solana/generated/mpl-core/types/royalties.js +0 -18
  302. package/lib/esm/solana/generated/mpl-core/types/ruleSet.js +0 -24
  303. package/lib/esm/solana/generated/mpl-core/types/seed.js +0 -24
  304. package/lib/esm/solana/generated/mpl-core/types/transferDelegate.js +0 -17
  305. package/lib/esm/solana/generated/mpl-core/types/updateAuthority.js +0 -24
  306. package/lib/esm/solana/generated/mpl-core/types/updateDelegate.js +0 -17
  307. package/lib/esm/solana/generated/mpl-core/types/updateGroupV1Args.js +0 -17
  308. package/lib/esm/solana/generated/mpl-core/types/updateType.js +0 -24
  309. package/lib/esm/solana/generated/mpl-core/types/validationResult.js +0 -25
  310. package/lib/esm/solana/generated/mpl-core/types/validationResultsOffset.js +0 -24
  311. package/lib/esm/solana/generated/mpl-core/types/verifiedCreators.js +0 -18
  312. package/lib/esm/solana/generated/mpl-core/types/verifiedCreatorsSignature.js +0 -17
  313. package/lib/esm/utils/ao.js +0 -421
  314. package/lib/esm/utils/arweave.js +0 -271
  315. package/lib/esm/utils/processes.js +0 -167
  316. package/lib/esm/web/index.js +0 -20
  317. package/lib/types/common/ant-versions.d.ts +0 -39
  318. package/lib/types/common/arweave.d.ts +0 -17
  319. package/lib/types/common/contracts/ao-process.d.ts +0 -33
  320. package/lib/types/common/hyperbeam/hb.d.ts +0 -88
  321. package/lib/types/common/marketplace.d.ts +0 -556
  322. package/lib/types/common/turbo.d.ts +0 -61
  323. package/lib/types/node/index.d.ts +0 -20
  324. package/lib/types/solana/generated/ant/events/aclEntryAddedEvent.d.ts +0 -26
  325. package/lib/types/solana/generated/ant/events/aclEntryRemovedEvent.d.ts +0 -26
  326. package/lib/types/solana/generated/ant/events/antMetadataUpdatedEvent.d.ts +0 -28
  327. package/lib/types/solana/generated/ant/events/antReconciledEvent.d.ts +0 -28
  328. package/lib/types/solana/generated/ant/events/antTransferredEvent.d.ts +0 -26
  329. package/lib/types/solana/generated/ant/events/attributesClearedEvent.d.ts +0 -26
  330. package/lib/types/solana/generated/ant/events/attributesSyncedEvent.d.ts +0 -24
  331. package/lib/types/solana/generated/ant/events/controllerAddedEvent.d.ts +0 -26
  332. package/lib/types/solana/generated/ant/events/controllerRemovedEvent.d.ts +0 -26
  333. package/lib/types/solana/generated/ant/events/index.d.ts +0 -15
  334. package/lib/types/solana/generated/ant/events/recordMetadataPrunedEvent.d.ts +0 -26
  335. package/lib/types/solana/generated/ant/events/recordMetadataRemovedEvent.d.ts +0 -26
  336. package/lib/types/solana/generated/ant/events/recordMetadataUpdatedEvent.d.ts +0 -28
  337. package/lib/types/solana/generated/ant/events/recordRemovedEvent.d.ts +0 -26
  338. package/lib/types/solana/generated/ant/events/recordSetEvent.d.ts +0 -34
  339. package/lib/types/solana/generated/ant/events/recordTransferredEvent.d.ts +0 -30
  340. package/lib/types/solana/generated/ant-escrow/events/escrowCancelledEvent.d.ts +0 -28
  341. package/lib/types/solana/generated/ant-escrow/events/escrowClaimedEvent.d.ts +0 -32
  342. package/lib/types/solana/generated/ant-escrow/events/escrowDepositedEvent.d.ts +0 -36
  343. package/lib/types/solana/generated/ant-escrow/events/escrowRecipientUpdatedEvent.d.ts +0 -26
  344. package/lib/types/solana/generated/ant-escrow/events/index.d.ts +0 -4
  345. package/lib/types/solana/generated/arns/events/demandFactorUpdatedEvent.d.ts +0 -28
  346. package/lib/types/solana/generated/arns/events/index.d.ts +0 -12
  347. package/lib/types/solana/generated/arns/events/leaseExtendedEvent.d.ts +0 -32
  348. package/lib/types/solana/generated/arns/events/namePurchasedEvent.d.ts +0 -34
  349. package/lib/types/solana/generated/arns/events/nameReassignedEvent.d.ts +0 -28
  350. package/lib/types/solana/generated/arns/events/nameReleasedEvent.d.ts +0 -24
  351. package/lib/types/solana/generated/arns/events/nameReservedEvent.d.ts +0 -28
  352. package/lib/types/solana/generated/arns/events/nameUnreservedEvent.d.ts +0 -24
  353. package/lib/types/solana/generated/arns/events/nameUpgradedEvent.d.ts +0 -28
  354. package/lib/types/solana/generated/arns/events/namesPrunedEvent.d.ts +0 -26
  355. package/lib/types/solana/generated/arns/events/reservedNameClaimedEvent.d.ts +0 -24
  356. package/lib/types/solana/generated/arns/events/returnedNamePurchasedEvent.d.ts +0 -32
  357. package/lib/types/solana/generated/arns/events/undernameIncreasedEvent.d.ts +0 -32
  358. package/lib/types/solana/generated/core/events/configUpdatedEvent.d.ts +0 -26
  359. package/lib/types/solana/generated/core/events/coreMigrationFinalizedEvent.d.ts +0 -26
  360. package/lib/types/solana/generated/core/events/index.d.ts +0 -13
  361. package/lib/types/solana/generated/core/events/primaryNameRemovedEvent.d.ts +0 -26
  362. package/lib/types/solana/generated/core/events/primaryNameRequestExpiredEvent.d.ts +0 -26
  363. package/lib/types/solana/generated/core/events/primaryNameRequestedEvent.d.ts +0 -30
  364. package/lib/types/solana/generated/core/events/primaryNameSetEvent.d.ts +0 -24
  365. package/lib/types/solana/generated/core/events/supplyFinalizedEvent.d.ts +0 -26
  366. package/lib/types/solana/generated/core/events/transferEvent.d.ts +0 -26
  367. package/lib/types/solana/generated/core/events/vaultCreatedEvent.d.ts +0 -28
  368. package/lib/types/solana/generated/core/events/vaultExtendedEvent.d.ts +0 -26
  369. package/lib/types/solana/generated/core/events/vaultIncreasedEvent.d.ts +0 -28
  370. package/lib/types/solana/generated/core/events/vaultReleasedEvent.d.ts +0 -26
  371. package/lib/types/solana/generated/core/events/vaultRevokedEvent.d.ts +0 -28
  372. package/lib/types/solana/generated/gar/events/allowlistToggledEvent.d.ts +0 -24
  373. package/lib/types/solana/generated/gar/events/delegateAllowlistedEvent.d.ts +0 -26
  374. package/lib/types/solana/generated/gar/events/delegationClosedEvent.d.ts +0 -24
  375. package/lib/types/solana/generated/gar/events/delegationDecreasedEvent.d.ts +0 -28
  376. package/lib/types/solana/generated/gar/events/delegationEvent.d.ts +0 -28
  377. package/lib/types/solana/generated/gar/events/epochClosedEvent.d.ts +0 -24
  378. package/lib/types/solana/generated/gar/events/epochCreatedEvent.d.ts +0 -26
  379. package/lib/types/solana/generated/gar/events/epochDistributedEvent.d.ts +0 -26
  380. package/lib/types/solana/generated/gar/events/epochPrescribedEvent.d.ts +0 -28
  381. package/lib/types/solana/generated/gar/events/epochWeightsTalliedEvent.d.ts +0 -26
  382. package/lib/types/solana/generated/gar/events/epochsToggledEvent.d.ts +0 -24
  383. package/lib/types/solana/generated/gar/events/fundingPlanAppliedEvent.d.ts +0 -28
  384. package/lib/types/solana/generated/gar/events/garMigrationFinalizedEvent.d.ts +0 -26
  385. package/lib/types/solana/generated/gar/events/gatewayFinalizedEvent.d.ts +0 -24
  386. package/lib/types/solana/generated/gar/events/gatewayJoinedEvent.d.ts +0 -26
  387. package/lib/types/solana/generated/gar/events/gatewayLeavingEvent.d.ts +0 -22
  388. package/lib/types/solana/generated/gar/events/gatewayPrunedEvent.d.ts +0 -26
  389. package/lib/types/solana/generated/gar/events/gatewaySettingsUpdatedEvent.d.ts +0 -24
  390. package/lib/types/solana/generated/gar/events/index.d.ts +0 -30
  391. package/lib/types/solana/generated/gar/events/instantWithdrawalEvent.d.ts +0 -30
  392. package/lib/types/solana/generated/gar/events/observationSubmittedEvent.d.ts +0 -28
  393. package/lib/types/solana/generated/gar/events/observerAddressUpdatedEvent.d.ts +0 -24
  394. package/lib/types/solana/generated/gar/events/operatorStakeIncreasedEvent.d.ts +0 -26
  395. package/lib/types/solana/generated/gar/events/redelegationEvent.d.ts +0 -30
  396. package/lib/types/solana/generated/gar/events/residueVaultCreatedEvent.d.ts +0 -30
  397. package/lib/types/solana/generated/gar/events/rewardsCompoundedEvent.d.ts +0 -26
  398. package/lib/types/solana/generated/gar/events/stakePaymentEvent.d.ts +0 -28
  399. package/lib/types/solana/generated/gar/events/withdrawalCancelledEvent.d.ts +0 -30
  400. package/lib/types/solana/generated/gar/events/withdrawalClaimedEvent.d.ts +0 -26
  401. package/lib/types/solana/generated/gar/events/withdrawalCreatedEvent.d.ts +0 -28
  402. package/lib/types/solana/generated/gar/events/withdrawalPaymentEvent.d.ts +0 -28
  403. package/lib/types/solana/generated/mpl-core/accounts/assetV1.d.ts +0 -37
  404. package/lib/types/solana/generated/mpl-core/accounts/collectionV1.d.ts +0 -37
  405. package/lib/types/solana/generated/mpl-core/accounts/hashedAssetV1.d.ts +0 -30
  406. package/lib/types/solana/generated/mpl-core/accounts/index.d.ts +0 -12
  407. package/lib/types/solana/generated/mpl-core/accounts/pluginHeaderV1.d.ts +0 -30
  408. package/lib/types/solana/generated/mpl-core/accounts/pluginRegistryV1.d.ts +0 -31
  409. package/lib/types/solana/generated/mpl-core/errors/index.d.ts +0 -8
  410. package/lib/types/solana/generated/mpl-core/errors/mplCore.d.ts +0 -133
  411. package/lib/types/solana/generated/mpl-core/index.d.ts +0 -8
  412. package/lib/types/solana/generated/mpl-core/instructions/addCollectionExternalPluginAdapterV1.d.ts +0 -56
  413. package/lib/types/solana/generated/mpl-core/instructions/addCollectionPluginV1.d.ts +0 -59
  414. package/lib/types/solana/generated/mpl-core/instructions/addExternalPluginAdapterV1.d.ts +0 -60
  415. package/lib/types/solana/generated/mpl-core/instructions/addPluginV1.d.ts +0 -63
  416. package/lib/types/solana/generated/mpl-core/instructions/approveCollectionPluginAuthorityV1.d.ts +0 -59
  417. package/lib/types/solana/generated/mpl-core/instructions/approvePluginAuthorityV1.d.ts +0 -63
  418. package/lib/types/solana/generated/mpl-core/instructions/burnCollectionV1.d.ts +0 -52
  419. package/lib/types/solana/generated/mpl-core/instructions/burnV1.d.ts +0 -60
  420. package/lib/types/solana/generated/mpl-core/instructions/collect.d.ts +0 -39
  421. package/lib/types/solana/generated/mpl-core/instructions/compressV1.d.ts +0 -55
  422. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV1.d.ts +0 -58
  423. package/lib/types/solana/generated/mpl-core/instructions/createCollectionV2.d.ts +0 -61
  424. package/lib/types/solana/generated/mpl-core/instructions/createV1.d.ts +0 -77
  425. package/lib/types/solana/generated/mpl-core/instructions/createV2.d.ts +0 -80
  426. package/lib/types/solana/generated/mpl-core/instructions/decompressV1.d.ts +0 -60
  427. package/lib/types/solana/generated/mpl-core/instructions/executeV1.d.ts +0 -63
  428. package/lib/types/solana/generated/mpl-core/instructions/index.d.ts +0 -40
  429. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionExternalPluginAdapterV1.d.ts +0 -56
  430. package/lib/types/solana/generated/mpl-core/instructions/removeCollectionPluginV1.d.ts +0 -56
  431. package/lib/types/solana/generated/mpl-core/instructions/removeExternalPluginAdapterV1.d.ts +0 -60
  432. package/lib/types/solana/generated/mpl-core/instructions/removePluginV1.d.ts +0 -60
  433. package/lib/types/solana/generated/mpl-core/instructions/revokeCollectionPluginAuthorityV1.d.ts +0 -56
  434. package/lib/types/solana/generated/mpl-core/instructions/revokePluginAuthorityV1.d.ts +0 -60
  435. package/lib/types/solana/generated/mpl-core/instructions/transferV1.d.ts +0 -64
  436. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionExternalPluginAdapterV1.d.ts +0 -59
  437. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionInfoV1.d.ts +0 -47
  438. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionPluginV1.d.ts +0 -56
  439. package/lib/types/solana/generated/mpl-core/instructions/updateCollectionV1.d.ts +0 -62
  440. package/lib/types/solana/generated/mpl-core/instructions/updateExternalPluginAdapterV1.d.ts +0 -63
  441. package/lib/types/solana/generated/mpl-core/instructions/updatePluginV1.d.ts +0 -60
  442. package/lib/types/solana/generated/mpl-core/instructions/updateV1.d.ts +0 -66
  443. package/lib/types/solana/generated/mpl-core/instructions/updateV2.d.ts +0 -70
  444. package/lib/types/solana/generated/mpl-core/instructions/writeCollectionExternalPluginAdapterDataV1.d.ts +0 -63
  445. package/lib/types/solana/generated/mpl-core/instructions/writeExternalPluginAdapterDataV1.d.ts +0 -67
  446. package/lib/types/solana/generated/mpl-core/program-address.d.ts +0 -7
  447. package/lib/types/solana/generated/mpl-core/types/addAssetsToGroupV1Args.d.ts +0 -13
  448. package/lib/types/solana/generated/mpl-core/types/addBlocker.d.ts +0 -13
  449. package/lib/types/solana/generated/mpl-core/types/addCollectionsToGroupV1Args.d.ts +0 -13
  450. package/lib/types/solana/generated/mpl-core/types/addGroupsToGroupV1Args.d.ts +0 -15
  451. package/lib/types/solana/generated/mpl-core/types/agentIdentity.d.ts +0 -15
  452. package/lib/types/solana/generated/mpl-core/types/agentIdentityInitInfo.d.ts +0 -22
  453. package/lib/types/solana/generated/mpl-core/types/agentIdentityUpdateInfo.d.ts +0 -20
  454. package/lib/types/solana/generated/mpl-core/types/appData.d.ts +0 -20
  455. package/lib/types/solana/generated/mpl-core/types/appDataInitInfo.d.ts +0 -22
  456. package/lib/types/solana/generated/mpl-core/types/appDataUpdateInfo.d.ts +0 -18
  457. package/lib/types/solana/generated/mpl-core/types/attribute.d.ts +0 -16
  458. package/lib/types/solana/generated/mpl-core/types/attributes.d.ts +0 -18
  459. package/lib/types/solana/generated/mpl-core/types/authority.d.ts +0 -29
  460. package/lib/types/solana/generated/mpl-core/types/autograph.d.ts +0 -18
  461. package/lib/types/solana/generated/mpl-core/types/autographSignature.d.ts +0 -16
  462. package/lib/types/solana/generated/mpl-core/types/bubblegumV2.d.ts +0 -13
  463. package/lib/types/solana/generated/mpl-core/types/burnDelegate.d.ts +0 -13
  464. package/lib/types/solana/generated/mpl-core/types/closeGroupV1Args.d.ts +0 -13
  465. package/lib/types/solana/generated/mpl-core/types/compressionProof.d.ts +0 -28
  466. package/lib/types/solana/generated/mpl-core/types/creator.d.ts +0 -16
  467. package/lib/types/solana/generated/mpl-core/types/dataSection.d.ts +0 -20
  468. package/lib/types/solana/generated/mpl-core/types/dataSectionInitInfo.d.ts +0 -20
  469. package/lib/types/solana/generated/mpl-core/types/dataSectionUpdateInfo.d.ts +0 -13
  470. package/lib/types/solana/generated/mpl-core/types/dataState.d.ts +0 -16
  471. package/lib/types/solana/generated/mpl-core/types/edition.d.ts +0 -15
  472. package/lib/types/solana/generated/mpl-core/types/externalCheckResult.d.ts +0 -15
  473. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapter.d.ts +0 -66
  474. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterInitInfo.d.ts +0 -66
  475. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterKey.d.ts +0 -64
  476. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterSchema.d.ts +0 -17
  477. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterType.d.ts +0 -21
  478. package/lib/types/solana/generated/mpl-core/types/externalPluginAdapterUpdateInfo.d.ts +0 -59
  479. package/lib/types/solana/generated/mpl-core/types/externalRegistryRecord.d.ts +0 -28
  480. package/lib/types/solana/generated/mpl-core/types/externalValidationResult.d.ts +0 -17
  481. package/lib/types/solana/generated/mpl-core/types/extraAccount.d.ts +0 -86
  482. package/lib/types/solana/generated/mpl-core/types/freezeDelegate.d.ts +0 -15
  483. package/lib/types/solana/generated/mpl-core/types/freezeExecute.d.ts +0 -15
  484. package/lib/types/solana/generated/mpl-core/types/groups.d.ts +0 -15
  485. package/lib/types/solana/generated/mpl-core/types/hashablePluginSchema.d.ts +0 -22
  486. package/lib/types/solana/generated/mpl-core/types/hashedAssetSchema.d.ts +0 -16
  487. package/lib/types/solana/generated/mpl-core/types/hookableLifecycleEvent.d.ts +0 -19
  488. package/lib/types/solana/generated/mpl-core/types/immutableMetadata.d.ts +0 -13
  489. package/lib/types/solana/generated/mpl-core/types/index.d.ts +0 -89
  490. package/lib/types/solana/generated/mpl-core/types/key.d.ts +0 -21
  491. package/lib/types/solana/generated/mpl-core/types/lifecycleHook.d.ts +0 -24
  492. package/lib/types/solana/generated/mpl-core/types/lifecycleHookInitInfo.d.ts +0 -28
  493. package/lib/types/solana/generated/mpl-core/types/lifecycleHookUpdateInfo.d.ts +0 -22
  494. package/lib/types/solana/generated/mpl-core/types/linkedAppData.d.ts +0 -20
  495. package/lib/types/solana/generated/mpl-core/types/linkedAppDataInitInfo.d.ts +0 -22
  496. package/lib/types/solana/generated/mpl-core/types/linkedAppDataUpdateInfo.d.ts +0 -18
  497. package/lib/types/solana/generated/mpl-core/types/linkedDataKey.d.ts +0 -31
  498. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHook.d.ts +0 -24
  499. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookInitInfo.d.ts +0 -28
  500. package/lib/types/solana/generated/mpl-core/types/linkedLifecycleHookUpdateInfo.d.ts +0 -22
  501. package/lib/types/solana/generated/mpl-core/types/masterEdition.d.ts +0 -21
  502. package/lib/types/solana/generated/mpl-core/types/oracle.d.ts +0 -22
  503. package/lib/types/solana/generated/mpl-core/types/oracleInitInfo.d.ts +0 -26
  504. package/lib/types/solana/generated/mpl-core/types/oracleUpdateInfo.d.ts +0 -22
  505. package/lib/types/solana/generated/mpl-core/types/oracleValidation.d.ts +0 -35
  506. package/lib/types/solana/generated/mpl-core/types/permanentBurnDelegate.d.ts +0 -13
  507. package/lib/types/solana/generated/mpl-core/types/permanentFreezeDelegate.d.ts +0 -15
  508. package/lib/types/solana/generated/mpl-core/types/permanentFreezeExecute.d.ts +0 -15
  509. package/lib/types/solana/generated/mpl-core/types/permanentTransferDelegate.d.ts +0 -13
  510. package/lib/types/solana/generated/mpl-core/types/plugin.d.ts +0 -150
  511. package/lib/types/solana/generated/mpl-core/types/pluginAuthorityPair.d.ts +0 -20
  512. package/lib/types/solana/generated/mpl-core/types/pluginType.d.ts +0 -33
  513. package/lib/types/solana/generated/mpl-core/types/registryRecord.d.ts +0 -22
  514. package/lib/types/solana/generated/mpl-core/types/relationshipKind.d.ts +0 -18
  515. package/lib/types/solana/generated/mpl-core/types/removeAssetsFromGroupV1Args.d.ts +0 -15
  516. package/lib/types/solana/generated/mpl-core/types/removeCollectionsFromGroupV1Args.d.ts +0 -15
  517. package/lib/types/solana/generated/mpl-core/types/removeGroupsFromGroupV1Args.d.ts +0 -15
  518. package/lib/types/solana/generated/mpl-core/types/royalties.d.ts +0 -22
  519. package/lib/types/solana/generated/mpl-core/types/ruleSet.d.ts +0 -27
  520. package/lib/types/solana/generated/mpl-core/types/seed.d.ts +0 -36
  521. package/lib/types/solana/generated/mpl-core/types/transferDelegate.d.ts +0 -13
  522. package/lib/types/solana/generated/mpl-core/types/updateAuthority.d.ts +0 -27
  523. package/lib/types/solana/generated/mpl-core/types/updateDelegate.d.ts +0 -15
  524. package/lib/types/solana/generated/mpl-core/types/updateGroupV1Args.d.ts +0 -19
  525. package/lib/types/solana/generated/mpl-core/types/updateType.d.ts +0 -17
  526. package/lib/types/solana/generated/mpl-core/types/validationResult.d.ts +0 -18
  527. package/lib/types/solana/generated/mpl-core/types/validationResultsOffset.d.ts +0 -33
  528. package/lib/types/solana/generated/mpl-core/types/verifiedCreators.d.ts +0 -18
  529. package/lib/types/solana/generated/mpl-core/types/verifiedCreatorsSignature.d.ts +0 -16
  530. package/lib/types/utils/ao.d.ts +0 -80
  531. package/lib/types/utils/arweave.d.ts +0 -79
  532. package/lib/types/utils/processes.d.ts +0 -39
  533. package/lib/types/web/index.d.ts +0 -20
@@ -1,40 +1,45 @@
1
1
  /**
2
- * Account deserialization for AR.IO Solana programs.
2
+ * Copyright (C) 2022-2024 Permanent Data Solutions, Inc.
3
3
  *
4
- * Reads raw account data (Borsh-encoded by Anchor) and returns SDK-compatible
5
- * types. Each function skips the 8-byte Anchor discriminator, then reads
6
- * fields in the exact order defined in the Rust structs.
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
7
  *
8
- * NOTE on discriminators: this module no longer exports a hand-rolled
9
- * discriminator table. The Codama-generated account modules under
10
- * `./generated/<program>/accounts/` already export
11
- * `<NAME>_DISCRIMINATOR: Uint8Array` constants pulled directly from each
12
- * IDL, so they're guaranteed to match the on-chain struct names.
13
- * Use those at the call site (see `io-readable.ts` for the
14
- * `getAccountsByDiscriminator` helper that bs58-encodes them for
15
- * `getProgramAccounts` memcmp filters).
8
+ * http://www.apache.org/licenses/LICENSE-2.0
16
9
  *
17
- * Borsh encoding rules (Anchor default):
18
- * - u8/bool: 1 byte
19
- * - u16: 2 bytes LE
20
- * - u32: 4 bytes LE
21
- * - u64: 8 bytes LE
22
- * - u128: 16 bytes LE
23
- * - i64: 8 bytes LE (signed)
24
- * - Pubkey: 32 bytes
25
- * - String: 4-byte LE length prefix + UTF-8 bytes
26
- * - Option<T>: 1-byte tag (0=None, 1=Some) + T if Some
27
- * - Vec<T>: 4-byte LE length + T[] elements
28
- * - Enum: 1-byte variant index
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ /**
17
+ * Thin adapter layer over Codama-generated account decoders from
18
+ * `@ar.io/solana-contracts`. Each function accepts a raw `Buffer` (as
19
+ * returned by `fetchEncodedAccount(...).data`) and returns the same
20
+ * SDK-compatible plain-object shape the hand-rolled BorshReader
21
+ * implementations used to return.
22
+ *
23
+ * The Codama decoders return `Address` (branded string) and `bigint`
24
+ * for numeric fields. This module maps them to plain `string` and
25
+ * `number` so the SDK's public API contract doesn't change.
29
26
  */
30
27
  import { getAddressDecoder, getAddressEncoder, } from '@solana/kit';
31
- import { getBalanceDecoder } from '@ar.io/solana-contracts/core';
32
- import { getEpochDecoder } from '@ar.io/solana-contracts/gar';
28
+ import { getAclConfigDecoder, getAclPageDecoder, getAntConfigDecoder, getAntControllersDecoder, getAntRecordDecoder, getAntRecordMetadataDecoder, } from '@ar.io/solana-contracts/ant';
29
+ import { PurchaseType, getArnsRecordDecoder, getDemandFactorDecoder, getReservedNameDecoder, getReturnedNameDecoder, } from '@ar.io/solana-contracts/arns';
30
+ import { getArioConfigDecoder, getPrimaryNameDecoder, getPrimaryNameRequestDecoder, getVaultDecoder, } from '@ar.io/solana-contracts/core';
31
+ import { GatewayStatus, getAllowlistEntryDecoder, getDelegationDecoder, getEpochDecoder, getEpochSettingsDecoder, getGatewaySettingsDecoder as getGarSettingsDecoder, getGatewayDecoder, getObservationDecoder, getRedelegationRecordDecoder, getWithdrawalDecoder, } from '@ar.io/solana-contracts/gar';
33
32
  import { RATE_SCALE } from './constants.js';
34
33
  const addressDecoder = getAddressDecoder();
35
34
  const addressEncoder = getAddressEncoder();
35
+ function optionToValue(opt) {
36
+ return opt.__option === 'Some' ? opt.value : undefined;
37
+ }
38
+ function scaleToFloat(value, scale = RATE_SCALE) {
39
+ return value / scale;
40
+ }
36
41
  // =========================================
37
- // Buffer reader helper
42
+ // Buffer reader/writer helpers (kept for test fixtures that synthesize account data)
38
43
  // =========================================
39
44
  class BorshReader {
40
45
  data;
@@ -90,7 +95,9 @@ class BorshReader {
90
95
  }
91
96
  readString() {
92
97
  const len = this.readU32();
93
- const str = this.data.toString('utf8', this.offset, this.offset + len);
98
+ const str = this.data
99
+ .toString('utf8', this.offset, this.offset + len)
100
+ .replace(/\0/g, '');
94
101
  this.offset += len;
95
102
  return str;
96
103
  }
@@ -106,6 +113,12 @@ class BorshReader {
106
113
  return undefined;
107
114
  return this.readU32();
108
115
  }
116
+ readOptionU16() {
117
+ const tag = this.readU8();
118
+ if (tag === 0)
119
+ return undefined;
120
+ return this.readU16();
121
+ }
109
122
  skip(bytes) {
110
123
  this.offset += bytes;
111
124
  }
@@ -162,9 +175,6 @@ class BorshReader {
162
175
  return Buffer.from(buf);
163
176
  }
164
177
  }
165
- // =========================================
166
- // Buffer writer helper
167
- // =========================================
168
178
  class BorshWriter {
169
179
  buf;
170
180
  offset;
@@ -202,7 +212,6 @@ class BorshWriter {
202
212
  }
203
213
  this.offset += 32;
204
214
  }
205
- /** Write raw bytes without a length prefix (fixed-size fields). */
206
215
  writeFixedBytes(data) {
207
216
  for (let i = 0; i < data.length; i++) {
208
217
  this.buf[this.offset + i] = data[i];
@@ -251,7 +260,6 @@ class BorshWriter {
251
260
  this.writeString(val);
252
261
  }
253
262
  }
254
- /** Borsh `Option<Vec<String>>`: 0/1 tag, then u32 length + each string. */
255
263
  writeOptionStringVec(val) {
256
264
  if (val === undefined) {
257
265
  this.writeU8(0);
@@ -271,137 +279,66 @@ class BorshWriter {
271
279
  }
272
280
  }
273
281
  // =========================================
274
- // Helper: scale factor -> float
275
- // =========================================
276
- /** Convert a RATE_SCALE-encoded u64 to a float (e.g., 1_000_000 -> 1.0) */
277
- function scaleToFloat(value, scale = RATE_SCALE) {
278
- return value / scale;
279
- }
280
- // =========================================
281
282
  // Gateway deserialization
282
283
  // =========================================
283
- /**
284
- * Internal variant of {@link deserializeGateway} that additionally surfaces
285
- * the on-chain `cumulative_reward_per_token` u128 accumulator. Used by the
286
- * live delegation balance pipeline ({@link computeLiveDelegationBalance} via
287
- * `getGatewayAccumulators` in `io-readable.ts`).
288
- *
289
- * Not part of the public AoGateway shape — `bigint` is not JSON-serializable
290
- * and would leak through `getGateway` / `getGateways`. Prefer
291
- * {@link deserializeGateway} everywhere except inside live-balance plumbing.
292
- *
293
- * PDA: ["gateway", operator_pubkey] in ario-gar program.
294
- */
295
284
  export function deserializeGatewayWithAccumulator(data) {
296
- const r = new BorshReader(data, 8); // skip 8-byte discriminator
297
- const operator = r.readPubkey();
298
- const label = r.readString();
299
- const fqdn = r.readString();
300
- const port = r.readU16();
301
- r.readU8(); // protocolIdx: 0=Http, 1=Https
302
- const properties = r.readString();
303
- const note = r.readString();
304
- const operatorStake = r.readU64AsNumber();
305
- const totalDelegatedStake = r.readU64AsNumber();
306
- const statusIdx = r.readU8(); // 0=Joined, 1=Leaving
307
- const startTimestamp = r.readI64AsNumber();
308
- const leaveTimestamp = r.readOptionI64();
309
- // leave_epoch_duration: i64 — snapshot of epoch_settings.epoch_duration captured
310
- // at leave_network/prune_gateway. Not surfaced on AoGateway; consume to stay aligned.
311
- r.skip(8);
312
- // GatewayStats
313
- const passedEpochCount = r.readU32();
314
- const failedEpochCount = r.readU32();
315
- const totalEpochCount = r.readU32();
316
- const prescribedEpochCount = r.readU32();
317
- const observedEpochCount = r.readU32();
318
- const failedConsecutiveEpochs = r.readU8();
319
- const passedConsecutiveEpochs = r.readU8();
320
- // GatewayWeights (7 x u64 — 7th is weights_epoch, set by tally_weights)
321
- const stakeWeight = r.readU64AsNumber();
322
- const tenureWeight = r.readU64AsNumber();
323
- const gatewayPerformanceRatio = r.readU64AsNumber();
324
- const observerPerformanceRatio = r.readU64AsNumber();
325
- const compositeWeight = r.readU64AsNumber();
326
- const normalizedCompositeWeight = r.readU64AsNumber();
327
- r.skip(8); // weights_epoch — not surfaced on AoGatewayWeights
328
- // GatewaySettings2 (auto_stake removed in cfc7a8b2 — never existed on Solana)
329
- const allowDelegatedStaking = r.readBool();
330
- const delegateRewardShareRatio = r.readU16();
331
- const minDelegatedStake = r.readU64AsNumber();
332
- const allowlistEnabled = r.readBool();
333
- // RegistryIndex (index: u32, _reserved: u8 — was is_registered:bool)
334
- r.readU32(); // registryIndex
335
- r.readU8(); // _reserved (layout-preserving placeholder for the legacy is_registered byte)
336
- // observer_address
337
- const observerAddress = r.readPubkey();
338
- // cumulative_reward_per_token: u128 — per-share accumulator advanced by
339
- // distribute_epoch. Combined with each Delegation.reward_debt, this lets
340
- // off-chain readers compute the live delegate balance without an on-chain
341
- // settlement call. Not part of the public AoGateway type but surfaced as
342
- // an extra field on this function's return so internal readers can use it.
343
- const cumulativeRewardPerToken = r.readU128();
344
- // bump
345
- r.skip(1);
285
+ const d = getGatewayDecoder().decode(new Uint8Array(data));
346
286
  const stats = {
347
- passedEpochCount,
348
- failedEpochCount,
349
- totalEpochCount,
350
- prescribedEpochCount,
351
- observedEpochCount,
352
- passedConsecutiveEpochs,
353
- failedConsecutiveEpochs,
287
+ passedEpochCount: d.stats.passedEpochs,
288
+ failedEpochCount: d.stats.failedEpochs,
289
+ totalEpochCount: d.stats.totalEpochs,
290
+ prescribedEpochCount: d.stats.prescribedEpochs,
291
+ observedEpochCount: d.stats.observedEpochs,
292
+ passedConsecutiveEpochs: d.stats.passedConsecutive,
293
+ failedConsecutiveEpochs: d.stats.failedConsecutive,
354
294
  };
355
295
  const weights = {
356
- stakeWeight: scaleToFloat(stakeWeight),
357
- tenureWeight: scaleToFloat(tenureWeight),
358
- gatewayPerformanceRatio: scaleToFloat(gatewayPerformanceRatio),
359
- observerPerformanceRatio: scaleToFloat(observerPerformanceRatio),
360
- gatewayRewardRatioWeight: scaleToFloat(gatewayPerformanceRatio), // deprecated alias
361
- observerRewardRatioWeight: scaleToFloat(observerPerformanceRatio), // deprecated alias
362
- compositeWeight: scaleToFloat(compositeWeight),
363
- normalizedCompositeWeight: scaleToFloat(normalizedCompositeWeight),
296
+ stakeWeight: scaleToFloat(Number(d.weights.stakeWeight)),
297
+ tenureWeight: scaleToFloat(Number(d.weights.tenureWeight)),
298
+ gatewayPerformanceRatio: scaleToFloat(Number(d.weights.gatewayPerformanceRatio)),
299
+ observerPerformanceRatio: scaleToFloat(Number(d.weights.observerPerformanceRatio)),
300
+ gatewayRewardRatioWeight: scaleToFloat(Number(d.weights.gatewayPerformanceRatio)),
301
+ observerRewardRatioWeight: scaleToFloat(Number(d.weights.observerPerformanceRatio)),
302
+ compositeWeight: scaleToFloat(Number(d.weights.compositeWeight)),
303
+ normalizedCompositeWeight: scaleToFloat(Number(d.weights.normalizedCompositeWeight)),
364
304
  };
305
+ const pendingRatioRaw = optionToValue(d.settings.pendingDelegateRewardShareRatio);
306
+ const pendingDelegateRewardShareRatio = pendingRatioRaw === undefined ? undefined : pendingRatioRaw / 100;
307
+ const delegationDisabledAt = optionToValue(d.settings.delegationDisabledAt);
365
308
  const settings = {
366
- allowDelegatedStaking: allowlistEnabled
309
+ allowDelegatedStaking: d.settings.allowlistEnabled
367
310
  ? 'allowlist'
368
- : allowDelegatedStaking,
369
- delegateRewardShareRatio,
370
- allowedDelegates: [], // populated separately from allowlist PDAs
371
- minDelegatedStake,
372
- autoStake: false, // not an on-chain field on Solana; preserved on AoGatewaySettings for AO parity
373
- label,
374
- note,
375
- properties,
376
- fqdn,
377
- port,
378
- protocol: 'https', // protocolIdx: 0=Http, 1=Https — only HTTPS in practice
311
+ : d.settings.allowDelegatedStaking,
312
+ delegateRewardShareRatio: d.settings.delegateRewardShareRatio / 100,
313
+ allowedDelegates: [],
314
+ minDelegatedStake: Number(d.settings.minDelegationAmount),
315
+ autoStake: false,
316
+ label: d.label,
317
+ note: d.note,
318
+ properties: d.properties,
319
+ fqdn: d.fqdn,
320
+ port: d.port,
321
+ protocol: 'https',
322
+ pendingDelegateRewardShareRatio,
323
+ delegationDisabledAt: delegationDisabledAt !== undefined
324
+ ? Number(delegationDisabledAt)
325
+ : undefined,
379
326
  };
327
+ const leaveTimestamp = optionToValue(d.leaveTimestamp);
380
328
  return {
381
- operator: operator,
329
+ operator: d.operator,
382
330
  settings,
383
331
  stats,
384
- totalDelegatedStake,
385
- startTimestamp,
386
- endTimestamp: leaveTimestamp ?? 0,
387
- observerAddress: observerAddress,
388
- operatorStake,
389
- status: statusIdx === 0 ? 'joined' : 'leaving',
332
+ totalDelegatedStake: Number(d.totalDelegatedStake),
333
+ startTimestamp: Number(d.startTimestamp),
334
+ endTimestamp: leaveTimestamp !== undefined ? Number(leaveTimestamp) : 0,
335
+ observerAddress: d.observerAddress,
336
+ operatorStake: Number(d.operatorStake),
337
+ status: d.status === GatewayStatus.Joined ? 'joined' : 'leaving',
390
338
  weights,
391
- cumulativeRewardPerToken,
339
+ cumulativeRewardPerToken: d.cumulativeRewardPerToken,
392
340
  };
393
341
  }
394
- /**
395
- * Deserialize a Gateway account from raw bytes.
396
- *
397
- * Returns the SDK-compatible AoGateway type (plus `operator: string`).
398
- * The on-chain `cumulative_reward_per_token` u128 is intentionally NOT
399
- * surfaced on the returned object — `bigint` is not JSON-serializable,
400
- * and leaking it through `getGateway` / `getGateways` would break
401
- * downstream consumers that call `JSON.stringify` on results. Use
402
- * {@link deserializeGatewayWithAccumulator} from within the live-balance
403
- * pipeline when the accumulator value is actually needed.
404
- */
405
342
  export function deserializeGateway(data) {
406
343
  const { cumulativeRewardPerToken: _unused, ...publicShape } = deserializeGatewayWithAccumulator(data);
407
344
  return publicShape;
@@ -409,45 +346,22 @@ export function deserializeGateway(data) {
409
346
  // =========================================
410
347
  // ArNS Record deserialization
411
348
  // =========================================
412
- /**
413
- * Deserialize an ArNS record account from raw bytes.
414
- * PDA: ["arns_record", hash(name)] in ario-arns program.
415
- *
416
- * Field order is **load-bearing** and mirrors the on-chain
417
- * `ArnsRecord` struct in `contracts/programs/ario-arns/src/state/mod.rs`.
418
- * Every fixed-size field appears before the variable-length `name` so
419
- * `getProgramAccounts` callers can `memcmp`-filter on `ant` (offset
420
- * 72) — see `ARNS_RECORD_ANT_OFFSET` in `./constants.ts`. If you
421
- * touch the contract layout, both files have to move in lockstep.
422
- */
423
349
  export function deserializeArnsRecord(data) {
424
- const r = new BorshReader(data, 8); // skip discriminator
425
- r.readPubkey(); // 32-byte name hash (used as PDA seed)
426
- const owner = r.readPubkey();
427
- const ant = r.readPubkey(); // ANT Metaplex Core asset address
428
- const typeIdx = r.readU8(); // 0=Lease, 1=Permabuy
429
- const startTimestamp = r.readI64AsNumber();
430
- const endTimestamp = r.readOptionI64();
431
- // u16 on-chain — the prior implementation read u32 here and silently
432
- // consumed two bytes of `purchase_price`, producing junk for both
433
- // fields. Caught while reworking the layout for memcmp filtering.
434
- const undernameLimit = r.readU16();
435
- const purchasePrice = r.readU64AsNumber();
436
- r.skip(1); // bump
437
- const name = r.readString();
350
+ const d = getArnsRecordDecoder().decode(new Uint8Array(data));
351
+ const endTimestamp = optionToValue(d.endTimestamp);
438
352
  const baseData = {
439
- name,
440
- owner: owner,
441
- processId: ant, // SDK calls ANT address "processId"
442
- startTimestamp,
443
- undernameLimit,
444
- purchasePrice,
353
+ name: d.name,
354
+ owner: d.owner,
355
+ processId: d.ant,
356
+ startTimestamp: Number(d.startTimestamp),
357
+ undernameLimit: d.undernameLimit,
358
+ purchasePrice: Number(d.purchasePrice),
445
359
  };
446
- if (typeIdx === 0 && endTimestamp !== undefined) {
360
+ if (d.purchaseType === PurchaseType.Lease && endTimestamp !== undefined) {
447
361
  return {
448
362
  ...baseData,
449
363
  type: 'lease',
450
- endTimestamp,
364
+ endTimestamp: Number(endTimestamp),
451
365
  };
452
366
  }
453
367
  return {
@@ -458,305 +372,162 @@ export function deserializeArnsRecord(data) {
458
372
  // =========================================
459
373
  // Vault deserialization
460
374
  // =========================================
461
- /**
462
- * Deserialize a Vault account from raw bytes.
463
- * PDA: ["vault", owner, vault_id] in ario-core program.
464
- *
465
- * On-chain layout (matches `state::Vault`):
466
- * disc(8) + owner(Pubkey=32) + vault_id(u64=8) + amount(u64=8)
467
- * + start_timestamp(i64=8) + end_timestamp(i64=8)
468
- * + controller(Option<Pubkey>=33) + revocable(bool=1) + bump(u8=1)
469
- */
470
375
  export function deserializeVault(data) {
471
- const r = new BorshReader(data, 8); // skip discriminator
472
- const owner = r.readPubkey();
473
- // The Rust struct has vault_id BEFORE amount — easy to miss because the
474
- // SDK only surfaces `balance` (the AO interface name for `amount`). The
475
- // earlier deserializer skipped vault_id and read vault_id-as-balance →
476
- // `balance` was always 0 for fresh vaults at index 0.
477
- r.skip(8); // vault_id (recoverable from the PDA seeds; not surfaced)
478
- const balance = r.readU64AsNumber();
479
- const startTimestamp = r.readI64AsNumber();
480
- const endTimestamp = r.readI64AsNumber();
481
- // controller: Option<Pubkey>
482
- const hasController = r.readU8();
483
- const controller = hasController ? r.readPubkey() : undefined;
484
- // revocable: bool
485
- r.readBool();
486
- // bump
487
- r.skip(1);
376
+ const d = getVaultDecoder().decode(new Uint8Array(data));
377
+ const controller = optionToValue(d.controller);
488
378
  return {
489
- owner: owner,
490
- balance,
491
- startTimestamp,
492
- endTimestamp,
493
- controller,
379
+ owner: d.owner,
380
+ balance: Number(d.amount),
381
+ startTimestamp: Number(d.startTimestamp),
382
+ endTimestamp: Number(d.endTimestamp),
383
+ controller: controller,
494
384
  };
495
385
  }
496
- /**
497
- * Deserialize a Delegation account from raw bytes.
498
- * PDA: ["delegation", gateway, delegator] in ario-gar program.
499
- */
500
386
  export function deserializeDelegation(data) {
501
- const r = new BorshReader(data, 8); // skip discriminator
502
- const gateway = r.readPubkey();
503
- const delegator = r.readPubkey();
504
- const amount = r.readU64AsNumber();
505
- const startTimestamp = r.readI64AsNumber();
506
- // reward_debt: u128 — snapshot of gateway.cumulative_reward_per_token at last
507
- // settlement. Needed (together with the gateway's current accumulator) to
508
- // compute the live delegate balance via computeLiveDelegationBalance().
509
- const rewardDebt = r.readU128();
510
- r.skip(1); // bump
387
+ const d = getDelegationDecoder().decode(new Uint8Array(data));
511
388
  return {
512
- gateway: gateway,
513
- delegator: delegator,
514
- delegatedStake: amount,
515
- startTimestamp,
516
- rewardDebt,
389
+ gateway: d.gateway,
390
+ delegator: d.delegator,
391
+ delegatedStake: Number(d.amount),
392
+ startTimestamp: Number(d.startTimestamp),
393
+ rewardDebt: d.rewardDebt,
517
394
  };
518
395
  }
519
396
  // =========================================
520
397
  // Balance deserialization
521
398
  // =========================================
522
- /**
523
- * Deserialize a Balance account from raw bytes.
524
- * PDA: ["balance", owner] in ario-core program.
525
- *
526
- * Backed by the Codama-generated decoder so the encoder
527
- * (`getBalanceEncoder` used by migration/snapshot) and decoder share a single
528
- * source of truth derived from the `ario_core` IDL.
529
- */
530
399
  export function deserializeBalance(data) {
531
- const decoded = getBalanceDecoder().decode(data);
400
+ const d = getBalanceDecoder().decode(new Uint8Array(data));
532
401
  return {
533
- owner: decoded.owner,
534
- balance: Number(decoded.amount),
402
+ owner: d.owner,
403
+ balance: Number(d.amount),
535
404
  };
536
405
  }
406
+ // Keep the import for deserializeBalance
407
+ import { getBalanceDecoder } from '@ar.io/solana-contracts/core';
537
408
  // =========================================
538
409
  // Epoch Settings deserialization
539
410
  // =========================================
540
411
  export function deserializeEpochSettings(data) {
541
- const r = new BorshReader(data, 8); // skip discriminator
542
- r.skip(32); // authority
543
- const epochDuration = r.readI64AsNumber();
544
- const maxObservers = r.readU8(); // prescribed_observer_count
545
- const prescribedNameCount = r.readU8();
546
- r.skip(8); // min_observer_stake (u64)
547
- r.skip(2); // slash_rate (u16)
548
- r.skip(1); // enabled (bool)
549
- r.skip(8); // current_epoch_index (u64)
550
- const epochZeroStartTimestamp = r.readI64AsNumber(); // genesis_timestamp
412
+ const d = getEpochSettingsDecoder().decode(new Uint8Array(data));
551
413
  return {
552
- // SDK expects milliseconds (matching AO convention), Solana stores
553
- // seconds convert both timestamps and durations here.
554
- epochZeroStartTimestamp: epochZeroStartTimestamp * 1000,
555
- durationMs: epochDuration * 1000,
556
- prescribedNameCount,
557
- maxObservers,
414
+ epochZeroStartTimestamp: Number(d.genesisTimestamp) * 1000,
415
+ durationMs: Number(d.epochDuration) * 1000,
416
+ prescribedNameCount: d.prescribedNameCount,
417
+ maxObservers: d.prescribedObserverCount,
558
418
  };
559
419
  }
560
420
  // =========================================
561
421
  // ArIO Config deserialization
562
422
  // =========================================
563
- /**
564
- * Deserialize an ArioConfig account from raw bytes.
565
- * PDA: ["ario_config"] in ario-core program.
566
- */
567
423
  export function deserializeArioConfig(data) {
568
- const r = new BorshReader(data, 8); // skip discriminator
569
- r.skip(32); // authority
570
- r.skip(32); // mint
571
- r.skip(32); // arns_program
572
- r.skip(32); // treasury
573
- const totalSupply = r.readU64AsNumber();
574
- const protocolBalance = r.readU64AsNumber();
575
- const circulatingSupply = r.readU64AsNumber();
576
- const lockedSupply = r.readU64AsNumber();
577
- // remaining fields not needed: min_vault_duration, max_vault_duration,
578
- // primary_name_request_expiry, migration_active, migration_authority, bump
424
+ const d = getArioConfigDecoder().decode(new Uint8Array(data));
579
425
  return {
580
- totalSupply,
581
- protocolBalance,
582
- circulatingSupply,
583
- lockedSupply,
426
+ totalSupply: Number(d.totalSupply),
427
+ protocolBalance: Number(d.protocolBalance),
428
+ circulatingSupply: Number(d.circulatingSupply),
429
+ lockedSupply: Number(d.lockedSupply),
584
430
  };
585
431
  }
586
432
  // =========================================
587
433
  // Demand Factor deserialization
588
434
  // =========================================
589
- /**
590
- * Deserialize a DemandFactor account from raw bytes.
591
- * PDA: ["demand_factor"] in ario-arns program.
592
- */
593
435
  export function deserializeDemandFactor(data) {
594
- const r = new BorshReader(data, 8); // skip discriminator
595
- const currentDemandFactorRaw = r.readU64AsNumber();
596
- const currentPeriod = r.readU64AsNumber();
597
- r.skip(8); // purchases_this_period (u64)
598
- r.skip(8); // revenue_this_period (u64)
599
- const consecutivePeriodsWithMinDemandFactor = r.readU32();
600
- const trailingPeriodPurchases = r.readFixedU64Array(7);
601
- const trailingPeriodRevenues = r.readFixedU64Array(7);
602
- const fees = r.readFixedU64Array(51);
603
- const periodZeroStartTimestamp = r.readI64AsNumber();
604
- // criteria: u8, bump: u8 — skip
436
+ const d = getDemandFactorDecoder().decode(new Uint8Array(data));
605
437
  return {
606
- currentDemandFactor: currentDemandFactorRaw / RATE_SCALE,
607
- currentPeriod,
608
- periodZeroStartTimestamp,
609
- consecutivePeriodsWithMinDemandFactor,
610
- trailingPeriodPurchases,
611
- trailingPeriodRevenues,
612
- fees,
438
+ currentDemandFactor: Number(d.currentDemandFactor) / RATE_SCALE,
439
+ currentPeriod: Number(d.currentPeriod),
440
+ periodZeroStartTimestamp: Number(d.periodZeroStartTimestamp),
441
+ consecutivePeriodsWithMinDemandFactor: d.consecutivePeriodsWithMinDemandFactor,
442
+ trailingPeriodPurchases: d.trailingPeriodPurchases.map(Number),
443
+ trailingPeriodRevenues: d.trailingPeriodRevenues.map(Number),
444
+ fees: d.fees.map(Number),
613
445
  };
614
446
  }
615
447
  // =========================================
616
448
  // Reserved Name deserialization
617
449
  // =========================================
618
- /**
619
- * Deserialize a ReservedName account from raw bytes.
620
- * PDA: ["reserved_name", hash(name)] in ario-arns program.
621
- */
622
450
  export function deserializeReservedName(data) {
623
- const r = new BorshReader(data, 8); // skip discriminator
624
- const name = r.readString();
625
- const reservedFor = r.readOptionPubkey();
626
- const expiresAt = r.readOptionI64();
627
- // reserved_by: Pubkey, created_at: i64, bump: u8 — not needed
451
+ const d = getReservedNameDecoder().decode(new Uint8Array(data));
452
+ const reservedFor = optionToValue(d.reservedFor);
453
+ const expiresAt = optionToValue(d.expiresAt);
628
454
  return {
629
- name,
455
+ name: d.name,
630
456
  target: reservedFor,
631
- endTimestamp: expiresAt,
457
+ endTimestamp: expiresAt !== undefined ? Number(expiresAt) : undefined,
632
458
  };
633
459
  }
634
460
  // =========================================
635
461
  // Returned Name deserialization
636
462
  // =========================================
637
- const RETURN_AUCTION_DURATION_SECONDS = 14 * 86_400; // 14 days
638
- /**
639
- * Deserialize a ReturnedName account from raw bytes.
640
- * PDA: ["returned_name", hash(name)] in ario-arns program.
641
- */
463
+ const RETURN_AUCTION_DURATION_SECONDS = 14 * 86_400;
642
464
  export function deserializeReturnedName(data) {
643
- const r = new BorshReader(data, 8); // skip discriminator
644
- const name = r.readString();
645
- r.skip(32); // name_hash [u8; 32]
646
- const initiator = r.readPubkey();
647
- const returnedAt = r.readI64AsNumber();
648
- // bump: u8 — skip
465
+ const d = getReturnedNameDecoder().decode(new Uint8Array(data));
466
+ const returnedAt = Number(d.returnedAt);
649
467
  return {
650
- name,
468
+ name: d.name,
651
469
  startTimestamp: returnedAt,
652
470
  endTimestamp: returnedAt + RETURN_AUCTION_DURATION_SECONDS,
653
- initiator: initiator,
654
- premiumMultiplier: 1, // calculated at query time from elapsed vs auction duration
471
+ initiator: d.initiator,
472
+ premiumMultiplier: 1,
655
473
  };
656
474
  }
657
475
  // =========================================
658
476
  // Withdrawal deserialization
659
477
  // =========================================
660
- /**
661
- * Deserialize a Withdrawal account from raw bytes.
662
- * PDA: ["withdrawal", gateway, owner, withdrawal_id] in ario-gar program.
663
- */
664
478
  export function deserializeWithdrawal(data) {
665
- const r = new BorshReader(data, 8); // skip discriminator
666
- const owner = r.readPubkey();
667
- const withdrawalId = r.readU64AsNumber();
668
- const gateway = r.readPubkey();
669
- const amount = r.readU64AsNumber();
670
- const createdAt = r.readI64AsNumber();
671
- const availableAt = r.readI64AsNumber();
672
- const isDelegate = r.readBool();
673
- // is_exit_vault: bool, bump: u8 — skip
479
+ const d = getWithdrawalDecoder().decode(new Uint8Array(data));
674
480
  return {
675
- owner: owner,
676
- vaultId: String(withdrawalId),
677
- gateway: gateway,
678
- balance: amount,
679
- startTimestamp: createdAt,
680
- endTimestamp: availableAt,
681
- isDelegate,
481
+ owner: d.owner,
482
+ vaultId: String(Number(d.withdrawalId)),
483
+ gateway: d.gateway,
484
+ balance: Number(d.amount),
485
+ startTimestamp: Number(d.createdAt),
486
+ endTimestamp: Number(d.availableAt),
487
+ isDelegate: d.isDelegate,
682
488
  };
683
489
  }
684
490
  // =========================================
685
491
  // Redelegation Record deserialization
686
492
  // =========================================
687
- /**
688
- * Deserialize a RedelegationRecord account from raw bytes.
689
- * PDA: ["redelegation", delegator] in ario-gar program.
690
- */
691
493
  export function deserializeRedelegationRecord(data) {
692
- const r = new BorshReader(data, 8); // skip discriminator
693
- const delegator = r.readPubkey();
694
- const redelegationCount = r.readU32();
695
- const lastRedelegationAt = r.readI64AsNumber();
696
- const feeResetAt = r.readI64AsNumber();
697
- // bump: u8 — skip
494
+ const d = getRedelegationRecordDecoder().decode(new Uint8Array(data));
698
495
  return {
699
- delegator: delegator,
700
- redelegationCount,
701
- lastRedelegationAt,
702
- feeResetAt,
496
+ delegator: d.delegator,
497
+ redelegationCount: d.redelegationCount,
498
+ lastRedelegationAt: Number(d.lastRedelegationAt),
499
+ feeResetAt: Number(d.feeResetAt),
703
500
  };
704
501
  }
705
502
  // =========================================
706
503
  // Primary Name Request deserialization
707
504
  // =========================================
708
- /**
709
- * Deserialize a PrimaryNameRequest account from raw bytes.
710
- * PDA: ["primary_name_request", initiator] in ario-core program.
711
- */
712
505
  export function deserializePrimaryNameRequest(data) {
713
- const r = new BorshReader(data, 8); // skip discriminator
714
- const initiator = r.readPubkey();
715
- const name = r.readString();
716
- const createdAt = r.readI64AsNumber();
717
- const expiresAt = r.readI64AsNumber();
718
- // bump: u8 — skip
506
+ const d = getPrimaryNameRequestDecoder().decode(new Uint8Array(data));
719
507
  return {
720
- name,
721
- initiator: initiator,
722
- startTimestamp: createdAt,
723
- endTimestamp: expiresAt,
508
+ name: d.name,
509
+ initiator: d.initiator,
510
+ startTimestamp: Number(d.createdAt),
511
+ endTimestamp: Number(d.expiresAt),
724
512
  };
725
513
  }
726
514
  // =========================================
727
- // GAR Settings deserialization (full)
515
+ // GAR Settings deserialization
728
516
  // =========================================
729
- /**
730
- * Deserialize a GarSettings account from raw bytes and return
731
- * the full AoGatewayRegistrySettings type.
732
- * PDA: ["gar_settings"] in ario-gar program.
733
- *
734
- * Fields not stored in GarSettings are filled with protocol defaults.
735
- */
736
517
  export function deserializeGarSettings(data) {
737
- const r = new BorshReader(data, 8); // skip discriminator
738
- r.skip(32); // authority
739
- r.skip(32); // mint
740
- const minOperatorStake = r.readU64AsNumber();
741
- const minDelegateStake = r.readU64AsNumber();
742
- const withdrawalPeriod = r.readI64AsNumber(); // seconds
743
- const maxExpeditedWithdrawalPenalty = r.readU64AsNumber();
744
- const minExpeditedWithdrawalPenalty = r.readU64AsNumber();
745
- const minExpeditedWithdrawalAmount = r.readU64AsNumber();
746
- r.readU32(); // max_delegates_per_gateway
747
- // migration_active: bool, migration_authority: Pubkey, bump: u8 — skip
748
- const withdrawalPeriodMs = withdrawalPeriod * 1000;
518
+ const d = getGarSettingsDecoder().decode(new Uint8Array(data));
519
+ const withdrawalPeriodMs = Number(d.withdrawalPeriod) * 1000;
749
520
  return {
750
521
  delegates: {
751
- minStake: minDelegateStake,
522
+ minStake: Number(d.minDelegateStake),
752
523
  withdrawLengthMs: withdrawalPeriodMs,
753
524
  },
754
525
  observers: {
755
- tenureWeightDurationMs: 15_552_000_000, // 180 days in ms
526
+ tenureWeightDurationMs: 15_552_000_000,
756
527
  maxTenureWeight: 4,
757
528
  },
758
529
  operators: {
759
- minStake: minOperatorStake,
530
+ minStake: Number(d.minOperatorStake),
760
531
  withdrawLengthMs: withdrawalPeriodMs,
761
532
  leaveLengthMs: withdrawalPeriodMs,
762
533
  maxDelegateRewardSharePct: 95,
@@ -770,406 +541,171 @@ export function deserializeGarSettings(data) {
770
541
  redelegationFeeResetIntervalMs: 7 * 86_400 * 1000,
771
542
  },
772
543
  expeditedWithdrawals: {
773
- minExpeditedWithdrawalPenaltyRate: minExpeditedWithdrawalPenalty,
774
- maxExpeditedWithdrawalPenaltyRate: maxExpeditedWithdrawalPenalty,
775
- minExpeditedWithdrawalAmount: minExpeditedWithdrawalAmount,
544
+ minExpeditedWithdrawalPenaltyRate: Number(d.minExpeditedWithdrawalPenalty),
545
+ maxExpeditedWithdrawalPenaltyRate: Number(d.maxExpeditedWithdrawalPenalty),
546
+ minExpeditedWithdrawalAmount: Number(d.minExpeditedWithdrawalAmount),
776
547
  },
777
548
  };
778
549
  }
779
- /**
780
- * Deserialize supply counter fields from GatewaySettings account.
781
- * These 3 fields were added after arns_program_id, before bump.
782
- */
783
550
  export function deserializeGarSupplyCounters(data) {
784
- const r = new BorshReader(data, 8); // skip discriminator
785
- r.skip(32); // authority
786
- r.skip(32); // mint
787
- r.skip(8); // min_operator_stake
788
- r.skip(8); // min_delegate_stake
789
- r.skip(8); // withdrawal_period
790
- r.skip(8); // max_expedited_withdrawal_penalty
791
- r.skip(8); // min_expedited_withdrawal_penalty
792
- r.skip(8); // min_expedited_withdrawal_amount
793
- r.skip(4); // max_delegates_per_gateway
794
- r.skip(1); // migration_active
795
- r.skip(32); // migration_authority
796
- r.skip(32); // stake_token_account
797
- r.skip(32); // protocol_token_account
798
- r.skip(32); // arns_program_id
799
- const totalStaked = r.readU64AsNumber();
800
- const totalDelegated = r.readU64AsNumber();
801
- const totalWithdrawn = r.readU64AsNumber();
802
- return { totalStaked, totalDelegated, totalWithdrawn };
551
+ const d = getGarSettingsDecoder().decode(new Uint8Array(data));
552
+ return {
553
+ totalStaked: Number(d.totalStaked),
554
+ totalDelegated: Number(d.totalDelegated),
555
+ totalWithdrawn: Number(d.totalWithdrawn),
556
+ };
803
557
  }
804
558
  // =========================================
805
559
  // Epoch Settings Full deserialization
806
560
  // =========================================
807
- /**
808
- * Deserialize the full EpochSettings account from raw bytes.
809
- * Unlike deserializeEpochSettings (which returns 4 fields), this reads
810
- * all fields from the on-chain struct.
811
- * PDA: ["epoch_settings"] in ario-gar program.
812
- */
813
561
  export function deserializeEpochSettingsFull(data) {
814
- const r = new BorshReader(data, 8); // skip discriminator
815
- r.skip(32); // authority
816
- const epochDuration = r.readI64AsNumber();
817
- const prescribedObserverCount = r.readU8();
818
- const prescribedNameCount = r.readU8();
819
- r.skip(8); // min_observer_stake (u64)
820
- r.skip(2); // slash_rate (u16)
821
- const enabled = r.readU8() !== 0;
822
- const currentEpochIndex = r.readU64AsNumber();
823
- const genesisTimestamp = r.readI64AsNumber();
824
- const tenureWeightDuration = r.readI64AsNumber();
825
- const maxTenureWeight = r.readU64AsNumber();
826
- const gatewayRewardRatio = r.readU64AsNumber();
827
- const observerRewardRatio = r.readU64AsNumber();
828
- r.skip(8); // missed_observation_penalty_rate (u64)
829
- r.skip(8); // max_reward_rate (u64)
830
- r.skip(8); // min_reward_rate (u64)
831
- r.skip(8); // reward_decay_start_epoch (u64)
832
- r.skip(8); // reward_decay_last_epoch (u64)
833
- const maxConsecutiveFailures = r.readU8();
834
- // failed_gateway_slash_rate: u64, bump: u8 — skip
562
+ const d = getEpochSettingsDecoder().decode(new Uint8Array(data));
835
563
  return {
836
- currentEpochIndex,
837
- genesisTimestamp,
838
- epochDuration,
839
- enabled,
840
- prescribedObserverCount,
841
- prescribedNameCount,
842
- tenureWeightDuration,
843
- maxTenureWeight,
844
- gatewayRewardRatio,
845
- observerRewardRatio,
846
- maxConsecutiveFailures,
564
+ currentEpochIndex: Number(d.currentEpochIndex),
565
+ genesisTimestamp: Number(d.genesisTimestamp),
566
+ epochDuration: Number(d.epochDuration),
567
+ enabled: d.enabled,
568
+ prescribedObserverCount: d.prescribedObserverCount,
569
+ prescribedNameCount: d.prescribedNameCount,
570
+ tenureWeightDuration: Number(d.tenureWeightDuration),
571
+ maxTenureWeight: Number(d.maxTenureWeight),
572
+ gatewayRewardRatio: Number(d.gatewayRewardRatio),
573
+ observerRewardRatio: Number(d.observerRewardRatio),
574
+ maxConsecutiveFailures: d.maxConsecutiveFailures,
847
575
  };
848
576
  }
849
577
  // =========================================
850
- // Epoch deserialization (zero-copy #[repr(C)])
578
+ // Epoch deserialization
851
579
  // =========================================
852
- /**
853
- * Deserialize an Epoch account from raw bytes.
854
- * PDA: ["epoch", epoch_index_le_bytes] in ario-gar program.
855
- *
856
- * This is a zero-copy account with #[repr(C)] layout (not Borsh).
857
- * Fields are at fixed offsets after the 8-byte discriminator.
858
- */
859
580
  export function deserializeEpoch(data) {
860
- // Codama-decoded path. Replaces the hand-rolled offset arithmetic
861
- // below — that broke under cluster cfg changes (e.g. the
862
- // `--features devnet-shrunk` build cuts the Epoch struct from
863
- // ~9400 bytes down to ~3472 bytes, but the hand-rolled deser had
864
- // hardcoded `base + 9388` reads that overshot the buffer). The
865
- // codama decoder is regenerated from the on-chain IDL on every
866
- // contract change, so layout drift is impossible by construction.
867
- // The "old" hand-rolled body is kept below this early return so
868
- // tests + any downstream consumers that need a specific subset
869
- // of fields still see the shape they expect.
870
- try {
871
- const codamaEpoch = getEpochDecoder().decode(new Uint8Array(data));
872
- return {
873
- epochIndex: Number(codamaEpoch.epochIndex),
874
- startTimestamp: Number(codamaEpoch.startTimestamp),
875
- endTimestamp: Number(codamaEpoch.endTimestamp),
876
- totalEligibleRewards: Number(codamaEpoch.totalEligibleRewards),
877
- perGatewayReward: Number(codamaEpoch.perGatewayReward),
878
- perObserverReward: Number(codamaEpoch.perObserverReward),
879
- rewardRate: Number(codamaEpoch.rewardRate),
880
- activeGatewayCount: codamaEpoch.activeGatewayCount,
881
- distributionIndex: codamaEpoch.distributionIndex,
882
- tallyIndex: codamaEpoch.tallyIndex,
883
- observerCount: codamaEpoch.observerCount,
884
- nameCount: codamaEpoch.nameCount,
885
- observationsSubmitted: codamaEpoch.observationsSubmitted,
886
- rewardsDistributed: codamaEpoch.rewardsDistributed,
887
- weightsTallied: codamaEpoch.weightsTallied,
888
- prescriptionsDone: codamaEpoch.prescriptionsDone,
889
- failureCounts: Uint16Array.from(codamaEpoch.failureCounts),
890
- prescribedObservers: codamaEpoch.prescribedObservers,
891
- prescribedObserverGateways: codamaEpoch.prescribedObserverGateways,
892
- prescribedNameHashes: codamaEpoch.prescribedNames.map((b) => Buffer.from(b)),
893
- hasObserved: new Uint8Array(codamaEpoch.hasObserved),
894
- };
895
- }
896
- catch (codamaErr) {
897
- // Fall through to the legacy hand-rolled path so tests/fixtures
898
- // that synthesize a custom Epoch buffer (e.g.
899
- // save-observations.test.ts) keep working. Real on-chain data
900
- // always succeeds via the codama path above.
901
- void codamaErr;
902
- }
903
- // All offsets relative to start of struct (after 8-byte discriminator)
904
- const base = 8;
905
- const epochIndex = Number(data.readBigUInt64LE(base + 0));
906
- const startTimestamp = Number(data.readBigInt64LE(base + 8));
907
- const endTimestamp = Number(data.readBigInt64LE(base + 16));
908
- const totalEligibleRewards = Number(data.readBigUInt64LE(base + 24));
909
- const perGatewayReward = Number(data.readBigUInt64LE(base + 32));
910
- const perObserverReward = Number(data.readBigUInt64LE(base + 40));
911
- const rewardRate = Number(data.readBigUInt64LE(base + 48));
912
- // total_composite_weight_lo/hi at 56, 64 — skip
913
- // hashchain at 72 — skip (32 bytes)
914
- const activeGatewayCount = data.readUInt32LE(base + 104);
915
- const distributionIndex = data.readUInt32LE(base + 108);
916
- const tallyIndex = data.readUInt32LE(base + 112);
917
- const observerCount = data.readUInt8(base + 116);
918
- const nameCount = data.readUInt8(base + 117);
919
- const observationsSubmitted = data.readUInt8(base + 118);
920
- const rewardsDistributed = data.readUInt8(base + 119);
921
- const weightsTallied = data.readUInt8(base + 120);
922
- const prescriptionsDone = data.readUInt8(base + 121);
923
- // bump at 122, _padding1 at 123
924
- // failure_counts: [u16; 3000] at offset 124
925
- const failureCounts = new Uint16Array(3000);
926
- for (let i = 0; i < 3000; i++) {
927
- failureCounts[i] = data.readUInt16LE(base + 124 + i * 2);
928
- }
929
- // prescribed_observers: [Pubkey; 50] at offset 6124
930
- const prescribedObservers = [];
931
- for (let i = 0; i < 50; i++) {
932
- const off = base + 6124 + i * 32;
933
- prescribedObservers.push(addressDecoder.decode(data.subarray(off, off + 32)));
934
- }
935
- // prescribed_observer_gateways: [Pubkey; 50] at offset 7724
936
- const prescribedObserverGateways = [];
937
- for (let i = 0; i < 50; i++) {
938
- const off = base + 7724 + i * 32;
939
- prescribedObserverGateways.push(addressDecoder.decode(data.subarray(off, off + 32)));
940
- }
941
- // prescribed_names: [[u8; 32]; 2] at offset 9324
942
- const prescribedNameHashes = [];
943
- for (let i = 0; i < 2; i++) {
944
- const off = base + 9324 + i * 32;
945
- prescribedNameHashes.push(Buffer.from(data.subarray(off, off + 32)));
946
- }
947
- // has_observed: [u8; 7] at offset 9388
948
- const hasObserved = new Uint8Array(data.subarray(base + 9388, base + 9395));
581
+ const d = getEpochDecoder().decode(new Uint8Array(data));
949
582
  return {
950
- epochIndex,
951
- startTimestamp,
952
- endTimestamp,
953
- totalEligibleRewards,
954
- perGatewayReward,
955
- perObserverReward,
956
- rewardRate,
957
- activeGatewayCount,
958
- distributionIndex,
959
- tallyIndex,
960
- observerCount,
961
- nameCount,
962
- observationsSubmitted,
963
- rewardsDistributed,
964
- weightsTallied,
965
- prescriptionsDone,
966
- failureCounts,
967
- prescribedObservers,
968
- prescribedObserverGateways,
969
- prescribedNameHashes,
970
- hasObserved,
583
+ epochIndex: Number(d.epochIndex),
584
+ startTimestamp: Number(d.startTimestamp),
585
+ endTimestamp: Number(d.endTimestamp),
586
+ totalEligibleRewards: Number(d.totalEligibleRewards),
587
+ perGatewayReward: Number(d.perGatewayReward),
588
+ perObserverReward: Number(d.perObserverReward),
589
+ rewardRate: Number(d.rewardRate),
590
+ activeGatewayCount: d.activeGatewayCount,
591
+ distributionIndex: d.distributionIndex,
592
+ tallyIndex: d.tallyIndex,
593
+ observerCount: d.observerCount,
594
+ nameCount: d.nameCount,
595
+ observationsSubmitted: d.observationsSubmitted,
596
+ rewardsDistributed: d.rewardsDistributed,
597
+ weightsTallied: d.weightsTallied,
598
+ prescriptionsDone: d.prescriptionsDone,
599
+ failureCounts: Uint16Array.from(d.failureCounts),
600
+ prescribedObservers: d.prescribedObservers,
601
+ prescribedObserverGateways: d.prescribedObserverGateways,
602
+ prescribedNameHashes: d.prescribedNames.map((b) => Buffer.from(b)),
603
+ hasObserved: new Uint8Array(d.hasObserved),
971
604
  };
972
605
  }
973
606
  // =========================================
974
607
  // Observation deserialization
975
608
  // =========================================
976
- /**
977
- * Deserialize an Observation account from raw bytes.
978
- * PDA: ["observation", epoch_index_le_bytes, observer_pubkey] in ario-gar program.
979
- */
980
609
  export function deserializeObservation(data) {
981
- const r = new BorshReader(data, 8); // skip discriminator
982
- const epochIndex = r.readU64AsNumber();
983
- const observer = r.readPubkey();
984
- const gatewayResults = r.readFixedBytes(375);
985
- const gatewayCount = r.readU16();
986
- const reportTxId = r.readFixedBytes(32).toString('base64url');
987
- const submittedAt = r.readI64AsNumber();
610
+ const d = getObservationDecoder().decode(new Uint8Array(data));
988
611
  return {
989
- epochIndex,
990
- observer,
991
- gatewayResults,
992
- gatewayCount,
993
- reportTxId,
994
- submittedAt,
612
+ epochIndex: Number(d.epochIndex),
613
+ observer: d.observer,
614
+ gatewayResults: Buffer.from(d.gatewayResults),
615
+ gatewayCount: d.gatewayCount,
616
+ reportTxId: Buffer.from(d.reportTxId).toString('base64url'),
617
+ submittedAt: Number(d.submittedAt),
995
618
  };
996
619
  }
997
620
  // =========================================
998
621
  // ANT Config deserialization
999
622
  // =========================================
1000
- /**
1001
- * Deserialize an AntConfig account from raw bytes.
1002
- * PDA: ["ant_config", mint] in ario-ant program.
1003
- */
1004
623
  export function deserializeAntConfig(data) {
1005
- const r = new BorshReader(data, 8); // skip discriminator
1006
- const mint = r.readPubkey();
1007
- const name = r.readString();
1008
- const ticker = r.readString();
1009
- const logo = r.readString();
1010
- const description = r.readString();
1011
- const keywords = r.readVecString();
1012
- const lastKnownOwner = r.readPubkey();
1013
- r.readU8(); // bump
1014
- let version = 0;
1015
- try {
1016
- version = r.readU8();
1017
- }
1018
- catch {
1019
- /* pre-version accounts default to 0 */
1020
- }
624
+ const d = getAntConfigDecoder().decode(new Uint8Array(data));
1021
625
  return {
1022
- mint: mint,
1023
- name,
1024
- ticker,
1025
- logo,
1026
- description,
1027
- keywords,
1028
- owner: lastKnownOwner,
1029
- version,
626
+ mint: d.mint,
627
+ name: d.name,
628
+ ticker: d.ticker,
629
+ logo: d.logo,
630
+ description: d.description,
631
+ keywords: d.keywords,
632
+ owner: d.lastKnownOwner,
633
+ version: d.version.major,
1030
634
  };
1031
635
  }
1032
636
  // =========================================
1033
637
  // ANT Controllers deserialization
1034
638
  // =========================================
1035
- /**
1036
- * Deserialize an AntControllers account from raw bytes.
1037
- * PDA: ["ant_controllers", mint] in ario-ant program.
1038
- */
1039
639
  export function deserializeAntControllers(data) {
1040
- const r = new BorshReader(data, 8); // skip discriminator
1041
- const mint = r.readPubkey();
1042
- const controllers = r.readVecPubkey().map((pk) => pk);
1043
- // bump: u8 — skip
640
+ const d = getAntControllersDecoder().decode(new Uint8Array(data));
1044
641
  return {
1045
- mint: mint,
1046
- controllers,
642
+ mint: d.mint,
643
+ controllers: d.controllers.map((c) => c),
1047
644
  };
1048
645
  }
1049
646
  // =========================================
1050
647
  // ANT Record deserialization
1051
648
  // =========================================
1052
- /**
1053
- * Deserialize an AntRecord account from raw bytes.
1054
- * PDA: ["ant_record", mint, hash(undername)] in ario-ant program.
1055
- */
1056
649
  export function deserializeAntRecord(data) {
1057
- const r = new BorshReader(data, 8); // skip discriminator
1058
- const mint = r.readPubkey();
1059
- const undername = r.readString();
1060
- const transactionId = r.readString(); // on-chain field: target
1061
- const targetProtocol = r.readU8(); // 0 = Arweave, 1 = IPFS
1062
- const ttlSeconds = r.readU32();
1063
- const priority = r.readOptionU32();
1064
- const ownerPk = r.readOptionPubkey();
1065
- // last_reconciled_owner: Pubkey, bump: u8 — skip
650
+ const d = getAntRecordDecoder().decode(new Uint8Array(data));
1066
651
  return {
1067
- mint: mint,
1068
- undername,
1069
- transactionId,
1070
- targetProtocol,
1071
- ttlSeconds,
1072
- priority,
1073
- owner: ownerPk,
652
+ mint: d.mint,
653
+ undername: d.undername,
654
+ transactionId: d.target,
655
+ targetProtocol: d.targetProtocol,
656
+ ttlSeconds: d.ttlSeconds,
657
+ priority: optionToValue(d.priority),
658
+ owner: optionToValue(d.owner),
1074
659
  };
1075
660
  }
1076
- /**
1077
- * Deserialize an AntRecordMetadata account from raw bytes.
1078
- * This is a separate PDA that holds optional per-record metadata fields.
1079
- */
1080
661
  export function deserializeAntRecordMetadata(data) {
1081
- const r = new BorshReader(data, 8); // skip discriminator
1082
- const mint = r.readPubkey();
1083
- r.skip(32); // undername_hash — [u8; 32], not needed by callers
1084
- const displayName = r.readOptionString();
1085
- const logo = r.readOptionString();
1086
- const description = r.readOptionString();
1087
- const keywords = r.readOptionVecString();
1088
- // bump: u8 — skip
1089
- return { mint, displayName, logo, description, keywords };
662
+ const d = getAntRecordMetadataDecoder().decode(new Uint8Array(data));
663
+ return {
664
+ mint: d.mint,
665
+ displayName: optionToValue(d.displayName),
666
+ logo: optionToValue(d.recordLogo),
667
+ description: optionToValue(d.recordDescription),
668
+ keywords: optionToValue(d.recordKeywords),
669
+ };
1090
670
  }
1091
- /**
1092
- * Deserialize an `AclConfig` account (paginated ACL head — ADR-012).
1093
- * PDA: `["acl_config", user]` in ario-ant program.
1094
- *
1095
- * Holds counts but no entries. Read this first, then fan out to each
1096
- * `AclPage` PDA (`["acl_page", user, page_idx_le]`) for the entries.
1097
- */
1098
671
  export function deserializeAclConfig(data) {
1099
- const r = new BorshReader(data, 8); // skip discriminator
1100
- const user = r.readPubkey();
1101
- const pageCount = r.readU64();
1102
- const totalEntries = r.readU64();
1103
- // bump: u8 — managed by Anchor
672
+ const d = getAclConfigDecoder().decode(new Uint8Array(data));
1104
673
  return {
1105
- user: user,
1106
- pageCount,
1107
- totalEntries,
674
+ user: d.user,
675
+ pageCount: d.pageCount,
676
+ totalEntries: d.totalEntries,
1108
677
  };
1109
678
  }
1110
- /**
1111
- * Deserialize an `AclPage` account (paginated ACL page — ADR-012).
1112
- * PDA: `["acl_page", user, page_idx_le]` in ario-ant program.
1113
- *
1114
- * Stores up to `MAX_ACL_PAGE_ENTRIES` `(asset, role)` entries. Pages can
1115
- * be sparse mid-life (entries are removed via `swap_remove`) — the SDK's
1116
- * append path fills the first non-full page to keep density reasonable.
1117
- */
1118
679
  export function deserializeAclPage(data) {
1119
- const r = new BorshReader(data, 8); // skip discriminator
1120
- const user = r.readPubkey();
1121
- const pageIdx = r.readU64();
1122
- const entryCount = r.readU32();
1123
- const entries = [];
1124
- for (let i = 0; i < entryCount; i++) {
1125
- const asset = r.readPubkey();
1126
- const role = r.readU8();
1127
- entries.push({ asset: asset, role });
1128
- }
1129
- // bump: u8 — managed by Anchor
680
+ const d = getAclPageDecoder().decode(new Uint8Array(data));
1130
681
  return {
1131
- user: user,
1132
- pageIdx,
1133
- entries,
682
+ user: d.user,
683
+ pageIdx: d.pageIdx,
684
+ entries: d.entries.map((e) => ({
685
+ asset: e.asset,
686
+ role: e.role,
687
+ })),
1134
688
  };
1135
689
  }
1136
690
  // =========================================
1137
691
  // Primary Name deserialization
1138
692
  // =========================================
1139
- /**
1140
- * Deserialize a PrimaryName account from raw bytes.
1141
- * PDA: ["primary_name", owner] in ario-core program.
1142
- */
1143
693
  export function deserializePrimaryName(data) {
1144
- const r = new BorshReader(data, 8); // skip discriminator
1145
- const owner = r.readPubkey();
1146
- const name = r.readString();
1147
- const processId = r.readPubkey();
1148
- const startTimestamp = r.readI64AsNumber();
1149
- // bump: u8 — skip
694
+ const d = getPrimaryNameDecoder().decode(new Uint8Array(data));
1150
695
  return {
1151
- owner: owner,
1152
- name,
1153
- processId: processId,
1154
- startTimestamp,
696
+ owner: d.owner,
697
+ name: d.name,
698
+ startTimestamp: Number(d.setAt),
1155
699
  };
1156
700
  }
1157
701
  // =========================================
1158
702
  // Allowlist deserialization
1159
703
  // =========================================
1160
- /**
1161
- * Deserialize an Allowlist entry account from raw bytes.
1162
- * PDA: ["allowlist", gateway, delegate] in ario-gar program.
1163
- */
1164
704
  export function deserializeAllowlist(data) {
1165
- const r = new BorshReader(data, 8); // skip discriminator
1166
- const gateway = r.readPubkey();
1167
- const delegate = r.readPubkey();
1168
- // bump: u8 — skip
705
+ const d = getAllowlistEntryDecoder().decode(new Uint8Array(data));
1169
706
  return {
1170
- gateway: gateway,
1171
- delegate: delegate,
707
+ gateway: d.gateway,
708
+ delegate: d.delegate,
1172
709
  };
1173
710
  }
1174
- // Re-export the reader and writer for custom (de)serialization
1175
711
  export { BorshReader, BorshWriter };