@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,408 @@
1
+ "use strict";
2
+ /**
3
+ * Metaplex On-Chain Client
4
+ * Direct on-chain NFT collection analysis using Solana RPC and DAS API
5
+ * Alternative to marketplace APIs for decentralized, trustless data
6
+ * @see https://developers.metaplex.com/
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MetaplexOnChainClient = void 0;
10
+ const web3_js_1 = require("@solana/web3.js");
11
+ const umi_1 = require("@metaplex-foundation/umi");
12
+ const umi_2 = require("@metaplex-foundation/umi");
13
+ const mpl_token_metadata_1 = require("@metaplex-foundation/mpl-token-metadata");
14
+ /**
15
+ * MetaplexOnChainClient - Direct on-chain NFT analysis
16
+ *
17
+ * Provides trustless, decentralized collection statistics without
18
+ * relying on centralized marketplace APIs. Uses Metaplex standards,
19
+ * Solana RPC queries, and optional DAS API for faster bulk operations.
20
+ *
21
+ * **Use Cases:**
22
+ * - Collections not listed on major marketplaces
23
+ * - Trustless verification of collection data
24
+ * - Real-time holder distribution analysis
25
+ * - Independent supply and holder calculations
26
+ *
27
+ * **Trade-offs:**
28
+ * - Slower than marketplace APIs (requires multiple RPC calls)
29
+ * - No historical price data (no marketplace context)
30
+ * - No marketplace-specific metrics (listings, sales, volume)
31
+ * - Higher RPC costs for large collections (1000+ NFTs)
32
+ *
33
+ * **Recommended:** Use with Helius DAS API for production deployments
34
+ */
35
+ class MetaplexOnChainClient {
36
+ connection;
37
+ rpcEndpoint;
38
+ timeout;
39
+ logLevel;
40
+ dasEndpoint;
41
+ umi;
42
+ constructor(config) {
43
+ this.connection = config.connection;
44
+ this.rpcEndpoint = config.rpcEndpoint || this.connection.rpcEndpoint;
45
+ this.timeout = config.timeout || 30000;
46
+ this.logLevel = config.logLevel || 'error';
47
+ this.dasEndpoint = config.dasEndpoint;
48
+ // Initialize Umi with Metaplex Token Metadata plugin
49
+ this.umi = (0, umi_1.createBaseUmi)();
50
+ this.umi.use((0, mpl_token_metadata_1.mplTokenMetadata)());
51
+ }
52
+ /**
53
+ * Get collection metadata from on-chain data using Metaplex standards
54
+ * @param collectionMint - Collection mint address
55
+ * @returns Collection metadata parsed from Metaplex Token Metadata
56
+ */
57
+ async getCollectionMetadata(collectionMint) {
58
+ this.logDebug(`Fetching on-chain metadata for collection: ${collectionMint}`);
59
+ try {
60
+ const mint = (0, umi_2.publicKey)(collectionMint);
61
+ // Fetch digital asset using Metaplex library
62
+ const digitalAsset = await (0, mpl_token_metadata_1.fetchDigitalAsset)(this.umi, mint);
63
+ // Extract metadata
64
+ const metadata = digitalAsset.metadata;
65
+ // Helper to unwrap Option types from Metaplex
66
+ const unwrapOption = (option) => {
67
+ if (!option || option.__option === 'None')
68
+ return undefined;
69
+ return option.__option === 'Some' ? option.value : option;
70
+ };
71
+ const creators = unwrapOption(metadata.creators) || [];
72
+ const collection = unwrapOption(metadata.collection);
73
+ const result = {
74
+ collectionMint,
75
+ name: metadata.name,
76
+ symbol: metadata.symbol,
77
+ uri: metadata.uri,
78
+ updateAuthority: metadata.updateAuthority.toString(),
79
+ creators: creators.map((creator) => ({
80
+ address: creator.address.toString(),
81
+ verified: creator.verified,
82
+ share: creator.share,
83
+ })),
84
+ sellerFeeBasisPoints: metadata.sellerFeeBasisPoints,
85
+ isMutable: metadata.isMutable,
86
+ collection: collection ? {
87
+ verified: collection.verified,
88
+ key: collection.key.toString(),
89
+ } : undefined,
90
+ };
91
+ this.logInfo(`Metadata fetched: ${result.name} (${result.symbol})`);
92
+ return result;
93
+ }
94
+ catch (error) {
95
+ this.logError(`Failed to fetch collection metadata: ${error.message}`);
96
+ throw new Error(`On-chain metadata fetch failed: ${error.message}`);
97
+ }
98
+ }
99
+ /**
100
+ * Get all NFTs in a collection by creator
101
+ * Uses DAS API if available (recommended), falls back to RPC
102
+ * @param creatorAddress - Creator/collection address
103
+ * @param options - Query options
104
+ * @returns Array of NFTs with owner and metadata
105
+ */
106
+ async getCollectionNFTs(creatorAddress, options) {
107
+ this.logDebug(`Fetching NFTs for creator: ${creatorAddress}`);
108
+ try {
109
+ // Use DAS API if available (much faster for large collections)
110
+ if (this.dasEndpoint) {
111
+ return await this.getCollectionNFTsViaDAS(creatorAddress, options);
112
+ }
113
+ // Fallback to RPC queries (slower, more expensive)
114
+ this.logInfo('WARNING: Fetching via RPC - slow for large collections. Consider using DAS API (Helius)');
115
+ // For production: Implement getProgramAccounts with filters
116
+ // This requires significant RPC calls and is expensive
117
+ throw new Error('RPC-only collection fetching not implemented. Please provide dasEndpoint for production use.');
118
+ }
119
+ catch (error) {
120
+ this.logError(`Failed to fetch collection NFTs: ${error.message}`);
121
+ throw new Error(`On-chain NFT fetch failed: ${error.message}`);
122
+ }
123
+ }
124
+ /**
125
+ * Get NFTs via DAS (Digital Asset Standard) API - RECOMMENDED
126
+ * Supports Helius, Triton, and other DAS-compatible providers
127
+ * @private
128
+ */
129
+ async getCollectionNFTsViaDAS(creatorAddress, options) {
130
+ if (!this.dasEndpoint) {
131
+ throw new Error('DAS endpoint not configured');
132
+ }
133
+ this.logDebug(`Fetching NFTs via DAS API: ${creatorAddress}`);
134
+ try {
135
+ const response = await fetch(this.dasEndpoint, {
136
+ method: 'POST',
137
+ headers: { 'Content-Type': 'application/json' },
138
+ body: JSON.stringify({
139
+ jsonrpc: '2.0',
140
+ id: 'get-assets-by-creator',
141
+ method: 'getAssetsByCreator',
142
+ params: {
143
+ creatorAddress,
144
+ onlyVerified: true,
145
+ page: options?.offset ? Math.floor(options.offset / 1000) + 1 : 1,
146
+ limit: options?.limit || 1000,
147
+ },
148
+ }),
149
+ });
150
+ const data = await response.json();
151
+ if (data.error) {
152
+ throw new Error(`DAS API error: ${data.error.message}`);
153
+ }
154
+ const assets = data.result?.items || [];
155
+ const nfts = assets.map((asset) => ({
156
+ mint: asset.id,
157
+ owner: asset.ownership?.owner || 'unknown',
158
+ metadata: {
159
+ name: asset.content?.metadata?.name || 'Unknown',
160
+ symbol: asset.content?.metadata?.symbol || '',
161
+ uri: asset.content?.json_uri || '',
162
+ sellerFeeBasisPoints: asset.royalty?.basis_points || 0,
163
+ },
164
+ collection: asset.grouping?.find((g) => g.group_key === 'collection')?.group_value,
165
+ verified: asset.grouping?.find((g) => g.group_key === 'collection')?.verified || false,
166
+ }));
167
+ this.logInfo(`Fetched ${nfts.length} NFTs via DAS API (total in response)`);
168
+ return nfts;
169
+ }
170
+ catch (error) {
171
+ this.logError(`DAS API fetch failed: ${error.message}`);
172
+ throw error;
173
+ }
174
+ }
175
+ /**
176
+ * Calculate on-chain collection statistics
177
+ * Analyzes holder distribution, supply, and concentration risk
178
+ * @param creatorAddress - Creator/collection address
179
+ * @returns Comprehensive on-chain statistics
180
+ */
181
+ async calculateOnChainStats(creatorAddress) {
182
+ this.logDebug(`Calculating on-chain stats for: ${creatorAddress}`);
183
+ try {
184
+ // Fetch all NFTs in collection
185
+ const nfts = await this.getCollectionNFTs(creatorAddress);
186
+ // Calculate holder distribution
187
+ const holderMap = new Map();
188
+ let verifiedCount = 0;
189
+ for (const nft of nfts) {
190
+ if (nft.owner && nft.owner !== 'unknown') {
191
+ holderMap.set(nft.owner, (holderMap.get(nft.owner) || 0) + 1);
192
+ }
193
+ if (nft.verified) {
194
+ verifiedCount++;
195
+ }
196
+ }
197
+ const totalSupply = nfts.length;
198
+ const uniqueHolders = holderMap.size;
199
+ // Calculate holder distribution (whales/medium/retail)
200
+ const holderCounts = Array.from(holderMap.entries());
201
+ const distribution = {
202
+ whales: 0,
203
+ medium: 0,
204
+ retail: 0,
205
+ };
206
+ for (const [, count] of holderCounts) {
207
+ const percentage = (count / totalSupply) * 100;
208
+ if (percentage > 10) {
209
+ distribution.whales++;
210
+ }
211
+ else if (percentage >= 1) {
212
+ distribution.medium++;
213
+ }
214
+ else {
215
+ distribution.retail++;
216
+ }
217
+ }
218
+ // Get top 10 holders
219
+ const topHolders = holderCounts
220
+ .sort((a, b) => b[1] - a[1])
221
+ .slice(0, 10)
222
+ .map(([address, count]) => ({
223
+ address,
224
+ count,
225
+ percentage: (count / totalSupply) * 100,
226
+ }));
227
+ const stats = {
228
+ collectionMint: creatorAddress,
229
+ totalSupply,
230
+ verifiedNFTs: verifiedCount,
231
+ holders: holderMap.size,
232
+ uniqueHolders,
233
+ holderDistribution: distribution,
234
+ topHolders,
235
+ nftsByCreator: totalSupply,
236
+ dataSource: 'on-chain',
237
+ timestamp: Date.now(),
238
+ };
239
+ this.logInfo(`Stats calculated: ${totalSupply} NFTs, ${uniqueHolders} unique holders`);
240
+ return stats;
241
+ }
242
+ catch (error) {
243
+ this.logError(`Failed to calculate on-chain stats: ${error.message}`);
244
+ throw new Error(`On-chain stats calculation failed: ${error.message}`);
245
+ }
246
+ }
247
+ /**
248
+ * Get holder distribution analysis with concentration risk
249
+ * Uses Herfindahl-Hirschman Index (HHI) for concentration measurement
250
+ * @param creatorAddress - Creator/collection address
251
+ * @returns Holder distribution data with risk score
252
+ */
253
+ async getHolderDistribution(creatorAddress) {
254
+ this.logDebug(`Analyzing holder distribution for: ${creatorAddress}`);
255
+ try {
256
+ const stats = await this.calculateOnChainStats(creatorAddress);
257
+ const distribution = new Map();
258
+ stats.topHolders.forEach(holder => {
259
+ distribution.set(holder.address, holder.count);
260
+ });
261
+ // Calculate concentration risk using Herfindahl-Hirschman Index
262
+ // HHI = sum of squared market shares
263
+ let hhi = 0;
264
+ stats.topHolders.forEach(holder => {
265
+ const share = holder.percentage / 100;
266
+ hhi += share * share;
267
+ });
268
+ const concentrationRisk = Math.min(100, hhi * 100);
269
+ this.logInfo(`Distribution analyzed: ${stats.uniqueHolders} holders, concentration risk: ${concentrationRisk.toFixed(2)}`);
270
+ return {
271
+ totalHolders: stats.uniqueHolders,
272
+ distribution,
273
+ concentrationRisk,
274
+ };
275
+ }
276
+ catch (error) {
277
+ this.logError(`Failed to analyze holder distribution: ${error.message}`);
278
+ throw new Error(`Holder distribution analysis failed: ${error.message}`);
279
+ }
280
+ }
281
+ /**
282
+ * Get all NFTs owned by a specific wallet
283
+ * @param ownerAddress - Wallet address
284
+ * @returns Array of owned NFTs
285
+ */
286
+ async getNFTsByOwner(ownerAddress) {
287
+ this.logDebug(`Fetching NFTs for owner: ${ownerAddress}`);
288
+ try {
289
+ // Use DAS API if available (fastest method)
290
+ if (this.dasEndpoint) {
291
+ const response = await fetch(this.dasEndpoint, {
292
+ method: 'POST',
293
+ headers: { 'Content-Type': 'application/json' },
294
+ body: JSON.stringify({
295
+ jsonrpc: '2.0',
296
+ id: 'get-assets-by-owner',
297
+ method: 'getAssetsByOwner',
298
+ params: {
299
+ ownerAddress,
300
+ page: 1,
301
+ limit: 1000,
302
+ },
303
+ }),
304
+ });
305
+ const data = await response.json();
306
+ if (data.error) {
307
+ throw new Error(`DAS API error: ${data.error.message}`);
308
+ }
309
+ const assets = data.result?.items || [];
310
+ const nfts = assets.map((asset) => ({
311
+ mint: asset.id,
312
+ owner: ownerAddress,
313
+ metadata: {
314
+ name: asset.content?.metadata?.name || 'Unknown',
315
+ symbol: asset.content?.metadata?.symbol || '',
316
+ uri: asset.content?.json_uri || '',
317
+ sellerFeeBasisPoints: asset.royalty?.basis_points || 0,
318
+ },
319
+ collection: asset.grouping?.find((g) => g.group_key === 'collection')?.group_value,
320
+ verified: asset.grouping?.find((g) => g.group_key === 'collection')?.verified || false,
321
+ }));
322
+ this.logInfo(`Fetched ${nfts.length} NFTs for owner via DAS`);
323
+ return nfts;
324
+ }
325
+ // Fallback to Token Program queries (slower)
326
+ this.logInfo('Fetching NFTs via Token Program (no DAS API)');
327
+ const owner = new web3_js_1.PublicKey(ownerAddress);
328
+ const tokenAccounts = await this.connection.getParsedTokenAccountsByOwner(owner, {
329
+ programId: new web3_js_1.PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'),
330
+ });
331
+ // Filter for NFTs (amount = 1, decimals = 0)
332
+ const nftAccounts = tokenAccounts.value.filter(account => {
333
+ const parsed = account.account.data.parsed;
334
+ return parsed.info.tokenAmount.decimals === 0 &&
335
+ parsed.info.tokenAmount.amount === '1';
336
+ });
337
+ const nfts = nftAccounts.map(account => ({
338
+ mint: account.account.data.parsed.info.mint,
339
+ owner: ownerAddress,
340
+ metadata: {
341
+ name: 'Unknown', // Would require additional metadata fetch
342
+ symbol: '',
343
+ uri: '',
344
+ sellerFeeBasisPoints: 0,
345
+ },
346
+ verified: false,
347
+ }));
348
+ this.logInfo(`Fetched ${nfts.length} NFTs for owner via Token Program`);
349
+ return nfts;
350
+ }
351
+ catch (error) {
352
+ this.logError(`Failed to fetch NFTs by owner: ${error.message}`);
353
+ throw new Error(`Owner NFT fetch failed: ${error.message}`);
354
+ }
355
+ }
356
+ /**
357
+ * Health check - verify RPC and DAS API connectivity
358
+ * @returns True if services are accessible
359
+ */
360
+ async healthCheck() {
361
+ try {
362
+ // Check RPC connectivity
363
+ await this.connection.getLatestBlockhash();
364
+ // Check DAS API if configured
365
+ if (this.dasEndpoint) {
366
+ const response = await fetch(this.dasEndpoint, {
367
+ method: 'POST',
368
+ headers: { 'Content-Type': 'application/json' },
369
+ body: JSON.stringify({
370
+ jsonrpc: '2.0',
371
+ id: 'health-check',
372
+ method: 'getHealth',
373
+ params: [],
374
+ }),
375
+ });
376
+ if (!response.ok) {
377
+ this.logError(`DAS API health check failed: ${response.status}`);
378
+ return false;
379
+ }
380
+ }
381
+ return true;
382
+ }
383
+ catch (error) {
384
+ this.logError(`Health check failed: ${error.message}`);
385
+ return false;
386
+ }
387
+ }
388
+ // =========================================================================
389
+ // Private Methods - Logging
390
+ // =========================================================================
391
+ logDebug(message) {
392
+ if (this.logLevel === 'debug') {
393
+ console.log(`[MetaplexOnChainClient:DEBUG] ${message}`);
394
+ }
395
+ }
396
+ logInfo(message) {
397
+ if (this.logLevel === 'debug' || this.logLevel === 'info') {
398
+ console.log(`[MetaplexOnChainClient:INFO] ${message}`);
399
+ }
400
+ }
401
+ logError(message) {
402
+ if (this.logLevel !== 'none') {
403
+ console.error(`[MetaplexOnChainClient:ERROR] ${message}`);
404
+ }
405
+ }
406
+ }
407
+ exports.MetaplexOnChainClient = MetaplexOnChainClient;
408
+ //# sourceMappingURL=metaplex-onchain-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metaplex-onchain-client.js","sourceRoot":"","sources":["../../../../src/nft/clients/metaplex-onchain-client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Tensor API Client
3
+ * Production-ready integration with Tensor marketplace API
4
+ * @see https://docs.tensor.trade/tensorswap-api
5
+ */
6
+ import { TensorCollectionStats, TensorListing, TensorSale } from '../types.nft';
7
+ export interface TensorClientConfig {
8
+ baseUrl?: string;
9
+ apiKey?: string;
10
+ rateLimit?: number;
11
+ timeout?: number;
12
+ fetch?: typeof fetch;
13
+ logLevel?: 'debug' | 'info' | 'error' | 'none';
14
+ }
15
+ /**
16
+ * TensorClient - Tensor API integration
17
+ * Handles rate limiting, error handling, and response validation
18
+ */
19
+ export declare class TensorClient {
20
+ private readonly baseUrl;
21
+ private readonly apiKey?;
22
+ private readonly timeout;
23
+ private readonly fetchImpl;
24
+ private readonly logLevel;
25
+ private readonly rateLimiter;
26
+ constructor(config?: TensorClientConfig);
27
+ /**
28
+ * Get collection statistics from Tensor
29
+ * @param slug - Collection slug (e.g. "mad_lads")
30
+ * @returns Collection statistics including floor price, volume, sales
31
+ */
32
+ getCollectionStats(slug: string): Promise<TensorCollectionStats>;
33
+ /**
34
+ * Get current floor price for a collection
35
+ * @param slug - Collection slug
36
+ * @returns Floor price in lamports
37
+ */
38
+ getFloorPrice(slug: string): Promise<number>;
39
+ /**
40
+ * Get active listings for a collection
41
+ * @param slug - Collection slug
42
+ * @param options - Pagination and filter options
43
+ * @returns Array of active listings
44
+ */
45
+ getListings(slug: string, options?: {
46
+ limit?: number;
47
+ page?: number;
48
+ sortBy?: 'price' | 'listedAt';
49
+ sortDirection?: 'asc' | 'desc';
50
+ }): Promise<TensorListing[]>;
51
+ /**
52
+ * Get recent sales for a collection
53
+ * @param slug - Collection slug
54
+ * @param options - Pagination options
55
+ * @returns Array of recent sales
56
+ */
57
+ getSales(slug: string, options?: {
58
+ limit?: number;
59
+ page?: number;
60
+ }): Promise<TensorSale[]>;
61
+ /**
62
+ * Get listing for a specific NFT mint
63
+ * @param mint - NFT mint address
64
+ * @returns Listing information or null if not listed
65
+ */
66
+ getMintListing(mint: string): Promise<TensorListing | null>;
67
+ /**
68
+ * Health check - verify Tensor API is accessible
69
+ * @returns True if API is healthy
70
+ */
71
+ healthCheck(): Promise<boolean>;
72
+ private makeRequest;
73
+ private enforceRateLimit;
74
+ private isNotFoundError;
75
+ private logDebug;
76
+ private logInfo;
77
+ private logError;
78
+ }
79
+ //# sourceMappingURL=tensor-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tensor-client.d.ts","sourceRoot":"","sources":["../../../../src/nft/clients/tensor-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,UAAU,EAGX,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,kBAAkB;IACjC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,CAAC;CAChD;AAOD;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsC;IAC/D,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;gBAE9B,MAAM,CAAC,EAAE,kBAAkB;IA0BvC;;;;OAIG;IACG,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAUtE;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKlD;;;;;OAKG;IACG,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;QAC9B,aAAa,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;KAChC,GACA,OAAO,CAAC,aAAa,EAAE,CAAC;IAgB3B;;;;;OAKG;IACG,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE;QACR,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,GACA,OAAO,CAAC,UAAU,EAAE,CAAC;IAcxB;;;;OAIG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAiBjE;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAevB,WAAW;YA6DX,gBAAgB;IAa9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;CAKjB"}