@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,412 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Zero Combine Fetcher - Synapse SDK Implementation
|
|
4
|
+
*
|
|
5
|
+
* Professional implementation of the OOBE Protocol's ZeroCombine pattern for
|
|
6
|
+
* fetching and reconstructing large transaction datasets split across multiple
|
|
7
|
+
* on-chain memo chunks. Uses Synapse SDK's batch capabilities for efficiency.
|
|
8
|
+
*
|
|
9
|
+
* @module ZeroCombineFetcher
|
|
10
|
+
* @author SteveTheHead
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ZeroCombineFetcher = void 0;
|
|
14
|
+
const pda_manager_1 = require("./pda-manager");
|
|
15
|
+
/**
|
|
16
|
+
* ZeroCombineFetcher - fetches and reconstructs large transaction datasets
|
|
17
|
+
*
|
|
18
|
+
* This class implements the OOBE Protocol pattern for storing large data on-chain
|
|
19
|
+
* by splitting it across multiple memo transactions and linking them via signatures.
|
|
20
|
+
* Uses Synapse SDK's efficient batching for optimal performance.
|
|
21
|
+
*/
|
|
22
|
+
class ZeroCombineFetcher {
|
|
23
|
+
client;
|
|
24
|
+
pdaManager;
|
|
25
|
+
config;
|
|
26
|
+
/**
|
|
27
|
+
* Create a new ZeroCombineFetcher instance
|
|
28
|
+
* @param client - Synapse client for RPC calls
|
|
29
|
+
* @param walletAddress - User wallet address
|
|
30
|
+
* @param fetchConfig - Optional fetch configuration
|
|
31
|
+
*/
|
|
32
|
+
constructor(client, walletAddress, fetchConfig) {
|
|
33
|
+
this.client = client;
|
|
34
|
+
this.pdaManager = new pda_manager_1.PDAManager(client, walletAddress);
|
|
35
|
+
this.config = {
|
|
36
|
+
batchSize: 100,
|
|
37
|
+
delayMs: 2000,
|
|
38
|
+
maxRetries: 3,
|
|
39
|
+
retryDelayMs: 1000,
|
|
40
|
+
...fetchConfig,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Execute the full fetch and reconstruction process
|
|
45
|
+
* @param pdas - Optional custom PDAs (if null, will derive from wallet)
|
|
46
|
+
* @returns ZeroCombineResult with all reconstructed proof records
|
|
47
|
+
*/
|
|
48
|
+
async execute(pdas) {
|
|
49
|
+
// Get or use provided PDAs
|
|
50
|
+
const userPDAs = pdas || this.pdaManager.getUserPDAs();
|
|
51
|
+
// Fetch root transactions
|
|
52
|
+
const rootTransactions = await this.getRootTransactions(userPDAs.rootPDA);
|
|
53
|
+
if (rootTransactions.length === 0) {
|
|
54
|
+
throw new Error('No transactions found in Root PDA');
|
|
55
|
+
}
|
|
56
|
+
// Fetch and structure DB transactions
|
|
57
|
+
const { zeroTransactions, allDbTransactions } = await this.getDbTransactions(userPDAs.leafPDA, rootTransactions);
|
|
58
|
+
// Process in batches
|
|
59
|
+
const allProofRecords = [];
|
|
60
|
+
for (let i = 0; i < zeroTransactions.length; i += this.config.batchSize) {
|
|
61
|
+
const batch = zeroTransactions.slice(i, i + this.config.batchSize);
|
|
62
|
+
// Fetch first chunk content for batch
|
|
63
|
+
const withFirstChunk = await this.fetchFirstChunkBatch(batch, allDbTransactions);
|
|
64
|
+
// Resolve all memo chunks
|
|
65
|
+
const fullRecords = await this.resolveMemoChunksBatch(withFirstChunk, allDbTransactions);
|
|
66
|
+
allProofRecords.push(...fullRecords);
|
|
67
|
+
// Delay between batches to avoid rate limiting
|
|
68
|
+
if (i + this.config.batchSize < zeroTransactions.length) {
|
|
69
|
+
await this.sleep(this.config.delayMs);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
tools: allProofRecords,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Fetch all transactions from Root PDA
|
|
78
|
+
* Root PDA contains merkle roots and proof signatures
|
|
79
|
+
* Uses optimized batch fetching for maximum performance
|
|
80
|
+
* @param rootPDA - Root PDA public key
|
|
81
|
+
* @returns Array of signature info with decoded memos
|
|
82
|
+
*/
|
|
83
|
+
async getRootTransactions(rootPDA) {
|
|
84
|
+
const signatures = [];
|
|
85
|
+
let lastSignature = null;
|
|
86
|
+
// Paginate through all transactions using getSignaturesForAddress
|
|
87
|
+
while (true) {
|
|
88
|
+
const batch = await this.client.call('getSignaturesForAddress', [
|
|
89
|
+
rootPDA.toBase58(),
|
|
90
|
+
{
|
|
91
|
+
limit: 1000,
|
|
92
|
+
before: lastSignature || undefined,
|
|
93
|
+
},
|
|
94
|
+
]);
|
|
95
|
+
if (batch.length === 0)
|
|
96
|
+
break;
|
|
97
|
+
// Process batch: fetch transaction details for all signatures in parallel
|
|
98
|
+
const txRequests = batch.map((sig) => ({
|
|
99
|
+
method: 'getTransaction',
|
|
100
|
+
params: [sig.signature, { encoding: 'json', maxSupportedTransactionVersion: 0 }],
|
|
101
|
+
}));
|
|
102
|
+
const txDetails = await this.client.batch(txRequests);
|
|
103
|
+
// Extract and decode memos from transaction details
|
|
104
|
+
const valid = batch
|
|
105
|
+
.map((sig, index) => {
|
|
106
|
+
const tx = txDetails[index];
|
|
107
|
+
const memo = this.extractMemoFromTransaction(tx);
|
|
108
|
+
return {
|
|
109
|
+
signature: sig.signature,
|
|
110
|
+
slot: sig.slot,
|
|
111
|
+
blockTime: sig.blockTime,
|
|
112
|
+
memo: memo ? this.decodeMemo(memo) : null,
|
|
113
|
+
err: sig.err,
|
|
114
|
+
confirmationStatus: sig.confirmationStatus,
|
|
115
|
+
};
|
|
116
|
+
})
|
|
117
|
+
.filter((sig) => sig.signature && sig.memo);
|
|
118
|
+
signatures.push(...valid);
|
|
119
|
+
lastSignature = batch[batch.length - 1].signature;
|
|
120
|
+
if (batch.length < 1000)
|
|
121
|
+
break;
|
|
122
|
+
// Small delay to avoid rate limiting (use configured delay)
|
|
123
|
+
await this.sleep(this.config.delayMs || 500);
|
|
124
|
+
}
|
|
125
|
+
return signatures;
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Fetch and structure transactions from DB/Leaf PDA
|
|
129
|
+
* Uses optimized batch fetching for maximum performance
|
|
130
|
+
* @param leafPDA - Leaf PDA public key
|
|
131
|
+
* @param rootTransactions - Root transactions to match against
|
|
132
|
+
* @returns Zero transactions and all DB transactions
|
|
133
|
+
*/
|
|
134
|
+
async getDbTransactions(leafPDA, rootTransactions) {
|
|
135
|
+
// Fetch all DB transactions with batch optimization
|
|
136
|
+
const allDbTransactions = [];
|
|
137
|
+
let lastSignature = null;
|
|
138
|
+
while (true) {
|
|
139
|
+
const batch = await this.client.call('getSignaturesForAddress', [
|
|
140
|
+
leafPDA.toBase58(),
|
|
141
|
+
{
|
|
142
|
+
limit: 1000,
|
|
143
|
+
before: lastSignature || undefined,
|
|
144
|
+
},
|
|
145
|
+
]);
|
|
146
|
+
if (batch.length === 0)
|
|
147
|
+
break;
|
|
148
|
+
// Batch fetch transaction details for all signatures
|
|
149
|
+
const txRequests = batch.map((sig) => ({
|
|
150
|
+
method: 'getTransaction',
|
|
151
|
+
params: [sig.signature, { encoding: 'json', maxSupportedTransactionVersion: 0 }],
|
|
152
|
+
}));
|
|
153
|
+
const txDetails = await this.client.batch(txRequests);
|
|
154
|
+
// Extract memos and build signature info
|
|
155
|
+
const valid = batch
|
|
156
|
+
.map((sig, index) => {
|
|
157
|
+
const tx = txDetails[index];
|
|
158
|
+
const memo = this.extractMemoFromTransaction(tx);
|
|
159
|
+
return {
|
|
160
|
+
signature: sig.signature,
|
|
161
|
+
slot: sig.slot,
|
|
162
|
+
blockTime: sig.blockTime,
|
|
163
|
+
memo: memo ? this.decodeMemo(memo) : null,
|
|
164
|
+
err: sig.err,
|
|
165
|
+
};
|
|
166
|
+
})
|
|
167
|
+
.filter((sig) => sig.signature && sig.memo);
|
|
168
|
+
allDbTransactions.push(...valid);
|
|
169
|
+
lastSignature = batch[batch.length - 1].signature;
|
|
170
|
+
if (batch.length < 1000)
|
|
171
|
+
break;
|
|
172
|
+
// Small delay to avoid rate limiting (use configured delay)
|
|
173
|
+
await this.sleep(this.config.delayMs || 500);
|
|
174
|
+
}
|
|
175
|
+
// Filter zero chunk transactions (128 bytes: 64+64+64)
|
|
176
|
+
const zeroTransactions = allDbTransactions
|
|
177
|
+
.filter((sig) => {
|
|
178
|
+
if (!sig.memo)
|
|
179
|
+
return false;
|
|
180
|
+
const cleaned = sig.memo.replace(/\[\\d+\]\s*/, '').replace(/\\|\s+/g, '');
|
|
181
|
+
const parts = cleaned.split('|');
|
|
182
|
+
return (parts.length === 3 &&
|
|
183
|
+
parts[0].length === 64 &&
|
|
184
|
+
parts[1].length === 64 &&
|
|
185
|
+
parts[2].length >= 64);
|
|
186
|
+
})
|
|
187
|
+
.map((sig) => {
|
|
188
|
+
const parts = sig.memo.split('|');
|
|
189
|
+
return {
|
|
190
|
+
signature: sig.signature,
|
|
191
|
+
slot: sig.slot,
|
|
192
|
+
memo: {
|
|
193
|
+
leaf1: parts[0],
|
|
194
|
+
leaf2: parts[1],
|
|
195
|
+
prevSign: parts[2],
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
});
|
|
199
|
+
// Match zero transactions with root transactions
|
|
200
|
+
const matched = [];
|
|
201
|
+
for (const rootTx of rootTransactions) {
|
|
202
|
+
if (!rootTx.memo)
|
|
203
|
+
continue;
|
|
204
|
+
let rootMemo;
|
|
205
|
+
try {
|
|
206
|
+
rootMemo = JSON.parse(rootTx.memo);
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
continue;
|
|
210
|
+
}
|
|
211
|
+
if (!rootMemo.proofSignature)
|
|
212
|
+
continue;
|
|
213
|
+
const matchingZero = zeroTransactions.find((zero) => zero.signature === rootMemo.proofSignature);
|
|
214
|
+
if (matchingZero) {
|
|
215
|
+
matched.push({
|
|
216
|
+
root: rootMemo.root,
|
|
217
|
+
proofSignature: rootMemo.proofSignature,
|
|
218
|
+
transaction: matchingZero,
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return { zeroTransactions: matched, allDbTransactions };
|
|
223
|
+
}
|
|
224
|
+
/**
|
|
225
|
+
* Fetch first chunk content for a batch of transactions
|
|
226
|
+
* @param batch - Batch of transactions to process
|
|
227
|
+
* @param allTransactions - All DB transactions for lookup
|
|
228
|
+
* @returns Transactions enriched with first chunk content
|
|
229
|
+
*/
|
|
230
|
+
async fetchFirstChunkBatch(batch, allTransactions) {
|
|
231
|
+
return await Promise.all(batch.map(async (tx) => {
|
|
232
|
+
const firstSignature = tx.transaction.memo.prevSign;
|
|
233
|
+
const firstTx = allTransactions.find((t) => t.signature === firstSignature);
|
|
234
|
+
if (!firstTx || !firstTx.memo) {
|
|
235
|
+
return { ...tx, firstChunkContent: null };
|
|
236
|
+
}
|
|
237
|
+
let memo = firstTx.memo;
|
|
238
|
+
if (!memo.includes('|')) {
|
|
239
|
+
memo = `single|${memo}`;
|
|
240
|
+
}
|
|
241
|
+
const parts = memo.split('|');
|
|
242
|
+
return {
|
|
243
|
+
...tx,
|
|
244
|
+
firstChunkContent: {
|
|
245
|
+
prev_chunk_sign: parts[0],
|
|
246
|
+
content: parts.slice(1).join('|').replace(/\\+/g, '').replace(/^"|"$/g, ''),
|
|
247
|
+
},
|
|
248
|
+
};
|
|
249
|
+
}));
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Resolve all memo chunks by following prev_chunk_sign links
|
|
253
|
+
* @param transactions - Transactions with first chunk
|
|
254
|
+
* @param allTransactions - All DB transactions for lookup
|
|
255
|
+
* @returns Complete proof records with all chunks resolved
|
|
256
|
+
*/
|
|
257
|
+
async resolveMemoChunksBatch(transactions, allTransactions) {
|
|
258
|
+
return await Promise.all(transactions.map(async (tx) => {
|
|
259
|
+
if (!tx.firstChunkContent)
|
|
260
|
+
return null;
|
|
261
|
+
const { prev_chunk_sign, content } = tx.firstChunkContent;
|
|
262
|
+
const chunks = [{ prev_chunk_sign, content }];
|
|
263
|
+
let prevSign = prev_chunk_sign;
|
|
264
|
+
// Follow the chain of previous signatures
|
|
265
|
+
while (prevSign && prevSign !== 'single') {
|
|
266
|
+
const prevTx = allTransactions.find((t) => t.signature === prevSign);
|
|
267
|
+
if (!prevTx || !prevTx.memo)
|
|
268
|
+
break;
|
|
269
|
+
let memo = prevTx.memo;
|
|
270
|
+
if (!memo.includes('|')) {
|
|
271
|
+
memo = `single|${memo}`;
|
|
272
|
+
}
|
|
273
|
+
const parts = memo.split('|');
|
|
274
|
+
const chunkData = {
|
|
275
|
+
prev_chunk_sign: parts[0],
|
|
276
|
+
content: parts.slice(1).join('|').replace(/\\+/g, '').replace(/^"|"$/g, ''),
|
|
277
|
+
};
|
|
278
|
+
chunks.push(chunkData);
|
|
279
|
+
prevSign = chunkData.prev_chunk_sign;
|
|
280
|
+
}
|
|
281
|
+
// Reconstruct final content
|
|
282
|
+
const finalContent = chunks
|
|
283
|
+
.reverse()
|
|
284
|
+
.map((c) => c.content)
|
|
285
|
+
.join('');
|
|
286
|
+
const cycledContent = [
|
|
287
|
+
{ result: finalContent },
|
|
288
|
+
{
|
|
289
|
+
leaf1: tx.transaction.memo.leaf1,
|
|
290
|
+
leaf2: tx.transaction.memo.leaf2,
|
|
291
|
+
prevSign: tx.transaction.memo.prevSign,
|
|
292
|
+
},
|
|
293
|
+
...chunks,
|
|
294
|
+
];
|
|
295
|
+
return {
|
|
296
|
+
root: tx.root,
|
|
297
|
+
proofSignature: tx.proofSignature,
|
|
298
|
+
transaction: tx.transaction,
|
|
299
|
+
firstChunkContent: tx.firstChunkContent,
|
|
300
|
+
cycledContent,
|
|
301
|
+
};
|
|
302
|
+
})).then((records) => records.filter((r) => r !== null));
|
|
303
|
+
}
|
|
304
|
+
/**
|
|
305
|
+
* Extract memo from transaction details
|
|
306
|
+
* @param tx - Transaction object
|
|
307
|
+
* @returns Memo string or null
|
|
308
|
+
*/
|
|
309
|
+
extractMemoFromTransaction(tx) {
|
|
310
|
+
if (!tx || !tx.transaction)
|
|
311
|
+
return null;
|
|
312
|
+
try {
|
|
313
|
+
// Look for memo program in instructions
|
|
314
|
+
const instructions = tx.transaction.message?.instructions || [];
|
|
315
|
+
const memoInstruction = instructions.find((ix) => ix.programId === 'MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr' ||
|
|
316
|
+
ix.program === 'spl-memo');
|
|
317
|
+
if (memoInstruction && memoInstruction.data) {
|
|
318
|
+
return memoInstruction.data;
|
|
319
|
+
}
|
|
320
|
+
// Fallback: check meta.logMessages for memo
|
|
321
|
+
const logs = tx.meta?.logMessages || [];
|
|
322
|
+
for (const log of logs) {
|
|
323
|
+
if (log.startsWith('Program log: Memo (len')) {
|
|
324
|
+
const match = log.match(/: "(.+)"$/);
|
|
325
|
+
if (match)
|
|
326
|
+
return match[1];
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
return null;
|
|
330
|
+
}
|
|
331
|
+
catch {
|
|
332
|
+
return null;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Decode memo from base64 or raw string
|
|
337
|
+
* @param memo - Memo to decode
|
|
338
|
+
* @returns Decoded memo string
|
|
339
|
+
*/
|
|
340
|
+
decodeMemo(memo) {
|
|
341
|
+
try {
|
|
342
|
+
// Try base64 decode
|
|
343
|
+
return Buffer.from(memo, 'base64').toString('utf-8');
|
|
344
|
+
}
|
|
345
|
+
catch {
|
|
346
|
+
// Return as-is if not base64
|
|
347
|
+
return memo;
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Sleep utility for batch delays
|
|
352
|
+
* @param ms - Milliseconds to sleep
|
|
353
|
+
*/
|
|
354
|
+
sleep(ms) {
|
|
355
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
|
356
|
+
}
|
|
357
|
+
/**
|
|
358
|
+
* Get PDA manager instance (for advanced usage)
|
|
359
|
+
*/
|
|
360
|
+
getPDAManager() {
|
|
361
|
+
return this.pdaManager;
|
|
362
|
+
}
|
|
363
|
+
/**
|
|
364
|
+
* Get batch configuration
|
|
365
|
+
*/
|
|
366
|
+
getBatchConfig() {
|
|
367
|
+
return { ...this.config };
|
|
368
|
+
}
|
|
369
|
+
/**
|
|
370
|
+
* Update batch configuration
|
|
371
|
+
*/
|
|
372
|
+
updateBatchConfig(config) {
|
|
373
|
+
this.config = { ...this.config, ...config };
|
|
374
|
+
}
|
|
375
|
+
/**
|
|
376
|
+
* Batch fetch multiple proof records for different wallets
|
|
377
|
+
* Uses optimized batching for parallel fetching
|
|
378
|
+
* @param walletAddresses - Array of wallet addresses to fetch for
|
|
379
|
+
* @returns Map of wallet address to their proof records
|
|
380
|
+
*/
|
|
381
|
+
async batchExecuteForWallets(walletAddresses) {
|
|
382
|
+
const results = new Map();
|
|
383
|
+
const batchSize = this.config.batchSize || 10;
|
|
384
|
+
// Process wallets in batches
|
|
385
|
+
for (let i = 0; i < walletAddresses.length; i += batchSize) {
|
|
386
|
+
const batch = walletAddresses.slice(i, i + batchSize);
|
|
387
|
+
// Fetch in parallel within batch
|
|
388
|
+
const batchResults = await Promise.all(batch.map(async (address) => {
|
|
389
|
+
try {
|
|
390
|
+
const pdaManager = new pda_manager_1.PDAManager(this.client, address);
|
|
391
|
+
const pdas = pdaManager.getUserPDAs();
|
|
392
|
+
const result = await this.execute(pdas);
|
|
393
|
+
return { address, result };
|
|
394
|
+
}
|
|
395
|
+
catch (error) {
|
|
396
|
+
return { address, result: { tools: [] } };
|
|
397
|
+
}
|
|
398
|
+
}));
|
|
399
|
+
// Store results
|
|
400
|
+
batchResults.forEach(({ address, result }) => {
|
|
401
|
+
results.set(address, result);
|
|
402
|
+
});
|
|
403
|
+
// Delay between batches
|
|
404
|
+
if (i + batchSize < walletAddresses.length) {
|
|
405
|
+
await this.sleep(this.config.delayMs || 2000);
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
return results;
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
exports.ZeroCombineFetcher = ZeroCombineFetcher;
|
|
412
|
+
//# sourceMappingURL=zero-combine-fetcher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zero-combine-fetcher.js","sourceRoot":"","sources":["../../../src/ai/zero-combine-fetcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { EventEmitter } from 'eventemitter3';
|
|
2
|
+
import { SynapseConfig, RequestOptions, ClientStats } from './types';
|
|
3
|
+
import { SignatureInfo } from './ai';
|
|
4
|
+
/**
|
|
5
|
+
* @name SynapseClient
|
|
6
|
+
* @description The core client for interacting with the Synapse RPC Gateway. This class handles all low-level communication with the gateway, including request serialization, response deserialization, and error handling.
|
|
7
|
+
* @author SteveTheHead
|
|
8
|
+
* @author 0xArmorer
|
|
9
|
+
* @constructor SynapseConfig
|
|
10
|
+
*/
|
|
11
|
+
export declare class SynapseClient extends EventEmitter {
|
|
12
|
+
private config;
|
|
13
|
+
private requestId;
|
|
14
|
+
private stats;
|
|
15
|
+
constructor(config: SynapseConfig);
|
|
16
|
+
/**
|
|
17
|
+
* Get endpoint URL
|
|
18
|
+
*/
|
|
19
|
+
get endpoint(): string;
|
|
20
|
+
/**
|
|
21
|
+
* Get API key
|
|
22
|
+
*/
|
|
23
|
+
get apiKey(): string | undefined;
|
|
24
|
+
/**
|
|
25
|
+
* Make a single RPC call
|
|
26
|
+
* Uses zero-copy operations, early returns, and minimal branching
|
|
27
|
+
*/
|
|
28
|
+
call<T = any>(method: string, params?: any, options?: RequestOptions): Promise<T>;
|
|
29
|
+
/**
|
|
30
|
+
* Send an RPC request with automatic upstream rotation on "method not allowed" errors.
|
|
31
|
+
*/
|
|
32
|
+
private sendRpcWithRotation;
|
|
33
|
+
/**
|
|
34
|
+
* Make multiple RPC calls in batch
|
|
35
|
+
*/
|
|
36
|
+
batch<T = any>(requests: Array<{
|
|
37
|
+
method: string;
|
|
38
|
+
params?: any[];
|
|
39
|
+
}>, options?: RequestOptions): Promise<T[]>;
|
|
40
|
+
/**
|
|
41
|
+
* Internal HTTP request handler
|
|
42
|
+
*/
|
|
43
|
+
private makeHttpRequest;
|
|
44
|
+
/**
|
|
45
|
+
* Get a signature for a given address and message.
|
|
46
|
+
* @param address The base-58 encoded account address (required).
|
|
47
|
+
* @param options Optional configuration object:
|
|
48
|
+
* - commitment: string
|
|
49
|
+
* - minContextSlot: number
|
|
50
|
+
* - limit: number
|
|
51
|
+
* - before: string
|
|
52
|
+
* - until: string
|
|
53
|
+
* @returns The signature info array.
|
|
54
|
+
*/
|
|
55
|
+
getSignatureForAddress(address: string, options?: {
|
|
56
|
+
commitment?: string;
|
|
57
|
+
minContextSlot?: number;
|
|
58
|
+
limit?: number;
|
|
59
|
+
before?: string;
|
|
60
|
+
until?: string;
|
|
61
|
+
}): Promise<SignatureInfo[]>;
|
|
62
|
+
/**
|
|
63
|
+
* Update latency statistics
|
|
64
|
+
*/
|
|
65
|
+
private updateLatencyStats;
|
|
66
|
+
/**
|
|
67
|
+
* Get client statistics
|
|
68
|
+
*/
|
|
69
|
+
getStats(): ClientStats;
|
|
70
|
+
/**
|
|
71
|
+
* Reset statistics
|
|
72
|
+
*/
|
|
73
|
+
resetStats(): void;
|
|
74
|
+
/**
|
|
75
|
+
* Health check
|
|
76
|
+
*/
|
|
77
|
+
healthCheck(): Promise<boolean>;
|
|
78
|
+
/**
|
|
79
|
+
* Get gateway performance metrics
|
|
80
|
+
*/
|
|
81
|
+
getGatewayMetrics(): Promise<any>;
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EACL,aAAa,EAGb,cAAc,EAGd,WAAW,EACZ,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC;;;;;;GAMG;AAEH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAsD;IACpE,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,KAAK,CAAc;gBAEf,MAAM,EAAE,aAAa;IAwBjC;;OAEG;IACH,IAAI,QAAQ,IAAI,MAAM,CAErB;IAED;;OAEG;IACH,IAAI,MAAM,IAAI,MAAM,GAAG,SAAS,CAE/B;IAED;;;OAGG;IACG,IAAI,CAAC,CAAC,GAAG,GAAG,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,GAAE,GAAQ,EAChB,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,CAAC;IAqEb;;OAEG;YACW,mBAAmB;IAkDjC;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,GAAG,EACjB,QAAQ,EAAE,KAAK,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAA;KAAE,CAAC,EACnD,OAAO,GAAE,cAAmB,GAC3B,OAAO,CAAC,CAAC,EAAE,CAAC;IA6Bf;;OAEG;YACW,eAAe;IAyC7B;;;;;;;;;;OAUG;IACG,sBAAsB,CAC1B,OAAO,EAAE,MAAM,EACf,OAAO,CAAC,EAAE;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,aAAa,EAAE,CAAC;IAK3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;OAEG;IACH,QAAQ,IAAI,WAAW;IAOvB;;OAEG;IACH,UAAU,IAAI,IAAI;IAYlB;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAerC;;OAEG;IACG,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC;CAWxC"}
|