@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,404 @@
1
+ /**
2
+ * Metaplex On-Chain Client
3
+ * Direct on-chain NFT collection analysis using Solana RPC and DAS API
4
+ * Alternative to marketplace APIs for decentralized, trustless data
5
+ * @see https://developers.metaplex.com/
6
+ */
7
+ import { PublicKey } from '@solana/web3.js';
8
+ import { createBaseUmi } from '@metaplex-foundation/umi';
9
+ import { publicKey as umiPublicKey } from '@metaplex-foundation/umi';
10
+ import { fetchDigitalAsset, mplTokenMetadata, } from '@metaplex-foundation/mpl-token-metadata';
11
+ /**
12
+ * MetaplexOnChainClient - Direct on-chain NFT analysis
13
+ *
14
+ * Provides trustless, decentralized collection statistics without
15
+ * relying on centralized marketplace APIs. Uses Metaplex standards,
16
+ * Solana RPC queries, and optional DAS API for faster bulk operations.
17
+ *
18
+ * **Use Cases:**
19
+ * - Collections not listed on major marketplaces
20
+ * - Trustless verification of collection data
21
+ * - Real-time holder distribution analysis
22
+ * - Independent supply and holder calculations
23
+ *
24
+ * **Trade-offs:**
25
+ * - Slower than marketplace APIs (requires multiple RPC calls)
26
+ * - No historical price data (no marketplace context)
27
+ * - No marketplace-specific metrics (listings, sales, volume)
28
+ * - Higher RPC costs for large collections (1000+ NFTs)
29
+ *
30
+ * **Recommended:** Use with Helius DAS API for production deployments
31
+ */
32
+ export class MetaplexOnChainClient {
33
+ connection;
34
+ rpcEndpoint;
35
+ timeout;
36
+ logLevel;
37
+ dasEndpoint;
38
+ umi;
39
+ constructor(config) {
40
+ this.connection = config.connection;
41
+ this.rpcEndpoint = config.rpcEndpoint || this.connection.rpcEndpoint;
42
+ this.timeout = config.timeout || 30000;
43
+ this.logLevel = config.logLevel || 'error';
44
+ this.dasEndpoint = config.dasEndpoint;
45
+ // Initialize Umi with Metaplex Token Metadata plugin
46
+ this.umi = createBaseUmi();
47
+ this.umi.use(mplTokenMetadata());
48
+ }
49
+ /**
50
+ * Get collection metadata from on-chain data using Metaplex standards
51
+ * @param collectionMint - Collection mint address
52
+ * @returns Collection metadata parsed from Metaplex Token Metadata
53
+ */
54
+ async getCollectionMetadata(collectionMint) {
55
+ this.logDebug(`Fetching on-chain metadata for collection: ${collectionMint}`);
56
+ try {
57
+ const mint = umiPublicKey(collectionMint);
58
+ // Fetch digital asset using Metaplex library
59
+ const digitalAsset = await fetchDigitalAsset(this.umi, mint);
60
+ // Extract metadata
61
+ const metadata = digitalAsset.metadata;
62
+ // Helper to unwrap Option types from Metaplex
63
+ const unwrapOption = (option) => {
64
+ if (!option || option.__option === 'None')
65
+ return undefined;
66
+ return option.__option === 'Some' ? option.value : option;
67
+ };
68
+ const creators = unwrapOption(metadata.creators) || [];
69
+ const collection = unwrapOption(metadata.collection);
70
+ const result = {
71
+ collectionMint,
72
+ name: metadata.name,
73
+ symbol: metadata.symbol,
74
+ uri: metadata.uri,
75
+ updateAuthority: metadata.updateAuthority.toString(),
76
+ creators: creators.map((creator) => ({
77
+ address: creator.address.toString(),
78
+ verified: creator.verified,
79
+ share: creator.share,
80
+ })),
81
+ sellerFeeBasisPoints: metadata.sellerFeeBasisPoints,
82
+ isMutable: metadata.isMutable,
83
+ collection: collection ? {
84
+ verified: collection.verified,
85
+ key: collection.key.toString(),
86
+ } : undefined,
87
+ };
88
+ this.logInfo(`Metadata fetched: ${result.name} (${result.symbol})`);
89
+ return result;
90
+ }
91
+ catch (error) {
92
+ this.logError(`Failed to fetch collection metadata: ${error.message}`);
93
+ throw new Error(`On-chain metadata fetch failed: ${error.message}`);
94
+ }
95
+ }
96
+ /**
97
+ * Get all NFTs in a collection by creator
98
+ * Uses DAS API if available (recommended), falls back to RPC
99
+ * @param creatorAddress - Creator/collection address
100
+ * @param options - Query options
101
+ * @returns Array of NFTs with owner and metadata
102
+ */
103
+ async getCollectionNFTs(creatorAddress, options) {
104
+ this.logDebug(`Fetching NFTs for creator: ${creatorAddress}`);
105
+ try {
106
+ // Use DAS API if available (much faster for large collections)
107
+ if (this.dasEndpoint) {
108
+ return await this.getCollectionNFTsViaDAS(creatorAddress, options);
109
+ }
110
+ // Fallback to RPC queries (slower, more expensive)
111
+ this.logInfo('WARNING: Fetching via RPC - slow for large collections. Consider using DAS API (Helius)');
112
+ // For production: Implement getProgramAccounts with filters
113
+ // This requires significant RPC calls and is expensive
114
+ throw new Error('RPC-only collection fetching not implemented. Please provide dasEndpoint for production use.');
115
+ }
116
+ catch (error) {
117
+ this.logError(`Failed to fetch collection NFTs: ${error.message}`);
118
+ throw new Error(`On-chain NFT fetch failed: ${error.message}`);
119
+ }
120
+ }
121
+ /**
122
+ * Get NFTs via DAS (Digital Asset Standard) API - RECOMMENDED
123
+ * Supports Helius, Triton, and other DAS-compatible providers
124
+ * @private
125
+ */
126
+ async getCollectionNFTsViaDAS(creatorAddress, options) {
127
+ if (!this.dasEndpoint) {
128
+ throw new Error('DAS endpoint not configured');
129
+ }
130
+ this.logDebug(`Fetching NFTs via DAS API: ${creatorAddress}`);
131
+ try {
132
+ const response = await fetch(this.dasEndpoint, {
133
+ method: 'POST',
134
+ headers: { 'Content-Type': 'application/json' },
135
+ body: JSON.stringify({
136
+ jsonrpc: '2.0',
137
+ id: 'get-assets-by-creator',
138
+ method: 'getAssetsByCreator',
139
+ params: {
140
+ creatorAddress,
141
+ onlyVerified: true,
142
+ page: options?.offset ? Math.floor(options.offset / 1000) + 1 : 1,
143
+ limit: options?.limit || 1000,
144
+ },
145
+ }),
146
+ });
147
+ const data = await response.json();
148
+ if (data.error) {
149
+ throw new Error(`DAS API error: ${data.error.message}`);
150
+ }
151
+ const assets = data.result?.items || [];
152
+ const nfts = assets.map((asset) => ({
153
+ mint: asset.id,
154
+ owner: asset.ownership?.owner || 'unknown',
155
+ metadata: {
156
+ name: asset.content?.metadata?.name || 'Unknown',
157
+ symbol: asset.content?.metadata?.symbol || '',
158
+ uri: asset.content?.json_uri || '',
159
+ sellerFeeBasisPoints: asset.royalty?.basis_points || 0,
160
+ },
161
+ collection: asset.grouping?.find((g) => g.group_key === 'collection')?.group_value,
162
+ verified: asset.grouping?.find((g) => g.group_key === 'collection')?.verified || false,
163
+ }));
164
+ this.logInfo(`Fetched ${nfts.length} NFTs via DAS API (total in response)`);
165
+ return nfts;
166
+ }
167
+ catch (error) {
168
+ this.logError(`DAS API fetch failed: ${error.message}`);
169
+ throw error;
170
+ }
171
+ }
172
+ /**
173
+ * Calculate on-chain collection statistics
174
+ * Analyzes holder distribution, supply, and concentration risk
175
+ * @param creatorAddress - Creator/collection address
176
+ * @returns Comprehensive on-chain statistics
177
+ */
178
+ async calculateOnChainStats(creatorAddress) {
179
+ this.logDebug(`Calculating on-chain stats for: ${creatorAddress}`);
180
+ try {
181
+ // Fetch all NFTs in collection
182
+ const nfts = await this.getCollectionNFTs(creatorAddress);
183
+ // Calculate holder distribution
184
+ const holderMap = new Map();
185
+ let verifiedCount = 0;
186
+ for (const nft of nfts) {
187
+ if (nft.owner && nft.owner !== 'unknown') {
188
+ holderMap.set(nft.owner, (holderMap.get(nft.owner) || 0) + 1);
189
+ }
190
+ if (nft.verified) {
191
+ verifiedCount++;
192
+ }
193
+ }
194
+ const totalSupply = nfts.length;
195
+ const uniqueHolders = holderMap.size;
196
+ // Calculate holder distribution (whales/medium/retail)
197
+ const holderCounts = Array.from(holderMap.entries());
198
+ const distribution = {
199
+ whales: 0,
200
+ medium: 0,
201
+ retail: 0,
202
+ };
203
+ for (const [, count] of holderCounts) {
204
+ const percentage = (count / totalSupply) * 100;
205
+ if (percentage > 10) {
206
+ distribution.whales++;
207
+ }
208
+ else if (percentage >= 1) {
209
+ distribution.medium++;
210
+ }
211
+ else {
212
+ distribution.retail++;
213
+ }
214
+ }
215
+ // Get top 10 holders
216
+ const topHolders = holderCounts
217
+ .sort((a, b) => b[1] - a[1])
218
+ .slice(0, 10)
219
+ .map(([address, count]) => ({
220
+ address,
221
+ count,
222
+ percentage: (count / totalSupply) * 100,
223
+ }));
224
+ const stats = {
225
+ collectionMint: creatorAddress,
226
+ totalSupply,
227
+ verifiedNFTs: verifiedCount,
228
+ holders: holderMap.size,
229
+ uniqueHolders,
230
+ holderDistribution: distribution,
231
+ topHolders,
232
+ nftsByCreator: totalSupply,
233
+ dataSource: 'on-chain',
234
+ timestamp: Date.now(),
235
+ };
236
+ this.logInfo(`Stats calculated: ${totalSupply} NFTs, ${uniqueHolders} unique holders`);
237
+ return stats;
238
+ }
239
+ catch (error) {
240
+ this.logError(`Failed to calculate on-chain stats: ${error.message}`);
241
+ throw new Error(`On-chain stats calculation failed: ${error.message}`);
242
+ }
243
+ }
244
+ /**
245
+ * Get holder distribution analysis with concentration risk
246
+ * Uses Herfindahl-Hirschman Index (HHI) for concentration measurement
247
+ * @param creatorAddress - Creator/collection address
248
+ * @returns Holder distribution data with risk score
249
+ */
250
+ async getHolderDistribution(creatorAddress) {
251
+ this.logDebug(`Analyzing holder distribution for: ${creatorAddress}`);
252
+ try {
253
+ const stats = await this.calculateOnChainStats(creatorAddress);
254
+ const distribution = new Map();
255
+ stats.topHolders.forEach(holder => {
256
+ distribution.set(holder.address, holder.count);
257
+ });
258
+ // Calculate concentration risk using Herfindahl-Hirschman Index
259
+ // HHI = sum of squared market shares
260
+ let hhi = 0;
261
+ stats.topHolders.forEach(holder => {
262
+ const share = holder.percentage / 100;
263
+ hhi += share * share;
264
+ });
265
+ const concentrationRisk = Math.min(100, hhi * 100);
266
+ this.logInfo(`Distribution analyzed: ${stats.uniqueHolders} holders, concentration risk: ${concentrationRisk.toFixed(2)}`);
267
+ return {
268
+ totalHolders: stats.uniqueHolders,
269
+ distribution,
270
+ concentrationRisk,
271
+ };
272
+ }
273
+ catch (error) {
274
+ this.logError(`Failed to analyze holder distribution: ${error.message}`);
275
+ throw new Error(`Holder distribution analysis failed: ${error.message}`);
276
+ }
277
+ }
278
+ /**
279
+ * Get all NFTs owned by a specific wallet
280
+ * @param ownerAddress - Wallet address
281
+ * @returns Array of owned NFTs
282
+ */
283
+ async getNFTsByOwner(ownerAddress) {
284
+ this.logDebug(`Fetching NFTs for owner: ${ownerAddress}`);
285
+ try {
286
+ // Use DAS API if available (fastest method)
287
+ if (this.dasEndpoint) {
288
+ const response = await fetch(this.dasEndpoint, {
289
+ method: 'POST',
290
+ headers: { 'Content-Type': 'application/json' },
291
+ body: JSON.stringify({
292
+ jsonrpc: '2.0',
293
+ id: 'get-assets-by-owner',
294
+ method: 'getAssetsByOwner',
295
+ params: {
296
+ ownerAddress,
297
+ page: 1,
298
+ limit: 1000,
299
+ },
300
+ }),
301
+ });
302
+ const data = await response.json();
303
+ if (data.error) {
304
+ throw new Error(`DAS API error: ${data.error.message}`);
305
+ }
306
+ const assets = data.result?.items || [];
307
+ const nfts = assets.map((asset) => ({
308
+ mint: asset.id,
309
+ owner: ownerAddress,
310
+ metadata: {
311
+ name: asset.content?.metadata?.name || 'Unknown',
312
+ symbol: asset.content?.metadata?.symbol || '',
313
+ uri: asset.content?.json_uri || '',
314
+ sellerFeeBasisPoints: asset.royalty?.basis_points || 0,
315
+ },
316
+ collection: asset.grouping?.find((g) => g.group_key === 'collection')?.group_value,
317
+ verified: asset.grouping?.find((g) => g.group_key === 'collection')?.verified || false,
318
+ }));
319
+ this.logInfo(`Fetched ${nfts.length} NFTs for owner via DAS`);
320
+ return nfts;
321
+ }
322
+ // Fallback to Token Program queries (slower)
323
+ this.logInfo('Fetching NFTs via Token Program (no DAS API)');
324
+ const owner = new PublicKey(ownerAddress);
325
+ const tokenAccounts = await this.connection.getParsedTokenAccountsByOwner(owner, {
326
+ programId: new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA'),
327
+ });
328
+ // Filter for NFTs (amount = 1, decimals = 0)
329
+ const nftAccounts = tokenAccounts.value.filter(account => {
330
+ const parsed = account.account.data.parsed;
331
+ return parsed.info.tokenAmount.decimals === 0 &&
332
+ parsed.info.tokenAmount.amount === '1';
333
+ });
334
+ const nfts = nftAccounts.map(account => ({
335
+ mint: account.account.data.parsed.info.mint,
336
+ owner: ownerAddress,
337
+ metadata: {
338
+ name: 'Unknown', // Would require additional metadata fetch
339
+ symbol: '',
340
+ uri: '',
341
+ sellerFeeBasisPoints: 0,
342
+ },
343
+ verified: false,
344
+ }));
345
+ this.logInfo(`Fetched ${nfts.length} NFTs for owner via Token Program`);
346
+ return nfts;
347
+ }
348
+ catch (error) {
349
+ this.logError(`Failed to fetch NFTs by owner: ${error.message}`);
350
+ throw new Error(`Owner NFT fetch failed: ${error.message}`);
351
+ }
352
+ }
353
+ /**
354
+ * Health check - verify RPC and DAS API connectivity
355
+ * @returns True if services are accessible
356
+ */
357
+ async healthCheck() {
358
+ try {
359
+ // Check RPC connectivity
360
+ await this.connection.getLatestBlockhash();
361
+ // Check DAS API if configured
362
+ if (this.dasEndpoint) {
363
+ const response = await fetch(this.dasEndpoint, {
364
+ method: 'POST',
365
+ headers: { 'Content-Type': 'application/json' },
366
+ body: JSON.stringify({
367
+ jsonrpc: '2.0',
368
+ id: 'health-check',
369
+ method: 'getHealth',
370
+ params: [],
371
+ }),
372
+ });
373
+ if (!response.ok) {
374
+ this.logError(`DAS API health check failed: ${response.status}`);
375
+ return false;
376
+ }
377
+ }
378
+ return true;
379
+ }
380
+ catch (error) {
381
+ this.logError(`Health check failed: ${error.message}`);
382
+ return false;
383
+ }
384
+ }
385
+ // =========================================================================
386
+ // Private Methods - Logging
387
+ // =========================================================================
388
+ logDebug(message) {
389
+ if (this.logLevel === 'debug') {
390
+ console.log(`[MetaplexOnChainClient:DEBUG] ${message}`);
391
+ }
392
+ }
393
+ logInfo(message) {
394
+ if (this.logLevel === 'debug' || this.logLevel === 'info') {
395
+ console.log(`[MetaplexOnChainClient:INFO] ${message}`);
396
+ }
397
+ }
398
+ logError(message) {
399
+ if (this.logLevel !== 'none') {
400
+ console.error(`[MetaplexOnChainClient:ERROR] ${message}`);
401
+ }
402
+ }
403
+ }
404
+ //# 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":"AAAA;;;;;GAKG;AAEH,OAAO,EAAc,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,SAAS,IAAI,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,EACL,iBAAiB,EAEjB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AAoEjD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,OAAO,qBAAqB;IACf,UAAU,CAAa;IACvB,WAAW,CAAS;IACpB,OAAO,CAAS;IAChB,QAAQ,CAAsC;IAC9C,WAAW,CAAU;IACrB,GAAG,CAAM;IAE1B,YAAY,MAA6B;QACvC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;QACpC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;QACrE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,KAAK,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,OAAO,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;QAEtC,qDAAqD;QACrD,IAAI,CAAC,GAAG,GAAG,aAAa,EAAE,CAAC;QAC3B,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,qBAAqB,CAAC,cAAsB;QAChD,IAAI,CAAC,QAAQ,CAAC,8CAA8C,cAAc,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;YAE1C,6CAA6C;YAC7C,MAAM,YAAY,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;YAE7D,mBAAmB;YACnB,MAAM,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC;YAEvC,8CAA8C;YAC9C,MAAM,YAAY,GAAG,CAAI,MAAW,EAAiB,EAAE;gBACrD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM;oBAAE,OAAO,SAAS,CAAC;gBAC5D,OAAO,MAAM,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAC5D,CAAC,CAAC;YAEF,MAAM,QAAQ,GAAG,YAAY,CAAQ,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC9D,MAAM,UAAU,GAAG,YAAY,CAAM,QAAQ,CAAC,UAAU,CAAC,CAAC;YAE1D,MAAM,MAAM,GAA8B;gBACxC,cAAc;gBACd,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;gBACvB,GAAG,EAAE,QAAQ,CAAC,GAAG;gBACjB,eAAe,EAAE,QAAQ,CAAC,eAAe,CAAC,QAAQ,EAAE;gBACpD,QAAQ,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAY,EAAE,EAAE,CAAC,CAAC;oBACxC,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;oBACnC,QAAQ,EAAE,OAAO,CAAC,QAAQ;oBAC1B,KAAK,EAAE,OAAO,CAAC,KAAK;iBACrB,CAAC,CAAC;gBACH,oBAAoB,EAAE,QAAQ,CAAC,oBAAoB;gBACnD,SAAS,EAAE,QAAQ,CAAC,SAAS;gBAC7B,UAAU,EAAE,UAAU,CAAC,CAAC,CAAC;oBACvB,QAAQ,EAAE,UAAU,CAAC,QAAQ;oBAC7B,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE;iBAC/B,CAAC,CAAC,CAAC,SAAS;aACd,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,qBAAqB,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACpE,OAAO,MAAM,CAAC;QAEhB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,wCAAyC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAClF,MAAM,IAAI,KAAK,CAAC,mCAAoC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACjF,CAAC;IACH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,iBAAiB,CACrB,cAAsB,EACtB,OAGC;QAED,IAAI,CAAC,QAAQ,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,+DAA+D;YAC/D,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,OAAO,MAAM,IAAI,CAAC,uBAAuB,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;YACrE,CAAC;YAED,mDAAmD;YACnD,IAAI,CAAC,OAAO,CAAC,yFAAyF,CAAC,CAAC;YAExG,4DAA4D;YAC5D,uDAAuD;YACvD,MAAM,IAAI,KAAK,CAAC,8FAA8F,CAAC,CAAC;QAElH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,oCAAqC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,8BAA+B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,uBAAuB,CACnC,cAAsB,EACtB,OAGC;QAED,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QACjD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,8BAA8B,cAAc,EAAE,CAAC,CAAC;QAE9D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;gBAC7C,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;oBACnB,OAAO,EAAE,KAAK;oBACd,EAAE,EAAE,uBAAuB;oBAC3B,MAAM,EAAE,oBAAoB;oBAC5B,MAAM,EAAE;wBACN,cAAc;wBACd,YAAY,EAAE,IAAI;wBAClB,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;wBACjE,KAAK,EAAE,OAAO,EAAE,KAAK,IAAI,IAAI;qBAC9B;iBACF,CAAC;aACH,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YAEnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;YAC1D,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;YACxC,MAAM,IAAI,GAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,KAAK,CAAC,EAAE;gBACd,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,SAAS;gBAC1C,QAAQ,EAAE;oBACR,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS;oBAChD,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE;oBAC7C,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;oBAClC,oBAAoB,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;iBACvD;gBACD,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,WAAW;gBACvF,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,QAAQ,IAAI,KAAK;aAC5F,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,uCAAuC,CAAC,CAAC;YAC5E,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,yBAA0B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACnE,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,cAAsB;QAChD,IAAI,CAAC,QAAQ,CAAC,mCAAmC,cAAc,EAAE,CAAC,CAAC;QAEnE,IAAI,CAAC;YACH,+BAA+B;YAC/B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC;YAE1D,gCAAgC;YAChC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAkB,CAAC;YAC5C,IAAI,aAAa,GAAG,CAAC,CAAC;YAEtB,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,IAAI,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;oBACzC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;oBACjB,aAAa,EAAE,CAAC;gBAClB,CAAC;YACH,CAAC;YAED,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC;YAChC,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC;YAErC,uDAAuD;YACvD,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;YACrD,MAAM,YAAY,GAAG;gBACnB,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;gBACT,MAAM,EAAE,CAAC;aACV,CAAC;YAEF,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,YAAY,EAAE,CAAC;gBACrC,MAAM,UAAU,GAAG,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC;gBAC/C,IAAI,UAAU,GAAG,EAAE,EAAE,CAAC;oBACpB,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,CAAC;qBAAM,IAAI,UAAU,IAAI,CAAC,EAAE,CAAC;oBAC3B,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,CAAC;qBAAM,CAAC;oBACN,YAAY,CAAC,MAAM,EAAE,CAAC;gBACxB,CAAC;YACH,CAAC;YAED,qBAAqB;YACrB,MAAM,UAAU,GAAG,YAAY;iBAC5B,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;iBAC3B,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;iBACZ,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;gBAC1B,OAAO;gBACP,KAAK;gBACL,UAAU,EAAE,CAAC,KAAK,GAAG,WAAW,CAAC,GAAG,GAAG;aACxC,CAAC,CAAC,CAAC;YAEN,MAAM,KAAK,GAA2B;gBACpC,cAAc,EAAE,cAAc;gBAC9B,WAAW;gBACX,YAAY,EAAE,aAAa;gBAC3B,OAAO,EAAE,SAAS,CAAC,IAAI;gBACvB,aAAa;gBACb,kBAAkB,EAAE,YAAY;gBAChC,UAAU;gBACV,aAAa,EAAE,WAAW;gBAC1B,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB,CAAC;YAEF,IAAI,CAAC,OAAO,CAAC,qBAAqB,WAAW,UAAU,aAAa,iBAAiB,CAAC,CAAC;YACvF,OAAO,KAAK,CAAC;QAEf,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,uCAAwC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACjF,MAAM,IAAI,KAAK,CAAC,sCAAuC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACpF,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,qBAAqB,CAAC,cAAsB;QAKhD,IAAI,CAAC,QAAQ,CAAC,sCAAsC,cAAc,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,cAAc,CAAC,CAAC;YAC/D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAkB,CAAC;YAE/C,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;YACjD,CAAC,CAAC,CAAC;YAEH,gEAAgE;YAChE,qCAAqC;YACrC,IAAI,GAAG,GAAG,CAAC,CAAC;YACZ,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;gBAChC,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,GAAG,GAAG,CAAC;gBACtC,GAAG,IAAI,KAAK,GAAG,KAAK,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;YAEnD,IAAI,CAAC,OAAO,CAAC,0BAA0B,KAAK,CAAC,aAAa,iCAAiC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAE3H,OAAO;gBACL,YAAY,EAAE,KAAK,CAAC,aAAa;gBACjC,YAAY;gBACZ,iBAAiB;aAClB,CAAC;QAEJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,0CAA2C,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,wCAAyC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,YAAoB;QACvC,IAAI,CAAC,QAAQ,CAAC,4BAA4B,YAAY,EAAE,CAAC,CAAC;QAE1D,IAAI,CAAC;YACH,4CAA4C;YAC5C,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC7C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,qBAAqB;wBACzB,MAAM,EAAE,kBAAkB;wBAC1B,MAAM,EAAE;4BACN,YAAY;4BACZ,IAAI,EAAE,CAAC;4BACP,KAAK,EAAE,IAAI;yBACZ;qBACF,CAAC;iBACH,CAAC,CAAC;gBAEH,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAEnC,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC1D,CAAC;gBAED,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,IAAI,EAAE,CAAC;gBAExC,MAAM,IAAI,GAAiB,MAAM,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAAC,CAAC;oBACrD,IAAI,EAAE,KAAK,CAAC,EAAE;oBACd,KAAK,EAAE,YAAY;oBACnB,QAAQ,EAAE;wBACR,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,IAAI,SAAS;wBAChD,MAAM,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,EAAE;wBAC7C,GAAG,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,IAAI,EAAE;wBAClC,oBAAoB,EAAE,KAAK,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC;qBACvD;oBACD,UAAU,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,WAAW;oBACvF,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,YAAY,CAAC,EAAE,QAAQ,IAAI,KAAK;iBAC5F,CAAC,CAAC,CAAC;gBAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,yBAAyB,CAAC,CAAC;gBAC9D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,6CAA6C;YAC7C,IAAI,CAAC,OAAO,CAAC,8CAA8C,CAAC,CAAC;YAC7D,MAAM,KAAK,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;YAC1C,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,6BAA6B,CAAC,KAAK,EAAE;gBAC/E,SAAS,EAAE,IAAI,SAAS,CAAC,6CAA6C,CAAC;aACxE,CAAC,CAAC;YAEH,6CAA6C;YAC7C,MAAM,WAAW,GAAG,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;gBACvD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,KAAK,CAAC;oBACtC,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,GAAG,CAAC;YAChD,CAAC,CAAC,CAAC;YAEH,MAAM,IAAI,GAAiB,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI;gBAC3C,KAAK,EAAE,YAAY;gBACnB,QAAQ,EAAE;oBACR,IAAI,EAAE,SAAS,EAAG,0CAA0C;oBAC5D,MAAM,EAAE,EAAE;oBACV,GAAG,EAAE,EAAE;oBACP,oBAAoB,EAAE,CAAC;iBACxB;gBACD,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,OAAO,CAAC,WAAW,IAAI,CAAC,MAAM,mCAAmC,CAAC,CAAC;YACxE,OAAO,IAAI,CAAC;QAEd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,kCAAmC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,2BAA4B,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QACzE,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,yBAAyB;YACzB,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC;YAE3C,8BAA8B;YAC9B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;gBACrB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,WAAW,EAAE;oBAC7C,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;wBACnB,OAAO,EAAE,KAAK;wBACd,EAAE,EAAE,cAAc;wBAClB,MAAM,EAAE,WAAW;wBACnB,MAAM,EAAE,EAAE;qBACX,CAAC;iBACH,CAAC,CAAC;gBAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;oBACjB,IAAI,CAAC,QAAQ,CAAC,gCAAgC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;oBACjE,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,wBAAyB,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAClE,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,4BAA4B;IAC5B,4EAA4E;IAEpE,QAAQ,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,OAAO,CAAC,OAAe;QAC7B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC1D,OAAO,CAAC,GAAG,CAAC,gCAAgC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,iCAAiC,OAAO,EAAE,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF"}
@@ -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"}