@cardano-sdk/ogmios 0.12.10 → 0.12.12

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.
@@ -1,9 +1,12 @@
1
1
  import { Cardano, EraSummary, HealthCheckResponse, Milliseconds, ObservableCardanoNode, ObservableChainSync, PointOrOrigin } from '@cardano-sdk/core';
2
2
  import { InteractionContextProps } from './createObservableInteractionContext';
3
3
  import { Observable } from 'rxjs';
4
+ import { RetryBackoffConfig } from 'backoff-rxjs';
4
5
  import { WithLogger } from '@cardano-sdk/util';
6
+ export declare type LocalStateQueryRetryConfig = Pick<RetryBackoffConfig, 'initialInterval' | 'maxInterval'>;
5
7
  export declare type OgmiosObservableCardanoNodeProps = Omit<InteractionContextProps, 'interactionType'> & {
6
8
  healthCheckTimeout?: Milliseconds;
9
+ localStateQueryRetryConfig?: LocalStateQueryRetryConfig;
7
10
  };
8
11
  export declare class OgmiosObservableCardanoNode implements ObservableCardanoNode {
9
12
  #private;
@@ -1 +1 @@
1
- {"version":3,"file":"OgmiosObservableCardanoNode.d.ts","sourceRoot":"","sources":["../../../../src/CardanoNode/OgmiosObservableCardanoNode/OgmiosObservableCardanoNode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,uBAAuB,EAAsC,MAAM,sCAAsC,CAAC;AAGnH,OAAO,EACL,UAAU,EAUX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAa9D,oBAAY,gCAAgC,GAAG,IAAI,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,GAAG;IAIhG,kBAAkB,CAAC,EAAE,YAAY,CAAC;CACnC,CAAC;AAEF,qBAAa,2BAA4B,YAAW,qBAAqB;;IAKvE,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBAE3C,KAAK,EAAE,gCAAgC,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU;IA8C3E,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE;CA+BtC"}
1
+ {"version":3,"file":"OgmiosObservableCardanoNode.d.ts","sourceRoot":"","sources":["../../../../src/CardanoNode/OgmiosObservableCardanoNode/OgmiosObservableCardanoNode.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAEP,UAAU,EACV,mBAAmB,EACnB,YAAY,EACZ,qBAAqB,EACrB,mBAAmB,EACnB,aAAa,EACd,MAAM,mBAAmB,CAAC;AAO3B,OAAO,EAAE,uBAAuB,EAAsC,MAAM,sCAAsC,CAAC;AAGnH,OAAO,EACL,UAAU,EAUX,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,kBAAkB,EAAgB,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,UAAU,EAAiB,MAAM,mBAAmB,CAAC;AAY9D,oBAAY,0BAA0B,GAAG,IAAI,CAAC,kBAAkB,EAAE,iBAAiB,GAAG,aAAa,CAAC,CAAC;AAOrG,oBAAY,gCAAgC,GAAG,IAAI,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,GAAG;IAIhG,kBAAkB,CAAC,EAAE,YAAY,CAAC;IAIlC,0BAA0B,CAAC,EAAE,0BAA0B,CAAC;CACzD,CAAC;AAgBF,qBAAa,2BAA4B,YAAW,qBAAqB;;IAKvE,QAAQ,CAAC,aAAa,EAAE,UAAU,CAAC,UAAU,EAAE,CAAC,CAAC;IACjD,QAAQ,CAAC,kBAAkB,EAAE,UAAU,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;IAChE,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC,mBAAmB,CAAC,CAAC;gBAE3C,KAAK,EAAE,gCAAgC,EAAE,EAAE,MAAM,EAAE,EAAE,UAAU;IAkD3E,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE;CA+BtC"}
@@ -15,6 +15,7 @@ import { createConnectionObject, createStateQueryClient, getServerHealth } from
15
15
  import { createObservableInteractionContext } from './createObservableInteractionContext';
16
16
  import { findIntersect } from '@cardano-ogmios/client/dist/ChainSync';
17
17
  import { Observable, catchError, distinctUntilChanged, from, map, of, shareReplay, switchMap, throwError, timeout } from 'rxjs';
18
+ import { retryBackoff } from 'backoff-rxjs';
18
19
  import { contextLogger } from '@cardano-sdk/util';
19
20
  import { createObservableChainSyncClient } from './createObservableChainSyncClient';
20
21
  import { ogmiosServerHealthToHealthCheckResponse } from '../../util';
@@ -26,6 +27,20 @@ const ogmiosToCoreIntersection = (intersection) => ({
26
27
  tip: ogmiosToCoreTipOrOrigin(intersection.tip)
27
28
  });
28
29
  const DEFAULT_HEALTH_CHECK_TIMEOUT = 2000;
30
+ const DEFAULT_LSQ_RETRY_CONFIG = {
31
+ initialInterval: 1000,
32
+ maxInterval: 30000
33
+ };
34
+ const stateQueryRetryBackoffConfig = (retryConfig = DEFAULT_LSQ_RETRY_CONFIG, logger) => ({
35
+ ...retryConfig,
36
+ shouldRetry: (error) => {
37
+ if (error instanceof CardanoNodeErrors.CardanoClientErrors.QueryUnavailableInCurrentEraError) {
38
+ logger.info('Local state query unavailable yet, will retry...');
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+ });
29
44
  export class OgmiosObservableCardanoNode {
30
45
  constructor(props, { logger }) {
31
46
  _OgmiosObservableCardanoNode_connectionConfig$.set(this, void 0);
@@ -38,8 +53,8 @@ export class OgmiosObservableCardanoNode {
38
53
  interactionType: 'LongRunning'
39
54
  }, { logger: __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_logger, "f") }).pipe(shareReplay({ bufferSize: 1, refCount: true })), "f");
40
55
  const stateQueryClient$ = __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_interactionContext$, "f").pipe(switchMap((interactionContext) => from(createStateQueryClient(interactionContext))), distinctUntilChanged((a, b) => isEqual(a, b)), shareReplay({ bufferSize: 1, refCount: true }));
41
- this.eraSummaries$ = stateQueryClient$.pipe(switchMap((client) => from(queryEraSummaries(client, __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_logger, "f")))));
42
- this.genesisParameters$ = stateQueryClient$.pipe(switchMap((client) => from(queryGenesisParameters(client, __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_logger, "f")))), distinctUntilChanged(isEqual), shareReplay({ bufferSize: 1, refCount: true }));
56
+ this.eraSummaries$ = stateQueryClient$.pipe(switchMap((client) => from(queryEraSummaries(client, __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_logger, "f")))), retryBackoff(stateQueryRetryBackoffConfig(props.localStateQueryRetryConfig, logger)));
57
+ this.genesisParameters$ = stateQueryClient$.pipe(switchMap((client) => from(queryGenesisParameters(client, __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_logger, "f")))), retryBackoff(stateQueryRetryBackoffConfig(props.localStateQueryRetryConfig, logger)), distinctUntilChanged(isEqual), shareReplay({ bufferSize: 1, refCount: true }));
43
58
  this.healthCheck$ = __classPrivateFieldGet(this, _OgmiosObservableCardanoNode_connectionConfig$, "f").pipe(switchMap((connectionConfig) => from(getServerHealth({ connection: createConnectionObject(connectionConfig) }))), map(ogmiosServerHealthToHealthCheckResponse), timeout({
44
59
  first: props.healthCheckTimeout || DEFAULT_HEALTH_CHECK_TIMEOUT,
45
60
  with: () => {
@@ -1 +1 @@
1
- {"version":3,"file":"OgmiosObservableCardanoNode.js","sourceRoot":"","sources":["../../../../src/CardanoNode/OgmiosObservableCardanoNode/OgmiosObservableCardanoNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OgmiosObservableCardanoNode.js","sourceRoot":"","sources":["../../../../src/CardanoNode/OgmiosObservableCardanoNode/OgmiosObservableCardanoNode.ts"],"names":[],"mappings":"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"}