@oobe-protocol-labs/synapse-client-sdk 1.0.0-beta

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 (460) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +1393 -0
  3. package/dist/cjs/advanced/circuit-breaker.d.ts +111 -0
  4. package/dist/cjs/advanced/circuit-breaker.d.ts.map +1 -0
  5. package/dist/cjs/advanced/circuit-breaker.js +278 -0
  6. package/dist/cjs/advanced/circuit-breaker.js.map +1 -0
  7. package/dist/cjs/advanced/index.d.ts +8 -0
  8. package/dist/cjs/advanced/index.d.ts.map +1 -0
  9. package/dist/cjs/advanced/index.js +13 -0
  10. package/dist/cjs/advanced/index.js.map +1 -0
  11. package/dist/cjs/advanced/load-balancer.d.ts +114 -0
  12. package/dist/cjs/advanced/load-balancer.d.ts.map +1 -0
  13. package/dist/cjs/advanced/load-balancer.js +354 -0
  14. package/dist/cjs/advanced/load-balancer.js.map +1 -0
  15. package/dist/cjs/advanced/smart-caching.d.ts +113 -0
  16. package/dist/cjs/advanced/smart-caching.d.ts.map +1 -0
  17. package/dist/cjs/advanced/smart-caching.js +461 -0
  18. package/dist/cjs/advanced/smart-caching.js.map +1 -0
  19. package/dist/cjs/advanced/types.d.ts +228 -0
  20. package/dist/cjs/advanced/types.d.ts.map +1 -0
  21. package/dist/cjs/advanced/types.js +7 -0
  22. package/dist/cjs/advanced/types.js.map +1 -0
  23. package/dist/cjs/ai/index.d.ts +15 -0
  24. package/dist/cjs/ai/index.d.ts.map +1 -0
  25. package/dist/cjs/ai/index.js +20 -0
  26. package/dist/cjs/ai/index.js.map +1 -0
  27. package/dist/cjs/ai/merkle-operation.d.ts +245 -0
  28. package/dist/cjs/ai/merkle-operation.d.ts.map +1 -0
  29. package/dist/cjs/ai/merkle-operation.js +522 -0
  30. package/dist/cjs/ai/merkle-operation.js.map +1 -0
  31. package/dist/cjs/ai/pda-manager.d.ts +134 -0
  32. package/dist/cjs/ai/pda-manager.d.ts.map +1 -0
  33. package/dist/cjs/ai/pda-manager.js +250 -0
  34. package/dist/cjs/ai/pda-manager.js.map +1 -0
  35. package/dist/cjs/ai/types.ai.d.ts +172 -0
  36. package/dist/cjs/ai/types.ai.d.ts.map +1 -0
  37. package/dist/cjs/ai/types.ai.js +14 -0
  38. package/dist/cjs/ai/types.ai.js.map +1 -0
  39. package/dist/cjs/ai/zero-combine-fetcher.d.ts +171 -0
  40. package/dist/cjs/ai/zero-combine-fetcher.d.ts.map +1 -0
  41. package/dist/cjs/ai/zero-combine-fetcher.js +412 -0
  42. package/dist/cjs/ai/zero-combine-fetcher.js.map +1 -0
  43. package/dist/cjs/client.d.ts +83 -0
  44. package/dist/cjs/client.d.ts.map +1 -0
  45. package/dist/cjs/client.js +287 -0
  46. package/dist/cjs/client.js.map +1 -0
  47. package/dist/cjs/defi/advanced-features.d.ts +207 -0
  48. package/dist/cjs/defi/advanced-features.d.ts.map +1 -0
  49. package/dist/cjs/defi/advanced-features.js +382 -0
  50. package/dist/cjs/defi/advanced-features.js.map +1 -0
  51. package/dist/cjs/defi/index.d.ts +29 -0
  52. package/dist/cjs/defi/index.d.ts.map +1 -0
  53. package/dist/cjs/defi/index.js +50 -0
  54. package/dist/cjs/defi/index.js.map +1 -0
  55. package/dist/cjs/defi/jito.d.ts +118 -0
  56. package/dist/cjs/defi/jito.d.ts.map +1 -0
  57. package/dist/cjs/defi/jito.js +291 -0
  58. package/dist/cjs/defi/jito.js.map +1 -0
  59. package/dist/cjs/defi/jupiter.d.ts +143 -0
  60. package/dist/cjs/defi/jupiter.d.ts.map +1 -0
  61. package/dist/cjs/defi/jupiter.js +219 -0
  62. package/dist/cjs/defi/jupiter.js.map +1 -0
  63. package/dist/cjs/defi/price-feed.d.ts +63 -0
  64. package/dist/cjs/defi/price-feed.d.ts.map +1 -0
  65. package/dist/cjs/defi/price-feed.js +153 -0
  66. package/dist/cjs/defi/price-feed.js.map +1 -0
  67. package/dist/cjs/defi/token-data.d.ts +83 -0
  68. package/dist/cjs/defi/token-data.d.ts.map +1 -0
  69. package/dist/cjs/defi/token-data.js +205 -0
  70. package/dist/cjs/defi/token-data.js.map +1 -0
  71. package/dist/cjs/defi/unstable-features.d.ts +207 -0
  72. package/dist/cjs/defi/unstable-features.d.ts.map +1 -0
  73. package/dist/cjs/defi/unstable-features.js +382 -0
  74. package/dist/cjs/defi/unstable-features.js.map +1 -0
  75. package/dist/cjs/defi/utils.d.ts +265 -0
  76. package/dist/cjs/defi/utils.d.ts.map +1 -0
  77. package/dist/cjs/defi/utils.js +619 -0
  78. package/dist/cjs/defi/utils.js.map +1 -0
  79. package/dist/cjs/index.d.ts +31 -0
  80. package/dist/cjs/index.d.ts.map +1 -0
  81. package/dist/cjs/index.js +71 -0
  82. package/dist/cjs/index.js.map +1 -0
  83. package/dist/cjs/methods/solana-rpc.d.ts +362 -0
  84. package/dist/cjs/methods/solana-rpc.d.ts.map +1 -0
  85. package/dist/cjs/methods/solana-rpc.js +584 -0
  86. package/dist/cjs/methods/solana-rpc.js.map +1 -0
  87. package/dist/cjs/nft/advanced-features.d.ts +205 -0
  88. package/dist/cjs/nft/advanced-features.d.ts.map +1 -0
  89. package/dist/cjs/nft/advanced-features.js +529 -0
  90. package/dist/cjs/nft/advanced-features.js.map +1 -0
  91. package/dist/cjs/nft/clients/index.d.ts +8 -0
  92. package/dist/cjs/nft/clients/index.d.ts.map +1 -0
  93. package/dist/cjs/nft/clients/index.js +14 -0
  94. package/dist/cjs/nft/clients/index.js.map +1 -0
  95. package/dist/cjs/nft/clients/magic-eden-client.d.ts +101 -0
  96. package/dist/cjs/nft/clients/magic-eden-client.d.ts.map +1 -0
  97. package/dist/cjs/nft/clients/magic-eden-client.js +263 -0
  98. package/dist/cjs/nft/clients/magic-eden-client.js.map +1 -0
  99. package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts +154 -0
  100. package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts.map +1 -0
  101. package/dist/cjs/nft/clients/metaplex-onchain-client.js +408 -0
  102. package/dist/cjs/nft/clients/metaplex-onchain-client.js.map +1 -0
  103. package/dist/cjs/nft/clients/tensor-client.d.ts +79 -0
  104. package/dist/cjs/nft/clients/tensor-client.d.ts.map +1 -0
  105. package/dist/cjs/nft/clients/tensor-client.js +222 -0
  106. package/dist/cjs/nft/clients/tensor-client.js.map +1 -0
  107. package/dist/cjs/nft/index.d.ts +13 -0
  108. package/dist/cjs/nft/index.d.ts.map +1 -0
  109. package/dist/cjs/nft/index.js +37 -0
  110. package/dist/cjs/nft/index.js.map +1 -0
  111. package/dist/cjs/nft/types.nft.d.ts +342 -0
  112. package/dist/cjs/nft/types.nft.d.ts.map +1 -0
  113. package/dist/cjs/nft/types.nft.js +3 -0
  114. package/dist/cjs/nft/types.nft.js.map +1 -0
  115. package/dist/cjs/nft/utils.d.ts +46 -0
  116. package/dist/cjs/nft/utils.d.ts.map +1 -0
  117. package/dist/cjs/nft/utils.js +281 -0
  118. package/dist/cjs/nft/utils.js.map +1 -0
  119. package/dist/cjs/types.d.ts +525 -0
  120. package/dist/cjs/types.d.ts.map +1 -0
  121. package/dist/cjs/types.js +192 -0
  122. package/dist/cjs/types.js.map +1 -0
  123. package/dist/cjs/utils/constant.d.ts +8 -0
  124. package/dist/cjs/utils/constant.d.ts.map +1 -0
  125. package/dist/cjs/utils/constant.js +12 -0
  126. package/dist/cjs/utils/constant.js.map +1 -0
  127. package/dist/cjs/utils/helpers.d.ts +92 -0
  128. package/dist/cjs/utils/helpers.d.ts.map +1 -0
  129. package/dist/cjs/utils/helpers.js +248 -0
  130. package/dist/cjs/utils/helpers.js.map +1 -0
  131. package/dist/cjs/websocket/client.d.ts +182 -0
  132. package/dist/cjs/websocket/client.d.ts.map +1 -0
  133. package/dist/cjs/websocket/client.js +465 -0
  134. package/dist/cjs/websocket/client.js.map +1 -0
  135. package/dist/cjs/websocket/index.d.ts +6 -0
  136. package/dist/cjs/websocket/index.d.ts.map +1 -0
  137. package/dist/cjs/websocket/index.js +9 -0
  138. package/dist/cjs/websocket/index.js.map +1 -0
  139. package/dist/docs/.nojekyll +1 -0
  140. package/dist/docs/assets/highlight.css +113 -0
  141. package/dist/docs/assets/icons.js +18 -0
  142. package/dist/docs/assets/icons.svg +1 -0
  143. package/dist/docs/assets/main.js +60 -0
  144. package/dist/docs/assets/navigation.js +1 -0
  145. package/dist/docs/assets/search.js +1 -0
  146. package/dist/docs/assets/style.css +1493 -0
  147. package/dist/docs/classes/AIError.html +40 -0
  148. package/dist/docs/classes/AIInvestmentAdvisor.html +26 -0
  149. package/dist/docs/classes/AIRarityCalculator.html +28 -0
  150. package/dist/docs/classes/ArbitrageDetector.html +30 -0
  151. package/dist/docs/classes/BatchingError.html +40 -0
  152. package/dist/docs/classes/CacheError.html +40 -0
  153. package/dist/docs/classes/CircuitBreaker.html +38 -0
  154. package/dist/docs/classes/CircuitBreakerError.html +40 -0
  155. package/dist/docs/classes/CollectionAnalytics.html +30 -0
  156. package/dist/docs/classes/DeFiError.html +40 -0
  157. package/dist/docs/classes/FlashLoanSimulator.html +26 -0
  158. package/dist/docs/classes/JitoIntegration.html +53 -0
  159. package/dist/docs/classes/JupiterIntegration.html +43 -0
  160. package/dist/docs/classes/Keypair.html +28 -0
  161. package/dist/docs/classes/LoadBalancer.html +34 -0
  162. package/dist/docs/classes/MEVProtection.html +28 -0
  163. package/dist/docs/classes/MarketplaceAggregator.html +28 -0
  164. package/dist/docs/classes/MerkleOperation.html +74 -0
  165. package/dist/docs/classes/NFTEngine.html +29 -0
  166. package/dist/docs/classes/NFTError.html +40 -0
  167. package/dist/docs/classes/NetworkError.html +40 -0
  168. package/dist/docs/classes/PDAManager.html +46 -0
  169. package/dist/docs/classes/PortfolioAnalytics.html +26 -0
  170. package/dist/docs/classes/PriceFeedIntegration.html +37 -0
  171. package/dist/docs/classes/PublicKey.html +46 -0
  172. package/dist/docs/classes/RateLimitError.html +39 -0
  173. package/dist/docs/classes/SmartCaching.html +42 -0
  174. package/dist/docs/classes/Synapse.html +6 -0
  175. package/dist/docs/classes/SynapseClient.html +55 -0
  176. package/dist/docs/classes/SynapseError.html +37 -0
  177. package/dist/docs/classes/SynapseSolanaEngine.html +49 -0
  178. package/dist/docs/classes/SynapseUtils.html +25 -0
  179. package/dist/docs/classes/TokenDataIntegration.html +41 -0
  180. package/dist/docs/classes/Transaction.html +87 -0
  181. package/dist/docs/classes/TransactionInstruction.html +10 -0
  182. package/dist/docs/classes/UpstreamError.html +39 -0
  183. package/dist/docs/classes/WebSocketClient.html +47 -0
  184. package/dist/docs/classes/WebSocketError.html +40 -0
  185. package/dist/docs/classes/YieldFarmingFinder.html +26 -0
  186. package/dist/docs/classes/ZeroCombineFetcher.html +25 -0
  187. package/dist/docs/functions/createSynapseClient.html +2 -0
  188. package/dist/docs/hierarchy.html +1 -0
  189. package/dist/docs/index.html +776 -0
  190. package/dist/docs/interfaces/AIAgentConfig.html +11 -0
  191. package/dist/docs/interfaces/AIAgentContext.html +7 -0
  192. package/dist/docs/interfaces/AIContext.html +6 -0
  193. package/dist/docs/interfaces/AIMethodResult.html +6 -0
  194. package/dist/docs/interfaces/AIRarityAnalysis.html +3 -0
  195. package/dist/docs/interfaces/AIResponse.html +5 -0
  196. package/dist/docs/interfaces/AccountInfo.html +8 -0
  197. package/dist/docs/interfaces/AdvancedClientConfig.html +7 -0
  198. package/dist/docs/interfaces/AdvancedEvents.html +9 -0
  199. package/dist/docs/interfaces/AdvancedMetricsData.html +5 -0
  200. package/dist/docs/interfaces/AdvancedPerformanceMetrics.html +6 -0
  201. package/dist/docs/interfaces/AgentAdapter.html +6 -0
  202. package/dist/docs/interfaces/AgentRiskReport.html +6 -0
  203. package/dist/docs/interfaces/AgentTradeSuggestion.html +10 -0
  204. package/dist/docs/interfaces/AggregatedCollectionStats.html +36 -0
  205. package/dist/docs/interfaces/ArbitrageOpportunity.html +8 -0
  206. package/dist/docs/interfaces/AutoTradingStrategy.html +13 -0
  207. package/dist/docs/interfaces/BatchResponse.html +4 -0
  208. package/dist/docs/interfaces/BatchResult.html +6 -0
  209. package/dist/docs/interfaces/BatcherConfig.html +5 -0
  210. package/dist/docs/interfaces/BirdeyeTokenPrice.html +4 -0
  211. package/dist/docs/interfaces/BlockhashInfo.html +5 -0
  212. package/dist/docs/interfaces/BuildSwapTxResult.html +7 -0
  213. package/dist/docs/interfaces/CacheStats.html +9 -0
  214. package/dist/docs/interfaces/ChunkInfo.html +10 -0
  215. package/dist/docs/interfaces/CircuitBreakerConfig.html +6 -0
  216. package/dist/docs/interfaces/ClientStats.html +14 -0
  217. package/dist/docs/interfaces/CollectionStats.html +17 -0
  218. package/dist/docs/interfaces/CollectionTrends.html +7 -0
  219. package/dist/docs/interfaces/CompressedNFTInfo.html +13 -0
  220. package/dist/docs/interfaces/ConfirmedTransaction.html +6 -0
  221. package/dist/docs/interfaces/ConnectionEvents.html +11 -0
  222. package/dist/docs/interfaces/DeFiConfig.html +16 -0
  223. package/dist/docs/interfaces/DiagnosticsResult.html +6 -0
  224. package/dist/docs/interfaces/EpochInfo.html +9 -0
  225. package/dist/docs/interfaces/ExecuteSwapParams.html +10 -0
  226. package/dist/docs/interfaces/FetchConfig.html +7 -0
  227. package/dist/docs/interfaces/FlashLoanAction.html +6 -0
  228. package/dist/docs/interfaces/FlashLoanSimulation.html +9 -0
  229. package/dist/docs/interfaces/GatewayStats.html +7 -0
  230. package/dist/docs/interfaces/InscriptionResult.html +18 -0
  231. package/dist/docs/interfaces/InvestmentRecommendation.html +10 -0
  232. package/dist/docs/interfaces/JitoBundleParams.html +4 -0
  233. package/dist/docs/interfaces/JitoBundleResult.html +6 -0
  234. package/dist/docs/interfaces/JitoBundleStatus.html +6 -0
  235. package/dist/docs/interfaces/JitoTipAccount.html +3 -0
  236. package/dist/docs/interfaces/JupiterQuoteParams.html +10 -0
  237. package/dist/docs/interfaces/JupiterQuoteRequest.html +17 -0
  238. package/dist/docs/interfaces/JupiterQuoteResponse.html +13 -0
  239. package/dist/docs/interfaces/JupiterSwapOptions.html +8 -0
  240. package/dist/docs/interfaces/JupiterSwapResponse.html +4 -0
  241. package/dist/docs/interfaces/JupiterTokenPrice.html +5 -0
  242. package/dist/docs/interfaces/LoadBalancerConfig.html +5 -0
  243. package/dist/docs/interfaces/MEVProtectionConfig.html +11 -0
  244. package/dist/docs/interfaces/MEVProtectionResult.html +6 -0
  245. package/dist/docs/interfaces/MagicEdenActivity.html +22 -0
  246. package/dist/docs/interfaces/MagicEdenCollection.html +22 -0
  247. package/dist/docs/interfaces/MagicEdenCollectionStats.html +17 -0
  248. package/dist/docs/interfaces/MagicEdenErrorResponse.html +4 -0
  249. package/dist/docs/interfaces/MagicEdenListing.html +24 -0
  250. package/dist/docs/interfaces/MarketplaceClientConfig.html +14 -0
  251. package/dist/docs/interfaces/MarketplaceFloorPrices.html +7 -0
  252. package/dist/docs/interfaces/MarketplaceListing.html +9 -0
  253. package/dist/docs/interfaces/MerkleLeaf.html +6 -0
  254. package/dist/docs/interfaces/MerkleProof.html +8 -0
  255. package/dist/docs/interfaces/MerkleValidationResult.html +10 -0
  256. package/dist/docs/interfaces/MultiChainSignal.html +8 -0
  257. package/dist/docs/interfaces/NFTAttribute.html +4 -0
  258. package/dist/docs/interfaces/NFTConfig.html +6 -0
  259. package/dist/docs/interfaces/NFTInfo.html +10 -0
  260. package/dist/docs/interfaces/NFTMetadata.html +9 -0
  261. package/dist/docs/interfaces/NormalizedMarketplaceListing.html +18 -0
  262. package/dist/docs/interfaces/OOBECompatibleAgent.html +8 -0
  263. package/dist/docs/interfaces/PDAConfig.html +10 -0
  264. package/dist/docs/interfaces/ParsedAccountInfo.html +8 -0
  265. package/dist/docs/interfaces/PerformanceMetrics.html +9 -0
  266. package/dist/docs/interfaces/PortfolioMetrics.html +10 -0
  267. package/dist/docs/interfaces/PriceData.html +8 -0
  268. package/dist/docs/interfaces/ProofRecord.html +12 -0
  269. package/dist/docs/interfaces/QuoteRequestCommon.html +11 -0
  270. package/dist/docs/interfaces/QuoteResponse.html +6 -0
  271. package/dist/docs/interfaces/RarityAlgorithmConfig.html +3 -0
  272. package/dist/docs/interfaces/RarityScore.html +8 -0
  273. package/dist/docs/interfaces/RaydiumBuildSwapParams.html +14 -0
  274. package/dist/docs/interfaces/RaydiumQuoteRequest.html +14 -0
  275. package/dist/docs/interfaces/RequestOptions.html +12 -0
  276. package/dist/docs/interfaces/RetryAttempt.html +5 -0
  277. package/dist/docs/interfaces/RpcError.html +5 -0
  278. package/dist/docs/interfaces/RpcRequest.html +6 -0
  279. package/dist/docs/interfaces/RpcResponse.html +6 -0
  280. package/dist/docs/interfaces/SecurityThreat.html +6 -0
  281. package/dist/docs/interfaces/SignatureInfo.html +8 -0
  282. package/dist/docs/interfaces/Signer.html +4 -0
  283. package/dist/docs/interfaces/SmartCacheConfig.html +7 -0
  284. package/dist/docs/interfaces/SmartQueryOptions.html +10 -0
  285. package/dist/docs/interfaces/StressTestOptions.html +8 -0
  286. package/dist/docs/interfaces/StressTestResult.html +9 -0
  287. package/dist/docs/interfaces/SubscriptionConfig.html +9 -0
  288. package/dist/docs/interfaces/SubscriptionOptions.html +7 -0
  289. package/dist/docs/interfaces/SubscriptionResult.html +7 -0
  290. package/dist/docs/interfaces/SynapseConfig.html +13 -0
  291. package/dist/docs/interfaces/SynapseLikeClient.html +4 -0
  292. package/dist/docs/interfaces/TensorCollectionStats.html +33 -0
  293. package/dist/docs/interfaces/TensorErrorResponse.html +5 -0
  294. package/dist/docs/interfaces/TensorListing.html +16 -0
  295. package/dist/docs/interfaces/TensorSale.html +16 -0
  296. package/dist/docs/interfaces/TokenAccount.html +7 -0
  297. package/dist/docs/interfaces/TokenAccountInfo.html +12 -0
  298. package/dist/docs/interfaces/TokenHolding.html +8 -0
  299. package/dist/docs/interfaces/TokenInfo.html +7 -0
  300. package/dist/docs/interfaces/TokenLargestAccount.html +5 -0
  301. package/dist/docs/interfaces/TokenSupply.html +5 -0
  302. package/dist/docs/interfaces/TradeExecution.html +14 -0
  303. package/dist/docs/interfaces/TransactionSignature.html +8 -0
  304. package/dist/docs/interfaces/UpstreamHealth.html +8 -0
  305. package/dist/docs/interfaces/UserPDAs.html +10 -0
  306. package/dist/docs/interfaces/WebSocketConfig.html +12 -0
  307. package/dist/docs/interfaces/WebSocketMessage.html +6 -0
  308. package/dist/docs/interfaces/YieldOpportunity.html +8 -0
  309. package/dist/docs/interfaces/ZeroChunk.html +8 -0
  310. package/dist/docs/interfaces/ZeroCombineResult.html +3 -0
  311. package/dist/docs/media/LICENSE +21 -0
  312. package/dist/docs/media/README-1.md +778 -0
  313. package/dist/docs/media/README-2.md +1050 -0
  314. package/dist/docs/media/README-3.md +1522 -0
  315. package/dist/docs/media/README-4.md +869 -0
  316. package/dist/docs/media/README-5.md +857 -0
  317. package/dist/docs/media/README-6.md +727 -0
  318. package/dist/docs/media/README.md +766 -0
  319. package/dist/docs/modules.html +168 -0
  320. package/dist/docs/types/BlockhashWithExpiryBlockHeight.html +1 -0
  321. package/dist/docs/types/Commitment.html +3 -0
  322. package/dist/docs/types/RiskTolerance.html +1 -0
  323. package/dist/docs/types/SimulatedTransactionResponse.html +1 -0
  324. package/dist/esm/advanced/circuit-breaker.d.ts +111 -0
  325. package/dist/esm/advanced/circuit-breaker.d.ts.map +1 -0
  326. package/dist/esm/advanced/circuit-breaker.js +274 -0
  327. package/dist/esm/advanced/circuit-breaker.js.map +1 -0
  328. package/dist/esm/advanced/index.d.ts +8 -0
  329. package/dist/esm/advanced/index.d.ts.map +1 -0
  330. package/dist/esm/advanced/index.js +7 -0
  331. package/dist/esm/advanced/index.js.map +1 -0
  332. package/dist/esm/advanced/load-balancer.d.ts +114 -0
  333. package/dist/esm/advanced/load-balancer.d.ts.map +1 -0
  334. package/dist/esm/advanced/load-balancer.js +350 -0
  335. package/dist/esm/advanced/load-balancer.js.map +1 -0
  336. package/dist/esm/advanced/smart-caching.d.ts +113 -0
  337. package/dist/esm/advanced/smart-caching.d.ts.map +1 -0
  338. package/dist/esm/advanced/smart-caching.js +457 -0
  339. package/dist/esm/advanced/smart-caching.js.map +1 -0
  340. package/dist/esm/advanced/types.d.ts +228 -0
  341. package/dist/esm/advanced/types.d.ts.map +1 -0
  342. package/dist/esm/advanced/types.js +6 -0
  343. package/dist/esm/advanced/types.js.map +1 -0
  344. package/dist/esm/ai/index.d.ts +15 -0
  345. package/dist/esm/ai/index.d.ts.map +1 -0
  346. package/dist/esm/ai/index.js +14 -0
  347. package/dist/esm/ai/index.js.map +1 -0
  348. package/dist/esm/ai/merkle-operation.d.ts +245 -0
  349. package/dist/esm/ai/merkle-operation.d.ts.map +1 -0
  350. package/dist/esm/ai/merkle-operation.js +485 -0
  351. package/dist/esm/ai/merkle-operation.js.map +1 -0
  352. package/dist/esm/ai/pda-manager.d.ts +134 -0
  353. package/dist/esm/ai/pda-manager.d.ts.map +1 -0
  354. package/dist/esm/ai/pda-manager.js +213 -0
  355. package/dist/esm/ai/pda-manager.js.map +1 -0
  356. package/dist/esm/ai/types.ai.d.ts +172 -0
  357. package/dist/esm/ai/types.ai.d.ts.map +1 -0
  358. package/dist/esm/ai/types.ai.js +13 -0
  359. package/dist/esm/ai/types.ai.js.map +1 -0
  360. package/dist/esm/ai/zero-combine-fetcher.d.ts +171 -0
  361. package/dist/esm/ai/zero-combine-fetcher.d.ts.map +1 -0
  362. package/dist/esm/ai/zero-combine-fetcher.js +408 -0
  363. package/dist/esm/ai/zero-combine-fetcher.js.map +1 -0
  364. package/dist/esm/client.d.ts +83 -0
  365. package/dist/esm/client.d.ts.map +1 -0
  366. package/dist/esm/client.js +283 -0
  367. package/dist/esm/client.js.map +1 -0
  368. package/dist/esm/defi/advanced-features.d.ts +207 -0
  369. package/dist/esm/defi/advanced-features.d.ts.map +1 -0
  370. package/dist/esm/defi/advanced-features.js +374 -0
  371. package/dist/esm/defi/advanced-features.js.map +1 -0
  372. package/dist/esm/defi/index.d.ts +29 -0
  373. package/dist/esm/defi/index.d.ts.map +1 -0
  374. package/dist/esm/defi/index.js +37 -0
  375. package/dist/esm/defi/index.js.map +1 -0
  376. package/dist/esm/defi/jito.d.ts +118 -0
  377. package/dist/esm/defi/jito.d.ts.map +1 -0
  378. package/dist/esm/defi/jito.js +287 -0
  379. package/dist/esm/defi/jito.js.map +1 -0
  380. package/dist/esm/defi/jupiter.d.ts +143 -0
  381. package/dist/esm/defi/jupiter.d.ts.map +1 -0
  382. package/dist/esm/defi/jupiter.js +215 -0
  383. package/dist/esm/defi/jupiter.js.map +1 -0
  384. package/dist/esm/defi/price-feed.d.ts +63 -0
  385. package/dist/esm/defi/price-feed.d.ts.map +1 -0
  386. package/dist/esm/defi/price-feed.js +149 -0
  387. package/dist/esm/defi/price-feed.js.map +1 -0
  388. package/dist/esm/defi/token-data.d.ts +83 -0
  389. package/dist/esm/defi/token-data.d.ts.map +1 -0
  390. package/dist/esm/defi/token-data.js +201 -0
  391. package/dist/esm/defi/token-data.js.map +1 -0
  392. package/dist/esm/defi/unstable-features.d.ts +207 -0
  393. package/dist/esm/defi/unstable-features.d.ts.map +1 -0
  394. package/dist/esm/defi/unstable-features.js +374 -0
  395. package/dist/esm/defi/unstable-features.js.map +1 -0
  396. package/dist/esm/defi/utils.d.ts +265 -0
  397. package/dist/esm/defi/utils.d.ts.map +1 -0
  398. package/dist/esm/defi/utils.js +582 -0
  399. package/dist/esm/defi/utils.js.map +1 -0
  400. package/dist/esm/index.d.ts +31 -0
  401. package/dist/esm/index.d.ts.map +1 -0
  402. package/dist/esm/index.js +47 -0
  403. package/dist/esm/index.js.map +1 -0
  404. package/dist/esm/methods/solana-rpc.d.ts +362 -0
  405. package/dist/esm/methods/solana-rpc.d.ts.map +1 -0
  406. package/dist/esm/methods/solana-rpc.js +532 -0
  407. package/dist/esm/methods/solana-rpc.js.map +1 -0
  408. package/dist/esm/nft/advanced-features.d.ts +205 -0
  409. package/dist/esm/nft/advanced-features.d.ts.map +1 -0
  410. package/dist/esm/nft/advanced-features.js +489 -0
  411. package/dist/esm/nft/advanced-features.js.map +1 -0
  412. package/dist/esm/nft/clients/index.d.ts +8 -0
  413. package/dist/esm/nft/clients/index.d.ts.map +1 -0
  414. package/dist/esm/nft/clients/index.js +8 -0
  415. package/dist/esm/nft/clients/index.js.map +1 -0
  416. package/dist/esm/nft/clients/magic-eden-client.d.ts +101 -0
  417. package/dist/esm/nft/clients/magic-eden-client.d.ts.map +1 -0
  418. package/dist/esm/nft/clients/magic-eden-client.js +259 -0
  419. package/dist/esm/nft/clients/magic-eden-client.js.map +1 -0
  420. package/dist/esm/nft/clients/metaplex-onchain-client.d.ts +154 -0
  421. package/dist/esm/nft/clients/metaplex-onchain-client.d.ts.map +1 -0
  422. package/dist/esm/nft/clients/metaplex-onchain-client.js +404 -0
  423. package/dist/esm/nft/clients/metaplex-onchain-client.js.map +1 -0
  424. package/dist/esm/nft/clients/tensor-client.d.ts +79 -0
  425. package/dist/esm/nft/clients/tensor-client.d.ts.map +1 -0
  426. package/dist/esm/nft/clients/tensor-client.js +218 -0
  427. package/dist/esm/nft/clients/tensor-client.js.map +1 -0
  428. package/dist/esm/nft/index.d.ts +13 -0
  429. package/dist/esm/nft/index.d.ts.map +1 -0
  430. package/dist/esm/nft/index.js +15 -0
  431. package/dist/esm/nft/index.js.map +1 -0
  432. package/dist/esm/nft/types.nft.d.ts +342 -0
  433. package/dist/esm/nft/types.nft.d.ts.map +1 -0
  434. package/dist/esm/nft/types.nft.js +2 -0
  435. package/dist/esm/nft/types.nft.js.map +1 -0
  436. package/dist/esm/nft/utils.d.ts +46 -0
  437. package/dist/esm/nft/utils.d.ts.map +1 -0
  438. package/dist/esm/nft/utils.js +276 -0
  439. package/dist/esm/nft/utils.js.map +1 -0
  440. package/dist/esm/types.d.ts +525 -0
  441. package/dist/esm/types.d.ts.map +1 -0
  442. package/dist/esm/types.js +178 -0
  443. package/dist/esm/types.js.map +1 -0
  444. package/dist/esm/utils/constant.d.ts +8 -0
  445. package/dist/esm/utils/constant.d.ts.map +1 -0
  446. package/dist/esm/utils/constant.js +8 -0
  447. package/dist/esm/utils/constant.js.map +1 -0
  448. package/dist/esm/utils/helpers.d.ts +92 -0
  449. package/dist/esm/utils/helpers.d.ts.map +1 -0
  450. package/dist/esm/utils/helpers.js +243 -0
  451. package/dist/esm/utils/helpers.js.map +1 -0
  452. package/dist/esm/websocket/client.d.ts +182 -0
  453. package/dist/esm/websocket/client.d.ts.map +1 -0
  454. package/dist/esm/websocket/client.js +458 -0
  455. package/dist/esm/websocket/client.js.map +1 -0
  456. package/dist/esm/websocket/index.d.ts +6 -0
  457. package/dist/esm/websocket/index.d.ts.map +1 -0
  458. package/dist/esm/websocket/index.js +5 -0
  459. package/dist/esm/websocket/index.js.map +1 -0
  460. package/package.json +160 -0
@@ -0,0 +1,727 @@
1
+ # Utils Module
2
+
3
+ Utility functions, constants, and helper methods for Synapse Client SDK.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Overview](#overview)
8
+ - [Components](#components)
9
+ - [Constants](#constants)
10
+ - [Helper Functions](#helper-functions)
11
+ - [Validation](#validation)
12
+ - [Performance Monitoring](#performance-monitoring)
13
+ - [Diagnostics](#diagnostics)
14
+ - [Best Practices](#best-practices)
15
+ - [API Reference](#api-reference)
16
+
17
+ ---
18
+
19
+ ## Overview
20
+
21
+ The Utils module provides essential utility functions and constants used throughout the Synapse Client SDK. It includes validation helpers, performance monitoring tools, diagnostics, and common constants.
22
+
23
+ ```
24
+ ┌─────────────────────────────────────────────────────────────────┐
25
+ │ Utils Module │
26
+ ├─────────────────────────────────────────────────────────────────┤
27
+ │ │
28
+ │ ┌────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
29
+ │ │ Constants │ │ Helpers │ │ Validation │ │
30
+ │ │ (URLs, IDs) │ │ (Formatting) │ │ (Address, Key) │ │
31
+ │ └────────────────┘ └─────────────────┘ └─────────────────┘ │
32
+ │ │
33
+ │ ┌────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
34
+ │ │ Performance │ │ Diagnostics │ │ Rate Limiting │ │
35
+ │ │ Monitoring │ │ (Health) │ │ (Info) │ │
36
+ │ └────────────────┘ └─────────────────┘ └─────────────────┘ │
37
+ │ │
38
+ └─────────────────────────────────────────────────────────────────┘
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Components
44
+
45
+ ### 1. Constants
46
+
47
+ Core configuration values and endpoints.
48
+
49
+ ### 2. Helper Functions
50
+
51
+ Common utility functions for formatting and conversion.
52
+
53
+ ### 3. Validation
54
+
55
+ Address and API key validation methods.
56
+
57
+ ### 4. Performance Monitoring
58
+
59
+ Real-time performance monitoring tools.
60
+
61
+ ### 5. Diagnostics
62
+
63
+ System health checks and gateway diagnostics.
64
+
65
+ ---
66
+
67
+ ## Constants
68
+
69
+ ### SynapseConstants
70
+
71
+ ```typescript
72
+ import { SynapseConstants } from '@synapse/client-sdk/utils';
73
+
74
+ // RPC endpoints
75
+ console.log('Base URL:', SynapseConstants.BASE_URL);
76
+ console.log('WebSocket URL:', SynapseConstants.WEBSOCKET_URL);
77
+ console.log('Server URL:', SynapseConstants.SERVER_BASE_URL);
78
+
79
+ // Timeouts
80
+ console.log('Default timeout:', SynapseConstants.DEFAULT_TIMEOUT);
81
+ console.log('WebSocket ping interval:', SynapseConstants.WS_PING_INTERVAL);
82
+
83
+ // Retry configuration
84
+ console.log('Max retries:', SynapseConstants.MAX_RETRIES);
85
+ console.log('Retry delay:', SynapseConstants.RETRY_DELAY);
86
+
87
+ // Cache configuration
88
+ console.log('Cache TTL:', SynapseConstants.CACHE_TTL);
89
+ console.log('Max cache size:', SynapseConstants.MAX_CACHE_SIZE);
90
+
91
+ // Program IDs
92
+ console.log('System Program:', SynapseConstants.SYSTEM_PROGRAM_ID);
93
+ console.log('Token Program:', SynapseConstants.TOKEN_PROGRAM_ID);
94
+ console.log('Associated Token Program:', SynapseConstants.ASSOCIATED_TOKEN_PROGRAM_ID);
95
+ ```
96
+
97
+ ### Available Constants
98
+
99
+ | Constant | Value | Description |
100
+ |----------|-------|-------------|
101
+ | `BASE_URL` | `string` | Default RPC endpoint |
102
+ | `WEBSOCKET_URL` | `string` | WebSocket endpoint |
103
+ | `SERVER_BASE_URL` | `string` | Server API endpoint |
104
+ | `DEFAULT_TIMEOUT` | `30000` | Default request timeout (ms) |
105
+ | `WS_PING_INTERVAL` | `30000` | WebSocket ping interval (ms) |
106
+ | `MAX_RETRIES` | `3` | Maximum retry attempts |
107
+ | `RETRY_DELAY` | `1000` | Retry delay (ms) |
108
+ | `CACHE_TTL` | `60000` | Cache time-to-live (ms) |
109
+ | `MAX_CACHE_SIZE` | `10000` | Maximum cache entries |
110
+ | `SYSTEM_PROGRAM_ID` | `11111...` | Solana System Program |
111
+ | `TOKEN_PROGRAM_ID` | `Token...` | SPL Token Program |
112
+ | `ASSOCIATED_TOKEN_PROGRAM_ID` | `ATokenG...` | Associated Token Program |
113
+
114
+ ---
115
+
116
+ ## Helper Functions
117
+
118
+ ### SynapseUtils
119
+
120
+ ```typescript
121
+ import { SynapseUtils } from '@synapse/client-sdk/utils';
122
+
123
+ // Format lamports to SOL
124
+ const sol = SynapseUtils.lamportsToSol(1_000_000_000);
125
+ console.log('Amount:', sol, 'SOL'); // 1 SOL
126
+
127
+ // Parse SOL to lamports
128
+ const lamports = SynapseUtils.solToLamports(1.5);
129
+ console.log('Lamports:', lamports); // 1500000000
130
+
131
+ // Validate Solana address
132
+ const isValid = SynapseUtils.isValidSolanaAddress(
133
+ 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v'
134
+ );
135
+ console.log('Valid address:', isValid); // true
136
+
137
+ // Shorten signature for display
138
+ const shortSig = SynapseUtils.shortenSignature(
139
+ '5j7s6NyAj9M8q2CqYv...',
140
+ 8
141
+ );
142
+ console.log('Short signature:', shortSig);
143
+
144
+ // Format timestamp
145
+ const formatted = SynapseUtils.formatTimestamp(Date.now());
146
+ console.log('Timestamp:', formatted); // "2024-01-15 14:30:25"
147
+
148
+ // Calculate transaction fee
149
+ const fee = SynapseUtils.calculateFee(signatureCount, 5000);
150
+ console.log('Fee:', fee, 'lamports');
151
+ ```
152
+
153
+ ### Formatting Methods
154
+
155
+ | Method | Signature | Description |
156
+ |--------|-----------|-------------|
157
+ | `lamportsToSol` | `(lamports: number) => number` | Convert lamports to SOL |
158
+ | `solToLamports` | `(sol: number) => number` | Convert SOL to lamports |
159
+ | `shortenAddress` | `(address: string, chars?: number) => string` | Shorten address for display |
160
+ | `shortenSignature` | `(sig: string, chars?: number) => string` | Shorten signature |
161
+ | `formatTimestamp` | `(timestamp: number) => string` | Format Unix timestamp |
162
+ | `formatDuration` | `(ms: number) => string` | Format duration (e.g., "2h 15m") |
163
+ | `formatBytes` | `(bytes: number) => string` | Format bytes (e.g., "1.5 MB") |
164
+ | `calculateFee` | `(signatures: number, lamportsPerSignature: number) => number` | Calculate tx fee |
165
+
166
+ ---
167
+
168
+ ## Validation
169
+
170
+ ### Address Validation
171
+
172
+ ```typescript
173
+ import { SynapseUtils } from '@synapse/client-sdk/utils';
174
+
175
+ // Validate Solana address
176
+ const isValidAddress = SynapseUtils.isValidSolanaAddress(address);
177
+ if (!isValidAddress) {
178
+ throw new Error('Invalid Solana address');
179
+ }
180
+
181
+ // Validate multiple addresses
182
+ const addresses = ['addr1', 'addr2', 'addr3'];
183
+ const validAddresses = addresses.filter(addr =>
184
+ SynapseUtils.isValidSolanaAddress(addr)
185
+ );
186
+
187
+ console.log('Valid addresses:', validAddresses.length);
188
+ ```
189
+
190
+ ### API Key Validation
191
+
192
+ ```typescript
193
+ import { SynapseUtils } from '@synapse/client-sdk/utils';
194
+
195
+ const utils = new SynapseUtils(client);
196
+
197
+ // Validate API key format and authentication
198
+ const isValidKey = await utils.isValidApiKey(apiKey);
199
+ if (!isValidKey) {
200
+ throw new Error('Invalid or expired API key');
201
+ }
202
+
203
+ console.log('API key valid:', isValidKey);
204
+ ```
205
+
206
+ ### Validation Rules
207
+
208
+ | Validation | Rules | Example |
209
+ |-----------|-------|---------|
210
+ | **Solana Address** | 32-44 chars, Base58 | `EPjFWdd5...` |
211
+ | **API Key** | Server-side verification | `sk_live_...` |
212
+ | **Public Key** | 44 chars, valid Base58 | `TokenkegQf...` |
213
+ | **Signature** | 88 chars, Base58 | `5j7s6NyAj...` |
214
+
215
+ ---
216
+
217
+ ## Performance Monitoring
218
+
219
+ ### Real-Time Monitoring
220
+
221
+ ```typescript
222
+ import { SynapseClient } from '@synapse/client-sdk';
223
+ import { SynapseUtils } from '@synapse/client-sdk/utils';
224
+
225
+ const client = new SynapseClient({ /* config */ });
226
+ const utils = new SynapseUtils(client);
227
+
228
+ // Monitor performance for 60 seconds
229
+ await utils.monitorPerformance(60000);
230
+
231
+ // Output:
232
+ // 🔍 Starting performance monitoring...
233
+ // [5s] RPS: 120, Latency: 45ms, Errors: 0
234
+ // [10s] RPS: 125, Latency: 42ms, Errors: 0
235
+ // [15s] RPS: 130, Latency: 40ms, Errors: 1
236
+ // ...
237
+ // ✅ Performance monitoring completed
238
+ ```
239
+
240
+ ### Stress Testing
241
+
242
+ ```typescript
243
+ // Run stress test
244
+ const results = await utils.runStressTest({
245
+ requests: 1000,
246
+ concurrency: 50,
247
+ method: 'getBalance',
248
+ params: ['YourAddressHere'],
249
+ });
250
+
251
+ console.log('Stress Test Results:');
252
+ console.log(' Total requests:', results.totalRequests);
253
+ console.log(' Successful:', results.successfulRequests);
254
+ console.log(' Average latency:', results.averageLatency, 'ms');
255
+ console.log(' RPS:', results.requestsPerSecond);
256
+ console.log(' Error rate:', results.errorRate, '%');
257
+
258
+ // Example output:
259
+ // 📈 Starting stress test: 1000 requests, 50 concurrent
260
+ // 📈 Progress: 10%
261
+ // 📈 Progress: 20%
262
+ // ...
263
+ // >> Stress Test Results:
264
+ // Successful: 995/1000 (99.5%)
265
+ // RPS: 250
266
+ // Avg Latency: 42ms
267
+ // Total Time: 4000ms
268
+ ```
269
+
270
+ ### Stress Test Configuration
271
+
272
+ | Option | Type | Default | Description |
273
+ |--------|------|---------|-------------|
274
+ | `requests` | `number` | Required | Total number of requests |
275
+ | `concurrency` | `number` | Required | Concurrent requests |
276
+ | `method` | `string` | `'getSlot'` | RPC method to test |
277
+ | `params` | `any[]` | `[]` | Method parameters |
278
+
279
+ ---
280
+
281
+ ## Diagnostics
282
+
283
+ ### Gateway Health Check
284
+
285
+ ```typescript
286
+ // Run diagnostics
287
+ const diagnostics = await utils.diagnostics();
288
+
289
+ console.log('Gateway Health:', diagnostics.gatewayHealth ? '✅' : '❌');
290
+ console.log('Gateway Version:', diagnostics.performance.version);
291
+ console.log('Uptime:', diagnostics.performance.uptime);
292
+ console.log('Memory:', diagnostics.performance.memory);
293
+
294
+ console.log('Upstreams:');
295
+ diagnostics.upstreams.forEach(upstream => {
296
+ console.log(` ${upstream.url}: ${upstream.status}`);
297
+ console.log(` Latency: ${upstream.latency}ms`);
298
+ console.log(` Success rate: ${upstream.successRate}%`);
299
+ });
300
+
301
+ console.log('Client Stats:');
302
+ console.log(' Requests:', diagnostics.clientStats.requestCount);
303
+ console.log(' Errors:', diagnostics.clientStats.errorCount);
304
+ console.log(' Avg latency:', diagnostics.clientStats.averageLatency);
305
+ ```
306
+
307
+ ### Rate Limit Information
308
+
309
+ ```typescript
310
+ // Get rate limit info
311
+ const rateLimit = await utils.getRateLimitInfo();
312
+
313
+ if (rateLimit) {
314
+ console.log('Plan:', rateLimit.plan);
315
+ console.log('Remaining requests:', rateLimit.remaining);
316
+ console.log('Reset time:', new Date(rateLimit.resetTime));
317
+
318
+ // Calculate time until reset
319
+ const msUntilReset = rateLimit.resetTime - Date.now();
320
+ console.log('Reset in:', Math.floor(msUntilReset / 1000 / 60), 'minutes');
321
+
322
+ // Warn if approaching limit
323
+ if (rateLimit.remaining < 100) {
324
+ console.warn('⚠️ Approaching rate limit!');
325
+ }
326
+ }
327
+ ```
328
+
329
+ ---
330
+
331
+ ## Best Practices
332
+
333
+ ### 1. Use Constants
334
+
335
+ ```typescript
336
+ // ✅ Recommended: Use constants
337
+ import { SynapseConstants } from '@synapse/client-sdk/utils';
338
+
339
+ const client = new SynapseClient({
340
+ endpoint: SynapseConstants.BASE_URL,
341
+ timeout: SynapseConstants.DEFAULT_TIMEOUT,
342
+ });
343
+
344
+ // ❌ Not recommended: Hardcode values
345
+ const client = new SynapseClient({
346
+ endpoint: 'https://...',
347
+ timeout: 30000,
348
+ });
349
+ ```
350
+
351
+ ### 2. Validate Inputs
352
+
353
+ ```typescript
354
+ // ✅ Recommended: Validate before using
355
+ import { SynapseUtils } from '@synapse/client-sdk/utils';
356
+
357
+ function getBalance(address: string) {
358
+ if (!SynapseUtils.isValidSolanaAddress(address)) {
359
+ throw new Error('Invalid address');
360
+ }
361
+ return client.call('getBalance', [address]);
362
+ }
363
+
364
+ // ❌ Not recommended: Skip validation
365
+ function getBalance(address: string) {
366
+ return client.call('getBalance', [address]); // May fail
367
+ }
368
+ ```
369
+
370
+ ### 3. Monitor Performance
371
+
372
+ ```typescript
373
+ // ✅ Recommended: Regular monitoring
374
+ setInterval(async () => {
375
+ const stats = client.getStats();
376
+ if (stats.averageLatency > 1000) {
377
+ console.warn('High latency detected');
378
+ }
379
+ }, 60000);
380
+
381
+ // ❌ Not recommended: No monitoring
382
+ // Issues go unnoticed
383
+ ```
384
+
385
+ ### 4. Use Utilities for Formatting
386
+
387
+ ```typescript
388
+ // ✅ Recommended: Use utility functions
389
+ const formatted = SynapseUtils.lamportsToSol(balance);
390
+ console.log(`Balance: ${formatted} SOL`);
391
+
392
+ // ❌ Not recommended: Manual calculation
393
+ const formatted = balance / 1000000000; // Magic number
394
+ console.log(`Balance: ${formatted} SOL`);
395
+ ```
396
+
397
+ ---
398
+
399
+ ## API Reference
400
+
401
+ ### SynapseConstants
402
+
403
+ #### Properties
404
+
405
+ ```typescript
406
+ BASE_URL: string
407
+ WEBSOCKET_URL: string
408
+ SERVER_BASE_URL: string
409
+ DEFAULT_TIMEOUT: number
410
+ WS_PING_INTERVAL: number
411
+ MAX_RETRIES: number
412
+ RETRY_DELAY: number
413
+ CACHE_TTL: number
414
+ MAX_CACHE_SIZE: number
415
+ SYSTEM_PROGRAM_ID: string
416
+ TOKEN_PROGRAM_ID: string
417
+ ASSOCIATED_TOKEN_PROGRAM_ID: string
418
+ ```
419
+
420
+ ---
421
+
422
+ ### SynapseUtils
423
+
424
+ #### Constructor
425
+
426
+ ```typescript
427
+ constructor(client: SynapseClient)
428
+ ```
429
+
430
+ Creates a new utils instance.
431
+
432
+ ---
433
+
434
+ #### Static Methods
435
+
436
+ ##### isValidSolanaAddress()
437
+
438
+ ```typescript
439
+ static isValidSolanaAddress(address: string): boolean
440
+ ```
441
+
442
+ Validates Solana address format.
443
+
444
+ **Example:**
445
+ ```typescript
446
+ const isValid = SynapseUtils.isValidSolanaAddress('EPjFWdd5...');
447
+ ```
448
+
449
+ ---
450
+
451
+ ##### lamportsToSol()
452
+
453
+ ```typescript
454
+ static lamportsToSol(lamports: number): number
455
+ ```
456
+
457
+ Converts lamports to SOL.
458
+
459
+ **Example:**
460
+ ```typescript
461
+ const sol = SynapseUtils.lamportsToSol(1_000_000_000); // 1
462
+ ```
463
+
464
+ ---
465
+
466
+ ##### solToLamports()
467
+
468
+ ```typescript
469
+ static solToLamports(sol: number): number
470
+ ```
471
+
472
+ Converts SOL to lamports.
473
+
474
+ **Example:**
475
+ ```typescript
476
+ const lamports = SynapseUtils.solToLamports(1.5); // 1500000000
477
+ ```
478
+
479
+ ---
480
+
481
+ ##### shortenAddress()
482
+
483
+ ```typescript
484
+ static shortenAddress(address: string, chars?: number): string
485
+ ```
486
+
487
+ Shortens address for display.
488
+
489
+ **Example:**
490
+ ```typescript
491
+ const short = SynapseUtils.shortenAddress('EPjFWdd5...', 4);
492
+ // "EPjF...t1v"
493
+ ```
494
+
495
+ ---
496
+
497
+ ##### formatTimestamp()
498
+
499
+ ```typescript
500
+ static formatTimestamp(timestamp: number): string
501
+ ```
502
+
503
+ Formats Unix timestamp to readable string.
504
+
505
+ **Example:**
506
+ ```typescript
507
+ const formatted = SynapseUtils.formatTimestamp(Date.now());
508
+ // "2024-01-15 14:30:25"
509
+ ```
510
+
511
+ ---
512
+
513
+ #### Instance Methods
514
+
515
+ ##### isValidApiKey()
516
+
517
+ ```typescript
518
+ async isValidApiKey(apiKey: string): Promise<boolean>
519
+ ```
520
+
521
+ Validates API key with server.
522
+
523
+ **Example:**
524
+ ```typescript
525
+ const isValid = await utils.isValidApiKey('sk_live_...');
526
+ ```
527
+
528
+ ---
529
+
530
+ ##### monitorPerformance()
531
+
532
+ ```typescript
533
+ async monitorPerformance(duration?: number): Promise<void>
534
+ ```
535
+
536
+ Monitors client performance for specified duration.
537
+
538
+ **Parameters:**
539
+ - `duration`: Monitoring duration in milliseconds (default: 60000)
540
+
541
+ **Example:**
542
+ ```typescript
543
+ await utils.monitorPerformance(60000); // 1 minute
544
+ ```
545
+
546
+ ---
547
+
548
+ ##### runStressTest()
549
+
550
+ ```typescript
551
+ async runStressTest(options: {
552
+ requests: number;
553
+ concurrency: number;
554
+ method?: string;
555
+ params?: any[];
556
+ }): Promise<{
557
+ totalRequests: number;
558
+ successfulRequests: number;
559
+ averageLatency: number;
560
+ requestsPerSecond: number;
561
+ errorRate: number;
562
+ }>
563
+ ```
564
+
565
+ Runs stress test on client.
566
+
567
+ **Example:**
568
+ ```typescript
569
+ const results = await utils.runStressTest({
570
+ requests: 1000,
571
+ concurrency: 50,
572
+ });
573
+ ```
574
+
575
+ ---
576
+
577
+ ##### diagnostics()
578
+
579
+ ```typescript
580
+ async diagnostics(): Promise<{
581
+ gatewayHealth: boolean;
582
+ upstreams: any[];
583
+ performance: any;
584
+ clientStats: any;
585
+ }>
586
+ ```
587
+
588
+ Gets gateway diagnostics and health.
589
+
590
+ **Example:**
591
+ ```typescript
592
+ const diag = await utils.diagnostics();
593
+ console.log('Health:', diag.gatewayHealth);
594
+ ```
595
+
596
+ ---
597
+
598
+ ##### getRateLimitInfo()
599
+
600
+ ```typescript
601
+ async getRateLimitInfo(): Promise<{
602
+ plan: string;
603
+ remaining: number;
604
+ resetTime: number;
605
+ } | null>
606
+ ```
607
+
608
+ Gets rate limit information.
609
+
610
+ **Example:**
611
+ ```typescript
612
+ const info = await utils.getRateLimitInfo();
613
+ if (info) {
614
+ console.log('Remaining:', info.remaining);
615
+ }
616
+ ```
617
+
618
+ ---
619
+
620
+ ## Common Use Cases
621
+
622
+ ### 1. Display Balance
623
+
624
+ ```typescript
625
+ const balance = await client.call('getBalance', [address]);
626
+ const formatted = SynapseUtils.lamportsToSol(balance);
627
+ console.log(`Balance: ${formatted.toFixed(4)} SOL`);
628
+ ```
629
+
630
+ ### 2. Validate Input
631
+
632
+ ```typescript
633
+ if (!SynapseUtils.isValidSolanaAddress(address)) {
634
+ throw new Error('Invalid address format');
635
+ }
636
+ ```
637
+
638
+ ### 3. Monitor Health
639
+
640
+ ```typescript
641
+ const diagnostics = await utils.diagnostics();
642
+ if (!diagnostics.gatewayHealth) {
643
+ console.error('Gateway unhealthy!');
644
+ // Switch to backup endpoint
645
+ }
646
+ ```
647
+
648
+ ### 4. Check Rate Limits
649
+
650
+ ```typescript
651
+ const rateLimit = await utils.getRateLimitInfo();
652
+ if (rateLimit && rateLimit.remaining < 100) {
653
+ console.warn('Approaching rate limit');
654
+ // Throttle requests
655
+ }
656
+ ```
657
+
658
+ ### 5. Stress Test Before Production
659
+
660
+ ```typescript
661
+ const results = await utils.runStressTest({
662
+ requests: 10000,
663
+ concurrency: 100,
664
+ });
665
+
666
+ if (results.errorRate > 1) {
667
+ console.error('High error rate in stress test');
668
+ }
669
+
670
+ if (results.averageLatency > 100) {
671
+ console.warn('High latency detected');
672
+ }
673
+ ```
674
+
675
+ ---
676
+
677
+ ## Performance
678
+
679
+ | Operation | Latency | Notes |
680
+ |-----------|---------|-------|
681
+ | Address Validation | <1ms | Regex check |
682
+ | Format Conversion | <1ms | Math operation |
683
+ | API Key Validation | 50-200ms | Server roundtrip |
684
+ | Diagnostics | 100-500ms | Multiple checks |
685
+ | Stress Test | Varies | Depends on config |
686
+
687
+ ---
688
+
689
+ ## Troubleshooting
690
+
691
+ ### Issue: Invalid address validation fails
692
+
693
+ **Solution:**
694
+ ```typescript
695
+ // Ensure address is trimmed and properly formatted
696
+ const address = inputAddress.trim();
697
+ const isValid = SynapseUtils.isValidSolanaAddress(address);
698
+ ```
699
+
700
+ ### Issue: Rate limit info returns null
701
+
702
+ **Solution:**
703
+ ```typescript
704
+ // Ensure API key is provided
705
+ const client = new SynapseClient({
706
+ endpoint: SynapseConstants.BASE_URL,
707
+ apiKey: process.env.SYNAPSE_API_KEY, // Required
708
+ });
709
+ ```
710
+
711
+ ### Issue: Stress test errors
712
+
713
+ **Solution:**
714
+ ```typescript
715
+ // Reduce concurrency for slower endpoints
716
+ const results = await utils.runStressTest({
717
+ requests: 1000,
718
+ concurrency: 10, // Reduced from 50
719
+ });
720
+ ```
721
+
722
+ ---
723
+
724
+ **Utils Module** - Essential utilities for Synapse SDK
725
+
726
+ Built for developer productivity and code quality
727
+