@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,489 @@
1
+ /**
2
+ * @file nft/advanced-features.ts
3
+ * @module SolanaNFT
4
+ * @author Keepeeto
5
+ * @license MIT
6
+ * @description Advanced NFT features: collection analytics, marketplace aggregation,
7
+ * AI-powered rarity calculation, and investment recommendations.
8
+ */
9
+ import { EventEmitter } from 'eventemitter3';
10
+ import { NFTError } from '../types.js';
11
+ /**
12
+ * Collection Analytics Engine
13
+ * Provides deep analytics for NFT collections
14
+ */
15
+ export class CollectionAnalytics extends EventEmitter {
16
+ client;
17
+ cache = new Map();
18
+ cacheTTL = 300_000; // 5 minutes
19
+ constructor(client) {
20
+ super();
21
+ this.client = client;
22
+ }
23
+ /**
24
+ * Get comprehensive collection statistics
25
+ */
26
+ async getStats(collectionAddress, options) {
27
+ try {
28
+ this.emit('collection-stats-start', { collection: collectionAddress });
29
+ // Check cache
30
+ if (options?.useCache !== false) {
31
+ const cached = this.cache.get(collectionAddress);
32
+ if (cached && Date.now() - cached.timestamp < this.cacheTTL) {
33
+ this.emit('collection-stats-cached', { collection: collectionAddress });
34
+ return cached.stats;
35
+ }
36
+ }
37
+ // Fetch fresh stats
38
+ const stats = await this.fetchCollectionStats(collectionAddress);
39
+ // Update cache
40
+ this.cache.set(collectionAddress, {
41
+ stats,
42
+ timestamp: Date.now(),
43
+ });
44
+ this.emit('collection-stats-complete', stats);
45
+ return stats;
46
+ }
47
+ catch (error) {
48
+ this.emit('collection-stats-error', error);
49
+ throw new NFTError(`Failed to get collection stats: ${error.message}`, 'collection', collectionAddress, error);
50
+ }
51
+ }
52
+ /**
53
+ * Analyze collection trends
54
+ */
55
+ async analyzeTrends(collectionAddress) {
56
+ try {
57
+ const stats = await this.getStats(collectionAddress);
58
+ const volumeChange = this.calculatePercentChange(stats.volume24h, stats.volume7d / 7);
59
+ const priceChange = this.calculatePercentChange(stats.floorPrice, stats.priceHistory[stats.priceHistory.length - 2]?.floorPrice || stats.floorPrice);
60
+ const momentum = this.calculateMomentum(stats);
61
+ const sentiment = this.determineSentiment(volumeChange, priceChange, momentum);
62
+ const trends = {
63
+ trending: priceChange > 5 ? 'up' : priceChange < -5 ? 'down' : 'stable',
64
+ volumeChange24h: volumeChange,
65
+ priceChange24h: priceChange,
66
+ momentum,
67
+ sentiment,
68
+ signals: this.generateSignals(stats, volumeChange, priceChange),
69
+ };
70
+ this.emit('trends-analyzed', trends);
71
+ return trends;
72
+ }
73
+ catch (error) {
74
+ throw new NFTError(`Failed to analyze trends: ${error.message}`, 'collection', collectionAddress, error);
75
+ }
76
+ }
77
+ /**
78
+ * Compare multiple collections
79
+ */
80
+ async compareCollections(collectionAddresses) {
81
+ const collections = await Promise.all(collectionAddresses.map(async (addr) => ({
82
+ ...(await this.getStats(addr)),
83
+ trends: await this.analyzeTrends(addr),
84
+ })));
85
+ const rankings = {
86
+ byVolume: [...collections]
87
+ .sort((a, b) => b.volume24h - a.volume24h)
88
+ .map((c) => c.collectionAddress),
89
+ byFloorPrice: [...collections]
90
+ .sort((a, b) => b.floorPrice - a.floorPrice)
91
+ .map((c) => c.collectionAddress),
92
+ byMomentum: [...collections]
93
+ .sort((a, b) => b.trends.momentum - a.trends.momentum)
94
+ .map((c) => c.collectionAddress),
95
+ };
96
+ return { collections, rankings };
97
+ }
98
+ // Private helpers
99
+ async fetchCollectionStats(collectionAddress) {
100
+ // Real marketplace integration using Tensor and Magic Eden
101
+ const errors = [];
102
+ let tensorStats = null;
103
+ let magicEdenStats = null;
104
+ // Try Tensor API first
105
+ try {
106
+ const TensorClient = (await import('./clients/tensor-client.js')).TensorClient;
107
+ const tensorClient = new TensorClient({
108
+ logLevel: 'error',
109
+ timeout: 5000,
110
+ });
111
+ tensorStats = await tensorClient.getCollectionStats(collectionAddress);
112
+ }
113
+ catch (error) {
114
+ errors.push(`Tensor: ${error.message}`);
115
+ }
116
+ // Try Magic Eden API as fallback or aggregation
117
+ try {
118
+ const MagicEdenClient = (await import('./clients/magic-eden-client.js')).MagicEdenClient;
119
+ const magicEdenClient = new MagicEdenClient({
120
+ logLevel: 'error',
121
+ timeout: 5000,
122
+ });
123
+ magicEdenStats = await magicEdenClient.getCollectionStats(collectionAddress);
124
+ }
125
+ catch (error) {
126
+ errors.push(`MagicEden: ${error.message}`);
127
+ }
128
+ // If both failed, throw error
129
+ if (!tensorStats && !magicEdenStats) {
130
+ throw new Error(`Failed to fetch collection stats from all marketplaces: ${errors.join(', ')}`);
131
+ }
132
+ // Aggregate data from available sources (prefer Tensor for Solana NFTs)
133
+ const stats = {
134
+ collectionAddress,
135
+ totalSupply: tensorStats?.totalSupply || magicEdenStats?.totalItems || 10000,
136
+ holders: tensorStats?.totalSupply || 0, // Tensor doesn't provide holders, estimate
137
+ floorPrice: tensorStats
138
+ ? tensorStats.floorPrice / 1e9 // Convert lamports to SOL
139
+ : magicEdenStats?.floorPrice || 0,
140
+ volume24h: tensorStats
141
+ ? tensorStats.volume24h / 1e9
142
+ : magicEdenStats?.volume24hr || 0,
143
+ volume7d: tensorStats
144
+ ? tensorStats.volume7d / 1e9
145
+ : (magicEdenStats?.volume24hr || 0) * 7, // Estimate
146
+ volume30d: tensorStats
147
+ ? tensorStats.volume30d / 1e9
148
+ : (magicEdenStats?.volume24hr || 0) * 30, // Estimate
149
+ avgPrice24h: tensorStats
150
+ ? (tensorStats.avgPrice24h || tensorStats.floorPrice) / 1e9
151
+ : magicEdenStats?.avgPrice24hr || 0,
152
+ sales24h: tensorStats?.sales24h || 0,
153
+ listed: tensorStats?.numListed || magicEdenStats?.listedCount || 0,
154
+ listedPercent: 0, // Calculate below
155
+ uniqueHolders: 0, // Not available from APIs
156
+ holderDistribution: {
157
+ whales: 0, // Requires additional on-chain analysis
158
+ medium: 0,
159
+ retail: 0,
160
+ },
161
+ priceHistory: [], // Would need historical API calls
162
+ topSales: [], // Would need sales API calls
163
+ };
164
+ // Calculate listed percentage
165
+ if (stats.totalSupply > 0) {
166
+ stats.listedPercent = (stats.listed / stats.totalSupply) * 100;
167
+ }
168
+ return stats;
169
+ }
170
+ calculatePercentChange(current, previous) {
171
+ if (previous === 0)
172
+ return 0;
173
+ return ((current - previous) / previous) * 100;
174
+ }
175
+ calculateMomentum(stats) {
176
+ const volumeTrend = stats.volume24h / (stats.volume7d / 7);
177
+ const priceTrend = stats.avgPrice24h / stats.floorPrice;
178
+ const salesTrend = stats.sales24h / 100; // normalized
179
+ return Math.min(100, Math.max(-100, (volumeTrend + priceTrend + salesTrend - 3) * 50));
180
+ }
181
+ determineSentiment(volumeChange, priceChange, momentum) {
182
+ const score = volumeChange * 0.3 + priceChange * 0.5 + momentum * 0.2;
183
+ if (score > 15)
184
+ return 'bullish';
185
+ if (score < -15)
186
+ return 'bearish';
187
+ return 'neutral';
188
+ }
189
+ generateSignals(stats, volumeChange, priceChange) {
190
+ const signals = [];
191
+ if (volumeChange > 50)
192
+ signals.push('🔥 High volume spike detected');
193
+ if (priceChange > 20)
194
+ signals.push('📈 Strong price momentum');
195
+ if (stats.listedPercent < 5)
196
+ signals.push('⚠️ Low supply on market');
197
+ if (stats.sales24h > 200)
198
+ signals.push('⚡ High trading activity');
199
+ if (stats.holderDistribution.whales > 10)
200
+ signals.push('🐋 Whale concentration risk');
201
+ return signals;
202
+ }
203
+ }
204
+ /**
205
+ * Marketplace Aggregator
206
+ * Aggregates listings from multiple NFT marketplaces
207
+ */
208
+ export class MarketplaceAggregator extends EventEmitter {
209
+ client;
210
+ constructor(client) {
211
+ super();
212
+ this.client = client;
213
+ }
214
+ /**
215
+ * Find all listings for an NFT across marketplaces
216
+ */
217
+ async findListings(mint, options) {
218
+ try {
219
+ this.emit('listings-search-start', { mint });
220
+ const marketplaces = options?.marketplaces || [
221
+ 'magic-eden',
222
+ 'tensor',
223
+ 'solanart',
224
+ ];
225
+ // Fetch from all marketplaces in parallel
226
+ const listingPromises = marketplaces.map((mp) => this.fetchFromMarketplace(mp, mint).catch(() => []));
227
+ const results = await Promise.all(listingPromises);
228
+ const allListings = results.flat();
229
+ // Filter by max price if specified
230
+ const filtered = options?.maxPrice
231
+ ? allListings.filter((l) => l.price <= options.maxPrice)
232
+ : allListings;
233
+ // Sort by price ascending
234
+ filtered.sort((a, b) => a.price - b.price);
235
+ this.emit('listings-search-complete', { found: filtered.length });
236
+ return filtered;
237
+ }
238
+ catch (error) {
239
+ throw new NFTError(`Failed to find listings: ${error.message}`, 'marketplace', mint, error);
240
+ }
241
+ }
242
+ /**
243
+ * Compare floor prices across marketplaces
244
+ */
245
+ async compareFloorPrices(mint) {
246
+ const listings = await this.findListings(mint);
247
+ if (listings.length === 0) {
248
+ throw new NFTError('No listings found', 'marketplace', mint);
249
+ }
250
+ const pricesByMarketplace = new Map();
251
+ for (const listing of listings) {
252
+ const existing = pricesByMarketplace.get(listing.marketplace);
253
+ if (!existing || listing.price < existing.price) {
254
+ pricesByMarketplace.set(listing.marketplace, {
255
+ price: listing.price,
256
+ url: listing.listingUrl,
257
+ });
258
+ }
259
+ }
260
+ const prices = Array.from(pricesByMarketplace.entries()).map(([mp, data]) => ({
261
+ marketplace: mp,
262
+ price: data.price,
263
+ url: data.url,
264
+ }));
265
+ prices.sort((a, b) => a.price - b.price);
266
+ const lowestPrice = prices[0].price;
267
+ const highestPrice = prices[prices.length - 1].price;
268
+ const priceDifference = highestPrice - lowestPrice;
269
+ const savings = (priceDifference / highestPrice) * 100;
270
+ return {
271
+ mint,
272
+ prices,
273
+ lowestPrice,
274
+ bestMarketplace: prices[0].marketplace,
275
+ priceDifference,
276
+ savings,
277
+ };
278
+ }
279
+ async fetchFromMarketplace(marketplace, mint) {
280
+ const listings = [];
281
+ try {
282
+ if (marketplace === 'tensor') {
283
+ const TensorClient = (await import('./clients/tensor-client.js')).TensorClient;
284
+ const tensorClient = new TensorClient({ logLevel: 'error', timeout: 5000 });
285
+ const tensorListing = await tensorClient.getMintListing(mint);
286
+ if (tensorListing) {
287
+ listings.push({
288
+ marketplace: 'tensor',
289
+ mint: tensorListing.mint,
290
+ price: tensorListing.price / 1e9, // Convert lamports to SOL
291
+ seller: tensorListing.seller,
292
+ listingUrl: tensorListing.url || `https://tensor.trade/item/${mint}`,
293
+ timestamp: tensorListing.listedAt,
294
+ });
295
+ }
296
+ }
297
+ else if (marketplace === 'magic-eden') {
298
+ const MagicEdenClient = (await import('./clients/magic-eden-client.js')).MagicEdenClient;
299
+ const magicEdenClient = new MagicEdenClient({ logLevel: 'error', timeout: 5000 });
300
+ const magicEdenListing = await magicEdenClient.getTokenListing(mint);
301
+ if (magicEdenListing) {
302
+ listings.push({
303
+ marketplace: 'magic-eden',
304
+ mint: magicEdenListing.tokenMint,
305
+ price: magicEdenListing.price / 1e9, // Convert lamports to SOL
306
+ seller: magicEdenListing.seller,
307
+ listingUrl: `https://magiceden.io/item-details/${mint}`,
308
+ timestamp: Date.now() / 1000, // Magic Eden doesn't provide timestamp
309
+ });
310
+ }
311
+ }
312
+ // Future: Add solanart, opensea, hyperspace integrations
313
+ }
314
+ catch (error) {
315
+ // Log error but don't throw - allow other marketplaces to succeed
316
+ console.error(`Failed to fetch from ${marketplace}: ${error.message}`);
317
+ }
318
+ return listings;
319
+ }
320
+ }
321
+ /**
322
+ * AI Rarity Calculator
323
+ * Advanced rarity calculation with multiple algorithms
324
+ */
325
+ export class AIRarityCalculator extends EventEmitter {
326
+ client;
327
+ config;
328
+ constructor(client, config) {
329
+ super();
330
+ this.client = client;
331
+ this.config = {
332
+ algorithm: config?.algorithm || 'hybrid',
333
+ weights: {
334
+ traitRarity: 0.6,
335
+ traitCount: 0.2,
336
+ aesthetic: 0.2,
337
+ ...config?.weights,
338
+ },
339
+ };
340
+ }
341
+ /**
342
+ * Calculate rarity score for an NFT
343
+ */
344
+ async calculateRarity(mint, collectionAddress) {
345
+ try {
346
+ this.emit('rarity-calculation-start', { mint });
347
+ // Fetch NFT metadata and collection data
348
+ const metadata = await this.fetchMetadata(mint);
349
+ const collectionData = collectionAddress
350
+ ? await this.fetchCollectionTraits(collectionAddress)
351
+ : null;
352
+ // Calculate using selected algorithm
353
+ const score = await this.calculateWithAlgorithm(metadata, collectionData, this.config.algorithm);
354
+ this.emit('rarity-calculation-complete', score);
355
+ return score;
356
+ }
357
+ catch (error) {
358
+ throw new NFTError(`Failed to calculate rarity: ${error.message}`, 'rarity', mint, error);
359
+ }
360
+ }
361
+ /**
362
+ * Batch calculate rarity for multiple NFTs
363
+ */
364
+ async batchCalculateRarity(mints, collectionAddress) {
365
+ const results = await Promise.all(mints.map((mint) => this.calculateRarity(mint, collectionAddress)));
366
+ // Assign ranks
367
+ results.sort((a, b) => b.overallRarity - a.overallRarity);
368
+ results.forEach((result, index) => {
369
+ result.rank = index + 1;
370
+ });
371
+ return results;
372
+ }
373
+ async fetchMetadata(mint) {
374
+ // Placeholder - integrate with actual metadata fetching
375
+ return {
376
+ mint,
377
+ attributes: [
378
+ { trait_type: 'Background', value: 'Blue' },
379
+ { trait_type: 'Body', value: 'Gold' },
380
+ ],
381
+ };
382
+ }
383
+ async fetchCollectionTraits(collectionAddress) {
384
+ // Placeholder - fetch collection-wide trait distribution
385
+ return {};
386
+ }
387
+ async calculateWithAlgorithm(metadata, collectionData, algorithm) {
388
+ // Simplified calculation
389
+ const statisticalRarity = Math.random() * 100;
390
+ const aiEnhancedRarity = Math.random() * 100;
391
+ const overallRarity = statisticalRarity * 0.7 + aiEnhancedRarity * 0.3;
392
+ return {
393
+ mint: metadata.mint,
394
+ overallRarity,
395
+ traits: [],
396
+ statisticalRarity,
397
+ aiEnhancedRarity,
398
+ valueEstimate: overallRarity * 0.05, // SOL
399
+ };
400
+ }
401
+ }
402
+ /**
403
+ * AI Investment Advisor
404
+ * Provides data-driven investment recommendations for NFTs
405
+ */
406
+ export class AIInvestmentAdvisor extends EventEmitter {
407
+ client;
408
+ rarityCalc;
409
+ collectionAnalytics;
410
+ constructor(client) {
411
+ super();
412
+ this.client = client;
413
+ this.rarityCalc = new AIRarityCalculator(client);
414
+ this.collectionAnalytics = new CollectionAnalytics(client);
415
+ }
416
+ /**
417
+ * Get investment recommendation for an NFT
418
+ */
419
+ async getRecommendation(mint, collectionAddress, currentPrice) {
420
+ try {
421
+ this.emit('recommendation-start', { mint });
422
+ // Gather data
423
+ const [rarity, collectionStats, trends] = await Promise.all([
424
+ this.rarityCalc.calculateRarity(mint, collectionAddress),
425
+ this.collectionAnalytics.getStats(collectionAddress),
426
+ this.collectionAnalytics.analyzeTrends(collectionAddress),
427
+ ]);
428
+ // Calculate metrics
429
+ const metrics = {
430
+ rarityScore: rarity.overallRarity,
431
+ volumeTrend: trends.volumeChange24h,
432
+ priceMomentum: trends.priceChange24h,
433
+ holderQuality: this.calculateHolderQuality(collectionStats),
434
+ };
435
+ // Determine recommendation
436
+ const recommendation = this.determineRecommendation(metrics, currentPrice, collectionStats.floorPrice, rarity);
437
+ this.emit('recommendation-complete', recommendation);
438
+ return recommendation;
439
+ }
440
+ catch (error) {
441
+ throw new NFTError(`Failed to generate recommendation: ${error.message}`, 'rarity', mint, error);
442
+ }
443
+ }
444
+ calculateHolderQuality(stats) {
445
+ const uniqueRatio = stats.uniqueHolders / stats.totalSupply;
446
+ const whaleRatio = stats.holderDistribution.whales / stats.holders;
447
+ return Math.min(100, uniqueRatio * 70 + (1 - whaleRatio) * 30);
448
+ }
449
+ determineRecommendation(metrics, currentPrice, floorPrice, rarity) {
450
+ const overallScore = metrics.rarityScore * 0.3 +
451
+ metrics.volumeTrend * 0.2 +
452
+ metrics.priceMomentum * 0.2 +
453
+ metrics.holderQuality * 0.3;
454
+ let recommendation = 'hold';
455
+ let targetPrice = currentPrice;
456
+ const reasoning = [];
457
+ const risks = [];
458
+ if (overallScore > 70) {
459
+ recommendation = 'strong-buy';
460
+ targetPrice = currentPrice * 1.5;
461
+ reasoning.push('Exceptional rarity and strong market momentum');
462
+ }
463
+ else if (overallScore > 50) {
464
+ recommendation = 'buy';
465
+ targetPrice = currentPrice * 1.2;
466
+ reasoning.push('Good fundamentals with positive trends');
467
+ }
468
+ else if (overallScore < 30) {
469
+ recommendation = 'sell';
470
+ targetPrice = currentPrice * 0.8;
471
+ reasoning.push('Weak metrics suggest downside risk');
472
+ }
473
+ if (currentPrice > floorPrice * 1.5) {
474
+ risks.push('Priced significantly above floor');
475
+ }
476
+ return {
477
+ mint: rarity.mint,
478
+ collectionAddress: '',
479
+ recommendation,
480
+ confidence: Math.min(95, overallScore),
481
+ targetPrice,
482
+ reasoning,
483
+ metrics,
484
+ risks,
485
+ timeHorizon: 'medium',
486
+ };
487
+ }
488
+ }
489
+ //# sourceMappingURL=advanced-features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"advanced-features.js","sourceRoot":"","sources":["../../../src/nft/advanced-features.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Marketplace Clients Index
3
+ * Exports all marketplace API clients and on-chain analysis clients
4
+ */
5
+ export { TensorClient, type TensorClientConfig } from './tensor-client';
6
+ export { MagicEdenClient, type MagicEdenClientConfig } from './magic-eden-client';
7
+ export { MetaplexOnChainClient, type MetaplexOnChainConfig, type OnChainCollectionMetadata, type OnChainCollectionStats, type OnChainNFT, } from './metaplex-onchain-client';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/nft/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,KAAK,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,yBAAyB,EAC9B,KAAK,sBAAsB,EAC3B,KAAK,UAAU,GAChB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Marketplace Clients Index
3
+ * Exports all marketplace API clients and on-chain analysis clients
4
+ */
5
+ export { TensorClient } from './tensor-client.js';
6
+ export { MagicEdenClient } from './magic-eden-client.js';
7
+ export { MetaplexOnChainClient, } from './metaplex-onchain-client.js';
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/nft/clients/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAA2B,MAAM,iBAAiB,CAAC;AACxE,OAAO,EAAE,eAAe,EAA8B,MAAM,qBAAqB,CAAC;AAClF,OAAO,EACL,qBAAqB,GAKtB,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,101 @@
1
+ /**
2
+ * Magic Eden API Client
3
+ * Integration with Magic Eden marketplace API
4
+ * @see https://api.magiceden.dev/
5
+ * @see https://docs.magiceden.io/
6
+ */
7
+ import { MagicEdenCollectionStats, MagicEdenCollection, MagicEdenListing, MagicEdenActivity } from '../types.nft';
8
+ export interface MagicEdenClientConfig {
9
+ baseUrl?: string;
10
+ apiKey?: string;
11
+ rateLimit?: number;
12
+ timeout?: number;
13
+ fetch?: typeof fetch;
14
+ logLevel?: 'debug' | 'info' | 'error' | 'none';
15
+ }
16
+ /**
17
+ * MagicEdenClient - Production-ready Magic Eden API integration
18
+ * Handles rate limiting, error handling, and response validation
19
+ */
20
+ export declare class MagicEdenClient {
21
+ private readonly baseUrl;
22
+ private readonly apiKey?;
23
+ private readonly timeout;
24
+ private readonly fetchImpl;
25
+ private readonly logLevel;
26
+ private readonly rateLimiter;
27
+ constructor(config?: MagicEdenClientConfig);
28
+ /**
29
+ * Get collection statistics from Magic Eden
30
+ * @param symbol - Collection symbol (e.g. "okay_bears")
31
+ * @returns Collection statistics including floor price, volume
32
+ */
33
+ getCollectionStats(symbol: string): Promise<MagicEdenCollectionStats>;
34
+ /**
35
+ * Get collection information
36
+ * @param symbol - Collection symbol
37
+ * @returns Collection metadata and info
38
+ */
39
+ getCollectionInfo(symbol: string): Promise<MagicEdenCollection>;
40
+ /**
41
+ * Get current floor price for a collection
42
+ * @param symbol - Collection symbol
43
+ * @returns Floor price in SOL (not lamports)
44
+ */
45
+ getFloorPrice(symbol: string): Promise<number>;
46
+ /**
47
+ * Get active listings for a collection
48
+ * @param symbol - Collection symbol
49
+ * @param options - Pagination options
50
+ * @returns Array of active listings
51
+ */
52
+ getListings(symbol: string, options?: {
53
+ offset?: number;
54
+ limit?: number;
55
+ }): Promise<MagicEdenListing[]>;
56
+ /**
57
+ * Get collection activities (sales, listings, etc.)
58
+ * @param symbol - Collection symbol
59
+ * @param options - Pagination options
60
+ * @returns Array of activities
61
+ */
62
+ getCollectionActivities(symbol: string, options?: {
63
+ offset?: number;
64
+ limit?: number;
65
+ }): Promise<MagicEdenActivity[]>;
66
+ /**
67
+ * Get listing for a specific NFT token
68
+ * @param mintAddress - NFT mint address
69
+ * @returns Listing information or null if not listed
70
+ */
71
+ getTokenListing(mintAddress: string): Promise<MagicEdenListing | null>;
72
+ /**
73
+ * Get recent sales for a collection
74
+ * @param symbol - Collection symbol
75
+ * @param options - Pagination options
76
+ * @returns Array of recent sales (filtered buyNow activities)
77
+ */
78
+ getSales(symbol: string, options?: {
79
+ offset?: number;
80
+ limit?: number;
81
+ }): Promise<MagicEdenActivity[]>;
82
+ /**
83
+ * Search for collections by name
84
+ * @param query - Search query
85
+ * @param limit - Maximum results
86
+ * @returns Array of matching collections
87
+ */
88
+ searchCollections(query: string, limit?: number): Promise<MagicEdenCollection[]>;
89
+ /**
90
+ * Health check - verify Magic Eden API is accessible
91
+ * @returns True if API is healthy
92
+ */
93
+ healthCheck(): Promise<boolean>;
94
+ private makeRequest;
95
+ private enforceRateLimit;
96
+ private isNotFoundError;
97
+ private logDebug;
98
+ private logInfo;
99
+ private logError;
100
+ }
101
+ //# sourceMappingURL=magic-eden-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"magic-eden-client.d.ts","sourceRoot":"","sources":["../../../../src/nft/clients/magic-eden-client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,wBAAwB,EACxB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,qBAAqB;IACpC,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,eAAe;IAC1B,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,qBAAqB;IA0B1C;;;;OAIG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAU3E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAUrE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKpD;;;;;OAKG;IACG,WAAW,CACf,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAc9B;;;;;OAKG;IACG,uBAAuB,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAc/B;;;;OAIG;IACG,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAwB5E;;;;;OAKG;IACG,QAAQ,CACZ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,iBAAiB,EAAE,CAAC;IAM/B;;;;;OAKG;IACG,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAelF;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;YAevB,WAAW;YA4DX,gBAAgB;IAa9B,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,OAAO;IAMf,OAAO,CAAC,QAAQ;CAKjB"}