@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,222 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Tensor API Client
|
|
4
|
+
* Production-ready integration with Tensor marketplace API
|
|
5
|
+
* @see https://docs.tensor.trade/tensorswap-api
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.TensorClient = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* TensorClient - Tensor API integration
|
|
11
|
+
* Handles rate limiting, error handling, and response validation
|
|
12
|
+
*/
|
|
13
|
+
class TensorClient {
|
|
14
|
+
baseUrl;
|
|
15
|
+
apiKey;
|
|
16
|
+
timeout;
|
|
17
|
+
fetchImpl;
|
|
18
|
+
logLevel;
|
|
19
|
+
rateLimiter;
|
|
20
|
+
constructor(config) {
|
|
21
|
+
this.baseUrl = config?.baseUrl || 'https://api.tensor.so';
|
|
22
|
+
this.apiKey = config?.apiKey;
|
|
23
|
+
this.timeout = config?.timeout || 10000;
|
|
24
|
+
this.logLevel = config?.logLevel || 'error';
|
|
25
|
+
// Rate limiter: default 10 req/s = 100ms between requests
|
|
26
|
+
const rateLimit = config?.rateLimit || 10;
|
|
27
|
+
this.rateLimiter = {
|
|
28
|
+
lastRequest: 0,
|
|
29
|
+
minInterval: 1000 / rateLimit,
|
|
30
|
+
};
|
|
31
|
+
// Cross-platform fetch support
|
|
32
|
+
if (config?.fetch) {
|
|
33
|
+
this.fetchImpl = config.fetch;
|
|
34
|
+
}
|
|
35
|
+
else if (typeof globalThis.fetch !== 'undefined') {
|
|
36
|
+
this.fetchImpl = globalThis.fetch.bind(globalThis);
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
// Node <18 requires fetch polyfill
|
|
40
|
+
throw new Error('fetch is not available. Please provide a fetch implementation via config.fetch or upgrade to Node 18+');
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Get collection statistics from Tensor
|
|
45
|
+
* @param slug - Collection slug (e.g. "mad_lads")
|
|
46
|
+
* @returns Collection statistics including floor price, volume, sales
|
|
47
|
+
*/
|
|
48
|
+
async getCollectionStats(slug) {
|
|
49
|
+
this.logDebug(`Fetching collection stats for: ${slug}`);
|
|
50
|
+
const url = `${this.baseUrl}/api/v1/collections/${slug}/stats`;
|
|
51
|
+
const response = await this.makeRequest(url);
|
|
52
|
+
this.logInfo(`Collection stats fetched: ${slug} - Floor: ${response.floorPrice / 1e9} SOL`);
|
|
53
|
+
return response;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Get current floor price for a collection
|
|
57
|
+
* @param slug - Collection slug
|
|
58
|
+
* @returns Floor price in lamports
|
|
59
|
+
*/
|
|
60
|
+
async getFloorPrice(slug) {
|
|
61
|
+
const stats = await this.getCollectionStats(slug);
|
|
62
|
+
return stats.floorPrice;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Get active listings for a collection
|
|
66
|
+
* @param slug - Collection slug
|
|
67
|
+
* @param options - Pagination and filter options
|
|
68
|
+
* @returns Array of active listings
|
|
69
|
+
*/
|
|
70
|
+
async getListings(slug, options) {
|
|
71
|
+
this.logDebug(`Fetching listings for: ${slug}`);
|
|
72
|
+
const params = new URLSearchParams();
|
|
73
|
+
if (options?.limit)
|
|
74
|
+
params.append('limit', options.limit.toString());
|
|
75
|
+
if (options?.page)
|
|
76
|
+
params.append('page', options.page.toString());
|
|
77
|
+
if (options?.sortBy)
|
|
78
|
+
params.append('sortBy', options.sortBy);
|
|
79
|
+
if (options?.sortDirection)
|
|
80
|
+
params.append('sortDirection', options.sortDirection);
|
|
81
|
+
const url = `${this.baseUrl}/api/v1/collections/${slug}/listings?${params.toString()}`;
|
|
82
|
+
const response = await this.makeRequest(url);
|
|
83
|
+
this.logInfo(`Fetched ${response.listings.length} listings for: ${slug}`);
|
|
84
|
+
return response.listings;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Get recent sales for a collection
|
|
88
|
+
* @param slug - Collection slug
|
|
89
|
+
* @param options - Pagination options
|
|
90
|
+
* @returns Array of recent sales
|
|
91
|
+
*/
|
|
92
|
+
async getSales(slug, options) {
|
|
93
|
+
this.logDebug(`Fetching sales for: ${slug}`);
|
|
94
|
+
const params = new URLSearchParams();
|
|
95
|
+
if (options?.limit)
|
|
96
|
+
params.append('limit', options.limit.toString());
|
|
97
|
+
if (options?.page)
|
|
98
|
+
params.append('page', options.page.toString());
|
|
99
|
+
const url = `${this.baseUrl}/api/v1/collections/${slug}/sales?${params.toString()}`;
|
|
100
|
+
const response = await this.makeRequest(url);
|
|
101
|
+
this.logInfo(`Fetched ${response.sales.length} sales for: ${slug}`);
|
|
102
|
+
return response.sales;
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Get listing for a specific NFT mint
|
|
106
|
+
* @param mint - NFT mint address
|
|
107
|
+
* @returns Listing information or null if not listed
|
|
108
|
+
*/
|
|
109
|
+
async getMintListing(mint) {
|
|
110
|
+
this.logDebug(`Fetching listing for mint: ${mint}`);
|
|
111
|
+
const url = `${this.baseUrl}/api/v1/mints/${mint}/listing`;
|
|
112
|
+
try {
|
|
113
|
+
const response = await this.makeRequest(url);
|
|
114
|
+
this.logInfo(`Listing found for mint: ${mint}`);
|
|
115
|
+
return response;
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (this.isNotFoundError(error)) {
|
|
119
|
+
this.logDebug(`No listing found for mint: ${mint}`);
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
throw error;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Health check - verify Tensor API is accessible
|
|
127
|
+
* @returns True if API is healthy
|
|
128
|
+
*/
|
|
129
|
+
async healthCheck() {
|
|
130
|
+
try {
|
|
131
|
+
// Try fetching a popular collection as health check
|
|
132
|
+
await this.getCollectionStats('okay_bears');
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
this.logError(`Tensor API health check failed: ${error.message}`);
|
|
137
|
+
return false;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// =========================================================================
|
|
141
|
+
// Private Methods
|
|
142
|
+
// =========================================================================
|
|
143
|
+
async makeRequest(url) {
|
|
144
|
+
// Rate limiting
|
|
145
|
+
await this.enforceRateLimit();
|
|
146
|
+
// Build headers
|
|
147
|
+
const headers = {
|
|
148
|
+
'Content-Type': 'application/json',
|
|
149
|
+
'Accept': 'application/json',
|
|
150
|
+
};
|
|
151
|
+
if (this.apiKey) {
|
|
152
|
+
headers['X-API-Key'] = this.apiKey;
|
|
153
|
+
}
|
|
154
|
+
// Create abort controller for timeout
|
|
155
|
+
const controller = new AbortController();
|
|
156
|
+
const timeoutId = setTimeout(() => controller.abort(), this.timeout);
|
|
157
|
+
try {
|
|
158
|
+
this.logDebug(`Request: GET ${url}`);
|
|
159
|
+
const response = await this.fetchImpl(url, {
|
|
160
|
+
method: 'GET',
|
|
161
|
+
headers,
|
|
162
|
+
signal: controller.signal,
|
|
163
|
+
});
|
|
164
|
+
clearTimeout(timeoutId);
|
|
165
|
+
// Handle non-OK responses
|
|
166
|
+
if (!response.ok) {
|
|
167
|
+
const errorBody = await response.text();
|
|
168
|
+
let errorMessage = `Tensor API error: ${response.status} ${response.statusText}`;
|
|
169
|
+
try {
|
|
170
|
+
const errorJson = JSON.parse(errorBody);
|
|
171
|
+
errorMessage = `Tensor API error: ${errorJson.message || errorJson.error}`;
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
errorMessage += ` - ${errorBody.substring(0, 200)}`;
|
|
175
|
+
}
|
|
176
|
+
throw new Error(errorMessage);
|
|
177
|
+
}
|
|
178
|
+
// Parse JSON response
|
|
179
|
+
const data = await response.json();
|
|
180
|
+
this.logDebug(`Response: ${response.status} - ${JSON.stringify(data).substring(0, 100)}...`);
|
|
181
|
+
return data;
|
|
182
|
+
}
|
|
183
|
+
catch (error) {
|
|
184
|
+
clearTimeout(timeoutId);
|
|
185
|
+
if (error.name === 'AbortError') {
|
|
186
|
+
throw new Error(`Tensor API request timeout after ${this.timeout}ms`);
|
|
187
|
+
}
|
|
188
|
+
throw error;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
async enforceRateLimit() {
|
|
192
|
+
const now = Date.now();
|
|
193
|
+
const timeSinceLastRequest = now - this.rateLimiter.lastRequest;
|
|
194
|
+
if (timeSinceLastRequest < this.rateLimiter.minInterval) {
|
|
195
|
+
const waitTime = this.rateLimiter.minInterval - timeSinceLastRequest;
|
|
196
|
+
this.logDebug(`Rate limit: waiting ${waitTime}ms`);
|
|
197
|
+
await new Promise((resolve) => setTimeout(resolve, waitTime));
|
|
198
|
+
}
|
|
199
|
+
this.rateLimiter.lastRequest = Date.now();
|
|
200
|
+
}
|
|
201
|
+
isNotFoundError(error) {
|
|
202
|
+
return (error instanceof Error &&
|
|
203
|
+
(error.message.includes('404') || error.message.includes('not found')));
|
|
204
|
+
}
|
|
205
|
+
logDebug(message) {
|
|
206
|
+
if (this.logLevel === 'debug') {
|
|
207
|
+
console.log(`[TensorClient:DEBUG] ${message}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
logInfo(message) {
|
|
211
|
+
if (this.logLevel === 'debug' || this.logLevel === 'info') {
|
|
212
|
+
console.log(`[TensorClient:INFO] ${message}`);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
logError(message) {
|
|
216
|
+
if (this.logLevel !== 'none') {
|
|
217
|
+
console.error(`[TensorClient:ERROR] ${message}`);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
exports.TensorClient = TensorClient;
|
|
222
|
+
//# sourceMappingURL=tensor-client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tensor-client.js","sourceRoot":"","sources":["../../../../src/nft/clients/tensor-client.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAwBH;;;GAGG;AACH,MAAa,YAAY;IACN,OAAO,CAAS;IAChB,MAAM,CAAU;IAChB,OAAO,CAAS;IAChB,SAAS,CAAe;IACxB,QAAQ,CAAsC;IAC9C,WAAW,CAAc;IAE1C,YAAY,MAA2B;QACrC,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,uBAAuB,CAAC;QAC1D,IAAI,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,MAAM,EAAE,OAAO,IAAI,KAAK,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,MAAM,EAAE,QAAQ,IAAI,OAAO,CAAC;QAE5C,0DAA0D;QAC1D,MAAM,SAAS,GAAG,MAAM,EAAE,SAAS,IAAI,EAAE,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG;YACjB,WAAW,EAAE,CAAC;YACd,WAAW,EAAE,IAAI,GAAG,SAAS;SAC9B,CAAC;QAEF,+BAA+B;QAC/B,IAAI,MAAM,EAAE,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;QAChC,CAAC;aAAM,IAAI,OAAO,UAAU,CAAC,KAAK,KAAK,WAAW,EAAE,CAAC;YACnD,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,mCAAmC;YACnC,MAAM,IAAI,KAAK,CACb,uGAAuG,CACxG,CAAC;QACJ,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,IAAI,CAAC,QAAQ,CAAC,kCAAkC,IAAI,EAAE,CAAC,CAAC;QAExD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,uBAAuB,IAAI,QAAQ,CAAC;QAC/D,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAwB,GAAG,CAAC,CAAC;QAEpE,IAAI,CAAC,OAAO,CAAC,6BAA6B,IAAI,aAAa,QAAQ,CAAC,UAAU,GAAG,GAAG,MAAM,CAAC,CAAC;QAC5F,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,IAAY;QAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QAClD,OAAO,KAAK,CAAC,UAAU,CAAC;IAC1B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,WAAW,CACf,IAAY,EACZ,OAKC;QAED,IAAI,CAAC,QAAQ,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC;QAEhD,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAClE,IAAI,OAAO,EAAE,MAAM;YAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;QAC7D,IAAI,OAAO,EAAE,aAAa;YAAE,MAAM,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAElF,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,uBAAuB,IAAI,aAAa,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAgC,GAAG,CAAC,CAAC;QAE5E,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,CAAC,QAAQ,CAAC,MAAM,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC1E,OAAO,QAAQ,CAAC,QAAQ,CAAC;IAC3B,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,QAAQ,CACZ,IAAY,EACZ,OAGC;QAED,IAAI,CAAC,QAAQ,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAE7C,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;QACrC,IAAI,OAAO,EAAE,KAAK;YAAE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrE,IAAI,OAAO,EAAE,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,uBAAuB,IAAI,UAAU,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QACpF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAA0B,GAAG,CAAC,CAAC;QAEtE,IAAI,CAAC,OAAO,CAAC,WAAW,QAAQ,CAAC,KAAK,CAAC,MAAM,eAAe,IAAI,EAAE,CAAC,CAAC;QACpE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,cAAc,CAAC,IAAY;QAC/B,IAAI,CAAC,QAAQ,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;QAEpD,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,OAAO,iBAAiB,IAAI,UAAU,CAAC;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAgB,GAAG,CAAC,CAAC;YAC5D,IAAI,CAAC,OAAO,CAAC,2BAA2B,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAChC,IAAI,CAAC,QAAQ,CAAC,8BAA8B,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAO,IAAI,CAAC;YACd,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC;YACH,oDAAoD;YACpD,MAAM,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;YAC5C,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,QAAQ,CAAC,mCAAoC,KAAe,CAAC,OAAO,EAAE,CAAC,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,kBAAkB;IAClB,4EAA4E;IAEpE,KAAK,CAAC,WAAW,CAAI,GAAW;QACtC,gBAAgB;QAChB,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAE9B,gBAAgB;QAChB,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,QAAQ,EAAE,kBAAkB;SAC7B,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QACrC,CAAC;QAED,sCAAsC;QACtC,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,IAAI,CAAC,QAAQ,CAAC,gBAAgB,GAAG,EAAE,CAAC,CAAC;YAErC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE;gBACzC,MAAM,EAAE,KAAK;gBACb,OAAO;gBACP,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YAEH,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,0BAA0B;YAC1B,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;gBACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACxC,IAAI,YAAY,GAAG,qBAAqB,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CAAC;gBAEjF,IAAI,CAAC;oBACH,MAAM,SAAS,GAAwB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;oBAC7D,YAAY,GAAG,qBAAqB,SAAS,CAAC,OAAO,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;gBAC7E,CAAC;gBAAC,MAAM,CAAC;oBACP,YAAY,IAAI,MAAM,SAAS,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;gBACtD,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,YAAY,CAAC,CAAC;YAChC,CAAC;YAED,sBAAsB;YACtB,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,aAAa,QAAQ,CAAC,MAAM,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;YAE7F,OAAO,IAAS,CAAC;QAEnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,SAAS,CAAC,CAAC;YAExB,IAAK,KAAe,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC3C,MAAM,IAAI,KAAK,CAAC,oCAAoC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC;YACxE,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gBAAgB;QAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACvB,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC;QAEhE,IAAI,oBAAoB,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;YACxD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,oBAAoB,CAAC;YACrE,IAAI,CAAC,QAAQ,CAAC,uBAAuB,QAAQ,IAAI,CAAC,CAAC;YACnD,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC5C,CAAC;IAEO,eAAe,CAAC,KAAc;QACpC,OAAO,CACL,KAAK,YAAY,KAAK;YACtB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CACvE,CAAC;IACJ,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YAC9B,OAAO,CAAC,GAAG,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACjD,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,uBAAuB,OAAO,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,QAAQ,CAAC,OAAe;QAC9B,IAAI,IAAI,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7B,OAAO,CAAC,KAAK,CAAC,wBAAwB,OAAO,EAAE,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;CACF;AA9PD,oCA8PC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file nft/index.ts
|
|
3
|
+
* @module SolanaNFT
|
|
4
|
+
* @description Complete NFT toolkit for Solana: metadata, rarity, collection analytics,
|
|
5
|
+
* marketplace aggregation, and AI-powered investment recommendations.
|
|
6
|
+
* @author Keepeeto
|
|
7
|
+
* @license MIT
|
|
8
|
+
*/
|
|
9
|
+
export { NFTEngine } from './utils';
|
|
10
|
+
export { CollectionAnalytics, MarketplaceAggregator, AIRarityCalculator, AIInvestmentAdvisor, } from './advanced-features';
|
|
11
|
+
export * from './types.nft';
|
|
12
|
+
export type { CollectionStats, CollectionTrends, MarketplaceListing, MarketplaceFloorPrices, RarityScore, RarityAlgorithmConfig, InvestmentRecommendation, } from './advanced-features';
|
|
13
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/nft/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAGpC,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAG7B,cAAc,aAAa,CAAC;AAG5B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,sBAAsB,EACtB,WAAW,EACX,qBAAqB,EACrB,wBAAwB,GACzB,MAAM,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @file nft/index.ts
|
|
4
|
+
* @module SolanaNFT
|
|
5
|
+
* @description Complete NFT toolkit for Solana: metadata, rarity, collection analytics,
|
|
6
|
+
* marketplace aggregation, and AI-powered investment recommendations.
|
|
7
|
+
* @author Keepeeto
|
|
8
|
+
* @license MIT
|
|
9
|
+
*/
|
|
10
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
11
|
+
if (k2 === undefined) k2 = k;
|
|
12
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
13
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
14
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
15
|
+
}
|
|
16
|
+
Object.defineProperty(o, k2, desc);
|
|
17
|
+
}) : (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
o[k2] = m[k];
|
|
20
|
+
}));
|
|
21
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
22
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
23
|
+
};
|
|
24
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
25
|
+
exports.AIInvestmentAdvisor = exports.AIRarityCalculator = exports.MarketplaceAggregator = exports.CollectionAnalytics = exports.NFTEngine = void 0;
|
|
26
|
+
// Core NFT engine
|
|
27
|
+
var utils_1 = require("./utils");
|
|
28
|
+
Object.defineProperty(exports, "NFTEngine", { enumerable: true, get: function () { return utils_1.NFTEngine; } });
|
|
29
|
+
// Advanced features
|
|
30
|
+
var advanced_features_1 = require("./advanced-features");
|
|
31
|
+
Object.defineProperty(exports, "CollectionAnalytics", { enumerable: true, get: function () { return advanced_features_1.CollectionAnalytics; } });
|
|
32
|
+
Object.defineProperty(exports, "MarketplaceAggregator", { enumerable: true, get: function () { return advanced_features_1.MarketplaceAggregator; } });
|
|
33
|
+
Object.defineProperty(exports, "AIRarityCalculator", { enumerable: true, get: function () { return advanced_features_1.AIRarityCalculator; } });
|
|
34
|
+
Object.defineProperty(exports, "AIInvestmentAdvisor", { enumerable: true, get: function () { return advanced_features_1.AIInvestmentAdvisor; } });
|
|
35
|
+
// Core types
|
|
36
|
+
__exportStar(require("./types.nft"), exports);
|
|
37
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/nft/index.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;;;;;;;;;;;;;;;AAEH,kBAAkB;AAClB,iCAAoC;AAA3B,kGAAA,SAAS,OAAA;AAElB,oBAAoB;AACpB,yDAK6B;AAJ3B,wHAAA,mBAAmB,OAAA;AACnB,0HAAA,qBAAqB,OAAA;AACrB,uHAAA,kBAAkB,OAAA;AAClB,wHAAA,mBAAmB,OAAA;AAGrB,aAAa;AACb,8CAA4B"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
import { Commitment, Connection } from "@solana/web3.js";
|
|
2
|
+
export interface SynapseLikeClient {
|
|
3
|
+
connection: Connection;
|
|
4
|
+
fetch?: typeof fetch;
|
|
5
|
+
}
|
|
6
|
+
export interface NFTConfig {
|
|
7
|
+
client: SynapseLikeClient;
|
|
8
|
+
defaultCommitment?: Commitment;
|
|
9
|
+
fetch?: typeof fetch;
|
|
10
|
+
das?: {
|
|
11
|
+
baseUrl: string;
|
|
12
|
+
getAssetPath?: string;
|
|
13
|
+
getAssetByIdPath?: string;
|
|
14
|
+
getAssetProofPath?: string;
|
|
15
|
+
headers?: Record<string, string>;
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export interface NFTAttribute {
|
|
19
|
+
trait_type: string;
|
|
20
|
+
value: string | number;
|
|
21
|
+
rarity?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface NFTMetadata {
|
|
24
|
+
name: string;
|
|
25
|
+
description?: string;
|
|
26
|
+
image?: string;
|
|
27
|
+
attributes?: NFTAttribute[];
|
|
28
|
+
external_url?: string;
|
|
29
|
+
properties?: any;
|
|
30
|
+
collection?: {
|
|
31
|
+
name?: string;
|
|
32
|
+
family?: string;
|
|
33
|
+
verified?: boolean;
|
|
34
|
+
} | null;
|
|
35
|
+
symbol?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface NFTInfo {
|
|
38
|
+
mint: string;
|
|
39
|
+
owner?: string;
|
|
40
|
+
metadata: NFTMetadata;
|
|
41
|
+
compressed: boolean;
|
|
42
|
+
collection?: {
|
|
43
|
+
address?: string;
|
|
44
|
+
verified?: boolean;
|
|
45
|
+
name?: string;
|
|
46
|
+
} | null;
|
|
47
|
+
model?: 'token' | 'programmableNFT' | 'compressed';
|
|
48
|
+
creators?: Array<{
|
|
49
|
+
address: string;
|
|
50
|
+
verified: boolean;
|
|
51
|
+
share: number;
|
|
52
|
+
}>;
|
|
53
|
+
updateAuthority?: string | null;
|
|
54
|
+
edition?: {
|
|
55
|
+
isMaster: boolean;
|
|
56
|
+
number?: number;
|
|
57
|
+
} | null;
|
|
58
|
+
}
|
|
59
|
+
export interface CompressedNFTInfo extends NFTInfo {
|
|
60
|
+
tree?: string;
|
|
61
|
+
leaf?: string | number;
|
|
62
|
+
proof?: string[];
|
|
63
|
+
}
|
|
64
|
+
export interface AIRarityAnalysis {
|
|
65
|
+
overallRarity: number;
|
|
66
|
+
traitRarities: Record<string, number>;
|
|
67
|
+
}
|
|
68
|
+
export interface MarketplaceClientConfig {
|
|
69
|
+
/** Tensor API configuration */
|
|
70
|
+
tensor?: {
|
|
71
|
+
baseUrl?: string;
|
|
72
|
+
apiKey?: string;
|
|
73
|
+
rateLimit?: number;
|
|
74
|
+
};
|
|
75
|
+
/** Magic Eden API configuration */
|
|
76
|
+
magicEden?: {
|
|
77
|
+
baseUrl?: string;
|
|
78
|
+
apiKey?: string;
|
|
79
|
+
rateLimit?: number;
|
|
80
|
+
};
|
|
81
|
+
/** Helius DAS configuration for compressed NFTs */
|
|
82
|
+
helius?: {
|
|
83
|
+
apiKey: string;
|
|
84
|
+
cluster?: 'mainnet-beta' | 'devnet';
|
|
85
|
+
};
|
|
86
|
+
/** Cross-platform fetch implementation */
|
|
87
|
+
fetch?: typeof fetch;
|
|
88
|
+
/** Request timeout in milliseconds */
|
|
89
|
+
timeout?: number;
|
|
90
|
+
/** Enable detailed logging */
|
|
91
|
+
logLevel?: 'debug' | 'info' | 'error' | 'none';
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Tensor Collection Statistics Response
|
|
95
|
+
* @see https://docs.tensor.trade/tensorswap-api
|
|
96
|
+
*/
|
|
97
|
+
export interface TensorCollectionStats {
|
|
98
|
+
/** Collection slug/identifier */
|
|
99
|
+
slug: string;
|
|
100
|
+
/** Collection name */
|
|
101
|
+
name: string;
|
|
102
|
+
/** Current floor price in lamports */
|
|
103
|
+
floorPrice: number;
|
|
104
|
+
/** Listed count */
|
|
105
|
+
numListed: number;
|
|
106
|
+
/** 24h volume in lamports */
|
|
107
|
+
volume24h: number;
|
|
108
|
+
/** 7d volume in lamports */
|
|
109
|
+
volume7d: number;
|
|
110
|
+
/** 30d volume in lamports */
|
|
111
|
+
volume30d: number;
|
|
112
|
+
/** All-time volume in lamports */
|
|
113
|
+
volumeAll: number;
|
|
114
|
+
/** 24h sales count */
|
|
115
|
+
sales24h: number;
|
|
116
|
+
/** Total supply */
|
|
117
|
+
totalSupply: number;
|
|
118
|
+
/** Market cap in lamports (floor * supply) */
|
|
119
|
+
marketCap: number;
|
|
120
|
+
/** Average price in lamports */
|
|
121
|
+
avgPrice24h?: number;
|
|
122
|
+
/** 24h floor price change percentage */
|
|
123
|
+
floorChange24h?: number;
|
|
124
|
+
/** Royalty percentage (basis points) */
|
|
125
|
+
royaltyBps?: number;
|
|
126
|
+
/** Verified creator addresses */
|
|
127
|
+
creators?: string[];
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Tensor Active Listing
|
|
131
|
+
*/
|
|
132
|
+
export interface TensorListing {
|
|
133
|
+
/** Transaction signature */
|
|
134
|
+
txId: string;
|
|
135
|
+
/** NFT mint address */
|
|
136
|
+
mint: string;
|
|
137
|
+
/** Seller wallet address */
|
|
138
|
+
seller: string;
|
|
139
|
+
/** Listing price in lamports */
|
|
140
|
+
price: number;
|
|
141
|
+
/** Listing timestamp (Unix seconds) */
|
|
142
|
+
listedAt: number;
|
|
143
|
+
/** Listing source */
|
|
144
|
+
source: 'tensor' | 'tensorswap';
|
|
145
|
+
/** Optional listing URL */
|
|
146
|
+
url?: string;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Tensor Sale Activity
|
|
150
|
+
*/
|
|
151
|
+
export interface TensorSale {
|
|
152
|
+
/** Transaction signature */
|
|
153
|
+
txId: string;
|
|
154
|
+
/** NFT mint address */
|
|
155
|
+
mint: string;
|
|
156
|
+
/** Seller wallet */
|
|
157
|
+
seller: string;
|
|
158
|
+
/** Buyer wallet */
|
|
159
|
+
buyer: string;
|
|
160
|
+
/** Sale price in lamports */
|
|
161
|
+
price: number;
|
|
162
|
+
/** Sale timestamp (Unix seconds) */
|
|
163
|
+
timestamp: number;
|
|
164
|
+
/** Marketplace source */
|
|
165
|
+
source: string;
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Tensor API Error Response
|
|
169
|
+
*/
|
|
170
|
+
export interface TensorErrorResponse {
|
|
171
|
+
error: string;
|
|
172
|
+
message: string;
|
|
173
|
+
statusCode: number;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Magic Eden Collection Statistics Response
|
|
177
|
+
* @see https://api.magiceden.dev/v2/collections/{symbol}/stats
|
|
178
|
+
*/
|
|
179
|
+
export interface MagicEdenCollectionStats {
|
|
180
|
+
/** Collection symbol */
|
|
181
|
+
symbol: string;
|
|
182
|
+
/** Floor price in SOL (not lamports) */
|
|
183
|
+
floorPrice: number;
|
|
184
|
+
/** Listed count */
|
|
185
|
+
listedCount: number;
|
|
186
|
+
/** Average price in last 24h (SOL) */
|
|
187
|
+
avgPrice24hr: number;
|
|
188
|
+
/** 24h volume in SOL */
|
|
189
|
+
volumeAll: number;
|
|
190
|
+
/** Volume change in last 24h */
|
|
191
|
+
volume24hr: number;
|
|
192
|
+
/** Volume change (delta) */
|
|
193
|
+
volume24hrChange?: number;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Magic Eden Collection Info
|
|
197
|
+
*/
|
|
198
|
+
export interface MagicEdenCollection {
|
|
199
|
+
/** Collection symbol */
|
|
200
|
+
symbol: string;
|
|
201
|
+
/** Collection name */
|
|
202
|
+
name: string;
|
|
203
|
+
/** Description */
|
|
204
|
+
description?: string;
|
|
205
|
+
/** Image URL */
|
|
206
|
+
image?: string;
|
|
207
|
+
/** Twitter handle */
|
|
208
|
+
twitter?: string;
|
|
209
|
+
/** Discord URL */
|
|
210
|
+
discord?: string;
|
|
211
|
+
/** Website URL */
|
|
212
|
+
website?: string;
|
|
213
|
+
/** Total items */
|
|
214
|
+
totalItems?: number;
|
|
215
|
+
/** Is derivative */
|
|
216
|
+
isDerived?: boolean;
|
|
217
|
+
/** Categories */
|
|
218
|
+
categories?: string[];
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Magic Eden Listing Response
|
|
222
|
+
*/
|
|
223
|
+
export interface MagicEdenListing {
|
|
224
|
+
/** Price in lamports */
|
|
225
|
+
price: number;
|
|
226
|
+
/** Price tag (formatted, deprecated field) */
|
|
227
|
+
priceTag?: string;
|
|
228
|
+
/** Token mint address */
|
|
229
|
+
tokenMint: string;
|
|
230
|
+
/** Token address (PDA) */
|
|
231
|
+
tokenAddress: string;
|
|
232
|
+
/** Seller address */
|
|
233
|
+
seller: string;
|
|
234
|
+
/** Seller referral (optional) */
|
|
235
|
+
sellerReferral?: string;
|
|
236
|
+
/** NFT token size */
|
|
237
|
+
tokenSize: number;
|
|
238
|
+
/** PDA address */
|
|
239
|
+
pdaAddress: string;
|
|
240
|
+
/** Expiry timestamp */
|
|
241
|
+
expiry?: number;
|
|
242
|
+
/** ATA (Associated Token Account) */
|
|
243
|
+
auctionHouse?: string;
|
|
244
|
+
/** Listing receipt */
|
|
245
|
+
receipt?: string;
|
|
246
|
+
}
|
|
247
|
+
/**
|
|
248
|
+
* Magic Eden Activity (Sales/Listings)
|
|
249
|
+
*/
|
|
250
|
+
export interface MagicEdenActivity {
|
|
251
|
+
/** Transaction signature */
|
|
252
|
+
signature: string;
|
|
253
|
+
/** Activity type */
|
|
254
|
+
type: 'buyNow' | 'list' | 'delist' | 'bid' | 'cancelBid';
|
|
255
|
+
/** NFT mint */
|
|
256
|
+
tokenMint: string;
|
|
257
|
+
/** Collection symbol */
|
|
258
|
+
collection: string;
|
|
259
|
+
/** Collection name */
|
|
260
|
+
collectionName?: string;
|
|
261
|
+
/** Price in lamports */
|
|
262
|
+
price: number;
|
|
263
|
+
/** Seller wallet */
|
|
264
|
+
seller?: string;
|
|
265
|
+
/** Buyer wallet */
|
|
266
|
+
buyer?: string;
|
|
267
|
+
/** Block time (Unix seconds) */
|
|
268
|
+
blockTime: number;
|
|
269
|
+
/** Slot number */
|
|
270
|
+
slot: number;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Magic Eden API Error Response
|
|
274
|
+
*/
|
|
275
|
+
export interface MagicEdenErrorResponse {
|
|
276
|
+
error: string;
|
|
277
|
+
statusCode: number;
|
|
278
|
+
}
|
|
279
|
+
/**
|
|
280
|
+
* Unified collection statistics aggregated from multiple marketplaces
|
|
281
|
+
*/
|
|
282
|
+
export interface AggregatedCollectionStats {
|
|
283
|
+
/** Collection identifier */
|
|
284
|
+
collectionAddress: string;
|
|
285
|
+
/** Collection name */
|
|
286
|
+
name?: string;
|
|
287
|
+
/** Floor price in SOL (lowest across marketplaces) */
|
|
288
|
+
floorPrice: number;
|
|
289
|
+
/** Floor price source */
|
|
290
|
+
floorPriceSource: 'tensor' | 'magiceden' | 'aggregated';
|
|
291
|
+
/** Total supply */
|
|
292
|
+
totalSupply: number;
|
|
293
|
+
/** Listed count */
|
|
294
|
+
listed: number;
|
|
295
|
+
/** Listed percentage */
|
|
296
|
+
listedPercent: number;
|
|
297
|
+
/** 24h volume in SOL */
|
|
298
|
+
volume24h: number;
|
|
299
|
+
/** 7d volume in SOL */
|
|
300
|
+
volume7d: number;
|
|
301
|
+
/** 30d volume in SOL */
|
|
302
|
+
volume30d?: number;
|
|
303
|
+
/** 24h sales count */
|
|
304
|
+
sales24h: number;
|
|
305
|
+
/** Average sale price in last 24h (SOL) */
|
|
306
|
+
avgPrice24h: number;
|
|
307
|
+
/** Unique holders count */
|
|
308
|
+
uniqueHolders?: number;
|
|
309
|
+
/** Holder count */
|
|
310
|
+
holders?: number;
|
|
311
|
+
/** Floor price change 24h (percentage) */
|
|
312
|
+
floorChange24h?: number;
|
|
313
|
+
/** Data sources used */
|
|
314
|
+
sources: {
|
|
315
|
+
tensor: boolean;
|
|
316
|
+
magicEden: boolean;
|
|
317
|
+
};
|
|
318
|
+
/** Timestamp of data aggregation */
|
|
319
|
+
timestamp: number;
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Normalized marketplace listing (unified format)
|
|
323
|
+
*/
|
|
324
|
+
export interface NormalizedMarketplaceListing {
|
|
325
|
+
/** Marketplace source */
|
|
326
|
+
marketplace: 'tensor' | 'magiceden' | 'solanart' | 'opensea' | 'hyperspace';
|
|
327
|
+
/** NFT mint address */
|
|
328
|
+
mint: string;
|
|
329
|
+
/** Listing price in SOL */
|
|
330
|
+
price: number;
|
|
331
|
+
/** Listing price in lamports */
|
|
332
|
+
priceLamports: number;
|
|
333
|
+
/** Seller wallet address */
|
|
334
|
+
seller: string;
|
|
335
|
+
/** Listing URL */
|
|
336
|
+
listingUrl: string;
|
|
337
|
+
/** Listed timestamp (Unix seconds) */
|
|
338
|
+
timestamp: number;
|
|
339
|
+
/** Optional attributes */
|
|
340
|
+
attributes?: Record<string, string | number>;
|
|
341
|
+
}
|
|
342
|
+
//# sourceMappingURL=types.nft.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.nft.d.ts","sourceRoot":"","sources":["../../../src/nft/types.nft.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.nft.js","sourceRoot":"","sources":["../../../src/nft/types.nft.ts"],"names":[],"mappings":""}
|