@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,522 @@
1
+ "use strict";
2
+ /**
3
+ * Merkle Operation - Synapse SDK Implementation
4
+ *
5
+ * Professional Merkle tree operations for proof generation, verification and
6
+ * on-chain inscription. Inspired by OOBE Protocol but optimized for Synapse SDK
7
+ * with efficient batching and modular architecture.
8
+ *
9
+ * @module MerkleOperation
10
+ * @author Synapse Gateway Team
11
+ */
12
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
13
+ if (k2 === undefined) k2 = k;
14
+ var desc = Object.getOwnPropertyDescriptor(m, k);
15
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
16
+ desc = { enumerable: true, get: function() { return m[k]; } };
17
+ }
18
+ Object.defineProperty(o, k2, desc);
19
+ }) : (function(o, m, k, k2) {
20
+ if (k2 === undefined) k2 = k;
21
+ o[k2] = m[k];
22
+ }));
23
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
24
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
25
+ }) : function(o, v) {
26
+ o["default"] = v;
27
+ });
28
+ var __importStar = (this && this.__importStar) || (function () {
29
+ var ownKeys = function(o) {
30
+ ownKeys = Object.getOwnPropertyNames || function (o) {
31
+ var ar = [];
32
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
33
+ return ar;
34
+ };
35
+ return ownKeys(o);
36
+ };
37
+ return function (mod) {
38
+ if (mod && mod.__esModule) return mod;
39
+ var result = {};
40
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
41
+ __setModuleDefault(result, mod);
42
+ return result;
43
+ };
44
+ })();
45
+ Object.defineProperty(exports, "__esModule", { value: true });
46
+ exports.MerkleOperation = void 0;
47
+ const web3_js_1 = require("@solana/web3.js");
48
+ const pda_manager_1 = require("./pda-manager");
49
+ const crypto = __importStar(require("crypto"));
50
+ const solana_rpc_1 = require("../methods/solana-rpc");
51
+ /**
52
+ * MerkleOperation - handles Merkle tree operations and on-chain storage
53
+ *
54
+ * This class provides utilities for:
55
+ * - Generating Merkle trees from event data
56
+ * - Creating and verifying proofs
57
+ * - Splitting large data into chunks
58
+ * - Inscribing data on-chain via memo transactions
59
+ *
60
+ * For on-chain operations, you can provide either:
61
+ * - A Solana Connection + Signer for real transaction signing
62
+ * - Just use SynapseClient (will require pre-signed transactions)
63
+ */
64
+ class MerkleOperation {
65
+ client;
66
+ pdaManager;
67
+ walletAddress;
68
+ batchConfig;
69
+ signer;
70
+ rpcMethods;
71
+ // Merkle tree state
72
+ leaves = [];
73
+ tree = [];
74
+ root = '';
75
+ /**
76
+ * Create a new MerkleOperation instance
77
+ * @param client - Synapse client for RPC calls
78
+ * @param walletAddress - User wallet address
79
+ * @param batchConfig - Optional batch processing configuration
80
+ * @param signer - Optional Signer/Keypair for signing transactions
81
+ */
82
+ constructor(client, walletAddress, batchConfig, connection, signer) {
83
+ this.client = client;
84
+ this.walletAddress = new web3_js_1.PublicKey(walletAddress);
85
+ this.pdaManager = new pda_manager_1.PDAManager(client, walletAddress);
86
+ this.signer = signer;
87
+ this.batchConfig = {
88
+ batchSize: 50,
89
+ delayMs: 1000,
90
+ maxRetries: 3,
91
+ retryDelayMs: 1000,
92
+ ...batchConfig,
93
+ };
94
+ this.rpcMethods = new solana_rpc_1.SolanaRpcMethods(client);
95
+ }
96
+ /**
97
+ * Create Merkle tree from data array
98
+ * @param data - Array of data items to hash
99
+ * @returns Merkle root hash (hex)
100
+ */
101
+ createMerkleTree(data) {
102
+ if (data.length === 0)
103
+ throw new Error('Data array cannot be empty');
104
+ // Hash all leaves
105
+ this.leaves = data.map((item) => this.hash(item));
106
+ // Build tree bottom-up
107
+ this.tree = [this.leaves];
108
+ let currentLevel = this.leaves;
109
+ while (currentLevel.length > 1) {
110
+ const nextLevel = [];
111
+ for (let i = 0; i < currentLevel.length; i += 2) {
112
+ const left = currentLevel[i];
113
+ const right = i + 1 < currentLevel.length ? currentLevel[i + 1] : left;
114
+ nextLevel.push(this.hash(left + right));
115
+ }
116
+ this.tree.push(nextLevel);
117
+ currentLevel = nextLevel;
118
+ }
119
+ this.root = currentLevel[0];
120
+ return this.root;
121
+ }
122
+ /**
123
+ * Get Merkle proof for a leaf
124
+ * @param leafData - Data to generate proof for
125
+ * @returns Merkle proof
126
+ */
127
+ getMerkleProof(leafData) {
128
+ const leaf = this.hash(leafData);
129
+ const leafIndex = this.leaves.indexOf(leaf);
130
+ if (leafIndex === -1) {
131
+ throw new Error('Leaf not found in tree');
132
+ }
133
+ const proof = [];
134
+ let index = leafIndex;
135
+ for (let level = 0; level < this.tree.length - 1; level++) {
136
+ const currentLevel = this.tree[level];
137
+ const isRightNode = index % 2 === 1;
138
+ const siblingIndex = isRightNode ? index - 1 : index + 1;
139
+ if (siblingIndex < currentLevel.length) {
140
+ proof.push(currentLevel[siblingIndex]);
141
+ }
142
+ index = Math.floor(index / 2);
143
+ }
144
+ return {
145
+ leaf,
146
+ proof,
147
+ root: this.root,
148
+ };
149
+ }
150
+ /**
151
+ * Verify a Merkle proof
152
+ * @param leaf - Leaf hash
153
+ * @param proof - Proof hashes
154
+ * @param root - Expected root hash
155
+ * @returns true if proof is valid
156
+ */
157
+ verifyProof(leaf, proof, root) {
158
+ let computedHash = leaf;
159
+ for (const proofElement of proof) {
160
+ // Deterministic ordering: smaller hash first
161
+ if (computedHash < proofElement) {
162
+ computedHash = this.hash(computedHash + proofElement);
163
+ }
164
+ else {
165
+ computedHash = this.hash(proofElement + computedHash);
166
+ }
167
+ }
168
+ return computedHash === root;
169
+ }
170
+ /**
171
+ * Batch verify multiple Merkle proofs
172
+ * @param proofs - Array of proof objects to verify
173
+ * @returns Array of verification results
174
+ */
175
+ batchVerifyProofs(proofs) {
176
+ return proofs.map((p) => this.verifyProof(p.leaf, p.proof, p.root));
177
+ } /**
178
+ * Calculate optimal chunks from buffer
179
+ * Splits data into chunks while respecting size limits for memo transactions
180
+ * @param buffer - Data buffer to chunk
181
+ * @param minChunkSize - Minimum chunk size (default: 1)
182
+ * @param maxChunkSize - Maximum chunk size (default: 560 for memo safety)
183
+ * @returns Array of chunk buffers
184
+ */
185
+ calculateChunks(buffer, minChunkSize = 1, maxChunkSize = 560) {
186
+ const chunks = [];
187
+ const adjustedMaxChunkSize = maxChunkSize - 64; // Reserve space for signature linking
188
+ let offset = 0;
189
+ while (offset < buffer.length) {
190
+ const remainingBytes = buffer.length - offset;
191
+ let chunkSize;
192
+ if (remainingBytes <= maxChunkSize) {
193
+ // Last chunk can use full maxChunkSize
194
+ chunkSize = Math.min(Math.max(minChunkSize, remainingBytes), maxChunkSize);
195
+ }
196
+ else {
197
+ // Other chunks use adjusted size
198
+ chunkSize = Math.min(Math.max(minChunkSize, remainingBytes), adjustedMaxChunkSize);
199
+ }
200
+ const chunk = buffer.subarray(offset, offset + chunkSize);
201
+ chunks.push(chunk);
202
+ offset += chunkSize;
203
+ }
204
+ return chunks;
205
+ }
206
+ /**
207
+ * Create zero chunk (128 bytes: 2 merkle leaves + previous signature)
208
+ * @param leaf - Merkle leaf data
209
+ * @returns Zero chunk buffer (128 bytes)
210
+ */
211
+ createZeroChunk(leaf) {
212
+ const zeroChunk = Buffer.alloc(128);
213
+ // First 64 bytes: input hash
214
+ Buffer.from(leaf.input, 'hex').copy(zeroChunk, 0);
215
+ // Second 64 bytes: result hash
216
+ Buffer.from(leaf.result, 'hex').copy(zeroChunk, 64);
217
+ return zeroChunk;
218
+ }
219
+ /**
220
+ * On-chain Merkle inscription - stores data + proof on Solana
221
+ * Uses PDA accounts to store chunked data and merkle roots
222
+ * @param validationResult - Merkle validation result to inscribe
223
+ * @param pdas - Optional custom PDAs
224
+ * @returns Inscription result with signatures and PDAs
225
+ */
226
+ async inscribeOnChain(validationResult, pdas) {
227
+ // Get or use provided PDAs
228
+ const userPDAs = pdas || this.pdaManager.getUserPDAs();
229
+ // Check if PDAs exist
230
+ const { leafExists, rootExists } = await this.pdaManager.checkPDAExistence(userPDAs);
231
+ if (!leafExists || !rootExists) {
232
+ throw new Error('PDA accounts not initialized. Create accounts first using PDAManager.');
233
+ }
234
+ const { input, result } = validationResult.merkleLeaf;
235
+ const compressedEvents = validationResult.merkleEvents;
236
+ if (!input || !result || !compressedEvents) {
237
+ throw new Error('Invalid validation result: missing required fields');
238
+ }
239
+ // Create zero chunk (128 bytes)
240
+ const zeroChunk = Buffer.alloc(128);
241
+ Buffer.from(input, 'hex').copy(zeroChunk, 0);
242
+ Buffer.from(result, 'hex').copy(zeroChunk, 64);
243
+ // Prepare events buffer and chunk it
244
+ const eventsBuffer = this.trimTrailingZeros(Buffer.from(compressedEvents, 'utf-8'));
245
+ const eventChunks = this.calculateChunks(eventsBuffer, 1, 560);
246
+ // All chunks: events + zero chunk
247
+ const allChunks = [...eventChunks, zeroChunk];
248
+ let prevSignature = null;
249
+ let zeroChunkSignature = null;
250
+ // Process each chunk
251
+ for (let index = 0; index < allChunks.length; index++) {
252
+ const chunk = allChunks[index];
253
+ const isFirst = index === 0;
254
+ const isLast = index === allChunks.length - 1;
255
+ let memoData;
256
+ if (isFirst && !isLast) {
257
+ // First chunk: just the data
258
+ memoData = chunk;
259
+ }
260
+ else if (isLast && prevSignature) {
261
+ // Last chunk (zero chunk): data only
262
+ memoData = chunk;
263
+ }
264
+ else if (!isFirst && !isLast && prevSignature) {
265
+ // Intermediate chunks: link to previous
266
+ memoData = Buffer.from(`${prevSignature}|${chunk.toString('utf-8')}`);
267
+ }
268
+ else {
269
+ // Single chunk case
270
+ memoData = chunk;
271
+ }
272
+ // Send transaction with memo
273
+ const signature = await this.sendMemoTransaction(userPDAs.leafPDA, memoData);
274
+ prevSignature = signature;
275
+ if (isLast) {
276
+ zeroChunkSignature = signature;
277
+ }
278
+ // Small delay between transactions
279
+ await this.sleep(500);
280
+ }
281
+ if (!zeroChunkSignature) {
282
+ throw new Error('Failed to inscribe zero chunk');
283
+ }
284
+ // Store root and proof in Root PDA
285
+ const rootData = {
286
+ root: validationResult.merkleRoot,
287
+ proofSignature: zeroChunkSignature,
288
+ proof: validationResult.merkleProof,
289
+ leaf: validationResult.merkleLeaf,
290
+ };
291
+ const rootSignature = await this.sendMemoTransaction(userPDAs.rootPDA, Buffer.from(JSON.stringify(rootData)));
292
+ return {
293
+ dbAccountStore: userPDAs.leafPDA,
294
+ dbAccountRoot: userPDAs.rootPDA,
295
+ zeroChunkSign: zeroChunkSignature,
296
+ signatureRoot: rootSignature,
297
+ merkleRoot: validationResult.merkleRoot,
298
+ merkleProof: validationResult.merkleProof,
299
+ merkleLeaf: validationResult.merkleLeaf,
300
+ merkleEvents: validationResult.merkleEvents,
301
+ };
302
+ }
303
+ /**
304
+ * Send a memo transaction to store data
305
+ * Uses Synapse client for transaction submission with Memo Program
306
+ *
307
+ * Two modes of operation:
308
+ * 1. With Connection + Signer: Signs and sends transaction directly
309
+ * 2. Without Connection: Returns unsigned transaction for external signing
310
+ *
311
+ * @param pda - Target PDA
312
+ * @param data - Data buffer to store in memo
313
+ * @returns Transaction signature
314
+ */
315
+ async sendMemoTransaction(pda, data) {
316
+ try {
317
+ // Memo Program ID (SPL Memo Program)
318
+ const MEMO_PROGRAM_ID = new web3_js_1.PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
319
+ // Create memo instruction
320
+ const memoInstruction = new web3_js_1.TransactionInstruction({
321
+ keys: [
322
+ // PDA as a readonly account for tracking
323
+ { pubkey: pda, isSigner: false, isWritable: false },
324
+ ],
325
+ programId: MEMO_PROGRAM_ID,
326
+ data: data, // Memo data
327
+ });
328
+ // Create transaction
329
+ const transaction = new web3_js_1.Transaction();
330
+ transaction.add(memoInstruction);
331
+ // Get recent blockhash
332
+ const blockhashData = await this.client.call('getLatestBlockhash', [{ commitment: 'confirmed' }]);
333
+ const { blockhash, lastValidBlockHeight } = blockhashData.value;
334
+ transaction.recentBlockhash = blockhash;
335
+ transaction.lastValidBlockHeight = lastValidBlockHeight;
336
+ transaction.feePayer = this.walletAddress;
337
+ // MODE 2: Serialize for external signing (wallet adapter, etc.)
338
+ // User must sign and send this transaction themselves
339
+ const serializedTx = transaction.serialize({
340
+ requireAllSignatures: false,
341
+ verifySignatures: false,
342
+ }).toString('base64');
343
+ // Send via Synapse client (assumes pre-signed or will be rejected)
344
+ const signature = await this.client.call('sendTransaction', [
345
+ serializedTx,
346
+ {
347
+ encoding: 'base64',
348
+ skipPreflight: false,
349
+ preflightCommitment: 'confirmed',
350
+ maxRetries: this.batchConfig.maxRetries || 3,
351
+ },
352
+ ]);
353
+ // Wait for confirmation with retry
354
+ let confirmed = false;
355
+ let attempts = 0;
356
+ const maxAttempts = this.batchConfig.maxRetries || 3;
357
+ while (!confirmed && attempts < maxAttempts) {
358
+ try {
359
+ const status = await this.client.call('getSignatureStatuses', [[signature], { searchTransactionHistory: true }]);
360
+ if (status?.value?.[0]?.confirmationStatus === 'confirmed' ||
361
+ status?.value?.[0]?.confirmationStatus === 'finalized') {
362
+ confirmed = true;
363
+ break;
364
+ }
365
+ // Wait before retry
366
+ await this.sleep(this.batchConfig.retryDelayMs || 1000);
367
+ attempts++;
368
+ }
369
+ catch (error) {
370
+ attempts++;
371
+ if (attempts >= maxAttempts)
372
+ throw error;
373
+ await this.sleep(this.batchConfig.retryDelayMs || 1000);
374
+ }
375
+ }
376
+ if (!confirmed) {
377
+ throw new Error(`Transaction ${signature} not confirmed after ${maxAttempts} attempts`);
378
+ }
379
+ return signature;
380
+ }
381
+ catch (error) {
382
+ throw new Error(`Failed to send memo transaction: ${error.message}`);
383
+ }
384
+ }
385
+ /**
386
+ * Create and send multiple memo transactions in batch
387
+ * Uses optimized batching for better performance
388
+ * @param pda - Target PDA
389
+ * @param dataChunks - Array of data buffers to send
390
+ * @returns Array of transaction signatures
391
+ */
392
+ async batchSendMemoTransactions(pda, dataChunks) {
393
+ const signatures = [];
394
+ const batchSize = this.batchConfig.batchSize || 10;
395
+ // Process chunks in batches
396
+ for (let i = 0; i < dataChunks.length; i += batchSize) {
397
+ const batch = dataChunks.slice(i, i + batchSize);
398
+ // Send transactions in parallel within batch
399
+ const batchSignatures = await Promise.all(batch.map((chunk) => this.sendMemoTransaction(pda, chunk)));
400
+ signatures.push(...batchSignatures);
401
+ // Delay between batches
402
+ if (i + batchSize < dataChunks.length) {
403
+ await this.sleep(this.batchConfig.delayMs || 1000);
404
+ }
405
+ }
406
+ return signatures;
407
+ }
408
+ /**
409
+ * Hash data using SHA-256
410
+ * @param data - Data to hash
411
+ * @returns Hex hash string
412
+ */
413
+ hash(data) {
414
+ return crypto.createHash('sha256').update(data).digest('hex');
415
+ }
416
+ /**
417
+ * Trim trailing zeros from buffer
418
+ * @param buffer - Buffer to trim
419
+ * @returns Trimmed buffer
420
+ */
421
+ trimTrailingZeros(buffer) {
422
+ let end = buffer.length;
423
+ while (end > 0 && buffer[end - 1] === 0) {
424
+ end--;
425
+ }
426
+ return buffer.subarray(0, end);
427
+ }
428
+ /**
429
+ * Sleep utility
430
+ * @param ms - Milliseconds to sleep
431
+ */
432
+ sleep(ms) {
433
+ return new Promise((resolve) => setTimeout(resolve, ms));
434
+ }
435
+ /**
436
+ * Get current Merkle root
437
+ */
438
+ getRoot() {
439
+ return this.root;
440
+ }
441
+ /**
442
+ * Get all leaves
443
+ */
444
+ getLeaves() {
445
+ return this.leaves;
446
+ }
447
+ /**
448
+ * Get PDA manager
449
+ */
450
+ getPDAManager() {
451
+ return this.pdaManager;
452
+ }
453
+ /**
454
+ * Get batch configuration
455
+ */
456
+ getBatchConfig() {
457
+ return { ...this.batchConfig };
458
+ }
459
+ /**
460
+ * Update batch configuration
461
+ */
462
+ updateBatchConfig(config) {
463
+ this.batchConfig = { ...this.batchConfig, ...config };
464
+ }
465
+ /**
466
+ * Set signer for transaction signing
467
+ * @param signer - Keypair or Signer instance
468
+ */
469
+ setSigner(signer) {
470
+ this.signer = signer;
471
+ }
472
+ /**
473
+ * Get unsigned transaction for external signing
474
+ * Useful for wallet adapter integration
475
+ * @param pda - Target PDA
476
+ * @param data - Data buffer to store in memo
477
+ * @returns Unsigned Transaction object
478
+ */
479
+ async createUnsignedMemoTransaction(pda, data) {
480
+ const MEMO_PROGRAM_ID = new web3_js_1.PublicKey('MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr');
481
+ const memoInstruction = new web3_js_1.TransactionInstruction({
482
+ keys: [{ pubkey: pda, isSigner: false, isWritable: false }],
483
+ programId: MEMO_PROGRAM_ID,
484
+ data: data,
485
+ });
486
+ const transaction = new web3_js_1.Transaction();
487
+ transaction.add(memoInstruction);
488
+ const blockhashData = await this.client.call('getLatestBlockhash', [{ commitment: 'confirmed' }]);
489
+ const { blockhash, lastValidBlockHeight } = blockhashData.value;
490
+ transaction.recentBlockhash = blockhash;
491
+ transaction.lastValidBlockHeight = lastValidBlockHeight;
492
+ transaction.feePayer = this.walletAddress;
493
+ return transaction;
494
+ }
495
+ /**
496
+ * Batch inscribe multiple validation results on-chain
497
+ * Uses client.batch() for optimal performance when inscribing multiple proofs
498
+ * @param validationResults - Array of merkle validation results
499
+ * @param pdas - Optional custom PDAs
500
+ * @returns Array of inscription results
501
+ */
502
+ async batchInscribeOnChain(validationResults, pdas) {
503
+ if (validationResults.length === 0)
504
+ return [];
505
+ const results = [];
506
+ const batchSize = this.batchConfig.batchSize || 10;
507
+ // Process in batches to avoid overwhelming the network
508
+ for (let i = 0; i < validationResults.length; i += batchSize) {
509
+ const batch = validationResults.slice(i, i + batchSize);
510
+ // Inscribe each in parallel within the batch
511
+ const batchResults = await Promise.all(batch.map((result) => this.inscribeOnChain(result, pdas)));
512
+ results.push(...batchResults);
513
+ // Delay between batches
514
+ if (i + batchSize < validationResults.length) {
515
+ await this.sleep(this.batchConfig.delayMs || 1000);
516
+ }
517
+ }
518
+ return results;
519
+ }
520
+ }
521
+ exports.MerkleOperation = MerkleOperation;
522
+ //# sourceMappingURL=merkle-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merkle-operation.js","sourceRoot":"","sources":["../../../src/ai/merkle-operation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * PDA Manager - Synapse SDK Implementation
3
+ *
4
+ * Professional PDA (Program Derived Address) manager inspired by OOBE Protocol
5
+ * but implemented using Synapse SDK's modular architecture and batch methods.
6
+ * No Raydium dependencies - pure Solana Web3.js integration.
7
+ *
8
+ * @module PDAManager
9
+ * @author Synapse Gateway Team
10
+ */
11
+ import { PublicKey } from '@solana/web3.js';
12
+ import type { SynapseClient } from '../client';
13
+ import type { BatchOptionRequest } from './types.ai';
14
+ /**
15
+ * Configuration for PDA derivation seeds
16
+ */
17
+ export interface PDAConfig {
18
+ /** Seed for Merkle database PDA */
19
+ merkleDbSeed?: string;
20
+ /** Seed for Merkle root PDA */
21
+ merkleRootSeed?: string;
22
+ /** Seed for personality database PDA */
23
+ personalityDbSeed?: string;
24
+ /** Seed for personality root PDA */
25
+ personalityRootSeed?: string;
26
+ }
27
+ /**
28
+ * Default PDA seeds configuration
29
+ */
30
+ export declare const DEFAULT_PDA_CONFIG: Required<PDAConfig>;
31
+ /**
32
+ * PDAs result structure
33
+ */
34
+ export interface UserPDAs {
35
+ /** Leaf/Database PDA for storing merkle data */
36
+ leafPDA: PublicKey;
37
+ /** Root PDA for storing merkle roots and proofs */
38
+ rootPDA: PublicKey;
39
+ /** Bump seed for leaf PDA */
40
+ leafBump: number;
41
+ /** Bump seed for root PDA */
42
+ rootBump: number;
43
+ }
44
+ /**
45
+ * PDAManager - manages Program Derived Addresses for Merkle storage
46
+ *
47
+ * This class provides utilities to derive and manage PDAs used for storing
48
+ * large amounts of transaction data on-chain using a Merkle tree approach.
49
+ * Compatible with OOBE Protocol patterns but using pure Solana libraries.
50
+ */
51
+ export declare class PDAManager {
52
+ private client;
53
+ private wallet;
54
+ private config;
55
+ private programId;
56
+ private rpcMethods;
57
+ private batchConfig;
58
+ /**
59
+ * Create a new PDAManager instance
60
+ * @param client - Synapse client for RPC calls
61
+ * @param walletAddress - User wallet address
62
+ * @param config - Optional PDA configuration
63
+ * @param programId - Optional program ID (defaults to System Program)
64
+ * @param batchConfig - Optional batch processing configuration
65
+ */
66
+ constructor(client: SynapseClient, walletAddress: string, config?: PDAConfig, programId?: string, batchConfig?: BatchOptionRequest);
67
+ /**
68
+ * Generate a deterministic seed buffer from a string seed and wallet
69
+ * Uses SHA-256 hashing for deterministic derivation (OOBE-compatible)
70
+ * @param seed - Base seed string
71
+ * @param wallet - Wallet public key
72
+ * @returns 32-byte seed buffer
73
+ */
74
+ private generateSeed;
75
+ /**
76
+ * Get user PDAs for Merkle data storage
77
+ * Derives two PDAs: one for storing leaf/chunk data, one for roots
78
+ * @param customConfig - Optional custom seed configuration
79
+ * @returns UserPDAs with leaf and root addresses + bumps
80
+ */
81
+ getUserPDAs(customConfig?: PDAConfig): UserPDAs;
82
+ /**
83
+ * Get user PDAs for Personality storage (OOBE Agent personality system)
84
+ * Similar to getUserPDAs but uses personality-specific seeds
85
+ * @returns UserPDAs for personality data
86
+ */
87
+ getUserPersonalityPDAs(): UserPDAs;
88
+ /**
89
+ * Check if PDA accounts exist on-chain
90
+ * Uses Synapse client's batch() for optimal performance
91
+ * @param pdas - UserPDAs to check
92
+ * @returns Object indicating which PDAs exist
93
+ */
94
+ checkPDAExistence(pdas: UserPDAs): Promise<{
95
+ leafExists: boolean;
96
+ rootExists: boolean;
97
+ }>;
98
+ /**
99
+ * Get PDA account info using Synapse client
100
+ * @param pda - PDA public key
101
+ * @returns Account info or null
102
+ */
103
+ getPDAAccountInfo(pda: PublicKey): Promise<import("..").AccountInfo | null>;
104
+ /**
105
+ * Get multiple PDA account infos using batch for optimal performance
106
+ * @param pdas - Array of PDA public keys
107
+ * @returns Array of account infos (null if not found)
108
+ */
109
+ getBatchPDAAccountInfo(pdas: PublicKey[]): Promise<any[]>;
110
+ /**
111
+ * Validate PDA derivation (utility for debugging)
112
+ * @param pda - PDA to validate
113
+ * @param seeds - Seeds used for derivation
114
+ * @returns true if PDA matches expected derivation
115
+ */
116
+ validatePDA(pda: PublicKey, seeds: Buffer[]): boolean;
117
+ /**
118
+ * Get all PDAs for a wallet (convenience method)
119
+ * Returns both standard and personality PDAs
120
+ */
121
+ getAllUserPDAs(): {
122
+ standard: UserPDAs;
123
+ personality: UserPDAs;
124
+ };
125
+ /**
126
+ * Get batch configuration
127
+ */
128
+ getBatchConfig(): BatchOptionRequest;
129
+ /**
130
+ * Update batch configuration
131
+ */
132
+ updateBatchConfig(config: Partial<BatchOptionRequest>): void;
133
+ }
134
+ //# sourceMappingURL=pda-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pda-manager.d.ts","sourceRoot":"","sources":["../../../src/ai/pda-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAGrD;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,+BAA+B;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,oCAAoC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAAE,QAAQ,CAAC,SAAS,CAKlD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,QAAQ;IACvB,gDAAgD;IAChD,OAAO,EAAE,SAAS,CAAC;IACnB,mDAAmD;IACnD,OAAO,EAAE,SAAS,CAAC;IACnB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;;;;;GAMG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,MAAM,CAAsB;IACpC,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,WAAW,CAAqB;IAExC;;;;;;;OAOG;gBAED,MAAM,EAAE,aAAa,EACrB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,SAAS,EAClB,SAAS,CAAC,EAAE,MAAM,EAClB,WAAW,CAAC,EAAE,kBAAkB;IAgBlC;;;;;;OAMG;IACH,OAAO,CAAC,YAAY;IAOpB;;;;;OAKG;IACI,WAAW,CAAC,YAAY,CAAC,EAAE,SAAS,GAAG,QAAQ;IAyBtD;;;;OAIG;IACI,sBAAsB,IAAI,QAAQ;IAyBzC;;;;;OAKG;IACU,iBAAiB,CAC5B,IAAI,EAAE,QAAQ,GACb,OAAO,CAAC;QAAE,UAAU,EAAE,OAAO,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC;IAuBxD;;;;OAIG;IACU,iBAAiB,CAAC,GAAG,EAAE,SAAS;IAW7C;;;;OAIG;IACU,sBAAsB,CAAC,IAAI,EAAE,SAAS,EAAE;IAiBrD;;;;;OAKG;IACI,WAAW,CAAC,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO;IAS5D;;;OAGG;IACI,cAAc;;;;IAOrB;;OAEG;IACI,cAAc,IAAI,kBAAkB;IAI3C;;OAEG;IACI,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,IAAI;CAGpE"}