@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,207 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file defi/advanced-features.ts
|
|
3
|
+
* @module SolanaDeFi
|
|
4
|
+
* @author Keepeeto
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @description Advanced DeFi features: MEV protection, arbitrage detection, portfolio analytics,
|
|
7
|
+
* flash loan simulation, and yield farming opportunities.
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'eventemitter3';
|
|
10
|
+
import type { SynapseClient } from '../client';
|
|
11
|
+
export interface MEVProtectionConfig {
|
|
12
|
+
/** Enable Jito bundle submission for MEV protection */
|
|
13
|
+
enableJitoBundle?: boolean;
|
|
14
|
+
/** Jito block engine URL */
|
|
15
|
+
jitoBlockEngineUrl?: string;
|
|
16
|
+
/** Maximum MEV tip in lamports */
|
|
17
|
+
maxTipLamports?: number;
|
|
18
|
+
/** Enable transaction simulation before submission */
|
|
19
|
+
enableSimulation?: boolean;
|
|
20
|
+
/** Slippage tolerance in basis points */
|
|
21
|
+
slippageBps?: number;
|
|
22
|
+
}
|
|
23
|
+
export interface MEVProtectionResult {
|
|
24
|
+
protected: boolean;
|
|
25
|
+
bundleId?: string;
|
|
26
|
+
estimatedMEVSaved?: number;
|
|
27
|
+
tips?: {
|
|
28
|
+
jito?: number;
|
|
29
|
+
priority?: number;
|
|
30
|
+
};
|
|
31
|
+
simulation?: {
|
|
32
|
+
success: boolean;
|
|
33
|
+
logs?: string[];
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* MEV Protection Engine
|
|
38
|
+
* Protects trades from sandwich attacks and front-running using Jito bundles
|
|
39
|
+
*/
|
|
40
|
+
export declare class MEVProtection extends EventEmitter {
|
|
41
|
+
private config;
|
|
42
|
+
constructor(config?: MEVProtectionConfig);
|
|
43
|
+
/**
|
|
44
|
+
* Protect a swap transaction from MEV
|
|
45
|
+
*/
|
|
46
|
+
protectSwap(txBase64: string, options?: {
|
|
47
|
+
tipLamports?: number;
|
|
48
|
+
skipSimulation?: boolean;
|
|
49
|
+
}): Promise<MEVProtectionResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Simulate transaction
|
|
52
|
+
*/
|
|
53
|
+
private simulateTransaction;
|
|
54
|
+
/**
|
|
55
|
+
* Submit transaction via Jito bundle
|
|
56
|
+
*/
|
|
57
|
+
private submitJitoBundle;
|
|
58
|
+
/**
|
|
59
|
+
* Estimate MEV risk for a transaction
|
|
60
|
+
*/
|
|
61
|
+
estimateMEVRisk(inputMint: string, outputMint: string, amount: number): Promise<{
|
|
62
|
+
risk: 'low' | 'medium' | 'high';
|
|
63
|
+
estimatedLoss: number;
|
|
64
|
+
recommendation: string;
|
|
65
|
+
}>;
|
|
66
|
+
}
|
|
67
|
+
export interface ArbitrageOpportunity {
|
|
68
|
+
path: string[];
|
|
69
|
+
profit: number;
|
|
70
|
+
profitPercent: number;
|
|
71
|
+
exchanges: string[];
|
|
72
|
+
estimatedGas: number;
|
|
73
|
+
netProfit: number;
|
|
74
|
+
confidence: number;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Arbitrage Detection Engine
|
|
78
|
+
* Scans multiple DEXes for profitable arbitrage opportunities
|
|
79
|
+
*/
|
|
80
|
+
export declare class ArbitrageDetector extends EventEmitter {
|
|
81
|
+
private client;
|
|
82
|
+
private scanInterval?;
|
|
83
|
+
constructor(client: SynapseClient);
|
|
84
|
+
/**
|
|
85
|
+
* Find arbitrage opportunities between DEXes
|
|
86
|
+
*/
|
|
87
|
+
findOpportunities(options?: {
|
|
88
|
+
minProfitPercent?: number;
|
|
89
|
+
maxHops?: number;
|
|
90
|
+
tokens?: string[];
|
|
91
|
+
}): Promise<ArbitrageOpportunity[]>;
|
|
92
|
+
/**
|
|
93
|
+
* Start continuous arbitrage scanning
|
|
94
|
+
*/
|
|
95
|
+
startScanning(intervalMs?: number): void;
|
|
96
|
+
/**
|
|
97
|
+
* Stop scanning
|
|
98
|
+
*/
|
|
99
|
+
stopScanning(): void;
|
|
100
|
+
}
|
|
101
|
+
export interface TokenHolding {
|
|
102
|
+
mint: string;
|
|
103
|
+
symbol?: string;
|
|
104
|
+
amount: number;
|
|
105
|
+
decimals: number;
|
|
106
|
+
usdValue: number;
|
|
107
|
+
allocation: number;
|
|
108
|
+
change24h?: number;
|
|
109
|
+
}
|
|
110
|
+
export interface PortfolioMetrics {
|
|
111
|
+
totalValue: number;
|
|
112
|
+
holdings: TokenHolding[];
|
|
113
|
+
pnl24h: number;
|
|
114
|
+
pnl7d: number;
|
|
115
|
+
pnl30d: number;
|
|
116
|
+
riskScore: number;
|
|
117
|
+
diversificationScore: number;
|
|
118
|
+
topPerformers: TokenHolding[];
|
|
119
|
+
recommendations: string[];
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Portfolio Analytics Engine
|
|
123
|
+
* Analyzes token holdings with risk assessment and recommendations
|
|
124
|
+
*/
|
|
125
|
+
export declare class PortfolioAnalytics extends EventEmitter {
|
|
126
|
+
private client;
|
|
127
|
+
constructor(client: SynapseClient);
|
|
128
|
+
/**
|
|
129
|
+
* Analyze wallet portfolio
|
|
130
|
+
*/
|
|
131
|
+
analyzeWallet(walletAddress: string): Promise<PortfolioMetrics>;
|
|
132
|
+
/**
|
|
133
|
+
* Fetch token holdings for wallet
|
|
134
|
+
*/
|
|
135
|
+
private fetchTokenHoldings;
|
|
136
|
+
/**
|
|
137
|
+
* Calculate portfolio risk score (0-100)
|
|
138
|
+
*/
|
|
139
|
+
private calculateRiskScore;
|
|
140
|
+
/**
|
|
141
|
+
* Calculate diversification score (0-100)
|
|
142
|
+
*/
|
|
143
|
+
private calculateDiversification;
|
|
144
|
+
/**
|
|
145
|
+
* Generate portfolio recommendations
|
|
146
|
+
*/
|
|
147
|
+
private generateRecommendations;
|
|
148
|
+
}
|
|
149
|
+
export interface FlashLoanSimulation {
|
|
150
|
+
loanAmount: number;
|
|
151
|
+
tokenMint: string;
|
|
152
|
+
actions: FlashLoanAction[];
|
|
153
|
+
estimatedProfit: number;
|
|
154
|
+
estimatedCost: number;
|
|
155
|
+
netProfit: number;
|
|
156
|
+
success: boolean;
|
|
157
|
+
logs: string[];
|
|
158
|
+
}
|
|
159
|
+
export interface FlashLoanAction {
|
|
160
|
+
type: 'swap' | 'arbitrage' | 'liquidation';
|
|
161
|
+
description: string;
|
|
162
|
+
inputAmount: number;
|
|
163
|
+
outputAmount: number;
|
|
164
|
+
exchange?: string;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Flash Loan Simulator
|
|
168
|
+
* Simulates flash loan opportunities without execution
|
|
169
|
+
*/
|
|
170
|
+
export declare class FlashLoanSimulator extends EventEmitter {
|
|
171
|
+
private client;
|
|
172
|
+
constructor(client: SynapseClient);
|
|
173
|
+
/**
|
|
174
|
+
* Simulate flash loan execution
|
|
175
|
+
*/
|
|
176
|
+
simulate(options: {
|
|
177
|
+
loanAmount: number;
|
|
178
|
+
tokenMint: string;
|
|
179
|
+
actions: FlashLoanAction[];
|
|
180
|
+
}): Promise<FlashLoanSimulation>;
|
|
181
|
+
}
|
|
182
|
+
export interface YieldOpportunity {
|
|
183
|
+
protocol: string;
|
|
184
|
+
pool: string;
|
|
185
|
+
apy: number;
|
|
186
|
+
tvl: number;
|
|
187
|
+
tokens: string[];
|
|
188
|
+
risk: 'low' | 'medium' | 'high';
|
|
189
|
+
url?: string;
|
|
190
|
+
}
|
|
191
|
+
/**
|
|
192
|
+
* Yield Farming Finder
|
|
193
|
+
* Discovers high-yield farming opportunities across Solana protocols
|
|
194
|
+
*/
|
|
195
|
+
export declare class YieldFarmingFinder extends EventEmitter {
|
|
196
|
+
private client;
|
|
197
|
+
constructor(client: SynapseClient);
|
|
198
|
+
/**
|
|
199
|
+
* Find yield farming opportunities
|
|
200
|
+
*/
|
|
201
|
+
findOpportunities(options?: {
|
|
202
|
+
minAPY?: number;
|
|
203
|
+
maxRisk?: 'low' | 'medium' | 'high';
|
|
204
|
+
protocols?: string[];
|
|
205
|
+
}): Promise<YieldOpportunity[]>;
|
|
206
|
+
}
|
|
207
|
+
//# sourceMappingURL=unstable-features.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unstable-features.d.ts","sourceRoot":"","sources":["../../../src/defi/unstable-features.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,374 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @file defi/advanced-features.ts
|
|
3
|
+
* @module SolanaDeFi
|
|
4
|
+
* @author Keepeeto
|
|
5
|
+
* @license MIT
|
|
6
|
+
* @description Advanced DeFi features: MEV protection, arbitrage detection, portfolio analytics,
|
|
7
|
+
* flash loan simulation, and yield farming opportunities.
|
|
8
|
+
*/
|
|
9
|
+
import { EventEmitter } from 'eventemitter3';
|
|
10
|
+
import { DeFiError } from '../types.js';
|
|
11
|
+
/**
|
|
12
|
+
* MEV Protection Engine
|
|
13
|
+
* Protects trades from sandwich attacks and front-running using Jito bundles
|
|
14
|
+
*/
|
|
15
|
+
export class MEVProtection extends EventEmitter {
|
|
16
|
+
config;
|
|
17
|
+
constructor(config = {}) {
|
|
18
|
+
super();
|
|
19
|
+
this.config = {
|
|
20
|
+
enableJitoBundle: true,
|
|
21
|
+
jitoBlockEngineUrl: 'https://mainnet.block-engine.jito.wtf',
|
|
22
|
+
maxTipLamports: 10_000_000, // 0.01 SOL
|
|
23
|
+
enableSimulation: true,
|
|
24
|
+
slippageBps: 50, // 0.5%
|
|
25
|
+
...config,
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Protect a swap transaction from MEV
|
|
30
|
+
*/
|
|
31
|
+
async protectSwap(txBase64, options) {
|
|
32
|
+
try {
|
|
33
|
+
this.emit('mev-protection-start', { txBase64 });
|
|
34
|
+
const result = {
|
|
35
|
+
protected: false,
|
|
36
|
+
};
|
|
37
|
+
// Step 1: Simulate transaction if enabled
|
|
38
|
+
if (this.config.enableSimulation && !options?.skipSimulation) {
|
|
39
|
+
const simulation = await this.simulateTransaction(txBase64);
|
|
40
|
+
result.simulation = simulation;
|
|
41
|
+
if (!simulation.success) {
|
|
42
|
+
throw new DeFiError('Transaction simulation failed', 'mev-protection');
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
// Step 2: Submit via Jito bundle if enabled
|
|
46
|
+
if (this.config.enableJitoBundle) {
|
|
47
|
+
const tipLamports = Math.min(options?.tipLamports || 1_000_000, this.config.maxTipLamports);
|
|
48
|
+
const bundleId = await this.submitJitoBundle(txBase64, tipLamports);
|
|
49
|
+
result.protected = true;
|
|
50
|
+
result.bundleId = bundleId;
|
|
51
|
+
result.tips = { jito: tipLamports };
|
|
52
|
+
}
|
|
53
|
+
this.emit('mev-protection-complete', result);
|
|
54
|
+
return result;
|
|
55
|
+
}
|
|
56
|
+
catch (error) {
|
|
57
|
+
this.emit('mev-protection-error', error);
|
|
58
|
+
throw new DeFiError(`MEV protection failed: ${error.message}`, 'mev-protection', undefined, error);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Simulate transaction
|
|
63
|
+
*/
|
|
64
|
+
async simulateTransaction(txBase64) {
|
|
65
|
+
// Placeholder - integrate with Solana simulation
|
|
66
|
+
return {
|
|
67
|
+
success: true,
|
|
68
|
+
logs: [],
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Submit transaction via Jito bundle
|
|
73
|
+
*/
|
|
74
|
+
async submitJitoBundle(txBase64, tipLamports) {
|
|
75
|
+
try {
|
|
76
|
+
const response = await fetch(`${this.config.jitoBlockEngineUrl}/api/v1/bundles`, {
|
|
77
|
+
method: 'POST',
|
|
78
|
+
headers: { 'Content-Type': 'application/json' },
|
|
79
|
+
body: JSON.stringify({
|
|
80
|
+
jsonrpc: '2.0',
|
|
81
|
+
id: 1,
|
|
82
|
+
method: 'sendBundle',
|
|
83
|
+
params: [[txBase64]],
|
|
84
|
+
}),
|
|
85
|
+
});
|
|
86
|
+
if (!response.ok) {
|
|
87
|
+
throw new Error(`Jito bundle submission failed: ${response.status}`);
|
|
88
|
+
}
|
|
89
|
+
const data = await response.json();
|
|
90
|
+
return data.result || 'unknown';
|
|
91
|
+
}
|
|
92
|
+
catch (error) {
|
|
93
|
+
throw new DeFiError(`Jito bundle submission failed: ${error.message}`, 'mev-protection', undefined, error);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Estimate MEV risk for a transaction
|
|
98
|
+
*/
|
|
99
|
+
async estimateMEVRisk(inputMint, outputMint, amount) {
|
|
100
|
+
// Simplified risk assessment
|
|
101
|
+
const volatilityScore = Math.random(); // Replace with real volatility data
|
|
102
|
+
let risk = 'low';
|
|
103
|
+
let estimatedLoss = 0;
|
|
104
|
+
let recommendation = 'Transaction appears safe';
|
|
105
|
+
if (volatilityScore > 0.7) {
|
|
106
|
+
risk = 'high';
|
|
107
|
+
estimatedLoss = amount * 0.05; // 5% potential loss
|
|
108
|
+
recommendation = 'Use Jito bundle for protection';
|
|
109
|
+
}
|
|
110
|
+
else if (volatilityScore > 0.4) {
|
|
111
|
+
risk = 'medium';
|
|
112
|
+
estimatedLoss = amount * 0.02; // 2% potential loss
|
|
113
|
+
recommendation = 'Consider MEV protection';
|
|
114
|
+
}
|
|
115
|
+
return { risk, estimatedLoss, recommendation };
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Arbitrage Detection Engine
|
|
120
|
+
* Scans multiple DEXes for profitable arbitrage opportunities
|
|
121
|
+
*/
|
|
122
|
+
export class ArbitrageDetector extends EventEmitter {
|
|
123
|
+
client;
|
|
124
|
+
scanInterval;
|
|
125
|
+
constructor(client) {
|
|
126
|
+
super();
|
|
127
|
+
this.client = client;
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Find arbitrage opportunities between DEXes
|
|
131
|
+
*/
|
|
132
|
+
async findOpportunities(options) {
|
|
133
|
+
try {
|
|
134
|
+
const minProfit = options?.minProfitPercent || 1.0;
|
|
135
|
+
const maxHops = options?.maxHops || 3;
|
|
136
|
+
this.emit('arbitrage-scan-start');
|
|
137
|
+
// Placeholder - integrate with actual DEX price feeds
|
|
138
|
+
const opportunities = [];
|
|
139
|
+
// Scan Jupiter, Raydium, Orca for price differences
|
|
140
|
+
// This is a simplified example
|
|
141
|
+
const mockOpportunities = [
|
|
142
|
+
{
|
|
143
|
+
path: ['SOL', 'USDC', 'SOL'],
|
|
144
|
+
profit: 0.5,
|
|
145
|
+
profitPercent: 2.5,
|
|
146
|
+
exchanges: ['Jupiter', 'Raydium'],
|
|
147
|
+
estimatedGas: 0.001,
|
|
148
|
+
netProfit: 0.499,
|
|
149
|
+
confidence: 0.85,
|
|
150
|
+
},
|
|
151
|
+
];
|
|
152
|
+
const filtered = mockOpportunities.filter((opp) => opp.profitPercent >= minProfit);
|
|
153
|
+
this.emit('arbitrage-scan-complete', { found: filtered.length });
|
|
154
|
+
return filtered;
|
|
155
|
+
}
|
|
156
|
+
catch (error) {
|
|
157
|
+
this.emit('arbitrage-scan-error', error);
|
|
158
|
+
throw new DeFiError(`Arbitrage detection failed: ${error.message}`, 'arbitrage', undefined, error);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Start continuous arbitrage scanning
|
|
163
|
+
*/
|
|
164
|
+
startScanning(intervalMs = 30000) {
|
|
165
|
+
if (this.scanInterval) {
|
|
166
|
+
clearInterval(this.scanInterval);
|
|
167
|
+
}
|
|
168
|
+
this.scanInterval = setInterval(async () => {
|
|
169
|
+
try {
|
|
170
|
+
const opportunities = await this.findOpportunities();
|
|
171
|
+
if (opportunities.length > 0) {
|
|
172
|
+
this.emit('arbitrage-found', opportunities);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
this.emit('arbitrage-scan-error', error);
|
|
177
|
+
}
|
|
178
|
+
}, intervalMs);
|
|
179
|
+
this.emit('scanning-started', { intervalMs });
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Stop scanning
|
|
183
|
+
*/
|
|
184
|
+
stopScanning() {
|
|
185
|
+
if (this.scanInterval) {
|
|
186
|
+
clearInterval(this.scanInterval);
|
|
187
|
+
this.scanInterval = undefined;
|
|
188
|
+
this.emit('scanning-stopped');
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Portfolio Analytics Engine
|
|
194
|
+
* Analyzes token holdings with risk assessment and recommendations
|
|
195
|
+
*/
|
|
196
|
+
export class PortfolioAnalytics extends EventEmitter {
|
|
197
|
+
client;
|
|
198
|
+
constructor(client) {
|
|
199
|
+
super();
|
|
200
|
+
this.client = client;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Analyze wallet portfolio
|
|
204
|
+
*/
|
|
205
|
+
async analyzeWallet(walletAddress) {
|
|
206
|
+
try {
|
|
207
|
+
this.emit('portfolio-analysis-start', { wallet: walletAddress });
|
|
208
|
+
// Fetch token accounts
|
|
209
|
+
const holdings = await this.fetchTokenHoldings(walletAddress);
|
|
210
|
+
// Calculate metrics
|
|
211
|
+
const totalValue = holdings.reduce((sum, h) => sum + h.usdValue, 0);
|
|
212
|
+
const riskScore = this.calculateRiskScore(holdings);
|
|
213
|
+
const diversificationScore = this.calculateDiversification(holdings);
|
|
214
|
+
const metrics = {
|
|
215
|
+
totalValue,
|
|
216
|
+
holdings,
|
|
217
|
+
pnl24h: 0, // Placeholder - requires price history
|
|
218
|
+
pnl7d: 0,
|
|
219
|
+
pnl30d: 0,
|
|
220
|
+
riskScore,
|
|
221
|
+
diversificationScore,
|
|
222
|
+
topPerformers: holdings.slice(0, 5),
|
|
223
|
+
recommendations: this.generateRecommendations(holdings, riskScore),
|
|
224
|
+
};
|
|
225
|
+
this.emit('portfolio-analysis-complete', metrics);
|
|
226
|
+
return metrics;
|
|
227
|
+
}
|
|
228
|
+
catch (error) {
|
|
229
|
+
this.emit('portfolio-analysis-error', error);
|
|
230
|
+
throw new DeFiError(`Portfolio analysis failed: ${error.message}`, 'portfolio', undefined, error);
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Fetch token holdings for wallet
|
|
235
|
+
*/
|
|
236
|
+
async fetchTokenHoldings(walletAddress) {
|
|
237
|
+
// Placeholder - integrate with actual token account fetching
|
|
238
|
+
return [];
|
|
239
|
+
}
|
|
240
|
+
/**
|
|
241
|
+
* Calculate portfolio risk score (0-100)
|
|
242
|
+
*/
|
|
243
|
+
calculateRiskScore(holdings) {
|
|
244
|
+
if (holdings.length === 0)
|
|
245
|
+
return 0;
|
|
246
|
+
// Simplified risk calculation
|
|
247
|
+
const concentrationRisk = holdings[0]?.allocation || 0;
|
|
248
|
+
const countRisk = Math.max(0, 50 - holdings.length * 5);
|
|
249
|
+
return Math.min(100, concentrationRisk + countRisk);
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Calculate diversification score (0-100)
|
|
253
|
+
*/
|
|
254
|
+
calculateDiversification(holdings) {
|
|
255
|
+
if (holdings.length === 0)
|
|
256
|
+
return 0;
|
|
257
|
+
const idealCount = 10;
|
|
258
|
+
const countScore = Math.min(100, (holdings.length / idealCount) * 70);
|
|
259
|
+
// Check allocation spread
|
|
260
|
+
const maxAllocation = Math.max(...holdings.map(h => h.allocation));
|
|
261
|
+
const spreadScore = (1 - maxAllocation / 100) * 30;
|
|
262
|
+
return Math.round(countScore + spreadScore);
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Generate portfolio recommendations
|
|
266
|
+
*/
|
|
267
|
+
generateRecommendations(holdings, riskScore) {
|
|
268
|
+
const recommendations = [];
|
|
269
|
+
if (riskScore > 70) {
|
|
270
|
+
recommendations.push('High risk detected - consider diversifying holdings');
|
|
271
|
+
}
|
|
272
|
+
if (holdings.length < 5) {
|
|
273
|
+
recommendations.push('Low diversification - consider adding more tokens');
|
|
274
|
+
}
|
|
275
|
+
if (holdings.length > 0 && holdings[0].allocation > 50) {
|
|
276
|
+
recommendations.push(`Concentrated in ${holdings[0].symbol} - reduce exposure`);
|
|
277
|
+
}
|
|
278
|
+
return recommendations;
|
|
279
|
+
}
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* Flash Loan Simulator
|
|
283
|
+
* Simulates flash loan opportunities without execution
|
|
284
|
+
*/
|
|
285
|
+
export class FlashLoanSimulator extends EventEmitter {
|
|
286
|
+
client;
|
|
287
|
+
constructor(client) {
|
|
288
|
+
super();
|
|
289
|
+
this.client = client;
|
|
290
|
+
}
|
|
291
|
+
/**
|
|
292
|
+
* Simulate flash loan execution
|
|
293
|
+
*/
|
|
294
|
+
async simulate(options) {
|
|
295
|
+
try {
|
|
296
|
+
this.emit('flash-loan-simulation-start', options);
|
|
297
|
+
const logs = [];
|
|
298
|
+
let currentAmount = options.loanAmount;
|
|
299
|
+
// Simulate each action
|
|
300
|
+
for (const action of options.actions) {
|
|
301
|
+
logs.push(`Executing ${action.type}: ${action.description}`);
|
|
302
|
+
currentAmount = action.outputAmount;
|
|
303
|
+
}
|
|
304
|
+
const estimatedCost = options.loanAmount * 0.0009; // 0.09% flash loan fee
|
|
305
|
+
const netProfit = currentAmount - options.loanAmount - estimatedCost;
|
|
306
|
+
const result = {
|
|
307
|
+
...options,
|
|
308
|
+
estimatedProfit: currentAmount - options.loanAmount,
|
|
309
|
+
estimatedCost,
|
|
310
|
+
netProfit,
|
|
311
|
+
success: netProfit > 0,
|
|
312
|
+
logs,
|
|
313
|
+
};
|
|
314
|
+
this.emit('flash-loan-simulation-complete', result);
|
|
315
|
+
return result;
|
|
316
|
+
}
|
|
317
|
+
catch (error) {
|
|
318
|
+
throw new DeFiError(`Flash loan simulation failed: ${error.message}`, 'flash-loan', undefined, error);
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Yield Farming Finder
|
|
324
|
+
* Discovers high-yield farming opportunities across Solana protocols
|
|
325
|
+
*/
|
|
326
|
+
export class YieldFarmingFinder extends EventEmitter {
|
|
327
|
+
client;
|
|
328
|
+
constructor(client) {
|
|
329
|
+
super();
|
|
330
|
+
this.client = client;
|
|
331
|
+
}
|
|
332
|
+
/**
|
|
333
|
+
* Find yield farming opportunities
|
|
334
|
+
*/
|
|
335
|
+
async findOpportunities(options) {
|
|
336
|
+
try {
|
|
337
|
+
this.emit('yield-search-start', options);
|
|
338
|
+
const minAPY = options?.minAPY || 10;
|
|
339
|
+
const maxRisk = options?.maxRisk || 'high';
|
|
340
|
+
// Placeholder - integrate with DeFi protocols APIs
|
|
341
|
+
const opportunities = [
|
|
342
|
+
{
|
|
343
|
+
protocol: 'Marinade',
|
|
344
|
+
pool: 'mSOL Staking',
|
|
345
|
+
apy: 7.5,
|
|
346
|
+
tvl: 1_500_000_000,
|
|
347
|
+
tokens: ['SOL'],
|
|
348
|
+
risk: 'low',
|
|
349
|
+
url: 'https://marinade.finance',
|
|
350
|
+
},
|
|
351
|
+
{
|
|
352
|
+
protocol: 'Orca',
|
|
353
|
+
pool: 'SOL/USDC Whirlpool',
|
|
354
|
+
apy: 25.3,
|
|
355
|
+
tvl: 50_000_000,
|
|
356
|
+
tokens: ['SOL', 'USDC'],
|
|
357
|
+
risk: 'medium',
|
|
358
|
+
url: 'https://orca.so',
|
|
359
|
+
},
|
|
360
|
+
];
|
|
361
|
+
const riskLevels = { low: 1, medium: 2, high: 3 };
|
|
362
|
+
const maxRiskLevel = riskLevels[maxRisk];
|
|
363
|
+
const filtered = opportunities.filter((opp) => opp.apy >= minAPY && riskLevels[opp.risk] <= maxRiskLevel);
|
|
364
|
+
// Sort by APY descending
|
|
365
|
+
filtered.sort((a, b) => b.apy - a.apy);
|
|
366
|
+
this.emit('yield-search-complete', { found: filtered.length });
|
|
367
|
+
return filtered;
|
|
368
|
+
}
|
|
369
|
+
catch (error) {
|
|
370
|
+
throw new DeFiError(`Yield farming search failed: ${error.message}`, 'yield', undefined, error);
|
|
371
|
+
}
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
//# sourceMappingURL=unstable-features.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"unstable-features.js","sourceRoot":"","sources":["../../../src/defi/unstable-features.ts"],"names":[],"mappings":"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"}
|