@oobe-protocol-labs/synapse-client-sdk 1.0.8 → 1.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. package/CHANGELOG.md +137 -0
  2. package/dist/cjs/ai/gateway/index.d.ts +5 -5
  3. package/dist/cjs/ai/gateway/index.d.ts.map +1 -1
  4. package/dist/cjs/ai/gateway/index.js +2 -2
  5. package/dist/cjs/ai/gateway/index.js.map +1 -1
  6. package/dist/cjs/ai/index.d.ts +1 -1
  7. package/dist/cjs/ai/index.d.ts.map +1 -1
  8. package/dist/cjs/ai/index.js +5 -2
  9. package/dist/cjs/ai/index.js.map +1 -1
  10. package/dist/cjs/ai/tools/index.d.ts +4 -4
  11. package/dist/cjs/ai/tools/index.d.ts.map +1 -1
  12. package/dist/cjs/ai/tools/index.js +5 -2
  13. package/dist/cjs/ai/tools/index.js.map +1 -1
  14. package/dist/cjs/ai/tools/protocols/index.d.ts +9 -3
  15. package/dist/cjs/ai/tools/protocols/index.d.ts.map +1 -1
  16. package/dist/cjs/ai/tools/protocols/index.js +16 -2
  17. package/dist/cjs/ai/tools/protocols/index.js.map +1 -1
  18. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  19. package/dist/cjs/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  20. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js +81 -2
  21. package/dist/cjs/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  22. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts +3 -2
  23. package/dist/cjs/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  24. package/dist/cjs/ai/tools/protocols/jupiter/tools.js +85 -2
  25. package/dist/cjs/ai/tools/protocols/jupiter/tools.js.map +1 -1
  26. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts +4 -4
  27. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -1
  28. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js +1 -1
  29. package/dist/cjs/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -1
  30. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts +7 -4
  31. package/dist/cjs/ai/tools/protocols/metaplex/tools.d.ts.map +1 -1
  32. package/dist/cjs/ai/tools/protocols/metaplex/tools.js +17 -20
  33. package/dist/cjs/ai/tools/protocols/metaplex/tools.js.map +1 -1
  34. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts +4 -4
  35. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -1
  36. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js +1 -1
  37. package/dist/cjs/ai/tools/protocols/raydium-onchain/tools.js.map +1 -1
  38. package/dist/cjs/ai/tools/protocols/solana-programs/index.d.ts +7 -0
  39. package/dist/cjs/ai/tools/protocols/solana-programs/index.d.ts.map +1 -0
  40. package/dist/cjs/ai/tools/protocols/solana-programs/index.js +13 -0
  41. package/dist/cjs/ai/tools/protocols/solana-programs/index.js.map +1 -0
  42. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.d.ts +11 -0
  43. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.d.ts.map +1 -0
  44. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.js +160 -0
  45. package/dist/cjs/ai/tools/protocols/solana-programs/schemas.js.map +1 -0
  46. package/dist/cjs/ai/tools/protocols/solana-programs/tools.d.ts +57 -0
  47. package/dist/cjs/ai/tools/protocols/solana-programs/tools.d.ts.map +1 -0
  48. package/dist/cjs/ai/tools/protocols/solana-programs/tools.js +226 -0
  49. package/dist/cjs/ai/tools/protocols/solana-programs/tools.js.map +1 -0
  50. package/dist/cjs/context/container.d.ts +341 -0
  51. package/dist/cjs/context/container.d.ts.map +1 -0
  52. package/dist/cjs/context/container.js +670 -0
  53. package/dist/cjs/context/container.js.map +1 -0
  54. package/dist/cjs/context/hooks.d.ts +357 -0
  55. package/dist/cjs/context/hooks.d.ts.map +1 -0
  56. package/dist/cjs/context/hooks.js +451 -0
  57. package/dist/cjs/context/hooks.js.map +1 -0
  58. package/dist/cjs/context/index.d.ts +81 -0
  59. package/dist/cjs/context/index.d.ts.map +1 -0
  60. package/dist/cjs/context/index.js +125 -0
  61. package/dist/cjs/context/index.js.map +1 -0
  62. package/dist/cjs/context/providers.d.ts +176 -0
  63. package/dist/cjs/context/providers.d.ts.map +1 -0
  64. package/dist/cjs/context/providers.js +184 -0
  65. package/dist/cjs/context/providers.js.map +1 -0
  66. package/dist/cjs/context/refs.d.ts +491 -0
  67. package/dist/cjs/context/refs.d.ts.map +1 -0
  68. package/dist/cjs/context/refs.js +673 -0
  69. package/dist/cjs/context/refs.js.map +1 -0
  70. package/dist/cjs/context/types.d.ts +251 -0
  71. package/dist/cjs/context/types.d.ts.map +1 -0
  72. package/dist/cjs/context/types.js +87 -0
  73. package/dist/cjs/context/types.js.map +1 -0
  74. package/dist/cjs/core/client.d.ts +31 -1
  75. package/dist/cjs/core/client.d.ts.map +1 -1
  76. package/dist/cjs/core/client.js.map +1 -1
  77. package/dist/cjs/core/transport.d.ts +1 -1
  78. package/dist/cjs/core/transport.d.ts.map +1 -1
  79. package/dist/cjs/core/transport.js.map +1 -1
  80. package/dist/cjs/core/types.d.ts +5 -1
  81. package/dist/cjs/core/types.d.ts.map +1 -1
  82. package/dist/cjs/das/methods/get-asset-batch.js +1 -1
  83. package/dist/cjs/das/methods/get-asset-batch.js.map +1 -1
  84. package/dist/cjs/das/methods/get-asset-proof-batch.js +1 -1
  85. package/dist/cjs/das/methods/get-asset-proof-batch.js.map +1 -1
  86. package/dist/cjs/das/methods/get-asset-proof.js +1 -1
  87. package/dist/cjs/das/methods/get-asset-proof.js.map +1 -1
  88. package/dist/cjs/das/methods/get-asset.js +1 -1
  89. package/dist/cjs/das/methods/get-asset.js.map +1 -1
  90. package/dist/cjs/das/methods/get-assets-by-authority.js +1 -1
  91. package/dist/cjs/das/methods/get-assets-by-authority.js.map +1 -1
  92. package/dist/cjs/das/methods/get-assets-by-creator.js +1 -1
  93. package/dist/cjs/das/methods/get-assets-by-creator.js.map +1 -1
  94. package/dist/cjs/das/methods/get-assets-by-group.js +1 -1
  95. package/dist/cjs/das/methods/get-assets-by-group.js.map +1 -1
  96. package/dist/cjs/das/methods/get-assets-by-owner.js +1 -1
  97. package/dist/cjs/das/methods/get-assets-by-owner.js.map +1 -1
  98. package/dist/cjs/das/methods/get-signatures-for-asset.js +1 -1
  99. package/dist/cjs/das/methods/get-signatures-for-asset.js.map +1 -1
  100. package/dist/cjs/das/methods/get-token-accounts.js +1 -1
  101. package/dist/cjs/das/methods/get-token-accounts.js.map +1 -1
  102. package/dist/cjs/das/methods/search-assets.js +1 -1
  103. package/dist/cjs/das/methods/search-assets.js.map +1 -1
  104. package/dist/cjs/index.d.ts +4 -1
  105. package/dist/cjs/index.d.ts.map +1 -1
  106. package/dist/cjs/index.js +6 -1
  107. package/dist/cjs/index.js.map +1 -1
  108. package/dist/cjs/programs/associated-token.d.ts +97 -0
  109. package/dist/cjs/programs/associated-token.d.ts.map +1 -0
  110. package/dist/cjs/programs/associated-token.js +113 -0
  111. package/dist/cjs/programs/associated-token.js.map +1 -0
  112. package/dist/cjs/programs/compute-budget.d.ts +105 -0
  113. package/dist/cjs/programs/compute-budget.d.ts.map +1 -0
  114. package/dist/cjs/programs/compute-budget.js +99 -0
  115. package/dist/cjs/programs/compute-budget.js.map +1 -0
  116. package/dist/cjs/programs/index.d.ts +74 -0
  117. package/dist/cjs/programs/index.d.ts.map +1 -0
  118. package/dist/cjs/programs/index.js +112 -0
  119. package/dist/cjs/programs/index.js.map +1 -0
  120. package/dist/cjs/programs/memo.d.ts +70 -0
  121. package/dist/cjs/programs/memo.d.ts.map +1 -0
  122. package/dist/cjs/programs/memo.js +74 -0
  123. package/dist/cjs/programs/memo.js.map +1 -0
  124. package/dist/cjs/programs/spl-token.d.ts +373 -0
  125. package/dist/cjs/programs/spl-token.d.ts.map +1 -0
  126. package/dist/cjs/programs/spl-token.js +358 -0
  127. package/dist/cjs/programs/spl-token.js.map +1 -0
  128. package/dist/cjs/programs/system.d.ts +231 -0
  129. package/dist/cjs/programs/system.d.ts.map +1 -0
  130. package/dist/cjs/programs/system.js +231 -0
  131. package/dist/cjs/programs/system.js.map +1 -0
  132. package/dist/cjs/programs/types.d.ts +111 -0
  133. package/dist/cjs/programs/types.d.ts.map +1 -0
  134. package/dist/cjs/programs/types.js +166 -0
  135. package/dist/cjs/programs/types.js.map +1 -0
  136. package/dist/docs/assets/navigation.js +1 -1
  137. package/dist/docs/assets/search.js +1 -1
  138. package/dist/docs/classes/AccountReader.html +18 -18
  139. package/dist/docs/classes/AccountsClient.html +10 -10
  140. package/dist/docs/classes/AsyncProviderError.html +39 -0
  141. package/dist/docs/classes/CircularDependencyError.html +39 -0
  142. package/dist/docs/classes/DasClient.html +13 -13
  143. package/dist/docs/classes/GeyserParser.html +17 -17
  144. package/dist/docs/classes/GrpcTransport.html +6 -6
  145. package/dist/docs/classes/HttpTransport.html +5 -5
  146. package/dist/docs/classes/InstructionWriter.html +37 -0
  147. package/dist/docs/classes/MemoryGuard.html +27 -0
  148. package/dist/docs/classes/NetworkError.html +5 -5
  149. package/dist/docs/classes/RefRegistry.html +40 -0
  150. package/dist/docs/classes/RefReleasedError.html +39 -0
  151. package/dist/docs/classes/RpcMethodNotFoundError.html +4 -4
  152. package/dist/docs/classes/ServiceNotFoundError.html +39 -0
  153. package/dist/docs/classes/ServiceRef.html +60 -0
  154. package/dist/docs/classes/SolanaRpc.html +55 -55
  155. package/dist/docs/classes/SynapseClient.html +39 -27
  156. package/dist/docs/classes/SynapseContext.html +151 -0
  157. package/dist/docs/classes/SynapseError.html +4 -4
  158. package/dist/docs/classes/TimeoutError.html +4 -4
  159. package/dist/docs/classes/UpstreamError.html +6 -6
  160. package/dist/docs/classes/WeakServiceRef.html +17 -0
  161. package/dist/docs/classes/WsClient.html +10 -10
  162. package/dist/docs/enums/SynapseNetwork.html +2 -2
  163. package/dist/docs/enums/SynapseRegion.html +2 -2
  164. package/dist/docs/enums/TokenExtensionType.html +2 -2
  165. package/dist/docs/functions/Epoch-1.html +1 -1
  166. package/dist/docs/functions/Lamports-2.html +1 -1
  167. package/dist/docs/functions/Pubkey-1.html +1 -1
  168. package/dist/docs/functions/Sig.html +1 -1
  169. package/dist/docs/functions/Slot-1.html +1 -1
  170. package/dist/docs/functions/UnixTs.html +1 -1
  171. package/dist/docs/functions/autoSelectRegion.html +1 -1
  172. package/dist/docs/functions/autoWire.html +11 -0
  173. package/dist/docs/functions/base58Encode.html +1 -1
  174. package/dist/docs/functions/base64ToBytes.html +1 -1
  175. package/dist/docs/functions/chunk.html +1 -1
  176. package/dist/docs/functions/computeBalanceChanges.html +1 -1
  177. package/dist/docs/functions/computeTokenBalanceChanges.html +1 -1
  178. package/dist/docs/functions/createBareContext.html +6 -0
  179. package/dist/docs/functions/createBinding.html +11 -0
  180. package/dist/docs/functions/createBoundHook.html +8 -0
  181. package/dist/docs/functions/createReactAdapter.html +11 -0
  182. package/dist/docs/functions/createRefHook.html +10 -0
  183. package/dist/docs/functions/createServerMiddleware.html +11 -0
  184. package/dist/docs/functions/createServiceHook.html +10 -0
  185. package/dist/docs/functions/createSynapse.html +1 -1
  186. package/dist/docs/functions/createSynapseContext.html +12 -0
  187. package/dist/docs/functions/createToken.html +9 -0
  188. package/dist/docs/functions/decodeBase58.html +2 -0
  189. package/dist/docs/functions/decodeLookupTable.html +1 -1
  190. package/dist/docs/functions/decodeMint.html +1 -1
  191. package/dist/docs/functions/decodeMultisig.html +1 -1
  192. package/dist/docs/functions/decodeNonceAccount.html +1 -1
  193. package/dist/docs/functions/decodeStakeAccount.html +1 -1
  194. package/dist/docs/functions/decodeToken2022Account.html +1 -1
  195. package/dist/docs/functions/decodeToken2022Mint.html +1 -1
  196. package/dist/docs/functions/decodeTokenAccount.html +1 -1
  197. package/dist/docs/functions/encodeBase58.html +1 -1
  198. package/dist/docs/functions/fetchLookupTable.html +1 -1
  199. package/dist/docs/functions/fetchMint.html +1 -1
  200. package/dist/docs/functions/fetchNonceAccount.html +1 -1
  201. package/dist/docs/functions/fetchStakeAccount.html +1 -1
  202. package/dist/docs/functions/fetchTokenAccount.html +1 -1
  203. package/dist/docs/functions/fetchTokenAccountsByOwner.html +1 -1
  204. package/dist/docs/functions/fromKitAddress.html +1 -1
  205. package/dist/docs/functions/getAccountInfo.html +1 -1
  206. package/dist/docs/functions/getAsset.html +1 -1
  207. package/dist/docs/functions/getAssetBatch.html +1 -1
  208. package/dist/docs/functions/getAssetProof.html +1 -1
  209. package/dist/docs/functions/getAssetProofBatch.html +1 -1
  210. package/dist/docs/functions/getAssetsByAuthority.html +1 -1
  211. package/dist/docs/functions/getAssetsByCreator.html +1 -1
  212. package/dist/docs/functions/getAssetsByGroup.html +1 -1
  213. package/dist/docs/functions/getAssetsByOwner.html +1 -1
  214. package/dist/docs/functions/getBalance.html +1 -1
  215. package/dist/docs/functions/getBlock.html +1 -1
  216. package/dist/docs/functions/getBlockCommitment.html +1 -1
  217. package/dist/docs/functions/getBlockHeight.html +1 -1
  218. package/dist/docs/functions/getBlockProduction.html +1 -1
  219. package/dist/docs/functions/getBlockTime.html +1 -1
  220. package/dist/docs/functions/getBlocks.html +1 -1
  221. package/dist/docs/functions/getBlocksWithLimit.html +1 -1
  222. package/dist/docs/functions/getClusterNodes.html +1 -1
  223. package/dist/docs/functions/getContext.html +4 -0
  224. package/dist/docs/functions/getDecodedAccount.html +1 -1
  225. package/dist/docs/functions/getDecodedAccounts.html +1 -1
  226. package/dist/docs/functions/getEnvironment.html +1 -1
  227. package/dist/docs/functions/getEpochInfo.html +1 -1
  228. package/dist/docs/functions/getEpochSchedule.html +1 -1
  229. package/dist/docs/functions/getFeeForMessage.html +1 -1
  230. package/dist/docs/functions/getFirstAvailableBlock.html +1 -1
  231. package/dist/docs/functions/getGenesisHash.html +1 -1
  232. package/dist/docs/functions/getHealth.html +1 -1
  233. package/dist/docs/functions/getHighestSnapshotSlot.html +1 -1
  234. package/dist/docs/functions/getIdentity.html +1 -1
  235. package/dist/docs/functions/getInflationGovernor.html +1 -1
  236. package/dist/docs/functions/getInflationRate.html +1 -1
  237. package/dist/docs/functions/getInflationReward.html +1 -1
  238. package/dist/docs/functions/getLargestAccounts.html +1 -1
  239. package/dist/docs/functions/getLatestBlockhash.html +1 -1
  240. package/dist/docs/functions/getLeaderSchedule.html +1 -1
  241. package/dist/docs/functions/getMaxRetransmitSlot.html +1 -1
  242. package/dist/docs/functions/getMaxShredInsertSlot.html +1 -1
  243. package/dist/docs/functions/getMinimumBalanceForRentExemption.html +1 -1
  244. package/dist/docs/functions/getMultipleAccounts.html +1 -1
  245. package/dist/docs/functions/getProgramAccounts.html +1 -1
  246. package/dist/docs/functions/getProgramCategory.html +1 -1
  247. package/dist/docs/functions/getRecentPerformanceSamples.html +1 -1
  248. package/dist/docs/functions/getRecentPrioritizationFees.html +1 -1
  249. package/dist/docs/functions/getSignatureStatuses.html +1 -1
  250. package/dist/docs/functions/getSignaturesForAddress.html +1 -1
  251. package/dist/docs/functions/getSignaturesForAsset.html +1 -1
  252. package/dist/docs/functions/getSlot.html +1 -1
  253. package/dist/docs/functions/getSlotLeader.html +1 -1
  254. package/dist/docs/functions/getSlotLeaders.html +1 -1
  255. package/dist/docs/functions/getStakeActivation.html +1 -1
  256. package/dist/docs/functions/getStakeMinimumDelegation.html +1 -1
  257. package/dist/docs/functions/getSupply.html +1 -1
  258. package/dist/docs/functions/getTokenAccountBalance.html +1 -1
  259. package/dist/docs/functions/getTokenAccounts.html +1 -1
  260. package/dist/docs/functions/getTokenAccountsByDelegate.html +1 -1
  261. package/dist/docs/functions/getTokenAccountsByOwner.html +1 -1
  262. package/dist/docs/functions/getTokenLargestAccounts.html +1 -1
  263. package/dist/docs/functions/getTokenSupply.html +1 -1
  264. package/dist/docs/functions/getTransaction.html +1 -1
  265. package/dist/docs/functions/getTransactionCount.html +1 -1
  266. package/dist/docs/functions/getVersion.html +1 -1
  267. package/dist/docs/functions/getVoteAccounts.html +1 -1
  268. package/dist/docs/functions/isBlockhashValid.html +1 -1
  269. package/dist/docs/functions/isBrowser.html +1 -1
  270. package/dist/docs/functions/isDisposable.html +3 -0
  271. package/dist/docs/functions/isProgramInCategory.html +1 -1
  272. package/dist/docs/functions/isServer.html +1 -1
  273. package/dist/docs/functions/isValidPubkey.html +1 -1
  274. package/dist/docs/functions/isValidSignature.html +1 -1
  275. package/dist/docs/functions/lamportsToSol.html +1 -1
  276. package/dist/docs/functions/listEndpoints.html +1 -1
  277. package/dist/docs/functions/listNetworks.html +1 -1
  278. package/dist/docs/functions/listRegions.html +1 -1
  279. package/dist/docs/functions/minimumLedgerSlot.html +1 -1
  280. package/dist/docs/functions/parseAccountUpdate.html +1 -1
  281. package/dist/docs/functions/parseBlockMeta.html +1 -1
  282. package/dist/docs/functions/parseEntry.html +1 -1
  283. package/dist/docs/functions/parseGeyserUpdate.html +1 -1
  284. package/dist/docs/functions/parseSlotUpdate.html +1 -1
  285. package/dist/docs/functions/parseTimestamp.html +1 -1
  286. package/dist/docs/functions/parseTransaction.html +1 -1
  287. package/dist/docs/functions/probeLatency.html +1 -1
  288. package/dist/docs/functions/rawBufferToBase58.html +1 -1
  289. package/dist/docs/functions/rawBufferToBase64.html +1 -1
  290. package/dist/docs/functions/rawBufferToBytes.html +1 -1
  291. package/dist/docs/functions/rawBufferToHex.html +1 -1
  292. package/dist/docs/functions/readonly.html +3 -0
  293. package/dist/docs/functions/readonlySigner.html +3 -0
  294. package/dist/docs/functions/requestAirdrop.html +1 -1
  295. package/dist/docs/functions/resolveEndpoint.html +1 -1
  296. package/dist/docs/functions/resolveProgram.html +1 -1
  297. package/dist/docs/functions/resolveProgramBatch.html +1 -1
  298. package/dist/docs/functions/retry.html +1 -1
  299. package/dist/docs/functions/searchAssets.html +1 -1
  300. package/dist/docs/functions/sendTransaction.html +1 -1
  301. package/dist/docs/functions/setGlobalContext.html +9 -0
  302. package/dist/docs/functions/simulateTransaction.html +1 -1
  303. package/dist/docs/functions/sleep.html +1 -1
  304. package/dist/docs/functions/solToLamports.html +1 -1
  305. package/dist/docs/functions/toClientConfig.html +1 -1
  306. package/dist/docs/functions/toKitAddress.html +1 -1
  307. package/dist/docs/functions/toKitInstruction.html +9 -0
  308. package/dist/docs/functions/toKitLamports.html +1 -1
  309. package/dist/docs/functions/toKitSignatureString.html +1 -1
  310. package/dist/docs/functions/tryGetContext.html +3 -0
  311. package/dist/docs/functions/tryUseService.html +4 -0
  312. package/dist/docs/functions/useBoundServices.html +10 -0
  313. package/dist/docs/functions/useService.html +13 -0
  314. package/dist/docs/functions/useSharedRef.html +14 -0
  315. package/dist/docs/functions/withRef.html +14 -0
  316. package/dist/docs/functions/withRefAsync.html +12 -0
  317. package/dist/docs/functions/writable.html +3 -0
  318. package/dist/docs/functions/writableSigner.html +3 -0
  319. package/dist/docs/hierarchy.html +1 -1
  320. package/dist/docs/interfaces/AccountInfo.html +7 -7
  321. package/dist/docs/interfaces/AccountMeta.html +9 -0
  322. package/dist/docs/interfaces/AccountNotification.html +2 -2
  323. package/dist/docs/interfaces/AccountSubParams.html +2 -2
  324. package/dist/docs/interfaces/AddMemoParams.html +11 -0
  325. package/dist/docs/interfaces/AdvanceNonceParams.html +7 -0
  326. package/dist/docs/interfaces/AliasProvider.html +6 -0
  327. package/dist/docs/interfaces/AllocateParams.html +7 -0
  328. package/dist/docs/interfaces/ApproveCheckedParams.html +19 -0
  329. package/dist/docs/interfaces/ApproveParams.html +15 -0
  330. package/dist/docs/interfaces/AssetSignatureInfo.html +2 -2
  331. package/dist/docs/interfaces/AssetSignaturesPage.html +2 -2
  332. package/dist/docs/interfaces/AssignParams.html +7 -0
  333. package/dist/docs/interfaces/AsyncFactoryProvider.html +7 -0
  334. package/dist/docs/interfaces/AuthorizeNonceParams.html +9 -0
  335. package/dist/docs/interfaces/BalanceChange.html +6 -6
  336. package/dist/docs/interfaces/BlockProduction.html +3 -3
  337. package/dist/docs/interfaces/BlockResult.html +2 -2
  338. package/dist/docs/interfaces/BlockReward.html +2 -2
  339. package/dist/docs/interfaces/BlockhashResult.html +2 -2
  340. package/dist/docs/interfaces/BurnCheckedParams.html +17 -0
  341. package/dist/docs/interfaces/BurnParams.html +15 -0
  342. package/dist/docs/interfaces/CallOptions.html +6 -6
  343. package/dist/docs/interfaces/ClassProvider.html +6 -0
  344. package/dist/docs/interfaces/CloseAccountParams.html +13 -0
  345. package/dist/docs/interfaces/ConfirmedTransaction.html +6 -6
  346. package/dist/docs/interfaces/ContactInfo.html +2 -2
  347. package/dist/docs/interfaces/ContextAdapter.html +15 -0
  348. package/dist/docs/interfaces/ContextEvents.html +13 -0
  349. package/dist/docs/interfaces/ContextModule.html +12 -0
  350. package/dist/docs/interfaces/CreateATAParams.html +13 -0
  351. package/dist/docs/interfaces/CreateAccountParams.html +13 -0
  352. package/dist/docs/interfaces/CreateAccountWithSeedParams.html +17 -0
  353. package/dist/docs/interfaces/CreateSynapseContextOpts.html +18 -0
  354. package/dist/docs/interfaces/DasAsset.html +2 -2
  355. package/dist/docs/interfaces/DasAssetProof.html +2 -2
  356. package/dist/docs/interfaces/DasAuthority.html +2 -2
  357. package/dist/docs/interfaces/DasCompression.html +2 -2
  358. package/dist/docs/interfaces/DasContent.html +2 -2
  359. package/dist/docs/interfaces/DasCreator.html +2 -2
  360. package/dist/docs/interfaces/DasFile.html +2 -2
  361. package/dist/docs/interfaces/DasGrouping.html +2 -2
  362. package/dist/docs/interfaces/DasOpts.html +2 -2
  363. package/dist/docs/interfaces/DasOwnership.html +2 -2
  364. package/dist/docs/interfaces/DasPage.html +2 -2
  365. package/dist/docs/interfaces/DasRoyalty.html +2 -2
  366. package/dist/docs/interfaces/DasSearchParams.html +2 -2
  367. package/dist/docs/interfaces/DasSupply.html +2 -2
  368. package/dist/docs/interfaces/DataSlice.html +3 -3
  369. package/dist/docs/interfaces/DecodedAccountResult.html +4 -4
  370. package/dist/docs/interfaces/DecodedLookupTable.html +8 -8
  371. package/dist/docs/interfaces/DecodedMint.html +6 -6
  372. package/dist/docs/interfaces/DecodedMultisig.html +5 -5
  373. package/dist/docs/interfaces/DecodedNonceAccount.html +6 -6
  374. package/dist/docs/interfaces/DecodedStakeAccount.html +2 -2
  375. package/dist/docs/interfaces/DecodedToken2022Account.html +9 -9
  376. package/dist/docs/interfaces/DecodedToken2022Mint.html +6 -6
  377. package/dist/docs/interfaces/DecodedTokenAccount.html +9 -9
  378. package/dist/docs/interfaces/DefaultAccountStateExt.html +2 -2
  379. package/dist/docs/interfaces/Disposable.html +5 -0
  380. package/dist/docs/interfaces/EndpointConnectConfig.html +5 -5
  381. package/dist/docs/interfaces/EpochInfo.html +7 -7
  382. package/dist/docs/interfaces/EpochSchedule.html +2 -2
  383. package/dist/docs/interfaces/FactoryProvider.html +7 -0
  384. package/dist/docs/interfaces/FetchedMint.html +6 -6
  385. package/dist/docs/interfaces/FetchedTokenAccount.html +6 -6
  386. package/dist/docs/interfaces/FreezeThawParams.html +13 -0
  387. package/dist/docs/interfaces/GetAccountInfoOpts.html +6 -6
  388. package/dist/docs/interfaces/GetAssetsByAuthorityParams.html +2 -2
  389. package/dist/docs/interfaces/GetAssetsByCreatorParams.html +2 -2
  390. package/dist/docs/interfaces/GetAssetsByGroupParams.html +2 -2
  391. package/dist/docs/interfaces/GetAssetsByOwnerParams.html +2 -2
  392. package/dist/docs/interfaces/GetBlockOpts.html +6 -6
  393. package/dist/docs/interfaces/GetBlockProductionOpts.html +6 -6
  394. package/dist/docs/interfaces/GetMultipleAccountsOpts.html +6 -6
  395. package/dist/docs/interfaces/GetProgramAccountsOpts.html +6 -6
  396. package/dist/docs/interfaces/GetSignatureStatusesOpts.html +6 -6
  397. package/dist/docs/interfaces/GetSignaturesOpts.html +7 -7
  398. package/dist/docs/interfaces/GetTokenAccountsParams.html +2 -2
  399. package/dist/docs/interfaces/GetTransactionOpts.html +6 -6
  400. package/dist/docs/interfaces/GeyserParserConfig.html +6 -6
  401. package/dist/docs/interfaces/GeyserParserEvents.html +9 -9
  402. package/dist/docs/interfaces/GeyserParserStats.html +2 -2
  403. package/dist/docs/interfaces/GrpcCallOptions.html +2 -2
  404. package/dist/docs/interfaces/GrpcTransportConfig.html +6 -6
  405. package/dist/docs/interfaces/ImmutableOwnerExt.html +2 -2
  406. package/dist/docs/interfaces/InflationGovernor.html +2 -2
  407. package/dist/docs/interfaces/InflationRate.html +2 -2
  408. package/dist/docs/interfaces/InflationReward.html +2 -2
  409. package/dist/docs/interfaces/InitializeAccountParams.html +11 -0
  410. package/dist/docs/interfaces/InitializeMintParams.html +13 -0
  411. package/dist/docs/interfaces/InitializeNonceParams.html +7 -0
  412. package/dist/docs/interfaces/InterestBearingConfigExt.html +2 -2
  413. package/dist/docs/interfaces/LatencyProbeResult.html +2 -2
  414. package/dist/docs/interfaces/LeakReport.html +12 -0
  415. package/dist/docs/interfaces/LogsNotification.html +2 -2
  416. package/dist/docs/interfaces/LogsSubParams.html +2 -2
  417. package/dist/docs/interfaces/MemoTransferExt.html +2 -2
  418. package/dist/docs/interfaces/MemoryGuardConfig.html +20 -0
  419. package/dist/docs/interfaces/MetadataPointerExt.html +2 -2
  420. package/dist/docs/interfaces/MintCloseAuthorityExt.html +2 -2
  421. package/dist/docs/interfaces/MintToCheckedParams.html +17 -0
  422. package/dist/docs/interfaces/MintToParams.html +15 -0
  423. package/dist/docs/interfaces/NonTransferableExt.html +2 -2
  424. package/dist/docs/interfaces/PaginationOpts.html +2 -2
  425. package/dist/docs/interfaces/ParsedAccountUpdate.html +16 -16
  426. package/dist/docs/interfaces/ParsedBlockMeta.html +2 -2
  427. package/dist/docs/interfaces/ParsedEntry.html +2 -2
  428. package/dist/docs/interfaces/ParsedInstruction.html +9 -9
  429. package/dist/docs/interfaces/ParsedSlotUpdate.html +3 -3
  430. package/dist/docs/interfaces/ParsedTransaction.html +19 -19
  431. package/dist/docs/interfaces/PerfSample.html +2 -2
  432. package/dist/docs/interfaces/PermanentDelegateExt.html +2 -2
  433. package/dist/docs/interfaces/ProgramAccount.html +2 -2
  434. package/dist/docs/interfaces/ProgramNotification.html +2 -2
  435. package/dist/docs/interfaces/ProgramSubParams.html +2 -2
  436. package/dist/docs/interfaces/ProgramsBundle.html +108 -0
  437. package/dist/docs/interfaces/RawAccountInfo.html +2 -2
  438. package/dist/docs/interfaces/RawBlockMeta.html +2 -2
  439. package/dist/docs/interfaces/RawBuffer.html +2 -2
  440. package/dist/docs/interfaces/RawCompiledInstruction.html +2 -2
  441. package/dist/docs/interfaces/RawEntry.html +2 -2
  442. package/dist/docs/interfaces/RawGeyserUpdate.html +2 -2
  443. package/dist/docs/interfaces/RawInnerInstruction.html +2 -2
  444. package/dist/docs/interfaces/RawSlotInfo.html +2 -2
  445. package/dist/docs/interfaces/RawTimestamp.html +2 -2
  446. package/dist/docs/interfaces/RawTokenBalance.html +2 -2
  447. package/dist/docs/interfaces/RawTransactionInfo.html +2 -2
  448. package/dist/docs/interfaces/ReactAdapterConfig.html +8 -0
  449. package/dist/docs/interfaces/RecoverNestedParams.html +15 -0
  450. package/dist/docs/interfaces/RefRegistryConfig.html +9 -0
  451. package/dist/docs/interfaces/RefStats.html +15 -0
  452. package/dist/docs/interfaces/RequestHeapFrameParams.html +5 -0
  453. package/dist/docs/interfaces/ResolveMiddleware.html +8 -0
  454. package/dist/docs/interfaces/RevokeParams.html +11 -0
  455. package/dist/docs/interfaces/RootNotification.html +2 -2
  456. package/dist/docs/interfaces/RootSubParams.html +1 -1
  457. package/dist/docs/interfaces/RpcContext.html +2 -2
  458. package/dist/docs/interfaces/RpcError.html +4 -4
  459. package/dist/docs/interfaces/RpcRequest.html +4 -2
  460. package/dist/docs/interfaces/RpcResponse.html +2 -2
  461. package/dist/docs/interfaces/SendTransactionOpts.html +6 -6
  462. package/dist/docs/interfaces/ServerAdapterConfig.html +13 -0
  463. package/dist/docs/interfaces/ServiceBinding.html +17 -0
  464. package/dist/docs/interfaces/ServiceRegistration.html +7 -0
  465. package/dist/docs/interfaces/ServiceResolver.html +16 -0
  466. package/dist/docs/interfaces/ServiceToken.html +13 -0
  467. package/dist/docs/interfaces/SetComputeUnitLimitParams.html +5 -0
  468. package/dist/docs/interfaces/SetComputeUnitPriceParams.html +5 -0
  469. package/dist/docs/interfaces/SetLoadedAccountsDataSizeLimitParams.html +5 -0
  470. package/dist/docs/interfaces/SignatureInfo.html +7 -7
  471. package/dist/docs/interfaces/SignatureNotification.html +2 -2
  472. package/dist/docs/interfaces/SignatureStatus.html +5 -5
  473. package/dist/docs/interfaces/SignatureSubParams.html +2 -2
  474. package/dist/docs/interfaces/SignaturesForAssetParams.html +2 -2
  475. package/dist/docs/interfaces/SimulateResult.html +2 -2
  476. package/dist/docs/interfaces/SimulateTransactionOpts.html +7 -7
  477. package/dist/docs/interfaces/SlotNotification.html +2 -2
  478. package/dist/docs/interfaces/SlotSubParams.html +1 -1
  479. package/dist/docs/interfaces/SortOpts.html +2 -2
  480. package/dist/docs/interfaces/StakeAuthorized.html +2 -2
  481. package/dist/docs/interfaces/StakeDelegation.html +3 -3
  482. package/dist/docs/interfaces/StakeLockup.html +4 -4
  483. package/dist/docs/interfaces/StakeMeta.html +2 -2
  484. package/dist/docs/interfaces/Supply.html +5 -5
  485. package/dist/docs/interfaces/SynapseClientConfig.html +9 -9
  486. package/dist/docs/interfaces/SynapseClientLike.html +14 -0
  487. package/dist/docs/interfaces/SynapseEndpoint.html +7 -7
  488. package/dist/docs/interfaces/SyncNativeParams.html +7 -0
  489. package/dist/docs/interfaces/SystemTransferParams.html +9 -0
  490. package/dist/docs/interfaces/TokenAccount.html +3 -3
  491. package/dist/docs/interfaces/TokenAccountsByOwnerResult.html +2 -2
  492. package/dist/docs/interfaces/TokenAmount.html +5 -5
  493. package/dist/docs/interfaces/TokenBalanceChange.html +2 -2
  494. package/dist/docs/interfaces/TokenTransferParams.html +15 -0
  495. package/dist/docs/interfaces/TransactionInstruction.html +11 -0
  496. package/dist/docs/interfaces/TransactionMeta.html +11 -11
  497. package/dist/docs/interfaces/TransferCheckedParams.html +19 -0
  498. package/dist/docs/interfaces/TransferFeeAmount.html +2 -2
  499. package/dist/docs/interfaces/TransferFeeConfig.html +2 -2
  500. package/dist/docs/interfaces/TransportConfig.html +7 -7
  501. package/dist/docs/interfaces/UnknownExtension.html +2 -2
  502. package/dist/docs/interfaces/ValueProvider.html +4 -0
  503. package/dist/docs/interfaces/VoteAccount.html +9 -9
  504. package/dist/docs/interfaces/VoteAccountsResult.html +3 -3
  505. package/dist/docs/interfaces/WithdrawNonceParams.html +11 -0
  506. package/dist/docs/interfaces/WsConfig.html +6 -6
  507. package/dist/docs/media/CHANGELOG.md +137 -0
  508. package/dist/docs/modules.html +107 -1
  509. package/dist/docs/types/AccountFetchOpts.html +1 -1
  510. package/dist/docs/types/AccountFilter.html +1 -1
  511. package/dist/docs/types/Base58.html +1 -1
  512. package/dist/docs/types/Brand.html +1 -1
  513. package/dist/docs/types/Commitment.html +1 -1
  514. package/dist/docs/types/DasSortBy.html +1 -1
  515. package/dist/docs/types/DasSortDirection.html +1 -1
  516. package/dist/docs/types/DataSizeFilter.html +1 -1
  517. package/dist/docs/types/DecodedExtension.html +1 -1
  518. package/dist/docs/types/Encoding.html +1 -1
  519. package/dist/docs/types/Epoch.html +1 -1
  520. package/dist/docs/types/Lamports.html +1 -1
  521. package/dist/docs/types/LogsFilter.html +1 -1
  522. package/dist/docs/types/MemcmpFilter.html +1 -1
  523. package/dist/docs/types/NonceState.html +1 -1
  524. package/dist/docs/types/ParsedGeyserUpdate.html +1 -1
  525. package/dist/docs/types/Pubkey.html +1 -1
  526. package/dist/docs/types/RuntimeEnv.html +1 -1
  527. package/dist/docs/types/ServiceLifecycle.html +25 -0
  528. package/dist/docs/types/ServiceProvider.html +3 -0
  529. package/dist/docs/types/Signature.html +1 -1
  530. package/dist/docs/types/Slot.html +1 -1
  531. package/dist/docs/types/StakeAccountType.html +1 -1
  532. package/dist/docs/types/SubscriptionId.html +1 -1
  533. package/dist/docs/types/TokenAccountState.html +1 -1
  534. package/dist/docs/types/TransactionDetail.html +1 -1
  535. package/dist/docs/types/UnaryMethod.html +1 -1
  536. package/dist/docs/types/UnixTimestamp.html +1 -1
  537. package/dist/docs/types/WsNotification.html +1 -1
  538. package/dist/docs/variables/ASSOCIATED_TOKEN_PROGRAM.html +3 -0
  539. package/dist/docs/variables/AssociatedToken.html +13 -0
  540. package/dist/docs/variables/COMPUTE_BUDGET_PROGRAM.html +3 -0
  541. package/dist/docs/variables/ComputeBudget.html +19 -0
  542. package/dist/docs/variables/JUPITER_PROGRAMS.html +1 -1
  543. package/dist/docs/variables/KNOWN_PROGRAMS.html +1 -1
  544. package/dist/docs/variables/KNOWN_PROGRAMS_COUNT.html +1 -1
  545. package/dist/docs/variables/LOOKUP_TABLE_HEADER_SIZE.html +1 -1
  546. package/dist/docs/variables/LOOKUP_TABLE_PROGRAM_ID.html +1 -1
  547. package/dist/docs/variables/MARINADE_PROGRAMS.html +1 -1
  548. package/dist/docs/variables/MAX_MULTISIG_SIGNERS.html +1 -1
  549. package/dist/docs/variables/MEMO_PROGRAM_V1.html +3 -0
  550. package/dist/docs/variables/MEMO_PROGRAM_V2.html +3 -0
  551. package/dist/docs/variables/METAPLEX_PROGRAMS.html +1 -1
  552. package/dist/docs/variables/METEORA_PROGRAMS.html +1 -1
  553. package/dist/docs/variables/MINT_SIZE.html +1 -1
  554. package/dist/docs/variables/MULTISIG_SIZE.html +1 -1
  555. package/dist/docs/variables/Memo.html +9 -0
  556. package/dist/docs/variables/NONCE_ACCOUNT_SIZE.html +1 -1
  557. package/dist/docs/variables/ORCA_PROGRAMS.html +1 -1
  558. package/dist/docs/variables/OTHER_PROGRAMS.html +1 -1
  559. package/dist/docs/variables/RAYDIUM_PROGRAMS.html +1 -1
  560. package/dist/docs/variables/SDK_USER_AGENT.html +1 -1
  561. package/dist/docs/variables/SPL_PROGRAMS.html +1 -1
  562. package/dist/docs/variables/STAKE_PROGRAM_ID.html +1 -1
  563. package/dist/docs/variables/SYNAPSE_DEVNET_EU.html +1 -1
  564. package/dist/docs/variables/SYNAPSE_DEVNET_US.html +1 -1
  565. package/dist/docs/variables/SYNAPSE_ENDPOINTS.html +1 -1
  566. package/dist/docs/variables/SYNAPSE_MAINNET_EU.html +1 -1
  567. package/dist/docs/variables/SYNAPSE_MAINNET_US.html +1 -1
  568. package/dist/docs/variables/SYSTEM_PROGRAM.html +3 -0
  569. package/dist/docs/variables/SYSTEM_PROGRAMS.html +1 -1
  570. package/dist/docs/variables/SYSTEM_PROGRAM_ID.html +1 -1
  571. package/dist/docs/variables/SplToken.html +38 -0
  572. package/dist/docs/variables/SystemProgram.html +42 -0
  573. package/dist/docs/variables/TOKEN_2022_PROGRAM.html +3 -0
  574. package/dist/docs/variables/TOKEN_2022_PROGRAM_ID.html +1 -1
  575. package/dist/docs/variables/TOKEN_ACCOUNT_SIZE.html +1 -1
  576. package/dist/docs/variables/TOKEN_PROGRAM.html +3 -0
  577. package/dist/docs/variables/TOKEN_PROGRAM_ID.html +1 -1
  578. package/dist/docs/variables/Tokens.html +16 -0
  579. package/dist/esm/ai/gateway/index.d.ts +5 -5
  580. package/dist/esm/ai/gateway/index.d.ts.map +1 -1
  581. package/dist/esm/ai/gateway/index.js +2 -2
  582. package/dist/esm/ai/gateway/index.js.map +1 -1
  583. package/dist/esm/ai/index.d.ts +1 -1
  584. package/dist/esm/ai/index.d.ts.map +1 -1
  585. package/dist/esm/ai/index.js +2 -2
  586. package/dist/esm/ai/index.js.map +1 -1
  587. package/dist/esm/ai/tools/index.d.ts +4 -4
  588. package/dist/esm/ai/tools/index.d.ts.map +1 -1
  589. package/dist/esm/ai/tools/index.js +3 -3
  590. package/dist/esm/ai/tools/index.js.map +1 -1
  591. package/dist/esm/ai/tools/protocols/index.d.ts +9 -3
  592. package/dist/esm/ai/tools/protocols/index.d.ts.map +1 -1
  593. package/dist/esm/ai/tools/protocols/index.js +12 -1
  594. package/dist/esm/ai/tools/protocols/index.js.map +1 -1
  595. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts +1 -1
  596. package/dist/esm/ai/tools/protocols/jupiter/schemas.d.ts.map +1 -1
  597. package/dist/esm/ai/tools/protocols/jupiter/schemas.js +81 -2
  598. package/dist/esm/ai/tools/protocols/jupiter/schemas.js.map +1 -1
  599. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts +3 -2
  600. package/dist/esm/ai/tools/protocols/jupiter/tools.d.ts.map +1 -1
  601. package/dist/esm/ai/tools/protocols/jupiter/tools.js +85 -2
  602. package/dist/esm/ai/tools/protocols/jupiter/tools.js.map +1 -1
  603. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts +4 -4
  604. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.d.ts.map +1 -1
  605. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js +1 -1
  606. package/dist/esm/ai/tools/protocols/jupiter-onchain/tools.js.map +1 -1
  607. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts +7 -4
  608. package/dist/esm/ai/tools/protocols/metaplex/tools.d.ts.map +1 -1
  609. package/dist/esm/ai/tools/protocols/metaplex/tools.js +17 -20
  610. package/dist/esm/ai/tools/protocols/metaplex/tools.js.map +1 -1
  611. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts +4 -4
  612. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.d.ts.map +1 -1
  613. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js +1 -1
  614. package/dist/esm/ai/tools/protocols/raydium-onchain/tools.js.map +1 -1
  615. package/dist/esm/ai/tools/protocols/solana-programs/index.d.ts +7 -0
  616. package/dist/esm/ai/tools/protocols/solana-programs/index.d.ts.map +1 -0
  617. package/dist/esm/ai/tools/protocols/solana-programs/index.js +7 -0
  618. package/dist/esm/ai/tools/protocols/solana-programs/index.js.map +1 -0
  619. package/dist/esm/ai/tools/protocols/solana-programs/schemas.d.ts +11 -0
  620. package/dist/esm/ai/tools/protocols/solana-programs/schemas.d.ts.map +1 -0
  621. package/dist/esm/ai/tools/protocols/solana-programs/schemas.js +157 -0
  622. package/dist/esm/ai/tools/protocols/solana-programs/schemas.js.map +1 -0
  623. package/dist/esm/ai/tools/protocols/solana-programs/tools.d.ts +57 -0
  624. package/dist/esm/ai/tools/protocols/solana-programs/tools.d.ts.map +1 -0
  625. package/dist/esm/ai/tools/protocols/solana-programs/tools.js +220 -0
  626. package/dist/esm/ai/tools/protocols/solana-programs/tools.js.map +1 -0
  627. package/dist/esm/context/container.d.ts +341 -0
  628. package/dist/esm/context/container.d.ts.map +1 -0
  629. package/dist/esm/context/container.js +666 -0
  630. package/dist/esm/context/container.js.map +1 -0
  631. package/dist/esm/context/hooks.d.ts +357 -0
  632. package/dist/esm/context/hooks.d.ts.map +1 -0
  633. package/dist/esm/context/hooks.js +434 -0
  634. package/dist/esm/context/hooks.js.map +1 -0
  635. package/dist/esm/context/index.d.ts +81 -0
  636. package/dist/esm/context/index.d.ts.map +1 -0
  637. package/dist/esm/context/index.js +98 -0
  638. package/dist/esm/context/index.js.map +1 -0
  639. package/dist/esm/context/providers.d.ts +176 -0
  640. package/dist/esm/context/providers.d.ts.map +1 -0
  641. package/dist/esm/context/providers.js +179 -0
  642. package/dist/esm/context/providers.js.map +1 -0
  643. package/dist/esm/context/refs.d.ts +491 -0
  644. package/dist/esm/context/refs.d.ts.map +1 -0
  645. package/dist/esm/context/refs.js +664 -0
  646. package/dist/esm/context/refs.js.map +1 -0
  647. package/dist/esm/context/types.d.ts +251 -0
  648. package/dist/esm/context/types.d.ts.map +1 -0
  649. package/dist/esm/context/types.js +79 -0
  650. package/dist/esm/context/types.js.map +1 -0
  651. package/dist/esm/core/client.d.ts +31 -1
  652. package/dist/esm/core/client.d.ts.map +1 -1
  653. package/dist/esm/core/client.js.map +1 -1
  654. package/dist/esm/core/transport.d.ts +1 -1
  655. package/dist/esm/core/transport.d.ts.map +1 -1
  656. package/dist/esm/core/transport.js.map +1 -1
  657. package/dist/esm/core/types.d.ts +5 -1
  658. package/dist/esm/core/types.d.ts.map +1 -1
  659. package/dist/esm/das/methods/get-asset-batch.js +1 -1
  660. package/dist/esm/das/methods/get-asset-batch.js.map +1 -1
  661. package/dist/esm/das/methods/get-asset-proof-batch.js +1 -1
  662. package/dist/esm/das/methods/get-asset-proof-batch.js.map +1 -1
  663. package/dist/esm/das/methods/get-asset-proof.js +1 -1
  664. package/dist/esm/das/methods/get-asset-proof.js.map +1 -1
  665. package/dist/esm/das/methods/get-asset.js +1 -1
  666. package/dist/esm/das/methods/get-asset.js.map +1 -1
  667. package/dist/esm/das/methods/get-assets-by-authority.js +1 -1
  668. package/dist/esm/das/methods/get-assets-by-authority.js.map +1 -1
  669. package/dist/esm/das/methods/get-assets-by-creator.js +1 -1
  670. package/dist/esm/das/methods/get-assets-by-creator.js.map +1 -1
  671. package/dist/esm/das/methods/get-assets-by-group.js +1 -1
  672. package/dist/esm/das/methods/get-assets-by-group.js.map +1 -1
  673. package/dist/esm/das/methods/get-assets-by-owner.js +1 -1
  674. package/dist/esm/das/methods/get-assets-by-owner.js.map +1 -1
  675. package/dist/esm/das/methods/get-signatures-for-asset.js +1 -1
  676. package/dist/esm/das/methods/get-signatures-for-asset.js.map +1 -1
  677. package/dist/esm/das/methods/get-token-accounts.js +1 -1
  678. package/dist/esm/das/methods/get-token-accounts.js.map +1 -1
  679. package/dist/esm/das/methods/search-assets.js +1 -1
  680. package/dist/esm/das/methods/search-assets.js.map +1 -1
  681. package/dist/esm/index.d.ts +4 -1
  682. package/dist/esm/index.d.ts.map +1 -1
  683. package/dist/esm/index.js +6 -1
  684. package/dist/esm/index.js.map +1 -1
  685. package/dist/esm/programs/associated-token.d.ts +97 -0
  686. package/dist/esm/programs/associated-token.d.ts.map +1 -0
  687. package/dist/esm/programs/associated-token.js +110 -0
  688. package/dist/esm/programs/associated-token.js.map +1 -0
  689. package/dist/esm/programs/compute-budget.d.ts +105 -0
  690. package/dist/esm/programs/compute-budget.d.ts.map +1 -0
  691. package/dist/esm/programs/compute-budget.js +96 -0
  692. package/dist/esm/programs/compute-budget.js.map +1 -0
  693. package/dist/esm/programs/index.d.ts +74 -0
  694. package/dist/esm/programs/index.d.ts.map +1 -0
  695. package/dist/esm/programs/index.js +90 -0
  696. package/dist/esm/programs/index.js.map +1 -0
  697. package/dist/esm/programs/memo.d.ts +70 -0
  698. package/dist/esm/programs/memo.d.ts.map +1 -0
  699. package/dist/esm/programs/memo.js +71 -0
  700. package/dist/esm/programs/memo.js.map +1 -0
  701. package/dist/esm/programs/spl-token.d.ts +373 -0
  702. package/dist/esm/programs/spl-token.d.ts.map +1 -0
  703. package/dist/esm/programs/spl-token.js +355 -0
  704. package/dist/esm/programs/spl-token.js.map +1 -0
  705. package/dist/esm/programs/system.d.ts +231 -0
  706. package/dist/esm/programs/system.d.ts.map +1 -0
  707. package/dist/esm/programs/system.js +228 -0
  708. package/dist/esm/programs/system.js.map +1 -0
  709. package/dist/esm/programs/types.d.ts +111 -0
  710. package/dist/esm/programs/types.d.ts.map +1 -0
  711. package/dist/esm/programs/types.js +157 -0
  712. package/dist/esm/programs/types.js.map +1 -0
  713. package/package.json +41 -1
@@ -0,0 +1,673 @@
1
+ "use strict";
2
+ /**
3
+ * Memory-safe service references — ref counting, leak detection, WeakRef sharing.
4
+ *
5
+ * ## Why refs?
6
+ *
7
+ * In an SDK, memory management is critical. Raw `resolve()` returns
8
+ * a direct reference with no tracking. `acquireRef()` returns a
9
+ * `ServiceRef<T>` that:
10
+ *
11
+ * 1. **Tracks** how many components hold the service (ref counting)
12
+ * 2. **Invalidates** automatically when the context is disposed
13
+ * 3. **Detects leaks** via `FinalizationRegistry` (if a ref is GC'd without release)
14
+ * 4. **Supports RAII** via `use()` / `useAsync()` / `withRef()`
15
+ *
16
+ * ## Architecture
17
+ *
18
+ * ```
19
+ * ┌──────────────────────────────────────────────────────────┐
20
+ * │ Component A Component B │
21
+ * │ acquireRef(RPC) ──┐ ┌── acquireRef(RPC) │
22
+ * │ ServiceRef #1 │ │ ServiceRef #2 │
23
+ * │ refCount: 2 ▼ ▼ refCount: 2 │
24
+ * │ ┌──────────┐ │
25
+ * │ │ Registry │ ← FinalizationRegistry │
26
+ * │ │ RPC → 2 │ (leak detection) │
27
+ * │ └────┬─────┘ │
28
+ * │ │ │
29
+ * │ ┌────▼─────┐ │
30
+ * │ │ Singleton│ (one instance, N refs) │
31
+ * │ │ RPC svc │ │
32
+ * │ └──────────┘ │
33
+ * │ │
34
+ * │ A.release() → refCount: 1 │ B.release() → refCount: 0 │
35
+ * └──────────────────────────────────────────────────────────┘
36
+ * ```
37
+ *
38
+ * ## Component sharing pattern
39
+ *
40
+ * ```ts
41
+ * // Component A — acquires a tracked reference
42
+ * const rpcRef = ctx.acquireRef(Tokens.RPC);
43
+ * const balance = await rpcRef.current.getBalance(pubkey);
44
+ *
45
+ * // Component B — acquires its own tracked ref to the SAME instance
46
+ * const rpcRef2 = ctx.acquireRef(Tokens.RPC);
47
+ * const slot = await rpcRef2.current.getSlot();
48
+ *
49
+ * // Both hold the SAME singleton — ref count is 2
50
+ * ctx.refCount(Tokens.RPC); // → 2
51
+ *
52
+ * // Component A unmounts
53
+ * rpcRef.release(); // ref count → 1
54
+ *
55
+ * // Component B unmounts
56
+ * rpcRef2.release(); // ref count → 0
57
+ * ```
58
+ *
59
+ * ## RAII pattern (auto-release)
60
+ *
61
+ * ```ts
62
+ * // Sync — ref released in finally block
63
+ * const balance = withRef(ctx, Tokens.RPC, rpc => rpc.getBalance(pubkey));
64
+ *
65
+ * // Async — ref released after await completes
66
+ * const slot = await withRefAsync(ctx, Tokens.RPC, rpc => rpc.getSlot());
67
+ *
68
+ * // On the ref itself
69
+ * const result = ref.use(rpc => rpc.getBalance(pubkey));
70
+ * ```
71
+ *
72
+ * @module context/refs
73
+ * @since 1.2.0
74
+ */
75
+ Object.defineProperty(exports, "__esModule", { value: true });
76
+ exports.MemoryGuard = exports.RefRegistry = exports.WeakServiceRef = exports.ServiceRef = exports.RefReleasedError = void 0;
77
+ exports.createBinding = createBinding;
78
+ const errors_1 = require("../core/errors");
79
+ // ── Errors ─────────────────────────────────────────────────────
80
+ /**
81
+ * Thrown when accessing `.current` on a released or invalidated reference.
82
+ * @since 1.2.0
83
+ */
84
+ class RefReleasedError extends errors_1.SynapseError {
85
+ constructor(tokenName) {
86
+ super(`Service reference for "${tokenName}" has been released. ` +
87
+ 'Acquire a new ref with acquireRef() or check ref.alive before access.', -32104);
88
+ this.name = 'RefReleasedError';
89
+ }
90
+ }
91
+ exports.RefReleasedError = RefReleasedError;
92
+ // ── ServiceRef ─────────────────────────────────────────────────
93
+ /**
94
+ * A tracked, ref-counted reference to a resolved service.
95
+ *
96
+ * Provides memory-safe access: accessing `.current` after `.release()`
97
+ * throws {@link RefReleasedError} instead of returning a stale value.
98
+ *
99
+ * @typeParam T - The service type.
100
+ * @since 1.2.0
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * const rpcRef = ctx.acquireRef(Tokens.RPC);
105
+ *
106
+ * // Use the service
107
+ * const balance = await rpcRef.current.getBalance(pubkey);
108
+ *
109
+ * // Release when done (e.g. on unmount)
110
+ * rpcRef.release();
111
+ *
112
+ * // Accessing after release throws
113
+ * rpcRef.current; // ❌ RefReleasedError
114
+ * ```
115
+ */
116
+ class ServiceRef {
117
+ _value;
118
+ _token;
119
+ _onRelease;
120
+ id;
121
+ _released = false;
122
+ _acquiredAt;
123
+ /**
124
+ * @internal Use `ctx.acquireRef(token)` or `RefRegistry.acquire()` to create refs.
125
+ */
126
+ constructor(_value, _token, _onRelease,
127
+ /** Unique reference ID (monotonically increasing within a registry). */
128
+ id) {
129
+ this._value = _value;
130
+ this._token = _token;
131
+ this._onRelease = _onRelease;
132
+ this.id = id;
133
+ this._acquiredAt = performance.now();
134
+ }
135
+ // ── Accessors ──────────────────────────────────────────────
136
+ /**
137
+ * The resolved service instance.
138
+ *
139
+ * @throws {RefReleasedError} If the ref has been released or invalidated.
140
+ */
141
+ get current() {
142
+ if (this._released) {
143
+ throw new RefReleasedError(this._token.name);
144
+ }
145
+ return this._value;
146
+ }
147
+ /** Whether this reference is still valid (not released). */
148
+ get alive() { return !this._released; }
149
+ /** The token this ref was acquired for. */
150
+ get token() { return this._token; }
151
+ /** `performance.now()` timestamp when this ref was acquired. */
152
+ get acquiredAt() { return this._acquiredAt; }
153
+ /** How long this ref has been alive, in ms. */
154
+ get ageMs() { return performance.now() - this._acquiredAt; }
155
+ // ── Release ────────────────────────────────────────────────
156
+ /**
157
+ * Release this reference, decrementing the ref count.
158
+ *
159
+ * After release:
160
+ * - `.current` throws {@link RefReleasedError}
161
+ * - `.alive` returns `false`
162
+ * - The ref count for this token decreases by 1
163
+ *
164
+ * Safe to call multiple times (idempotent).
165
+ */
166
+ release() {
167
+ if (this._released)
168
+ return;
169
+ this._released = true;
170
+ this._onRelease(this);
171
+ }
172
+ /** Alias for {@link release}. Implements {@link Disposable}. */
173
+ dispose() { this.release(); }
174
+ // ── RAII patterns ──────────────────────────────────────────
175
+ /**
176
+ * Execute a function with this reference, auto-releasing afterward.
177
+ *
178
+ * The ref is released in a `finally` block, guaranteeing cleanup
179
+ * even if the function throws.
180
+ *
181
+ * @param fn - Receives the unwrapped service value.
182
+ * @returns The return value of `fn`.
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const balance = rpcRef.use(rpc => rpc.getBalance(pubkey));
187
+ * // rpcRef is now released — no leak possible
188
+ * ```
189
+ */
190
+ use(fn) {
191
+ try {
192
+ return fn(this.current);
193
+ }
194
+ finally {
195
+ this.release();
196
+ }
197
+ }
198
+ /**
199
+ * Async version of {@link use}. Awaits the function, then releases.
200
+ *
201
+ * @example
202
+ * ```ts
203
+ * const balance = await rpcRef.useAsync(rpc => rpc.getBalance(pubkey));
204
+ * ```
205
+ */
206
+ async useAsync(fn) {
207
+ try {
208
+ return await fn(this.current);
209
+ }
210
+ finally {
211
+ this.release();
212
+ }
213
+ }
214
+ // ── Sharing ────────────────────────────────────────────────
215
+ /**
216
+ * Create a weak reference that does **not** prevent garbage collection.
217
+ *
218
+ * The returned `WeakServiceRef` can be shared to components that
219
+ * only need the service optionally — if the strong refs are all
220
+ * released and the GC collects the object, `.deref()` returns
221
+ * `undefined` instead of throwing.
222
+ *
223
+ * @throws {SynapseError} If the service value is a primitive (not weakly referenceable).
224
+ *
225
+ * @example
226
+ * ```ts
227
+ * const weakRpc = rpcRef.toWeak();
228
+ * // Later:
229
+ * const rpc = weakRpc.deref();
230
+ * if (rpc) rpc.getBalance(pubkey);
231
+ * ```
232
+ */
233
+ toWeak() {
234
+ if (typeof this._value !== 'object' || this._value === null) {
235
+ throw new errors_1.SynapseError(`Cannot create WeakRef for non-object service "${this._token.name}". ` +
236
+ 'WeakRef requires an object target.', -32105);
237
+ }
238
+ return new WeakServiceRef(this._value);
239
+ }
240
+ }
241
+ exports.ServiceRef = ServiceRef;
242
+ // ── WeakServiceRef ─────────────────────────────────────────────
243
+ /**
244
+ * A non-preventing (weak) reference to a service.
245
+ *
246
+ * Unlike {@link ServiceRef}, this does **not** keep the service alive
247
+ * in memory. The garbage collector can collect the underlying object
248
+ * even while this ref exists. Use `.deref()` to check if the service
249
+ * is still available.
250
+ *
251
+ * @typeParam T - The service type (must be an object).
252
+ * @since 1.2.0
253
+ *
254
+ * @example
255
+ * ```ts
256
+ * const weakRpc = strongRef.toWeak();
257
+ *
258
+ * // In another component — check before use
259
+ * const rpc = weakRpc.deref();
260
+ * if (rpc) {
261
+ * await rpc.getBalance(pubkey);
262
+ * } else {
263
+ * // Service was GC'd — re-acquire if needed
264
+ * }
265
+ * ```
266
+ */
267
+ class WeakServiceRef {
268
+ _ref;
269
+ constructor(value) {
270
+ this._ref = new WeakRef(value);
271
+ }
272
+ /**
273
+ * Dereference the weak ref.
274
+ * @returns The service instance, or `undefined` if it was GC'd.
275
+ */
276
+ deref() {
277
+ return this._ref.deref();
278
+ }
279
+ /** Whether the underlying object is still alive (not yet GC'd). */
280
+ get alive() {
281
+ return this._ref.deref() !== undefined;
282
+ }
283
+ }
284
+ exports.WeakServiceRef = WeakServiceRef;
285
+ // ── RefRegistry ────────────────────────────────────────────────
286
+ /**
287
+ * Centralized registry that tracks all active {@link ServiceRef}s.
288
+ *
289
+ * Provides ref counting, introspection, and leak detection via
290
+ * `FinalizationRegistry`. Each `SynapseContext` owns at most one
291
+ * `RefRegistry` (created lazily on first `acquireRef()`).
292
+ *
293
+ * @since 1.2.0
294
+ */
295
+ class RefRegistry {
296
+ /** @internal Active refs grouped by token. */
297
+ _entries = new Map();
298
+ /** @internal FinalizationRegistry for GC-based leak detection. */
299
+ _leakDetector;
300
+ /** @internal Track which ref IDs are still active (for leak detection). */
301
+ _activeRefIds = new Set();
302
+ /** @internal Monotonically increasing ref ID. */
303
+ _nextId = 1;
304
+ /** @internal Counters. */
305
+ _totalAcquired = 0;
306
+ _totalReleased = 0;
307
+ _peakActive = 0;
308
+ _leakedCount = 0;
309
+ /** @internal Leak handlers. */
310
+ _leakHandlers = [];
311
+ /** @internal Whether the registry has been disposed. */
312
+ _disposed = false;
313
+ constructor(config = {}) {
314
+ const enableLeaks = config.enableLeakDetection !== false;
315
+ if (enableLeaks && typeof FinalizationRegistry !== 'undefined') {
316
+ this._leakDetector = new FinalizationRegistry((held) => {
317
+ // This ref was GC'd without release() being called → leak
318
+ if (this._activeRefIds.has(held.refId)) {
319
+ this._activeRefIds.delete(held.refId);
320
+ this._leakedCount++;
321
+ const report = {
322
+ tokenName: held.tokenName,
323
+ refId: held.refId,
324
+ acquiredAt: held.acquiredAt,
325
+ detectedAt: performance.now(),
326
+ };
327
+ for (const handler of this._leakHandlers) {
328
+ try {
329
+ handler(report);
330
+ }
331
+ catch { /* swallow listener errors */ }
332
+ }
333
+ }
334
+ });
335
+ }
336
+ }
337
+ // ── Acquire & Release ──────────────────────────────────────
338
+ /**
339
+ * Create a tracked ref for a resolved service value.
340
+ *
341
+ * @param token - The service token.
342
+ * @param value - The resolved service instance.
343
+ * @returns A new `ServiceRef<T>` linked to this registry.
344
+ */
345
+ acquire(token, value) {
346
+ if (this._disposed) {
347
+ throw new errors_1.SynapseError('RefRegistry has been disposed', -32106);
348
+ }
349
+ const id = this._nextId++;
350
+ this._totalAcquired++;
351
+ const ref = new ServiceRef(value, token, (r) => this._handleRelease(token, r), id);
352
+ // Track in entries map
353
+ let set = this._entries.get(token);
354
+ if (!set) {
355
+ set = new Set();
356
+ this._entries.set(token, set);
357
+ }
358
+ set.add(ref);
359
+ // Track active ID
360
+ this._activeRefIds.add(id);
361
+ if (this._activeRefIds.size > this._peakActive) {
362
+ this._peakActive = this._activeRefIds.size;
363
+ }
364
+ // Register with leak detector
365
+ if (this._leakDetector) {
366
+ this._leakDetector.register(ref, { tokenName: token.name, refId: id, acquiredAt: ref.acquiredAt }, ref);
367
+ }
368
+ return ref;
369
+ }
370
+ /** @internal Handle a ref being released. */
371
+ _handleRelease(token, ref) {
372
+ this._activeRefIds.delete(ref.id);
373
+ this._totalReleased++;
374
+ const set = this._entries.get(token);
375
+ if (set) {
376
+ set.delete(ref);
377
+ if (set.size === 0)
378
+ this._entries.delete(token);
379
+ }
380
+ // Unregister from leak detector (ref was properly released)
381
+ if (this._leakDetector) {
382
+ this._leakDetector.unregister(ref);
383
+ }
384
+ }
385
+ // ── Ref Counting ───────────────────────────────────────────
386
+ /**
387
+ * Number of active refs for a specific token.
388
+ */
389
+ refCount(token) {
390
+ return this._entries.get(token)?.size ?? 0;
391
+ }
392
+ /**
393
+ * Total number of active (unreleased) refs across all tokens.
394
+ */
395
+ totalActive() {
396
+ return this._activeRefIds.size;
397
+ }
398
+ // ── Stats & Introspection ──────────────────────────────────
399
+ /**
400
+ * Aggregate statistics snapshot.
401
+ */
402
+ get stats() {
403
+ return {
404
+ totalAcquired: this._totalAcquired,
405
+ totalReleased: this._totalReleased,
406
+ active: this._activeRefIds.size,
407
+ peak: this._peakActive,
408
+ leaked: this._leakedCount,
409
+ byToken: this._tokenBreakdown(),
410
+ };
411
+ }
412
+ /** @internal Build per-token breakdown. */
413
+ _tokenBreakdown() {
414
+ const result = {};
415
+ for (const [token, set] of this._entries) {
416
+ if (set.size > 0)
417
+ result[token.name] = set.size;
418
+ }
419
+ return result;
420
+ }
421
+ // ── Leak Detection ─────────────────────────────────────────
422
+ /**
423
+ * Check for potential leaks: refs that have been alive longer
424
+ * than `maxAgeMs` without being released.
425
+ *
426
+ * This is a **heuristic** — long-lived refs (e.g. for the lifetime
427
+ * of the app) are expected. Use this for debugging / dev mode.
428
+ *
429
+ * @param maxAgeMs - Threshold in ms. @default 60_000
430
+ */
431
+ checkLeaks(maxAgeMs = 60_000) {
432
+ const now = performance.now();
433
+ const reports = [];
434
+ for (const [token, set] of this._entries) {
435
+ for (const ref of set) {
436
+ if (ref.ageMs > maxAgeMs) {
437
+ reports.push({
438
+ tokenName: token.name,
439
+ refId: ref.id,
440
+ acquiredAt: ref.acquiredAt,
441
+ detectedAt: now,
442
+ });
443
+ }
444
+ }
445
+ }
446
+ return reports;
447
+ }
448
+ /**
449
+ * Register a handler for GC-detected leaks.
450
+ *
451
+ * Called when a `ServiceRef` is garbage collected without
452
+ * `.release()` having been called first.
453
+ *
454
+ * @param handler - Receives a {@link LeakReport} for each leak.
455
+ */
456
+ onLeak(handler) {
457
+ this._leakHandlers.push(handler);
458
+ }
459
+ // ── Cleanup ────────────────────────────────────────────────
460
+ /**
461
+ * Force-release all active refs.
462
+ *
463
+ * Called automatically when the owning `SynapseContext` is disposed.
464
+ * After this, all refs' `.current` will throw {@link RefReleasedError}.
465
+ */
466
+ invalidateAll() {
467
+ for (const set of this._entries.values()) {
468
+ // Iterate a copy because release() modifies the set
469
+ for (const ref of [...set]) {
470
+ ref.release();
471
+ }
472
+ }
473
+ this._entries.clear();
474
+ this._activeRefIds.clear();
475
+ }
476
+ /** Dispose the registry — invalidates all refs, clears handlers. */
477
+ dispose() {
478
+ if (this._disposed)
479
+ return;
480
+ this._disposed = true;
481
+ this.invalidateAll();
482
+ this._leakHandlers.length = 0;
483
+ }
484
+ /** Whether this registry has been disposed. */
485
+ get isDisposed() { return this._disposed; }
486
+ }
487
+ exports.RefRegistry = RefRegistry;
488
+ // ── MemoryGuard ────────────────────────────────────────────────
489
+ /**
490
+ * Memory safety monitor that wraps a {@link RefRegistry}.
491
+ *
492
+ * Provides configurable thresholds, periodic leak checks, and
493
+ * pressure alerts. Designed for dev-mode diagnostics or production
494
+ * monitoring of SDK memory usage.
495
+ *
496
+ * @since 1.2.0
497
+ *
498
+ * @example
499
+ * ```ts
500
+ * const guard = new MemoryGuard(registry, {
501
+ * maxRefAgeMs: 30_000,
502
+ * maxActiveRefs: 50,
503
+ * checkIntervalMs: 10_000,
504
+ * });
505
+ *
506
+ * guard.onPressure(stats => {
507
+ * console.warn('⚠️ Memory pressure:', stats.active, 'active refs');
508
+ * });
509
+ *
510
+ * guard.onLeak(report => {
511
+ * console.error('🔴 Leaked ref:', report.tokenName, '#' + report.refId);
512
+ * });
513
+ * ```
514
+ */
515
+ class MemoryGuard {
516
+ _registry;
517
+ _timer;
518
+ _pressureHandlers = [];
519
+ _config;
520
+ constructor(_registry, config = {}) {
521
+ this._registry = _registry;
522
+ this._config = {
523
+ maxRefAgeMs: config.maxRefAgeMs ?? 60_000,
524
+ maxActiveRefs: config.maxActiveRefs ?? 100,
525
+ checkIntervalMs: config.checkIntervalMs ?? 0,
526
+ };
527
+ // Forward leak events from registry
528
+ // (no extra wiring needed — users subscribe via guard.onLeak())
529
+ // Periodic check timer
530
+ if (this._config.checkIntervalMs > 0) {
531
+ this._timer = setInterval(() => this._periodicCheck(), this._config.checkIntervalMs);
532
+ // unref() so the timer doesn't prevent process.exit()
533
+ if (typeof this._timer === 'object' && 'unref' in this._timer) {
534
+ this._timer.unref();
535
+ }
536
+ }
537
+ }
538
+ // ── Stats ──────────────────────────────────────────────────
539
+ /** Current ref statistics from the underlying registry. */
540
+ get stats() { return this._registry.stats; }
541
+ /** Whether the active ref count exceeds the threshold. */
542
+ get underPressure() {
543
+ return this._registry.totalActive() >= this._config.maxActiveRefs;
544
+ }
545
+ /** Number of currently active refs. */
546
+ get activeRefs() {
547
+ return this._registry.totalActive();
548
+ }
549
+ // ── Checks ─────────────────────────────────────────────────
550
+ /**
551
+ * Check for potential leaks (refs older than `maxRefAgeMs`).
552
+ */
553
+ checkLeaks() {
554
+ return this._registry.checkLeaks(this._config.maxRefAgeMs);
555
+ }
556
+ // ── Events ─────────────────────────────────────────────────
557
+ /**
558
+ * Subscribe to memory pressure events.
559
+ *
560
+ * Fires when the active ref count exceeds `maxActiveRefs`
561
+ * during a periodic check.
562
+ */
563
+ onPressure(handler) {
564
+ this._pressureHandlers.push(handler);
565
+ }
566
+ /**
567
+ * Subscribe to GC-detected leak events.
568
+ *
569
+ * Delegates to the underlying {@link RefRegistry.onLeak}.
570
+ */
571
+ onLeak(handler) {
572
+ this._registry.onLeak(handler);
573
+ }
574
+ // ── Internal ───────────────────────────────────────────────
575
+ /** @internal Periodic check callback. */
576
+ _periodicCheck() {
577
+ if (this.underPressure) {
578
+ const stats = this.stats;
579
+ for (const handler of this._pressureHandlers) {
580
+ try {
581
+ handler(stats);
582
+ }
583
+ catch { /* swallow */ }
584
+ }
585
+ }
586
+ }
587
+ /** Dispose the guard — stops the timer, clears handlers. */
588
+ dispose() {
589
+ if (this._timer) {
590
+ clearInterval(this._timer);
591
+ this._timer = undefined;
592
+ }
593
+ this._pressureHandlers.length = 0;
594
+ }
595
+ }
596
+ exports.MemoryGuard = MemoryGuard;
597
+ /**
598
+ * Create a binding that acquires tracked refs for multiple tokens.
599
+ *
600
+ * Services are resolved **lazily** on first property access. All refs
601
+ * are released together with a single `.release()` call.
602
+ *
603
+ * @param acquireFn - Function that acquires a ref for a token (usually `ctx.acquireRef.bind(ctx)`).
604
+ * @param tokens - Record mapping property names to service tokens.
605
+ * @returns A {@link ServiceBinding} with lazy services and batch release.
606
+ * @since 1.2.0
607
+ *
608
+ * @example
609
+ * ```ts
610
+ * const binding = createBinding(
611
+ * token => ctx.acquireRef(token),
612
+ * { rpc: Tokens.RPC, das: Tokens.DAS, programs: Tokens.PROGRAMS },
613
+ * );
614
+ *
615
+ * // Use services (each is acquired on first access):
616
+ * await binding.services.rpc.getBalance(pubkey);
617
+ * await binding.services.das.getAsset(assetId);
618
+ *
619
+ * // Release ALL refs at once:
620
+ * binding.release();
621
+ * ```
622
+ */
623
+ function createBinding(acquireFn, tokens) {
624
+ const refs = new Map();
625
+ let released = false;
626
+ const services = new Proxy({}, {
627
+ get(_target, prop) {
628
+ if (typeof prop === 'symbol')
629
+ return undefined;
630
+ if (released) {
631
+ throw new errors_1.SynapseError('ServiceBinding has been released. Cannot access services after release.', -32107);
632
+ }
633
+ // Return cached if already acquired
634
+ const existing = refs.get(prop);
635
+ if (existing)
636
+ return existing.current;
637
+ // Acquire new ref
638
+ const token = tokens[prop];
639
+ if (!token)
640
+ return undefined;
641
+ const ref = acquireFn(token);
642
+ refs.set(prop, ref);
643
+ return ref.current;
644
+ },
645
+ has(_target, prop) {
646
+ return typeof prop === 'string' && prop in tokens;
647
+ },
648
+ ownKeys() {
649
+ return Object.keys(tokens);
650
+ },
651
+ getOwnPropertyDescriptor(_target, prop) {
652
+ if (typeof prop === 'string' && prop in tokens) {
653
+ return { configurable: true, enumerable: true, writable: false };
654
+ }
655
+ return undefined;
656
+ },
657
+ });
658
+ return {
659
+ services,
660
+ refs,
661
+ get alive() { return !released && [...refs.values()].some(r => r.alive); },
662
+ release() {
663
+ if (released)
664
+ return;
665
+ released = true;
666
+ for (const ref of refs.values()) {
667
+ ref.release();
668
+ }
669
+ },
670
+ dispose() { this.release(); },
671
+ };
672
+ }
673
+ //# sourceMappingURL=refs.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"refs.js","sourceRoot":"","sources":["../../../src/context/refs.ts"],"names":[],"mappings":"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"}