@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,869 @@
1
+ # AI Module - OOBE Protocol
2
+
3
+ Professional AI module with OOBE Protocol implementation for advanced Solana operations including PDA management, Zero-Combine data fetching, and Merkle tree operations.
4
+
5
+ ## Table of Contents
6
+
7
+ - [Architecture](#architecture)
8
+ - [Features](#features)
9
+ - [Components](#components)
10
+ - [OOBE Protocol](#oobe-protocol)
11
+ - [Implementation](#implementation)
12
+ - [Best Practices](#best-practices)
13
+ - [API Reference](#api-reference)
14
+
15
+ ---
16
+
17
+ ## Architecture
18
+
19
+ ```
20
+ ┌─────────────────────────────────────────────────────────────────┐
21
+ │ AI Module (OOBE) │
22
+ ├─────────────────────────────────────────────────────────────────┤
23
+ │ │
24
+ │ ┌────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
25
+ │ │ PDA Manager │ │ Zero-Combine │ │ Merkle │ │
26
+ │ │ (Address │→ │ Fetcher │→ │ Operations │ │
27
+ │ │ Derivation) │ │ (Data Reconst.) │ │ (Proof Gen.) │ │
28
+ │ └────────────────┘ └─────────────────┘ └─────────────────┘ │
29
+ │ ↓ ↓ ↓ │
30
+ │ ┌────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │
31
+ │ │ On-Chain │ │ Batch Proof │ │ Transaction │ │
32
+ │ │ Storage │ │ Verification │ │ Signing │ │
33
+ │ │ (Solana) │ │ (Multi-PDA) │ │ (Optional) │ │
34
+ │ └────────────────┘ └─────────────────┘ └─────────────────┘ │
35
+ │ │
36
+ ├─────────────────────────────────────────────────────────────────┤
37
+ │ OOBE Protocol Layer │
38
+ └─────────────────────────────────────────────────────────────────┘
39
+ ```
40
+
41
+ ---
42
+
43
+ ## Features
44
+
45
+ ### Core Capabilities
46
+
47
+ | Feature | Description | Status |
48
+ |---------|-------------|--------|
49
+ | **PDA Management** | Program Derived Address generation and verification | Production |
50
+ | **Zero-Combine** | Large dataset reconstruction from on-chain chunks | Production |
51
+ | **Merkle Operations** | Tree generation, proof creation, verification | Production |
52
+ | **Batch Operations** | Multi-wallet and multi-PDA batch processing | Production |
53
+ | **Transaction Signing** | Optional transaction construction and signing | Production |
54
+ | **OOBE Protocol** | Full OOBE Protocol implementation | Production |
55
+ | **Retry Logic** | Automatic retry with exponential backoff | Production |
56
+ | **Event Emission** | Progress tracking and error handling | Production |
57
+
58
+ ---
59
+
60
+ ## Components
61
+
62
+ ### 1. PDA Manager
63
+
64
+ Program Derived Address management for on-chain Merkle data storage.
65
+
66
+ ```typescript
67
+ import { SynapseClient } from '@synapse/client-sdk';
68
+ import { PDAManager } from '@synapse/client-sdk/ai';
69
+
70
+ const client = new SynapseClient({
71
+ endpoint: process.env.SYNAPSE_ENDPOINT!,
72
+ apiKey: process.env.SYNAPSE_API_KEY
73
+ });
74
+
75
+ const pdaManager = new PDAManager(client, 'walletAddress');
76
+
77
+ // Get PDAs for wallet
78
+ const pdas = pdaManager.getUserPDAs();
79
+ console.log('Leaf PDA:', pdas.leafPDA.toBase58());
80
+ console.log('Root PDA:', pdas.rootPDA.toBase58());
81
+
82
+ // Check PDA existence
83
+ const { leafExists, rootExists } = await pdaManager.checkPDAExistence(pdas);
84
+
85
+ // Batch check multiple PDAs
86
+ const accounts = await pdaManager.getBatchPDAAccountInfo([
87
+ pdas.leafPDA,
88
+ pdas.rootPDA
89
+ ]);
90
+ ```
91
+
92
+ **Features:**
93
+ - Deterministic PDA derivation
94
+ - Existence verification
95
+ - Batch account queries
96
+ - Event emission for tracking
97
+
98
+ ---
99
+
100
+ ### 2. Zero-Combine Fetcher
101
+
102
+ Large dataset reconstruction from on-chain transaction chunks.
103
+
104
+ ```typescript
105
+ import { ZeroCombineFetcher } from '@synapse/client-sdk/ai';
106
+
107
+ const fetcher = new ZeroCombineFetcher(
108
+ client,
109
+ 'walletAddress',
110
+ {
111
+ batchSize: 100,
112
+ delayMs: 2000,
113
+ maxRetries: 3,
114
+ }
115
+ );
116
+
117
+ // Fetch and reconstruct all proof records
118
+ const result = await fetcher.execute();
119
+ console.log('Proof records:', result.tools);
120
+ console.log('Merkle roots:', result.roots);
121
+
122
+ // Batch fetch for multiple wallets
123
+ const wallets = ['wallet1', 'wallet2', 'wallet3'];
124
+ const resultsMap = await fetcher.batchExecuteForWallets(wallets);
125
+
126
+ wallets.forEach(wallet => {
127
+ const result = resultsMap.get(wallet);
128
+ console.log(`${wallet}: ${result?.tools.length || 0} records`);
129
+ });
130
+ ```
131
+
132
+ **Features:**
133
+ - Automatic pagination with configurable batch size
134
+ - Chunked data reconstruction
135
+ - Multi-wallet batch processing
136
+ - Retry logic with exponential backoff
137
+ - Progress tracking via events
138
+
139
+ ---
140
+
141
+ ### 3. Merkle Operations
142
+
143
+ Complete Merkle tree operations: generation, proof creation, and verification.
144
+
145
+ #### Basic Usage (Without Signing)
146
+
147
+ ```typescript
148
+ import { MerkleOperation } from '@synapse/client-sdk/ai';
149
+
150
+ const merkle = new MerkleOperation(
151
+ client,
152
+ 'walletAddress',
153
+ {
154
+ batchSize: 50,
155
+ delayMs: 1000,
156
+ maxRetries: 3,
157
+ }
158
+ );
159
+
160
+ // Create Merkle tree
161
+ const data = ['event1', 'event2', 'event3'];
162
+ const root = merkle.createMerkleTree(data);
163
+ console.log('Merkle Root:', root);
164
+
165
+ // Generate proof
166
+ const proof = merkle.getMerkleProof('event1');
167
+ console.log('Proof:', proof);
168
+
169
+ // Verify proof
170
+ const isValid = merkle.verifyProof(
171
+ proof.leaf,
172
+ proof.proof,
173
+ proof.root
174
+ );
175
+ console.log('Valid:', isValid);
176
+
177
+ // Batch verify multiple proofs
178
+ const proofs = [
179
+ { leaf: 'hash1', proof: ['hash2'], root: 'rootHash' },
180
+ { leaf: 'hash3', proof: ['hash4'], root: 'rootHash2' },
181
+ ];
182
+ const results = merkle.batchVerifyProofs(proofs);
183
+ console.log('Verification results:', results);
184
+ ```
185
+
186
+ #### Advanced Usage (With Transaction Signing)
187
+
188
+ ```typescript
189
+ import { Connection, Keypair } from '@solana/web3.js';
190
+ import { MerkleOperation } from '@synapse/client-sdk/ai';
191
+
192
+ // Setup Connection and Keypair
193
+ const connection = new Connection('https://api.mainnet-beta.solana.com');
194
+ const signer = Keypair.fromSecretKey(/* your secret key */);
195
+
196
+ const merkle = new MerkleOperation(
197
+ client,
198
+ signer.publicKey.toBase58(),
199
+ {
200
+ batchSize: 50,
201
+ delayMs: 1000,
202
+ maxRetries: 3,
203
+ }
204
+ );
205
+
206
+ // Inscribe Merkle root on-chain
207
+ const data = ['event1', 'event2', 'event3'];
208
+ const root = merkle.createMerkleTree(data);
209
+
210
+ const txSignature = await merkle.inscribeMerkleRoot(
211
+ root,
212
+ connection,
213
+ signer
214
+ );
215
+
216
+ console.log('Transaction signature:', txSignature);
217
+ console.log('Explorer:', `https://solscan.io/tx/${txSignature}`);
218
+ ```
219
+
220
+ **Features:**
221
+ - SHA256-based Merkle tree construction
222
+ - Efficient proof generation
223
+ - Batch proof verification
224
+ - On-chain inscription (optional)
225
+ - Transaction construction and signing
226
+
227
+ ---
228
+
229
+ ## OOBE Protocol
230
+
231
+ ### Protocol Overview
232
+
233
+ OOBE (On-chain Off-chain Blockchain Encoding) Protocol is a data storage and retrieval system that:
234
+
235
+ 1. **Splits large datasets** into manageable chunks
236
+ 2. **Stores chunks** as Solana transaction memos
237
+ 3. **Derives PDAs** for organized storage
238
+ 4. **Reconstructs data** from distributed chunks
239
+ 5. **Verifies integrity** using Merkle proofs
240
+
241
+ ### Protocol Architecture
242
+
243
+ ```
244
+ ┌─────────────────────────────────────────────────────────────┐
245
+ │ OOBE Protocol Flow │
246
+ ├─────────────────────────────────────────────────────────────┤
247
+ │ │
248
+ │ 1. Data Chunking │
249
+ │ [Large Dataset] → [Chunk1, Chunk2, ..., ChunkN] │
250
+ │ │
251
+ │ 2. PDA Derivation │
252
+ │ [Wallet + Program] → [LeafPDA, RootPDA] │
253
+ │ │
254
+ │ 3. On-Chain Storage │
255
+ │ [Chunks] → [Solana Transactions with Memos] │
256
+ │ │
257
+ │ 4. Data Reconstruction │
258
+ │ [Transaction History] → [Combined Dataset] │
259
+ │ │
260
+ │ 5. Merkle Verification │
261
+ │ [Dataset + Proof] → [Verified Data] │
262
+ │ │
263
+ └─────────────────────────────────────────────────────────────┘
264
+ ```
265
+
266
+ ### Use Cases
267
+
268
+ | Use Case | Description | Benefits |
269
+ |----------|-------------|----------|
270
+ | **AI Agent Storage** | Store AI agent state and memory | Decentralized, verifiable |
271
+ | **Event Logging** | Immutable audit trail | Tamper-proof, transparent |
272
+ | **Data Provenance** | Proof of data origin | Cryptographic verification |
273
+ | **Distributed Storage** | Large dataset distribution | Scalable, resilient |
274
+
275
+ ---
276
+
277
+ ## Implementation
278
+
279
+ ### Complete Example: AI Agent State Storage
280
+
281
+ ```typescript
282
+ import { SynapseClient } from '@synapse/client-sdk';
283
+ import {
284
+ PDAManager,
285
+ ZeroCombineFetcher,
286
+ MerkleOperation
287
+ } from '@synapse/client-sdk/ai';
288
+
289
+ // Initialize client
290
+ const client = new SynapseClient({
291
+ endpoint: process.env.SYNAPSE_ENDPOINT!,
292
+ apiKey: process.env.SYNAPSE_API_KEY,
293
+ });
294
+
295
+ // 1. Derive PDAs for agent storage
296
+ const pdaManager = new PDAManager(client, 'agentWalletAddress');
297
+ const pdas = pdaManager.getUserPDAs();
298
+ console.log('Agent PDAs:', pdas);
299
+
300
+ // 2. Verify PDAs exist
301
+ const { leafExists, rootExists } = await pdaManager.checkPDAExistence(pdas);
302
+ if (!leafExists || !rootExists) {
303
+ console.log('PDAs not initialized. Creating...');
304
+ // Initialize PDAs (requires signing)
305
+ }
306
+
307
+ // 3. Fetch agent state from on-chain
308
+ const fetcher = new ZeroCombineFetcher(client, 'agentWalletAddress');
309
+ const agentState = await fetcher.execute();
310
+ console.log('Agent state loaded:', agentState.tools.length, 'records');
311
+
312
+ // 4. Create Merkle proof for verification
313
+ const merkle = new MerkleOperation(client, 'agentWalletAddress');
314
+ const events = agentState.tools.map(tool => JSON.stringify(tool));
315
+ const merkleRoot = merkle.createMerkleTree(events);
316
+
317
+ // 5. Verify specific event
318
+ const eventToVerify = events[0];
319
+ const proof = merkle.getMerkleProof(eventToVerify);
320
+ const isValid = merkle.verifyProof(proof.leaf, proof.proof, proof.root);
321
+
322
+ console.log('Event verification:', isValid ? 'VALID' : 'INVALID');
323
+ ```
324
+
325
+ ### Batch Processing Multiple Agents
326
+
327
+ ```typescript
328
+ // Batch process multiple AI agents
329
+ const agentWallets = [
330
+ 'agent1WalletAddress',
331
+ 'agent2WalletAddress',
332
+ 'agent3WalletAddress',
333
+ ];
334
+
335
+ const fetcher = new ZeroCombineFetcher(client, agentWallets[0]);
336
+ const resultsMap = await fetcher.batchExecuteForWallets(agentWallets);
337
+
338
+ agentWallets.forEach(wallet => {
339
+ const state = resultsMap.get(wallet);
340
+ if (state) {
341
+ console.log(`Agent ${wallet}:`);
342
+ console.log(` Events: ${state.tools.length}`);
343
+ console.log(` Roots: ${state.roots.length}`);
344
+ }
345
+ });
346
+ ```
347
+
348
+ ---
349
+
350
+ ## Best Practices
351
+
352
+ ### 1. PDA Management
353
+
354
+ ```typescript
355
+ // ✅ Recommended: Cache PDAs
356
+ const pdaCache = new Map<string, { leafPDA: PublicKey; rootPDA: PublicKey }>();
357
+
358
+ function getPDACached(wallet: string) {
359
+ if (pdaCache.has(wallet)) {
360
+ return pdaCache.get(wallet)!;
361
+ }
362
+
363
+ const pdaManager = new PDAManager(client, wallet);
364
+ const pdas = pdaManager.getUserPDAs();
365
+ pdaCache.set(wallet, pdas);
366
+ return pdas;
367
+ }
368
+
369
+ // ❌ Not recommended: Create new manager every time
370
+ const pdas = new PDAManager(client, wallet).getUserPDAs(); // Inefficient
371
+ ```
372
+
373
+ ### 2. Zero-Combine Fetching
374
+
375
+ ```typescript
376
+ // ✅ Recommended: Use batch operations
377
+ const results = await fetcher.batchExecuteForWallets(wallets);
378
+
379
+ // ❌ Not recommended: Sequential fetches
380
+ for (const wallet of wallets) {
381
+ const result = await new ZeroCombineFetcher(client, wallet).execute();
382
+ }
383
+ ```
384
+
385
+ ### 3. Merkle Proof Verification
386
+
387
+ ```typescript
388
+ // ✅ Recommended: Batch verify proofs
389
+ const proofs = events.map(event => merkle.getMerkleProof(event));
390
+ const results = merkle.batchVerifyProofs(proofs.map(p => ({
391
+ leaf: p.leaf,
392
+ proof: p.proof,
393
+ root: p.root,
394
+ })));
395
+
396
+ // ❌ Not recommended: Verify one by one
397
+ for (const event of events) {
398
+ const proof = merkle.getMerkleProof(event);
399
+ merkle.verifyProof(proof.leaf, proof.proof, proof.root);
400
+ }
401
+ ```
402
+
403
+ ### 4. Error Handling
404
+
405
+ ```typescript
406
+ // ✅ Recommended: Handle errors gracefully
407
+ try {
408
+ const result = await fetcher.execute();
409
+ } catch (error) {
410
+ console.error('Fetch failed:', error);
411
+ // Retry with different parameters
412
+ const result = await fetcher.execute({
413
+ batchSize: 50,
414
+ maxRetries: 5
415
+ });
416
+ }
417
+
418
+ // ❌ Not recommended: No error handling
419
+ const result = await fetcher.execute(); // May fail
420
+ ```
421
+
422
+ ### 5. Event Monitoring
423
+
424
+ ```typescript
425
+ // ✅ Recommended: Monitor progress with events
426
+ fetcher.on('fetch-progress', ({ current, total }) => {
427
+ console.log(`Progress: ${current}/${total} (${(current/total*100).toFixed(1)}%)`);
428
+ });
429
+
430
+ fetcher.on('fetch-error', (error) => {
431
+ console.error('Fetch error:', error);
432
+ // Implement recovery logic
433
+ });
434
+
435
+ fetcher.on('fetch-complete', (result) => {
436
+ console.log('Fetch completed:', result.tools.length, 'records');
437
+ });
438
+
439
+ // ❌ Not recommended: No progress tracking
440
+ const result = await fetcher.execute(); // Black box
441
+ ```
442
+
443
+ ---
444
+
445
+ ## API Reference
446
+
447
+ ### PDAManager
448
+
449
+ #### Constructor
450
+
451
+ ```typescript
452
+ constructor(client: SynapseClient, userWallet: string)
453
+ ```
454
+
455
+ Creates a new PDA Manager instance.
456
+
457
+ ---
458
+
459
+ #### getUserPDAs()
460
+
461
+ ```typescript
462
+ getUserPDAs(): { leafPDA: PublicKey; rootPDA: PublicKey }
463
+ ```
464
+
465
+ Derives PDAs for the user wallet.
466
+
467
+ **Returns:** Leaf and Root PDAs
468
+
469
+ ---
470
+
471
+ #### checkPDAExistence()
472
+
473
+ ```typescript
474
+ async checkPDAExistence(pdas: {
475
+ leafPDA: PublicKey;
476
+ rootPDA: PublicKey
477
+ }): Promise<{ leafExists: boolean; rootExists: boolean }>
478
+ ```
479
+
480
+ Checks if PDAs exist on-chain.
481
+
482
+ **Returns:** Existence status
483
+
484
+ ---
485
+
486
+ #### BatchOptionRequest {
487
+ batchSize: number;
488
+ delayMs?: number;
489
+ maxRetries?: number;
490
+ retryDelayMs?: number;
491
+ }
492
+
493
+ **interface** | Option for batch reqs
494
+ ---
495
+
496
+ #### getBatchPDAAccountInfo()
497
+
498
+ ```typescript
499
+ async getBatchPDAAccountInfo(
500
+ pdas: PublicKey[]
501
+ ): Promise<(AccountInfo | null)[]>
502
+ ```
503
+
504
+ Batch fetch account info for multiple PDAs.
505
+
506
+ **Returns:** Array of account infos
507
+
508
+ ---
509
+
510
+ ### ZeroCombineFetcher
511
+
512
+ #### Constructor
513
+
514
+ ```typescript
515
+ constructor(
516
+ client: SynapseClient,
517
+ userWallet: string,
518
+ options?: {
519
+ batchSize?: number;
520
+ delayMs?: number;
521
+ maxRetries?: number;
522
+ }
523
+ )
524
+ ```
525
+
526
+ Creates a new Zero-Combine Fetcher.
527
+
528
+ ---
529
+
530
+ #### execute()
531
+
532
+ ```typescript
533
+ async execute(): Promise<{
534
+ tools: any[];
535
+ roots: string[];
536
+ }>
537
+ ```
538
+
539
+ Fetches and reconstructs data from on-chain.
540
+
541
+ **Returns:** Reconstructed data
542
+
543
+ ---
544
+
545
+ #### batchExecuteForWallets()
546
+
547
+ ```typescript
548
+ async batchExecuteForWallets(
549
+ wallets: string[]
550
+ ): Promise<Map<string, { tools: any[]; roots: string[] }>>
551
+ ```
552
+
553
+ Batch fetch for multiple wallets.
554
+
555
+ **Returns:** Map of wallet to results
556
+
557
+ ---
558
+
559
+ ### MerkleOperation
560
+
561
+ #### Constructor
562
+
563
+ ```typescript
564
+ constructor(
565
+ client: SynapseClient,
566
+ userWallet: string,
567
+ options?: {
568
+ batchSize?: number;
569
+ delayMs?: number;
570
+ maxRetries?: number;
571
+ }
572
+ )
573
+ ```
574
+
575
+ Creates a new Merkle Operation instance.
576
+
577
+ ---
578
+
579
+ #### createMerkleTree()
580
+
581
+ ```typescript
582
+ createMerkleTree(data: string[]): string
583
+ ```
584
+
585
+ Creates Merkle tree and returns root hash.
586
+
587
+ **Returns:** Merkle root
588
+
589
+ ---
590
+
591
+ #### getMerkleProof()
592
+
593
+ ```typescript
594
+ getMerkleProof(leaf: string): {
595
+ leaf: string;
596
+ proof: string[];
597
+ root: string;
598
+ }
599
+ ```
600
+
601
+ Generates Merkle proof for a leaf.
602
+
603
+ **Returns:** Proof object
604
+
605
+ ---
606
+
607
+ #### verifyProof()
608
+
609
+ ```typescript
610
+ verifyProof(
611
+ leaf: string,
612
+ proof: string[],
613
+ root: string
614
+ ): boolean
615
+ ```
616
+
617
+ Verifies a Merkle proof.
618
+
619
+ **Returns:** Verification result
620
+
621
+ ---
622
+
623
+ #### batchVerifyProofs()
624
+
625
+ ```typescript
626
+ batchVerifyProofs(proofs: Array<{
627
+ leaf: string;
628
+ proof: string[];
629
+ root: string;
630
+ }>): boolean[]
631
+ ```
632
+
633
+ Batch verify multiple proofs.
634
+
635
+ **Returns:** Array of verification results
636
+
637
+ ---
638
+
639
+ #### inscribeMerkleRoot()
640
+
641
+ ```typescript
642
+ async inscribeMerkleRoot(
643
+ root: string,
644
+ connection: Connection,
645
+ signer: Keypair
646
+ ): Promise<string>
647
+ ```
648
+
649
+ Inscribes Merkle root on-chain.
650
+
651
+ **Parameters:**
652
+ - `root`: Merkle root hash
653
+ - `connection`: Solana connection
654
+ - `signer`: Transaction signer
655
+
656
+ **Returns:** Transaction signature
657
+
658
+ ---
659
+
660
+ ## Performance
661
+
662
+ | Operation | Complexity | Latency | Notes |
663
+ |-----------|-----------|---------|-------|
664
+ | PDA Derivation | O(1) | <1ms | Deterministic |
665
+ | PDA Existence Check | O(n) | 50-200ms | RPC call |
666
+ | Zero-Combine Fetch | O(n) | 1-10s | Depends on data size |
667
+ | Merkle Tree Creation | O(n log n) | 10-100ms | CPU-intensive |
668
+ | Merkle Proof Generation | O(log n) | <1ms | Tree traversal |
669
+ | Proof Verification | O(log n) | <1ms | Hash comparison |
670
+ | Batch Operations | O(n) | Linear | Parallel processing |
671
+
672
+ ---
673
+
674
+ ## Troubleshooting
675
+
676
+ ### Issue: PDA not found
677
+
678
+ **Solutions:**
679
+ - Verify wallet address is correct
680
+ - Check if PDAs have been initialized
681
+ - Use correct program ID
682
+
683
+ ```typescript
684
+ const { leafExists, rootExists } = await pdaManager.checkPDAExistence(pdas);
685
+ if (!leafExists) {
686
+ console.log('Leaf PDA not initialized');
687
+ }
688
+ ```
689
+
690
+ ---
691
+
692
+ ### Issue: Zero-Combine fetch timeout
693
+
694
+ **Solutions:**
695
+ - Increase `maxRetries` option
696
+ - Reduce `batchSize` for slower networks
697
+ - Increase `delayMs` between batches
698
+
699
+ ```typescript
700
+ const fetcher = new ZeroCombineFetcher(client, wallet, {
701
+ batchSize: 50, // Reduce from 100
702
+ delayMs: 3000, // Increase from 2000
703
+ maxRetries: 5, // Increase from 3
704
+ });
705
+ ```
706
+
707
+ ---
708
+
709
+ ### Issue: Merkle proof verification fails
710
+
711
+ **Solutions:**
712
+ - Verify data ordering is consistent
713
+ - Check for data corruption
714
+ - Ensure same hash algorithm
715
+
716
+ ```typescript
717
+ // Ensure consistent ordering
718
+ const sortedData = data.sort();
719
+ const root = merkle.createMerkleTree(sortedData);
720
+ ```
721
+
722
+ ---
723
+
724
+ **AI Module** - OOBE Protocol implementation for advanced Solana operations
725
+
726
+ Built for decentralized AI agent infrastructure
727
+ // Crea MerkleOperation con signing support
728
+ const merkle = new MerkleOperation(
729
+ client,
730
+ signer.publicKey.toBase58(),
731
+ { batchSize: 50 },
732
+ connection, // Connection per RPC
733
+ signer // Signer per firmare transactions
734
+ );
735
+
736
+ // Ora puoi inscrivere on-chain (transazioni firmate automaticamente)
737
+ const validationResult = {
738
+ merkleRoot: root,
739
+ merkleProof: proof.proof,
740
+ merkleLeaf: { input: 'hash1', result: 'hash2' },
741
+ merkleEvents: Buffer.from('compressed data').toString('base64'),
742
+ };
743
+
744
+ const inscription = await merkle.inscribeOnChain(validationResult);
745
+ console.log('Inscription signatures:', {
746
+ zeroChunk: inscription.zeroChunkSign,
747
+ root: inscription.signatureRoot,
748
+ });
749
+
750
+ // Batch inscribe multiple proofs
751
+ const results = await merkle.batchInscribeOnChain([
752
+ validationResult1,
753
+ validationResult2,
754
+ validationResult3,
755
+ ]);
756
+ ```
757
+
758
+ #### Uso con Wallet Adapter (Browser/React)
759
+ ```typescript
760
+ import { useConnection, useWallet } from '@solana/wallet-adapter-react';
761
+ import { MerkleOperation } from '@synapse/client-sdk/ai';
762
+
763
+ function MyComponent() {
764
+ const { connection } = useConnection();
765
+ const wallet = useWallet();
766
+
767
+ const handleInscribe = async () => {
768
+ if (!wallet.publicKey) return;
769
+
770
+ const merkle = new MerkleOperation(
771
+ client,
772
+ wallet.publicKey.toBase58(),
773
+ { batchSize: 50 }
774
+ );
775
+
776
+ // Ottieni transaction unsigned
777
+ const tx = await merkle.createUnsignedMemoTransaction(
778
+ pdaAddress,
779
+ Buffer.from('your data')
780
+ );
781
+
782
+ // Firma con wallet adapter
783
+ const signed = await wallet.signTransaction(tx);
784
+
785
+ // Invia manualmente
786
+ const signature = await connection.sendRawTransaction(signed.serialize());
787
+ await connection.confirmTransaction(signature);
788
+ };
789
+ }
790
+ ```
791
+
792
+ ## Configurazione Batch
793
+
794
+ Tutti i moduli supportano `BatchOptionRequest` per ottimizzare le performance:
795
+
796
+ ```typescript
797
+ import type { BatchOptionRequest } from '@synapse/client-sdk/ai';
798
+
799
+ const batchConfig: BatchOptionRequest = {
800
+ batchSize: 100, // Numero di richieste per batch
801
+ delayMs: 2000, // Delay tra batches (ms)
802
+ maxRetries: 3, // Tentativi massimi per richiesta fallita
803
+ retryDelayMs: 1000, // Delay tra retry (ms)
804
+ };
805
+ ```
806
+
807
+ ## Best Practices
808
+
809
+ ### 1. PDAManager
810
+ - Usa `getBatchPDAAccountInfo()` per check multipli in parallelo
811
+ - Cache i PDAs derivati per evitare ricalcoli
812
+ - Verifica sempre l'esistenza dei PDAs prima di usarli
813
+
814
+ ### 2. ZeroCombineFetcher
815
+ - Configura `batchSize` in base al rate limit dell'RPC
816
+ - Usa `delayMs` appropriati per evitare throttling
817
+ - Per multiple wallets, usa `batchExecuteForWallets()` invece di loop sequenziali
818
+
819
+ ### 3. MerkleOperation
820
+ - **Con Connection/Signer**: Transazioni firmate automaticamente, ideale per backend/script
821
+ - **Senza Connection/Signer**: Usa `createUnsignedMemoTransaction()` e firma esternamente (wallet adapter)
822
+ - **Batch Operations**: Usa `batchInscribeOnChain()` per inserire multipli proof contemporaneamente
823
+ - Configura `maxRetries` per gestire network failures
824
+ - Chunking automatico per dati > 560 bytes (limite memo transactions)
825
+
826
+ ## Compatibilità OOBE Protocol
827
+
828
+ Tutti i moduli sono compatibili con [OOBE Protocol](https://github.com/CryptoFamilyNFT/oobe-protocol):
829
+
830
+ - ✅ PDA derivation deterministico (SHA-256)
831
+ - ✅ Zero chunk pattern (128 bytes: 2 merkle leaves + signature)
832
+ - ✅ Chunked data linking via previous signatures
833
+ - ✅ Batch optimization per performance
834
+ - ✅ Memo program integration per storage on-chain
835
+
836
+ ## Esempi Completi
837
+
838
+ Vedi la cartella `/examples` per esempi completi di:
839
+ - Backend automation (con Keypair)
840
+ - Frontend integration (con wallet adapter)
841
+ - Batch processing di large datasets
842
+ - Merkle proof generation e verification
843
+ - On-chain data inscription
844
+
845
+ ## TypeScript Support
846
+
847
+ Tutti i moduli sono completamente tipizzati con TypeScript:
848
+
849
+ ```typescript
850
+ import type {
851
+ PDAConfig,
852
+ UserPDAs,
853
+ ZeroChunk,
854
+ SignatureInfo,
855
+ ProofRecord,
856
+ FetchConfig,
857
+ ZeroCombineResult,
858
+ MerkleLeaf,
859
+ MerkleProof,
860
+ MerkleValidationResult,
861
+ ChunkInfo,
862
+ InscriptionResult,
863
+ BatchOptionRequest,
864
+ } from '@synapse/client-sdk/ai';
865
+ ```
866
+
867
+ ## License
868
+
869
+ MIT