@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.
- package/LICENSE +21 -0
- package/README.md +1393 -0
- package/dist/cjs/advanced/circuit-breaker.d.ts +111 -0
- package/dist/cjs/advanced/circuit-breaker.d.ts.map +1 -0
- package/dist/cjs/advanced/circuit-breaker.js +278 -0
- package/dist/cjs/advanced/circuit-breaker.js.map +1 -0
- package/dist/cjs/advanced/index.d.ts +8 -0
- package/dist/cjs/advanced/index.d.ts.map +1 -0
- package/dist/cjs/advanced/index.js +13 -0
- package/dist/cjs/advanced/index.js.map +1 -0
- package/dist/cjs/advanced/load-balancer.d.ts +114 -0
- package/dist/cjs/advanced/load-balancer.d.ts.map +1 -0
- package/dist/cjs/advanced/load-balancer.js +354 -0
- package/dist/cjs/advanced/load-balancer.js.map +1 -0
- package/dist/cjs/advanced/smart-caching.d.ts +113 -0
- package/dist/cjs/advanced/smart-caching.d.ts.map +1 -0
- package/dist/cjs/advanced/smart-caching.js +461 -0
- package/dist/cjs/advanced/smart-caching.js.map +1 -0
- package/dist/cjs/advanced/types.d.ts +228 -0
- package/dist/cjs/advanced/types.d.ts.map +1 -0
- package/dist/cjs/advanced/types.js +7 -0
- package/dist/cjs/advanced/types.js.map +1 -0
- package/dist/cjs/ai/index.d.ts +15 -0
- package/dist/cjs/ai/index.d.ts.map +1 -0
- package/dist/cjs/ai/index.js +20 -0
- package/dist/cjs/ai/index.js.map +1 -0
- package/dist/cjs/ai/merkle-operation.d.ts +245 -0
- package/dist/cjs/ai/merkle-operation.d.ts.map +1 -0
- package/dist/cjs/ai/merkle-operation.js +522 -0
- package/dist/cjs/ai/merkle-operation.js.map +1 -0
- package/dist/cjs/ai/pda-manager.d.ts +134 -0
- package/dist/cjs/ai/pda-manager.d.ts.map +1 -0
- package/dist/cjs/ai/pda-manager.js +250 -0
- package/dist/cjs/ai/pda-manager.js.map +1 -0
- package/dist/cjs/ai/types.ai.d.ts +172 -0
- package/dist/cjs/ai/types.ai.d.ts.map +1 -0
- package/dist/cjs/ai/types.ai.js +14 -0
- package/dist/cjs/ai/types.ai.js.map +1 -0
- package/dist/cjs/ai/zero-combine-fetcher.d.ts +171 -0
- package/dist/cjs/ai/zero-combine-fetcher.d.ts.map +1 -0
- package/dist/cjs/ai/zero-combine-fetcher.js +412 -0
- package/dist/cjs/ai/zero-combine-fetcher.js.map +1 -0
- package/dist/cjs/client.d.ts +83 -0
- package/dist/cjs/client.d.ts.map +1 -0
- package/dist/cjs/client.js +287 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/defi/advanced-features.d.ts +207 -0
- package/dist/cjs/defi/advanced-features.d.ts.map +1 -0
- package/dist/cjs/defi/advanced-features.js +382 -0
- package/dist/cjs/defi/advanced-features.js.map +1 -0
- package/dist/cjs/defi/index.d.ts +29 -0
- package/dist/cjs/defi/index.d.ts.map +1 -0
- package/dist/cjs/defi/index.js +50 -0
- package/dist/cjs/defi/index.js.map +1 -0
- package/dist/cjs/defi/jito.d.ts +118 -0
- package/dist/cjs/defi/jito.d.ts.map +1 -0
- package/dist/cjs/defi/jito.js +291 -0
- package/dist/cjs/defi/jito.js.map +1 -0
- package/dist/cjs/defi/jupiter.d.ts +143 -0
- package/dist/cjs/defi/jupiter.d.ts.map +1 -0
- package/dist/cjs/defi/jupiter.js +219 -0
- package/dist/cjs/defi/jupiter.js.map +1 -0
- package/dist/cjs/defi/price-feed.d.ts +63 -0
- package/dist/cjs/defi/price-feed.d.ts.map +1 -0
- package/dist/cjs/defi/price-feed.js +153 -0
- package/dist/cjs/defi/price-feed.js.map +1 -0
- package/dist/cjs/defi/token-data.d.ts +83 -0
- package/dist/cjs/defi/token-data.d.ts.map +1 -0
- package/dist/cjs/defi/token-data.js +205 -0
- package/dist/cjs/defi/token-data.js.map +1 -0
- package/dist/cjs/defi/unstable-features.d.ts +207 -0
- package/dist/cjs/defi/unstable-features.d.ts.map +1 -0
- package/dist/cjs/defi/unstable-features.js +382 -0
- package/dist/cjs/defi/unstable-features.js.map +1 -0
- package/dist/cjs/defi/utils.d.ts +265 -0
- package/dist/cjs/defi/utils.d.ts.map +1 -0
- package/dist/cjs/defi/utils.js +619 -0
- package/dist/cjs/defi/utils.js.map +1 -0
- package/dist/cjs/index.d.ts +31 -0
- package/dist/cjs/index.d.ts.map +1 -0
- package/dist/cjs/index.js +71 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/methods/solana-rpc.d.ts +362 -0
- package/dist/cjs/methods/solana-rpc.d.ts.map +1 -0
- package/dist/cjs/methods/solana-rpc.js +584 -0
- package/dist/cjs/methods/solana-rpc.js.map +1 -0
- package/dist/cjs/nft/advanced-features.d.ts +205 -0
- package/dist/cjs/nft/advanced-features.d.ts.map +1 -0
- package/dist/cjs/nft/advanced-features.js +529 -0
- package/dist/cjs/nft/advanced-features.js.map +1 -0
- package/dist/cjs/nft/clients/index.d.ts +8 -0
- package/dist/cjs/nft/clients/index.d.ts.map +1 -0
- package/dist/cjs/nft/clients/index.js +14 -0
- package/dist/cjs/nft/clients/index.js.map +1 -0
- package/dist/cjs/nft/clients/magic-eden-client.d.ts +101 -0
- package/dist/cjs/nft/clients/magic-eden-client.d.ts.map +1 -0
- package/dist/cjs/nft/clients/magic-eden-client.js +263 -0
- package/dist/cjs/nft/clients/magic-eden-client.js.map +1 -0
- package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts +154 -0
- package/dist/cjs/nft/clients/metaplex-onchain-client.d.ts.map +1 -0
- package/dist/cjs/nft/clients/metaplex-onchain-client.js +408 -0
- package/dist/cjs/nft/clients/metaplex-onchain-client.js.map +1 -0
- package/dist/cjs/nft/clients/tensor-client.d.ts +79 -0
- package/dist/cjs/nft/clients/tensor-client.d.ts.map +1 -0
- package/dist/cjs/nft/clients/tensor-client.js +222 -0
- package/dist/cjs/nft/clients/tensor-client.js.map +1 -0
- package/dist/cjs/nft/index.d.ts +13 -0
- package/dist/cjs/nft/index.d.ts.map +1 -0
- package/dist/cjs/nft/index.js +37 -0
- package/dist/cjs/nft/index.js.map +1 -0
- package/dist/cjs/nft/types.nft.d.ts +342 -0
- package/dist/cjs/nft/types.nft.d.ts.map +1 -0
- package/dist/cjs/nft/types.nft.js +3 -0
- package/dist/cjs/nft/types.nft.js.map +1 -0
- package/dist/cjs/nft/utils.d.ts +46 -0
- package/dist/cjs/nft/utils.d.ts.map +1 -0
- package/dist/cjs/nft/utils.js +281 -0
- package/dist/cjs/nft/utils.js.map +1 -0
- package/dist/cjs/types.d.ts +525 -0
- package/dist/cjs/types.d.ts.map +1 -0
- package/dist/cjs/types.js +192 -0
- package/dist/cjs/types.js.map +1 -0
- package/dist/cjs/utils/constant.d.ts +8 -0
- package/dist/cjs/utils/constant.d.ts.map +1 -0
- package/dist/cjs/utils/constant.js +12 -0
- package/dist/cjs/utils/constant.js.map +1 -0
- package/dist/cjs/utils/helpers.d.ts +92 -0
- package/dist/cjs/utils/helpers.d.ts.map +1 -0
- package/dist/cjs/utils/helpers.js +248 -0
- package/dist/cjs/utils/helpers.js.map +1 -0
- package/dist/cjs/websocket/client.d.ts +182 -0
- package/dist/cjs/websocket/client.d.ts.map +1 -0
- package/dist/cjs/websocket/client.js +465 -0
- package/dist/cjs/websocket/client.js.map +1 -0
- package/dist/cjs/websocket/index.d.ts +6 -0
- package/dist/cjs/websocket/index.d.ts.map +1 -0
- package/dist/cjs/websocket/index.js +9 -0
- package/dist/cjs/websocket/index.js.map +1 -0
- package/dist/docs/.nojekyll +1 -0
- package/dist/docs/assets/highlight.css +113 -0
- package/dist/docs/assets/icons.js +18 -0
- package/dist/docs/assets/icons.svg +1 -0
- package/dist/docs/assets/main.js +60 -0
- package/dist/docs/assets/navigation.js +1 -0
- package/dist/docs/assets/search.js +1 -0
- package/dist/docs/assets/style.css +1493 -0
- package/dist/docs/classes/AIError.html +40 -0
- package/dist/docs/classes/AIInvestmentAdvisor.html +26 -0
- package/dist/docs/classes/AIRarityCalculator.html +28 -0
- package/dist/docs/classes/ArbitrageDetector.html +30 -0
- package/dist/docs/classes/BatchingError.html +40 -0
- package/dist/docs/classes/CacheError.html +40 -0
- package/dist/docs/classes/CircuitBreaker.html +38 -0
- package/dist/docs/classes/CircuitBreakerError.html +40 -0
- package/dist/docs/classes/CollectionAnalytics.html +30 -0
- package/dist/docs/classes/DeFiError.html +40 -0
- package/dist/docs/classes/FlashLoanSimulator.html +26 -0
- package/dist/docs/classes/JitoIntegration.html +53 -0
- package/dist/docs/classes/JupiterIntegration.html +43 -0
- package/dist/docs/classes/Keypair.html +28 -0
- package/dist/docs/classes/LoadBalancer.html +34 -0
- package/dist/docs/classes/MEVProtection.html +28 -0
- package/dist/docs/classes/MarketplaceAggregator.html +28 -0
- package/dist/docs/classes/MerkleOperation.html +74 -0
- package/dist/docs/classes/NFTEngine.html +29 -0
- package/dist/docs/classes/NFTError.html +40 -0
- package/dist/docs/classes/NetworkError.html +40 -0
- package/dist/docs/classes/PDAManager.html +46 -0
- package/dist/docs/classes/PortfolioAnalytics.html +26 -0
- package/dist/docs/classes/PriceFeedIntegration.html +37 -0
- package/dist/docs/classes/PublicKey.html +46 -0
- package/dist/docs/classes/RateLimitError.html +39 -0
- package/dist/docs/classes/SmartCaching.html +42 -0
- package/dist/docs/classes/Synapse.html +6 -0
- package/dist/docs/classes/SynapseClient.html +55 -0
- package/dist/docs/classes/SynapseError.html +37 -0
- package/dist/docs/classes/SynapseSolanaEngine.html +49 -0
- package/dist/docs/classes/SynapseUtils.html +25 -0
- package/dist/docs/classes/TokenDataIntegration.html +41 -0
- package/dist/docs/classes/Transaction.html +87 -0
- package/dist/docs/classes/TransactionInstruction.html +10 -0
- package/dist/docs/classes/UpstreamError.html +39 -0
- package/dist/docs/classes/WebSocketClient.html +47 -0
- package/dist/docs/classes/WebSocketError.html +40 -0
- package/dist/docs/classes/YieldFarmingFinder.html +26 -0
- package/dist/docs/classes/ZeroCombineFetcher.html +25 -0
- package/dist/docs/functions/createSynapseClient.html +2 -0
- package/dist/docs/hierarchy.html +1 -0
- package/dist/docs/index.html +776 -0
- package/dist/docs/interfaces/AIAgentConfig.html +11 -0
- package/dist/docs/interfaces/AIAgentContext.html +7 -0
- package/dist/docs/interfaces/AIContext.html +6 -0
- package/dist/docs/interfaces/AIMethodResult.html +6 -0
- package/dist/docs/interfaces/AIRarityAnalysis.html +3 -0
- package/dist/docs/interfaces/AIResponse.html +5 -0
- package/dist/docs/interfaces/AccountInfo.html +8 -0
- package/dist/docs/interfaces/AdvancedClientConfig.html +7 -0
- package/dist/docs/interfaces/AdvancedEvents.html +9 -0
- package/dist/docs/interfaces/AdvancedMetricsData.html +5 -0
- package/dist/docs/interfaces/AdvancedPerformanceMetrics.html +6 -0
- package/dist/docs/interfaces/AgentAdapter.html +6 -0
- package/dist/docs/interfaces/AgentRiskReport.html +6 -0
- package/dist/docs/interfaces/AgentTradeSuggestion.html +10 -0
- package/dist/docs/interfaces/AggregatedCollectionStats.html +36 -0
- package/dist/docs/interfaces/ArbitrageOpportunity.html +8 -0
- package/dist/docs/interfaces/AutoTradingStrategy.html +13 -0
- package/dist/docs/interfaces/BatchResponse.html +4 -0
- package/dist/docs/interfaces/BatchResult.html +6 -0
- package/dist/docs/interfaces/BatcherConfig.html +5 -0
- package/dist/docs/interfaces/BirdeyeTokenPrice.html +4 -0
- package/dist/docs/interfaces/BlockhashInfo.html +5 -0
- package/dist/docs/interfaces/BuildSwapTxResult.html +7 -0
- package/dist/docs/interfaces/CacheStats.html +9 -0
- package/dist/docs/interfaces/ChunkInfo.html +10 -0
- package/dist/docs/interfaces/CircuitBreakerConfig.html +6 -0
- package/dist/docs/interfaces/ClientStats.html +14 -0
- package/dist/docs/interfaces/CollectionStats.html +17 -0
- package/dist/docs/interfaces/CollectionTrends.html +7 -0
- package/dist/docs/interfaces/CompressedNFTInfo.html +13 -0
- package/dist/docs/interfaces/ConfirmedTransaction.html +6 -0
- package/dist/docs/interfaces/ConnectionEvents.html +11 -0
- package/dist/docs/interfaces/DeFiConfig.html +16 -0
- package/dist/docs/interfaces/DiagnosticsResult.html +6 -0
- package/dist/docs/interfaces/EpochInfo.html +9 -0
- package/dist/docs/interfaces/ExecuteSwapParams.html +10 -0
- package/dist/docs/interfaces/FetchConfig.html +7 -0
- package/dist/docs/interfaces/FlashLoanAction.html +6 -0
- package/dist/docs/interfaces/FlashLoanSimulation.html +9 -0
- package/dist/docs/interfaces/GatewayStats.html +7 -0
- package/dist/docs/interfaces/InscriptionResult.html +18 -0
- package/dist/docs/interfaces/InvestmentRecommendation.html +10 -0
- package/dist/docs/interfaces/JitoBundleParams.html +4 -0
- package/dist/docs/interfaces/JitoBundleResult.html +6 -0
- package/dist/docs/interfaces/JitoBundleStatus.html +6 -0
- package/dist/docs/interfaces/JitoTipAccount.html +3 -0
- package/dist/docs/interfaces/JupiterQuoteParams.html +10 -0
- package/dist/docs/interfaces/JupiterQuoteRequest.html +17 -0
- package/dist/docs/interfaces/JupiterQuoteResponse.html +13 -0
- package/dist/docs/interfaces/JupiterSwapOptions.html +8 -0
- package/dist/docs/interfaces/JupiterSwapResponse.html +4 -0
- package/dist/docs/interfaces/JupiterTokenPrice.html +5 -0
- package/dist/docs/interfaces/LoadBalancerConfig.html +5 -0
- package/dist/docs/interfaces/MEVProtectionConfig.html +11 -0
- package/dist/docs/interfaces/MEVProtectionResult.html +6 -0
- package/dist/docs/interfaces/MagicEdenActivity.html +22 -0
- package/dist/docs/interfaces/MagicEdenCollection.html +22 -0
- package/dist/docs/interfaces/MagicEdenCollectionStats.html +17 -0
- package/dist/docs/interfaces/MagicEdenErrorResponse.html +4 -0
- package/dist/docs/interfaces/MagicEdenListing.html +24 -0
- package/dist/docs/interfaces/MarketplaceClientConfig.html +14 -0
- package/dist/docs/interfaces/MarketplaceFloorPrices.html +7 -0
- package/dist/docs/interfaces/MarketplaceListing.html +9 -0
- package/dist/docs/interfaces/MerkleLeaf.html +6 -0
- package/dist/docs/interfaces/MerkleProof.html +8 -0
- package/dist/docs/interfaces/MerkleValidationResult.html +10 -0
- package/dist/docs/interfaces/MultiChainSignal.html +8 -0
- package/dist/docs/interfaces/NFTAttribute.html +4 -0
- package/dist/docs/interfaces/NFTConfig.html +6 -0
- package/dist/docs/interfaces/NFTInfo.html +10 -0
- package/dist/docs/interfaces/NFTMetadata.html +9 -0
- package/dist/docs/interfaces/NormalizedMarketplaceListing.html +18 -0
- package/dist/docs/interfaces/OOBECompatibleAgent.html +8 -0
- package/dist/docs/interfaces/PDAConfig.html +10 -0
- package/dist/docs/interfaces/ParsedAccountInfo.html +8 -0
- package/dist/docs/interfaces/PerformanceMetrics.html +9 -0
- package/dist/docs/interfaces/PortfolioMetrics.html +10 -0
- package/dist/docs/interfaces/PriceData.html +8 -0
- package/dist/docs/interfaces/ProofRecord.html +12 -0
- package/dist/docs/interfaces/QuoteRequestCommon.html +11 -0
- package/dist/docs/interfaces/QuoteResponse.html +6 -0
- package/dist/docs/interfaces/RarityAlgorithmConfig.html +3 -0
- package/dist/docs/interfaces/RarityScore.html +8 -0
- package/dist/docs/interfaces/RaydiumBuildSwapParams.html +14 -0
- package/dist/docs/interfaces/RaydiumQuoteRequest.html +14 -0
- package/dist/docs/interfaces/RequestOptions.html +12 -0
- package/dist/docs/interfaces/RetryAttempt.html +5 -0
- package/dist/docs/interfaces/RpcError.html +5 -0
- package/dist/docs/interfaces/RpcRequest.html +6 -0
- package/dist/docs/interfaces/RpcResponse.html +6 -0
- package/dist/docs/interfaces/SecurityThreat.html +6 -0
- package/dist/docs/interfaces/SignatureInfo.html +8 -0
- package/dist/docs/interfaces/Signer.html +4 -0
- package/dist/docs/interfaces/SmartCacheConfig.html +7 -0
- package/dist/docs/interfaces/SmartQueryOptions.html +10 -0
- package/dist/docs/interfaces/StressTestOptions.html +8 -0
- package/dist/docs/interfaces/StressTestResult.html +9 -0
- package/dist/docs/interfaces/SubscriptionConfig.html +9 -0
- package/dist/docs/interfaces/SubscriptionOptions.html +7 -0
- package/dist/docs/interfaces/SubscriptionResult.html +7 -0
- package/dist/docs/interfaces/SynapseConfig.html +13 -0
- package/dist/docs/interfaces/SynapseLikeClient.html +4 -0
- package/dist/docs/interfaces/TensorCollectionStats.html +33 -0
- package/dist/docs/interfaces/TensorErrorResponse.html +5 -0
- package/dist/docs/interfaces/TensorListing.html +16 -0
- package/dist/docs/interfaces/TensorSale.html +16 -0
- package/dist/docs/interfaces/TokenAccount.html +7 -0
- package/dist/docs/interfaces/TokenAccountInfo.html +12 -0
- package/dist/docs/interfaces/TokenHolding.html +8 -0
- package/dist/docs/interfaces/TokenInfo.html +7 -0
- package/dist/docs/interfaces/TokenLargestAccount.html +5 -0
- package/dist/docs/interfaces/TokenSupply.html +5 -0
- package/dist/docs/interfaces/TradeExecution.html +14 -0
- package/dist/docs/interfaces/TransactionSignature.html +8 -0
- package/dist/docs/interfaces/UpstreamHealth.html +8 -0
- package/dist/docs/interfaces/UserPDAs.html +10 -0
- package/dist/docs/interfaces/WebSocketConfig.html +12 -0
- package/dist/docs/interfaces/WebSocketMessage.html +6 -0
- package/dist/docs/interfaces/YieldOpportunity.html +8 -0
- package/dist/docs/interfaces/ZeroChunk.html +8 -0
- package/dist/docs/interfaces/ZeroCombineResult.html +3 -0
- package/dist/docs/media/LICENSE +21 -0
- package/dist/docs/media/README-1.md +778 -0
- package/dist/docs/media/README-2.md +1050 -0
- package/dist/docs/media/README-3.md +1522 -0
- package/dist/docs/media/README-4.md +869 -0
- package/dist/docs/media/README-5.md +857 -0
- package/dist/docs/media/README-6.md +727 -0
- package/dist/docs/media/README.md +766 -0
- package/dist/docs/modules.html +168 -0
- package/dist/docs/types/BlockhashWithExpiryBlockHeight.html +1 -0
- package/dist/docs/types/Commitment.html +3 -0
- package/dist/docs/types/RiskTolerance.html +1 -0
- package/dist/docs/types/SimulatedTransactionResponse.html +1 -0
- package/dist/esm/advanced/circuit-breaker.d.ts +111 -0
- package/dist/esm/advanced/circuit-breaker.d.ts.map +1 -0
- package/dist/esm/advanced/circuit-breaker.js +274 -0
- package/dist/esm/advanced/circuit-breaker.js.map +1 -0
- package/dist/esm/advanced/index.d.ts +8 -0
- package/dist/esm/advanced/index.d.ts.map +1 -0
- package/dist/esm/advanced/index.js +7 -0
- package/dist/esm/advanced/index.js.map +1 -0
- package/dist/esm/advanced/load-balancer.d.ts +114 -0
- package/dist/esm/advanced/load-balancer.d.ts.map +1 -0
- package/dist/esm/advanced/load-balancer.js +350 -0
- package/dist/esm/advanced/load-balancer.js.map +1 -0
- package/dist/esm/advanced/smart-caching.d.ts +113 -0
- package/dist/esm/advanced/smart-caching.d.ts.map +1 -0
- package/dist/esm/advanced/smart-caching.js +457 -0
- package/dist/esm/advanced/smart-caching.js.map +1 -0
- package/dist/esm/advanced/types.d.ts +228 -0
- package/dist/esm/advanced/types.d.ts.map +1 -0
- package/dist/esm/advanced/types.js +6 -0
- package/dist/esm/advanced/types.js.map +1 -0
- package/dist/esm/ai/index.d.ts +15 -0
- package/dist/esm/ai/index.d.ts.map +1 -0
- package/dist/esm/ai/index.js +14 -0
- package/dist/esm/ai/index.js.map +1 -0
- package/dist/esm/ai/merkle-operation.d.ts +245 -0
- package/dist/esm/ai/merkle-operation.d.ts.map +1 -0
- package/dist/esm/ai/merkle-operation.js +485 -0
- package/dist/esm/ai/merkle-operation.js.map +1 -0
- package/dist/esm/ai/pda-manager.d.ts +134 -0
- package/dist/esm/ai/pda-manager.d.ts.map +1 -0
- package/dist/esm/ai/pda-manager.js +213 -0
- package/dist/esm/ai/pda-manager.js.map +1 -0
- package/dist/esm/ai/types.ai.d.ts +172 -0
- package/dist/esm/ai/types.ai.d.ts.map +1 -0
- package/dist/esm/ai/types.ai.js +13 -0
- package/dist/esm/ai/types.ai.js.map +1 -0
- package/dist/esm/ai/zero-combine-fetcher.d.ts +171 -0
- package/dist/esm/ai/zero-combine-fetcher.d.ts.map +1 -0
- package/dist/esm/ai/zero-combine-fetcher.js +408 -0
- package/dist/esm/ai/zero-combine-fetcher.js.map +1 -0
- package/dist/esm/client.d.ts +83 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/client.js +283 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/defi/advanced-features.d.ts +207 -0
- package/dist/esm/defi/advanced-features.d.ts.map +1 -0
- package/dist/esm/defi/advanced-features.js +374 -0
- package/dist/esm/defi/advanced-features.js.map +1 -0
- package/dist/esm/defi/index.d.ts +29 -0
- package/dist/esm/defi/index.d.ts.map +1 -0
- package/dist/esm/defi/index.js +37 -0
- package/dist/esm/defi/index.js.map +1 -0
- package/dist/esm/defi/jito.d.ts +118 -0
- package/dist/esm/defi/jito.d.ts.map +1 -0
- package/dist/esm/defi/jito.js +287 -0
- package/dist/esm/defi/jito.js.map +1 -0
- package/dist/esm/defi/jupiter.d.ts +143 -0
- package/dist/esm/defi/jupiter.d.ts.map +1 -0
- package/dist/esm/defi/jupiter.js +215 -0
- package/dist/esm/defi/jupiter.js.map +1 -0
- package/dist/esm/defi/price-feed.d.ts +63 -0
- package/dist/esm/defi/price-feed.d.ts.map +1 -0
- package/dist/esm/defi/price-feed.js +149 -0
- package/dist/esm/defi/price-feed.js.map +1 -0
- package/dist/esm/defi/token-data.d.ts +83 -0
- package/dist/esm/defi/token-data.d.ts.map +1 -0
- package/dist/esm/defi/token-data.js +201 -0
- package/dist/esm/defi/token-data.js.map +1 -0
- package/dist/esm/defi/unstable-features.d.ts +207 -0
- package/dist/esm/defi/unstable-features.d.ts.map +1 -0
- package/dist/esm/defi/unstable-features.js +374 -0
- package/dist/esm/defi/unstable-features.js.map +1 -0
- package/dist/esm/defi/utils.d.ts +265 -0
- package/dist/esm/defi/utils.d.ts.map +1 -0
- package/dist/esm/defi/utils.js +582 -0
- package/dist/esm/defi/utils.js.map +1 -0
- package/dist/esm/index.d.ts +31 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/esm/index.js +47 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/methods/solana-rpc.d.ts +362 -0
- package/dist/esm/methods/solana-rpc.d.ts.map +1 -0
- package/dist/esm/methods/solana-rpc.js +532 -0
- package/dist/esm/methods/solana-rpc.js.map +1 -0
- package/dist/esm/nft/advanced-features.d.ts +205 -0
- package/dist/esm/nft/advanced-features.d.ts.map +1 -0
- package/dist/esm/nft/advanced-features.js +489 -0
- package/dist/esm/nft/advanced-features.js.map +1 -0
- package/dist/esm/nft/clients/index.d.ts +8 -0
- package/dist/esm/nft/clients/index.d.ts.map +1 -0
- package/dist/esm/nft/clients/index.js +8 -0
- package/dist/esm/nft/clients/index.js.map +1 -0
- package/dist/esm/nft/clients/magic-eden-client.d.ts +101 -0
- package/dist/esm/nft/clients/magic-eden-client.d.ts.map +1 -0
- package/dist/esm/nft/clients/magic-eden-client.js +259 -0
- package/dist/esm/nft/clients/magic-eden-client.js.map +1 -0
- package/dist/esm/nft/clients/metaplex-onchain-client.d.ts +154 -0
- package/dist/esm/nft/clients/metaplex-onchain-client.d.ts.map +1 -0
- package/dist/esm/nft/clients/metaplex-onchain-client.js +404 -0
- package/dist/esm/nft/clients/metaplex-onchain-client.js.map +1 -0
- package/dist/esm/nft/clients/tensor-client.d.ts +79 -0
- package/dist/esm/nft/clients/tensor-client.d.ts.map +1 -0
- package/dist/esm/nft/clients/tensor-client.js +218 -0
- package/dist/esm/nft/clients/tensor-client.js.map +1 -0
- package/dist/esm/nft/index.d.ts +13 -0
- package/dist/esm/nft/index.d.ts.map +1 -0
- package/dist/esm/nft/index.js +15 -0
- package/dist/esm/nft/index.js.map +1 -0
- package/dist/esm/nft/types.nft.d.ts +342 -0
- package/dist/esm/nft/types.nft.d.ts.map +1 -0
- package/dist/esm/nft/types.nft.js +2 -0
- package/dist/esm/nft/types.nft.js.map +1 -0
- package/dist/esm/nft/utils.d.ts +46 -0
- package/dist/esm/nft/utils.d.ts.map +1 -0
- package/dist/esm/nft/utils.js +276 -0
- package/dist/esm/nft/utils.js.map +1 -0
- package/dist/esm/types.d.ts +525 -0
- package/dist/esm/types.d.ts.map +1 -0
- package/dist/esm/types.js +178 -0
- package/dist/esm/types.js.map +1 -0
- package/dist/esm/utils/constant.d.ts +8 -0
- package/dist/esm/utils/constant.d.ts.map +1 -0
- package/dist/esm/utils/constant.js +8 -0
- package/dist/esm/utils/constant.js.map +1 -0
- package/dist/esm/utils/helpers.d.ts +92 -0
- package/dist/esm/utils/helpers.d.ts.map +1 -0
- package/dist/esm/utils/helpers.js +243 -0
- package/dist/esm/utils/helpers.js.map +1 -0
- package/dist/esm/websocket/client.d.ts +182 -0
- package/dist/esm/websocket/client.d.ts.map +1 -0
- package/dist/esm/websocket/client.js +458 -0
- package/dist/esm/websocket/client.js.map +1 -0
- package/dist/esm/websocket/index.d.ts +6 -0
- package/dist/esm/websocket/index.d.ts.map +1 -0
- package/dist/esm/websocket/index.js +5 -0
- package/dist/esm/websocket/index.js.map +1 -0
- 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"}
|