ton-provider-system 0.2.4 → 0.3.0

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/dist/index.d.cts CHANGED
@@ -992,6 +992,8 @@ declare class HealthChecker {
992
992
  private logger;
993
993
  private results;
994
994
  private highestSeqno;
995
+ /** Rolling window of recent valid seqnos per network (for outlier-robust blocksBehind). */
996
+ private seqnoSamples;
995
997
  private rateLimiter;
996
998
  constructor(config?: Partial<HealthCheckConfig>, logger?: Logger, rateLimiter?: RateLimiterManager);
997
999
  /**
@@ -1046,6 +1048,18 @@ declare class HealthChecker {
1046
1048
  */
1047
1049
  markOffline(providerId: string, network: Network, error?: string): void;
1048
1050
  private getResultKey;
1051
+ /**
1052
+ * Record a valid seqno sample and return an outlier-robust freshness baseline
1053
+ * (median of recent samples for the network). Using the median instead of the
1054
+ * raw maximum prevents a single provider that reports an inflated seqno from
1055
+ * poisoning `blocksBehind` for every other (healthy) provider. See P2-2.
1056
+ */
1057
+ private recordSeqnoAndGetBaseline;
1058
+ /**
1059
+ * Detect a "non-JSON response" error (e.g. an HTML error page returned by a
1060
+ * misbehaving gateway), used to decide whether to re-discover an Orbs endpoint.
1061
+ */
1062
+ private isNonJsonResponseError;
1049
1063
  /**
1050
1064
  * Get endpoint URL for a provider (handles dynamic providers like Orbs)
1051
1065
  */
@@ -1724,6 +1738,17 @@ declare function isValidHttpUrl(str: string): boolean;
1724
1738
  * Validate that a string is a valid WebSocket URL.
1725
1739
  */
1726
1740
  declare function isValidWsUrl(str: string): boolean;
1741
+ /**
1742
+ * Redact credentials from an endpoint URL so it is safe to log.
1743
+ *
1744
+ * Masks (a) sensitive query-param values (`apikey`, `api_key`, `key`, `token`,
1745
+ * `secret`, `password`), (b) credential-like path segments while preserving
1746
+ * structural ones (`api`, `v2`, `v3`, `jsonRPC`, `rpc`, `public`, …), and
1747
+ * (c) a credential-like leading host label (e.g. a QuickNode subdomain key).
1748
+ *
1749
+ * For logging only — never use the result to make requests.
1750
+ */
1751
+ declare function redactUrl(url: string): string;
1727
1752
 
1728
1753
  /**
1729
1754
  * Unified Provider System - Timeout Utilities
@@ -2059,4 +2084,4 @@ declare class GenericProvider extends BaseProvider {
2059
2084
  */
2060
2085
  declare function createProvider(provider: ResolvedProvider): BaseProvider;
2061
2086
 
2062
- export { type ApiVersion, ApiVersionSchema, BaseProvider, BrowserAdapter, CHAINSTACK_RATE_LIMIT, ChainstackProvider, ConfigError, DEFAULT_CONTRACT_TIMEOUT_MS, DEFAULT_HEALTH_CHECK_TIMEOUT_MS, DEFAULT_PROVIDERS, DEFAULT_PROVIDER_TIMEOUT_MS, DEFAULT_RATE_LIMIT, GenericProvider, GetBlockProvider, type HealthCheckConfig, HealthChecker, type Logger, type MasterchainInfo, type Network, type NetworkDefaults, NetworkSchema, NodeAdapter, ORBS_RATE_LIMIT, OnFinalityProvider, OrbsProvider, type ProviderConfig, ProviderConfigSchema, type ProviderEndpoints, ProviderError, type ProviderHealthResult, ProviderManager, type ProviderManagerOptions, type ProviderManagerState, ProviderRegistry, ProviderSelector, type ProviderState, type ProviderStatus, type ProviderType, ProviderTypeSchema, QUICKNODE_RATE_LIMIT, QuickNodeProvider, type RateLimitConfig, RateLimitError, type RateLimitState, RateLimiterManager, type ResolvedProvider, type RetryOptions, type RpcConfig, RpcConfigSchema, type SelectionConfig, type StateListener, TatumProvider, TimeoutError, TokenBucketRateLimiter, type TonApiResponse, TonCenterProvider, buildGetAddressBalanceUrl, buildGetAddressInfoUrl, buildGetAddressStateUrl, buildRestUrl, createBrowserAdapter, createBrowserAdapterForNetwork, createDefaultConfig, createDefaultRegistry, createEmptyConfig, createHealthChecker, createNodeAdapter, createProvider, createProviderManager, createRateLimiter, createRateLimiterManager, createRegistry, createRegistryFromData, createRegistryFromFile, createSelector, createTimeoutController, detectNetworkFromEndpoint, fetchWithTimeout, getBaseUrl, getDefaultProvidersForNetwork, getEnvVar, getProviderManager, getProvidersForNetwork, getRateLimitForType, getTonClient, getTonClientForNetwork, getTonClientWithRateLimit, isApiVersion, isChainstackUrl, isNetwork, isOrbsUrl, isProviderType, isQuickNodeUrl, isRateLimitError, isTimeoutError, isTonCenterUrl, isValidHttpUrl, isValidWsUrl, loadBuiltinConfig, loadConfig, loadConfigFromData, loadConfigFromUrl, mergeConfigs, mergeWithDefaults, normalizeV2Endpoint, parseProviderConfig, parseRpcConfig, resetNodeAdapter, resolveAllProviders, resolveEndpoints, resolveKeyPlaceholder, resolveProvider, sleep, toV2Base, toV3Base, withRetry, withTimeout, withTimeoutAndRetry, withTimeoutFn };
2087
+ export { type ApiVersion, ApiVersionSchema, BaseProvider, BrowserAdapter, CHAINSTACK_RATE_LIMIT, ChainstackProvider, ConfigError, DEFAULT_CONTRACT_TIMEOUT_MS, DEFAULT_HEALTH_CHECK_TIMEOUT_MS, DEFAULT_PROVIDERS, DEFAULT_PROVIDER_TIMEOUT_MS, DEFAULT_RATE_LIMIT, GenericProvider, GetBlockProvider, type HealthCheckConfig, HealthChecker, type Logger, type MasterchainInfo, type Network, type NetworkDefaults, NetworkSchema, NodeAdapter, ORBS_RATE_LIMIT, OnFinalityProvider, OrbsProvider, type ProviderConfig, ProviderConfigSchema, type ProviderEndpoints, ProviderError, type ProviderHealthResult, ProviderManager, type ProviderManagerOptions, type ProviderManagerState, ProviderRegistry, ProviderSelector, type ProviderState, type ProviderStatus, type ProviderType, ProviderTypeSchema, QUICKNODE_RATE_LIMIT, QuickNodeProvider, type RateLimitConfig, RateLimitError, type RateLimitState, RateLimiterManager, type ResolvedProvider, type RetryOptions, type RpcConfig, RpcConfigSchema, type SelectionConfig, type StateListener, TatumProvider, TimeoutError, TokenBucketRateLimiter, type TonApiResponse, TonCenterProvider, buildGetAddressBalanceUrl, buildGetAddressInfoUrl, buildGetAddressStateUrl, buildRestUrl, createBrowserAdapter, createBrowserAdapterForNetwork, createDefaultConfig, createDefaultRegistry, createEmptyConfig, createHealthChecker, createNodeAdapter, createProvider, createProviderManager, createRateLimiter, createRateLimiterManager, createRegistry, createRegistryFromData, createRegistryFromFile, createSelector, createTimeoutController, detectNetworkFromEndpoint, fetchWithTimeout, getBaseUrl, getDefaultProvidersForNetwork, getEnvVar, getProviderManager, getProvidersForNetwork, getRateLimitForType, getTonClient, getTonClientForNetwork, getTonClientWithRateLimit, isApiVersion, isChainstackUrl, isNetwork, isOrbsUrl, isProviderType, isQuickNodeUrl, isRateLimitError, isTimeoutError, isTonCenterUrl, isValidHttpUrl, isValidWsUrl, loadBuiltinConfig, loadConfig, loadConfigFromData, loadConfigFromUrl, mergeConfigs, mergeWithDefaults, normalizeV2Endpoint, parseProviderConfig, parseRpcConfig, redactUrl, resetNodeAdapter, resolveAllProviders, resolveEndpoints, resolveKeyPlaceholder, resolveProvider, sleep, toV2Base, toV3Base, withRetry, withTimeout, withTimeoutAndRetry, withTimeoutFn };
package/dist/index.d.ts CHANGED
@@ -992,6 +992,8 @@ declare class HealthChecker {
992
992
  private logger;
993
993
  private results;
994
994
  private highestSeqno;
995
+ /** Rolling window of recent valid seqnos per network (for outlier-robust blocksBehind). */
996
+ private seqnoSamples;
995
997
  private rateLimiter;
996
998
  constructor(config?: Partial<HealthCheckConfig>, logger?: Logger, rateLimiter?: RateLimiterManager);
997
999
  /**
@@ -1046,6 +1048,18 @@ declare class HealthChecker {
1046
1048
  */
1047
1049
  markOffline(providerId: string, network: Network, error?: string): void;
1048
1050
  private getResultKey;
1051
+ /**
1052
+ * Record a valid seqno sample and return an outlier-robust freshness baseline
1053
+ * (median of recent samples for the network). Using the median instead of the
1054
+ * raw maximum prevents a single provider that reports an inflated seqno from
1055
+ * poisoning `blocksBehind` for every other (healthy) provider. See P2-2.
1056
+ */
1057
+ private recordSeqnoAndGetBaseline;
1058
+ /**
1059
+ * Detect a "non-JSON response" error (e.g. an HTML error page returned by a
1060
+ * misbehaving gateway), used to decide whether to re-discover an Orbs endpoint.
1061
+ */
1062
+ private isNonJsonResponseError;
1049
1063
  /**
1050
1064
  * Get endpoint URL for a provider (handles dynamic providers like Orbs)
1051
1065
  */
@@ -1724,6 +1738,17 @@ declare function isValidHttpUrl(str: string): boolean;
1724
1738
  * Validate that a string is a valid WebSocket URL.
1725
1739
  */
1726
1740
  declare function isValidWsUrl(str: string): boolean;
1741
+ /**
1742
+ * Redact credentials from an endpoint URL so it is safe to log.
1743
+ *
1744
+ * Masks (a) sensitive query-param values (`apikey`, `api_key`, `key`, `token`,
1745
+ * `secret`, `password`), (b) credential-like path segments while preserving
1746
+ * structural ones (`api`, `v2`, `v3`, `jsonRPC`, `rpc`, `public`, …), and
1747
+ * (c) a credential-like leading host label (e.g. a QuickNode subdomain key).
1748
+ *
1749
+ * For logging only — never use the result to make requests.
1750
+ */
1751
+ declare function redactUrl(url: string): string;
1727
1752
 
1728
1753
  /**
1729
1754
  * Unified Provider System - Timeout Utilities
@@ -2059,4 +2084,4 @@ declare class GenericProvider extends BaseProvider {
2059
2084
  */
2060
2085
  declare function createProvider(provider: ResolvedProvider): BaseProvider;
2061
2086
 
2062
- export { type ApiVersion, ApiVersionSchema, BaseProvider, BrowserAdapter, CHAINSTACK_RATE_LIMIT, ChainstackProvider, ConfigError, DEFAULT_CONTRACT_TIMEOUT_MS, DEFAULT_HEALTH_CHECK_TIMEOUT_MS, DEFAULT_PROVIDERS, DEFAULT_PROVIDER_TIMEOUT_MS, DEFAULT_RATE_LIMIT, GenericProvider, GetBlockProvider, type HealthCheckConfig, HealthChecker, type Logger, type MasterchainInfo, type Network, type NetworkDefaults, NetworkSchema, NodeAdapter, ORBS_RATE_LIMIT, OnFinalityProvider, OrbsProvider, type ProviderConfig, ProviderConfigSchema, type ProviderEndpoints, ProviderError, type ProviderHealthResult, ProviderManager, type ProviderManagerOptions, type ProviderManagerState, ProviderRegistry, ProviderSelector, type ProviderState, type ProviderStatus, type ProviderType, ProviderTypeSchema, QUICKNODE_RATE_LIMIT, QuickNodeProvider, type RateLimitConfig, RateLimitError, type RateLimitState, RateLimiterManager, type ResolvedProvider, type RetryOptions, type RpcConfig, RpcConfigSchema, type SelectionConfig, type StateListener, TatumProvider, TimeoutError, TokenBucketRateLimiter, type TonApiResponse, TonCenterProvider, buildGetAddressBalanceUrl, buildGetAddressInfoUrl, buildGetAddressStateUrl, buildRestUrl, createBrowserAdapter, createBrowserAdapterForNetwork, createDefaultConfig, createDefaultRegistry, createEmptyConfig, createHealthChecker, createNodeAdapter, createProvider, createProviderManager, createRateLimiter, createRateLimiterManager, createRegistry, createRegistryFromData, createRegistryFromFile, createSelector, createTimeoutController, detectNetworkFromEndpoint, fetchWithTimeout, getBaseUrl, getDefaultProvidersForNetwork, getEnvVar, getProviderManager, getProvidersForNetwork, getRateLimitForType, getTonClient, getTonClientForNetwork, getTonClientWithRateLimit, isApiVersion, isChainstackUrl, isNetwork, isOrbsUrl, isProviderType, isQuickNodeUrl, isRateLimitError, isTimeoutError, isTonCenterUrl, isValidHttpUrl, isValidWsUrl, loadBuiltinConfig, loadConfig, loadConfigFromData, loadConfigFromUrl, mergeConfigs, mergeWithDefaults, normalizeV2Endpoint, parseProviderConfig, parseRpcConfig, resetNodeAdapter, resolveAllProviders, resolveEndpoints, resolveKeyPlaceholder, resolveProvider, sleep, toV2Base, toV3Base, withRetry, withTimeout, withTimeoutAndRetry, withTimeoutFn };
2087
+ export { type ApiVersion, ApiVersionSchema, BaseProvider, BrowserAdapter, CHAINSTACK_RATE_LIMIT, ChainstackProvider, ConfigError, DEFAULT_CONTRACT_TIMEOUT_MS, DEFAULT_HEALTH_CHECK_TIMEOUT_MS, DEFAULT_PROVIDERS, DEFAULT_PROVIDER_TIMEOUT_MS, DEFAULT_RATE_LIMIT, GenericProvider, GetBlockProvider, type HealthCheckConfig, HealthChecker, type Logger, type MasterchainInfo, type Network, type NetworkDefaults, NetworkSchema, NodeAdapter, ORBS_RATE_LIMIT, OnFinalityProvider, OrbsProvider, type ProviderConfig, ProviderConfigSchema, type ProviderEndpoints, ProviderError, type ProviderHealthResult, ProviderManager, type ProviderManagerOptions, type ProviderManagerState, ProviderRegistry, ProviderSelector, type ProviderState, type ProviderStatus, type ProviderType, ProviderTypeSchema, QUICKNODE_RATE_LIMIT, QuickNodeProvider, type RateLimitConfig, RateLimitError, type RateLimitState, RateLimiterManager, type ResolvedProvider, type RetryOptions, type RpcConfig, RpcConfigSchema, type SelectionConfig, type StateListener, TatumProvider, TimeoutError, TokenBucketRateLimiter, type TonApiResponse, TonCenterProvider, buildGetAddressBalanceUrl, buildGetAddressInfoUrl, buildGetAddressStateUrl, buildRestUrl, createBrowserAdapter, createBrowserAdapterForNetwork, createDefaultConfig, createDefaultRegistry, createEmptyConfig, createHealthChecker, createNodeAdapter, createProvider, createProviderManager, createRateLimiter, createRateLimiterManager, createRegistry, createRegistryFromData, createRegistryFromFile, createSelector, createTimeoutController, detectNetworkFromEndpoint, fetchWithTimeout, getBaseUrl, getDefaultProvidersForNetwork, getEnvVar, getProviderManager, getProvidersForNetwork, getRateLimitForType, getTonClient, getTonClientForNetwork, getTonClientWithRateLimit, isApiVersion, isChainstackUrl, isNetwork, isOrbsUrl, isProviderType, isQuickNodeUrl, isRateLimitError, isTimeoutError, isTonCenterUrl, isValidHttpUrl, isValidWsUrl, loadBuiltinConfig, loadConfig, loadConfigFromData, loadConfigFromUrl, mergeConfigs, mergeWithDefaults, normalizeV2Endpoint, parseProviderConfig, parseRpcConfig, redactUrl, resetNodeAdapter, resolveAllProviders, resolveEndpoints, resolveKeyPlaceholder, resolveProvider, sleep, toV2Base, toV3Base, withRetry, withTimeout, withTimeoutAndRetry, withTimeoutFn };