@cardano-sdk/cardano-services 0.5.0-nightly.1 → 0.5.0-nightly.4

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.
Files changed (49) hide show
  1. package/README.md +96 -0
  2. package/dist/cjs/Program/ProgramOptionDescriptions.d.ts +2 -0
  3. package/dist/cjs/Program/ProgramOptionDescriptions.d.ts.map +1 -1
  4. package/dist/cjs/Program/ProgramOptionDescriptions.js +1 -0
  5. package/dist/cjs/Program/ProgramOptionDescriptions.js.map +1 -1
  6. package/dist/cjs/Program/index.d.ts +1 -0
  7. package/dist/cjs/Program/index.d.ts.map +1 -1
  8. package/dist/cjs/Program/index.js +1 -0
  9. package/dist/cjs/Program/index.js.map +1 -1
  10. package/dist/cjs/Program/loadHttpServer.d.ts +1 -0
  11. package/dist/cjs/Program/loadHttpServer.d.ts.map +1 -1
  12. package/dist/cjs/Program/loadHttpServer.js +7 -6
  13. package/dist/cjs/Program/loadHttpServer.js.map +1 -1
  14. package/dist/cjs/Program/services/index.d.ts +4 -0
  15. package/dist/cjs/Program/services/index.d.ts.map +1 -0
  16. package/dist/cjs/Program/services/index.js +20 -0
  17. package/dist/cjs/Program/services/index.js.map +1 -0
  18. package/dist/cjs/Program/services/ogmios.d.ts +10 -0
  19. package/dist/cjs/Program/services/ogmios.d.ts.map +1 -0
  20. package/dist/cjs/Program/services/ogmios.js +103 -0
  21. package/dist/cjs/Program/services/ogmios.js.map +1 -0
  22. package/dist/cjs/Program/services/postgres.d.ts +8 -0
  23. package/dist/cjs/Program/services/postgres.d.ts.map +1 -0
  24. package/dist/cjs/Program/services/postgres.js +58 -0
  25. package/dist/cjs/Program/services/postgres.js.map +1 -0
  26. package/dist/cjs/Program/services/rabbitmq.d.ts +7 -0
  27. package/dist/cjs/Program/services/rabbitmq.d.ts.map +1 -0
  28. package/dist/cjs/Program/services/rabbitmq.js +56 -0
  29. package/dist/cjs/Program/services/rabbitmq.js.map +1 -0
  30. package/dist/cjs/Program/utils.d.ts +0 -12
  31. package/dist/cjs/Program/utils.d.ts.map +1 -1
  32. package/dist/cjs/Program/utils.js +1 -144
  33. package/dist/cjs/Program/utils.js.map +1 -1
  34. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts.map +1 -1
  35. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js +5 -4
  36. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js.map +1 -1
  37. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js +1 -1
  38. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js.map +1 -1
  39. package/dist/cjs/cli.js +3 -3
  40. package/dist/cjs/cli.js.map +1 -1
  41. package/dist/cjs/original-package.json +10 -9
  42. package/dist/cjs/run.js +6 -4
  43. package/dist/cjs/run.js.map +1 -1
  44. package/dist/cjs/startWorker.js +0 -0
  45. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  46. package/dist/cjs/util/http.d.ts.map +1 -1
  47. package/dist/cjs/util/http.js +2 -5
  48. package/dist/cjs/util/http.js.map +1 -1
  49. package/package.json +10 -9
package/README.md CHANGED
@@ -1,7 +1,103 @@
1
1
  # Cardano JS SDK | Cardano GraphQL Services
2
+ Libraries and program entrypoints for services to facilitate remote data and submit access using
3
+ [Provider] interfaces over HTTP, with _optional_ queue-based transaction submission; The
4
+ [TxSubmitHttpService] can be configured to submit directly via [Ogmios], or via a [RabbitMQ] broker,
5
+ with one or more workers handling submission and response job creation. Data is sourced from
6
+ [Cardano DB Sync], the local [Cardano Node] via [Ogmios] Local State Queries, genesis files, and
7
+ remote sources.
8
+
9
+ ## Features
10
+ - [CLI] or run scripts for the [HTTP server](./src/run.ts) and [worker](./src/startWorker.ts) with
11
+ configuration via environment variables and _optional_ loading of secrets from disk.
12
+ - Service port discovery via DNS resolution, or static configuration.
13
+ - Fault-tolerant transaction submission via persistent queue, or direct submission.
14
+ - _Optional_ [Prometheus] metrics available at `/metrics`
15
+ - Data sourced from Cardano DB Sync PostgreSQL, Local State Queries, genesis files, and remote
16
+ sources.
17
+
18
+ ## Services
19
+
20
+ The services require instances of [Cardano Node] and [Ogmios] as a minimum, with
21
+ [Cardano DB Sync] and [RabbitMQ] dependent on the run command. Please refer to
22
+ [docker-compose.json](./docker-compose.yml) for the current supported version of each service
23
+ dependency.
24
+
25
+ ### HTTP Server
26
+ The HTTP server can be started with one or more provider modules by name, segmented by URL path.
27
+ Run the [CLI] with `start-server --help` to see the full list of options, or inspect the
28
+ environment variables within [./src/run.ts](./src/run.ts).
29
+
30
+ ### Worker
31
+ A worker must be started when opting for queue-based transaction submission.
32
+ Run the [CLI] with `start-worker --help` to see the full list of options, or inspect the
33
+ environment variables within [./src/startWorker.ts](./src/startWorker.ts).
34
+
35
+
36
+ ## Examples
37
+
38
+ _The following examples require the [install and build] steps to be completed._
39
+
40
+ #### All Providers | Static Service Config | Direct Tx Submission
41
+
42
+ - The server will expose all [Provider] HTTP services
43
+ - Transactions will be submitted directly via [Ogmios], running at `ws://localhost:1338`.
44
+ - Connects to [PostgreSQL] service running at `localhost:5432`
45
+ - HTTP API exposed using a custom API URL
46
+
47
+ ``` console
48
+ ./dist/cjs/cli.js \
49
+ start-server \
50
+ --api-url http://localhost:6000 \
51
+ --cardano-node-config-path ./config/cardano-node/config.json \
52
+ --ogmios-url ws://localhost:1338 \
53
+ --db-connection-string postgresql://somePgUser:somePassword@localhost:5432/someDbName \
54
+ asset,chain-history,stake-pool,tx-submit,network-info,utxo
55
+ ```
56
+
57
+ #### All Providers | Service Discovery | Queued Tx Submission | Metrics
58
+
59
+ - The server will expose all [Provider] HTTP services
60
+ - Transactions will be queued by the HTTP service, with the worker completing the
61
+ submission. The HTTP service receives the submission result via a dedicated channel to
62
+ complete the HTTP request.
63
+ - Ports for [Ogmios], [PostgreSQL], and [RabbitMQ], discovered using DNS resolution.
64
+ - HTTP API exposed using a custom API URL
65
+ - Prometheus metrics exporter enabled at http://localhost:6000/metrics
66
+
67
+ ``` console
68
+ ./dist/cjs/cli.js \
69
+ start-server \
70
+ --api-url http://localhost:6000 \
71
+ --cardano-node-config-path ./config/cardano-node/config.json \
72
+ --enable-metrics true \
73
+ --ogmios-srv-service-name some-domain-for-ogmios \
74
+ --postgres-db someDbName \
75
+ --postgres-password somePassword \
76
+ --postgres-srv-service-name \
77
+ --postgres-user somePgUser \
78
+ --rabbitmq-srv-service-name some-domain-for-rabbitmq \
79
+ --use-queue \
80
+ asset,chain-history,stake-pool,tx-submit,network-info,utxo
81
+ ```
82
+ ``` console
83
+ ./dist/cjs/cli.js \
84
+ start-worker \
85
+ --ogmios-srv-service-name some-domain-for-ogmios \
86
+ --rabbitmq-srv-service-name some-domain-for-rabbitmq
87
+ ```
2
88
 
3
89
  ## Tests
4
90
 
5
91
  See [code coverage report]
6
92
 
93
+ [Cardano DB Sync]: https://github.com/input-output-hk/cardano-db-sync
94
+ [Cardano Node]: https://github.com/input-output-hk/cardano-node
7
95
  [code coverage report]: https://input-output-hk.github.io/cardano-js-sdk/coverage/cardano-services
96
+ [CLI]: ./src/cli.ts
97
+ [Ogmios]: https://ogmios.dev/
98
+ [install and build]: ../../README.md#install-and-build
99
+ [PostgreSQL]: https://www.postgresql.org/
100
+ [Prometheus]: https://prometheus.io/
101
+ [Provider]: ../core/src/Provider
102
+ [RabbitMQ]: https://www.rabbitmq.com/
103
+ [TxSubmitHttpService]: ./src/TxSubmit/TxSubmitHttpService.ts
@@ -10,6 +10,7 @@ declare enum HttpServerOptionDescriptions {
10
10
  PostgresDb = "PostgreSQL database name when using service discovery",
11
11
  PostgresUser = "PostgreSQL user when using service discovery",
12
12
  PostgresPassword = "PostgreSQL password when using service discovery",
13
+ PostgresSslCaFile = "PostgreSQL SSL CA file path",
13
14
  PostgresServiceDiscoveryArgs = "Postgres SRV service name, db, user and password",
14
15
  RabbitMQUrl = "RabbitMQ URL",
15
16
  TokenMetadataCacheTtl = "Token Metadata API cache TTL in minutes",
@@ -28,6 +29,7 @@ export declare const ProgramOptionDescriptions: {
28
29
  PostgresDb: HttpServerOptionDescriptions.PostgresDb;
29
30
  PostgresUser: HttpServerOptionDescriptions.PostgresUser;
30
31
  PostgresPassword: HttpServerOptionDescriptions.PostgresPassword;
32
+ PostgresSslCaFile: HttpServerOptionDescriptions.PostgresSslCaFile;
31
33
  PostgresServiceDiscoveryArgs: HttpServerOptionDescriptions.PostgresServiceDiscoveryArgs;
32
34
  RabbitMQUrl: HttpServerOptionDescriptions.RabbitMQUrl;
33
35
  TokenMetadataCacheTtl: HttpServerOptionDescriptions.TokenMetadataCacheTtl;
@@ -1 +1 @@
1
- {"version":3,"file":"ProgramOptionDescriptions.d.ts","sourceRoot":"","sources":["../../../src/Program/ProgramOptionDescriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,aAAK,4BAA4B;IAC/B,MAAM,YAAY;IAClB,qBAAqB,6BAA6B;IAClD,iBAAiB,wBAAwB;IACzC,aAAa,8BAA8B;IAC3C,SAAS,eAAe;IACxB,wBAAwB,+BAA+B;IACvD,sBAAsB,6DAA6D;IACnF,UAAU,0DAA0D;IACpE,YAAY,iDAAiD;IAC7D,gBAAgB,qDAAqD;IAErE,4BAA4B,qDAAqD;IACjF,WAAW,iBAAiB;IAC5B,qBAAqB,4CAA4C;IACjE,sBAAsB,kCAAkC;IACxD,QAAQ,qBAAqB;CAC9B;AAED,oBAAY,yBAAyB,GAAG,wBAAwB,GAAG,4BAA4B,CAAC;AAChG,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;CAGrC,CAAC"}
1
+ {"version":3,"file":"ProgramOptionDescriptions.d.ts","sourceRoot":"","sources":["../../../src/Program/ProgramOptionDescriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAE7D,aAAK,4BAA4B;IAC/B,MAAM,YAAY;IAClB,qBAAqB,6BAA6B;IAClD,iBAAiB,wBAAwB;IACzC,aAAa,8BAA8B;IAC3C,SAAS,eAAe;IACxB,wBAAwB,+BAA+B;IACvD,sBAAsB,6DAA6D;IACnF,UAAU,0DAA0D;IACpE,YAAY,iDAAiD;IAC7D,gBAAgB,qDAAqD;IACrE,iBAAiB,gCAAgC;IAEjD,4BAA4B,qDAAqD;IACjF,WAAW,iBAAiB;IAC5B,qBAAqB,4CAA4C;IACjE,sBAAsB,kCAAkC;IACxD,QAAQ,qBAAqB;CAC9B;AAED,oBAAY,yBAAyB,GAAG,wBAAwB,GAAG,4BAA4B,CAAC;AAChG,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;CAGrC,CAAC"}
@@ -14,6 +14,7 @@ var HttpServerOptionDescriptions;
14
14
  HttpServerOptionDescriptions["PostgresDb"] = "PostgreSQL database name when using service discovery";
15
15
  HttpServerOptionDescriptions["PostgresUser"] = "PostgreSQL user when using service discovery";
16
16
  HttpServerOptionDescriptions["PostgresPassword"] = "PostgreSQL password when using service discovery";
17
+ HttpServerOptionDescriptions["PostgresSslCaFile"] = "PostgreSQL SSL CA file path";
17
18
  HttpServerOptionDescriptions["PostgresServiceDiscoveryArgs"] = "Postgres SRV service name, db, user and password";
18
19
  HttpServerOptionDescriptions["RabbitMQUrl"] = "RabbitMQ URL";
19
20
  HttpServerOptionDescriptions["TokenMetadataCacheTtl"] = "Token Metadata API cache TTL in minutes";
@@ -1 +1 @@
1
- {"version":3,"file":"ProgramOptionDescriptions.js","sourceRoot":"","sources":["../../../src/Program/ProgramOptionDescriptions.ts"],"names":[],"mappings":";;;AAAA,sDAA6D;AAE7D,IAAK,4BAiBJ;AAjBD,WAAK,4BAA4B;IAC/B,kDAAkB,CAAA;IAClB,kFAAkD,CAAA;IAClD,yEAAyC,CAAA;IACzC,2EAA2C,CAAA;IAC3C,wDAAwB,CAAA;IACxB,uFAAuD,CAAA;IACvD,mHAAmF,CAAA;IACnF,oGAAoE,CAAA;IACpE,6FAA6D,CAAA;IAC7D,qGAAqE,CAAA;IAErE,iHAAiF,CAAA;IACjF,4DAA4B,CAAA;IAC5B,iGAAiE,CAAA;IACjE,wFAAwD,CAAA;IACxD,6DAA6B,CAAA;AAC/B,CAAC,EAjBI,4BAA4B,KAA5B,4BAA4B,QAiBhC;AAGY,QAAA,yBAAyB,GAAG;IACvC,GAAG,yCAAwB;IAC3B,GAAG,4BAA4B;CAChC,CAAC"}
1
+ {"version":3,"file":"ProgramOptionDescriptions.js","sourceRoot":"","sources":["../../../src/Program/ProgramOptionDescriptions.ts"],"names":[],"mappings":";;;AAAA,sDAA6D;AAE7D,IAAK,4BAkBJ;AAlBD,WAAK,4BAA4B;IAC/B,kDAAkB,CAAA;IAClB,kFAAkD,CAAA;IAClD,yEAAyC,CAAA;IACzC,2EAA2C,CAAA;IAC3C,wDAAwB,CAAA;IACxB,uFAAuD,CAAA;IACvD,mHAAmF,CAAA;IACnF,oGAAoE,CAAA;IACpE,6FAA6D,CAAA;IAC7D,qGAAqE,CAAA;IACrE,iFAAiD,CAAA;IAEjD,iHAAiF,CAAA;IACjF,4DAA4B,CAAA;IAC5B,iGAAiE,CAAA;IACjE,wFAAwD,CAAA;IACxD,6DAA6B,CAAA;AAC/B,CAAC,EAlBI,4BAA4B,KAA5B,4BAA4B,QAkBhC;AAGY,QAAA,yBAAyB,GAAG;IACvC,GAAG,yCAAwB;IAC3B,GAAG,4BAA4B;CAChC,CAAC"}
@@ -4,4 +4,5 @@ export * from './loadHttpServer';
4
4
  export * from './ProgramOptionDescriptions';
5
5
  export * from './ServiceNames';
6
6
  export * from './utils';
7
+ export * from './services';
7
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Program/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Program/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,kBAAkB,CAAC;AACjC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC"}
@@ -20,4 +20,5 @@ __exportStar(require("./loadHttpServer"), exports);
20
20
  __exportStar(require("./ProgramOptionDescriptions"), exports);
21
21
  __exportStar(require("./ServiceNames"), exports);
22
22
  __exportStar(require("./utils"), exports);
23
+ __exportStar(require("./services"), exports);
23
24
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Program/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,mDAAiC;AACjC,8DAA4C;AAC5C,iDAA+B;AAC/B,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Program/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,mDAAiC;AACjC,8DAA4C;AAC5C,iDAA+B;AAC/B,0CAAwB;AACxB,6CAA2B"}
@@ -13,6 +13,7 @@ export interface HttpServerOptions extends CommonProgramOptions {
13
13
  postgresDb?: string;
14
14
  postgresUser?: string;
15
15
  postgresPassword?: string;
16
+ postgresSslCaFile?: string;
16
17
  dbCacheTtl: number;
17
18
  }
18
19
  export interface ProgramArgs {
@@ -1 +1 @@
1
- {"version":3,"file":"loadHttpServer.d.ts","sourceRoot":"","sources":["../../../src/Program/loadHttpServer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAYzD,OAAO,EAAE,UAAU,EAAiC,MAAM,SAAS,CAAC;AAKpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,CACV,YAAY,CAAC,KAAK,GAClB,YAAY,CAAC,SAAS,GACtB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,YAAY,GACzB,YAAY,CAAC,IAAI,GACjB,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,OAAO,CACvB,EAAE,CAAC;IAKJ,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AA2ED,eAAO,MAAM,cAAc,SAAgB,WAAW,KAAG,QAAQ,UAAU,CAoC1E,CAAC"}
1
+ {"version":3,"file":"loadHttpServer.d.ts","sourceRoot":"","sources":["../../../src/Program/loadHttpServer.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAMzD,OAAO,EAAE,UAAU,EAAiC,MAAM,SAAS,CAAC;AAIpE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,MAAM,WAAW,iBAAkB,SAAQ,oBAAoB;IAC7D,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,CACV,YAAY,CAAC,KAAK,GAClB,YAAY,CAAC,SAAS,GACtB,YAAY,CAAC,QAAQ,GACrB,YAAY,CAAC,YAAY,GACzB,YAAY,CAAC,IAAI,GACjB,YAAY,CAAC,WAAW,GACxB,YAAY,CAAC,OAAO,CACvB,EAAE,CAAC;IAKJ,OAAO,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AA4ED,eAAO,MAAM,cAAc,SAAgB,WAAW,KAAG,QAAQ,UAAU,CAoC1E,CAAC"}
@@ -11,11 +11,11 @@ const utils_1 = require("./utils");
11
11
  const Http_1 = require("../Http");
12
12
  const InMemoryCache_1 = require("../InMemoryCache");
13
13
  const errors_1 = require("./errors");
14
- const ogmios_1 = require("@cardano-sdk/ogmios");
15
14
  const ProgramOptionDescriptions_1 = require("./ProgramOptionDescriptions");
16
15
  const ServiceNames_1 = require("./ServiceNames");
17
16
  const TxSubmit_1 = require("../TxSubmit");
18
17
  const Metadata_1 = require("../Metadata");
18
+ const services_1 = require("./services");
19
19
  const bunyan_1 = require("bunyan");
20
20
  const serviceMapFactory = (args, logger, cache, dnsResolver, dbConnection) => {
21
21
  const withDb = (factory) => () => {
@@ -44,21 +44,22 @@ const serviceMapFactory = (args, logger, cache, dnsResolver, dbConnection) => {
44
44
  logger
45
45
  })),
46
46
  [ServiceNames_1.ServiceNames.Rewards]: withDb((db) => new Rewards_1.RewardsHttpService({ logger, rewardsProvider: new Rewards_1.DbSyncRewardsProvider(db, logger) })),
47
- [ServiceNames_1.ServiceNames.NetworkInfo]: withDb((db) => {
47
+ [ServiceNames_1.ServiceNames.NetworkInfo]: withDb(async (db) => {
48
48
  if (args.options?.cardanoNodeConfigPath === undefined)
49
49
  throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.NetworkInfo, ProgramOptionDescriptions_1.ProgramOptionDescriptions.CardanoNodeConfigPath);
50
50
  if (args.options?.ogmiosUrl === undefined)
51
51
  throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.NetworkInfo, ProgramOptionDescriptions_1.ProgramOptionDescriptions.OgmiosUrl);
52
+ const cardanoNode = await (0, services_1.getOgmiosCardanoNode)(dnsResolver, logger, args.options);
52
53
  const networkInfoProvider = new NetworkInfo_1.DbSyncNetworkInfoProvider({
53
54
  cardanoNodeConfigPath: args.options.cardanoNodeConfigPath,
54
55
  epochPollInterval: args.options?.epochPollInterval
55
- }, { cache, cardanoNode: new ogmios_1.OgmiosCardanoNode((0, ogmios_1.urlToConnectionConfig)(args.options.ogmiosUrl), logger), db, logger });
56
+ }, { cache, cardanoNode, db, logger });
56
57
  return new NetworkInfo_1.NetworkInfoHttpService({ logger, networkInfoProvider });
57
58
  }),
58
59
  [ServiceNames_1.ServiceNames.TxSubmit]: async () => {
59
60
  const txSubmitProvider = args.options?.useQueue
60
- ? await (0, utils_1.getRabbitMqTxSubmitProvider)(dnsResolver, logger, args.options)
61
- : await (0, utils_1.getOgmiosTxSubmitProvider)(dnsResolver, logger, args.options);
61
+ ? await (0, services_1.getRabbitMqTxSubmitProvider)(dnsResolver, logger, args.options)
62
+ : await (0, services_1.getOgmiosTxSubmitProvider)(dnsResolver, logger, args.options);
62
63
  return new TxSubmit_1.TxSubmitHttpService({ logger, txSubmitProvider });
63
64
  }
64
65
  };
@@ -74,7 +75,7 @@ const loadHttpServer = async (args) => {
74
75
  factor: args.options?.serviceDiscoveryBackoffFactor,
75
76
  maxRetryTime: args.options?.serviceDiscoveryTimeout
76
77
  }, logger);
77
- const db = await (0, utils_1.getPool)(dnsResolver, logger, args.options);
78
+ const db = await (0, services_1.getPool)(dnsResolver, logger, args.options);
78
79
  const serviceMap = serviceMapFactory(args, logger, cache, dnsResolver, db);
79
80
  for (const serviceName of args.serviceNames) {
80
81
  if (serviceMap[serviceName]) {
@@ -1 +1 @@
1
- {"version":3,"file":"loadHttpServer.js","sourceRoot":"","sources":["../../../src/Program/loadHttpServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadHttpServer.js","sourceRoot":"","sources":["../../../src/Program/loadHttpServer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export * from './postgres';
2
+ export * from './ogmios';
3
+ export * from './rabbitmq';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./postgres"), exports);
18
+ __exportStar(require("./ogmios"), exports);
19
+ __exportStar(require("./rabbitmq"), exports);
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Program/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B"}
@@ -0,0 +1,10 @@
1
+ import { CommonProgramOptions } from '../../ProgramsCommon';
2
+ import { DnsResolver } from '../utils';
3
+ import { Logger } from 'ts-log';
4
+ import { OgmiosCardanoNode } from '@cardano-sdk/ogmios';
5
+ import { TxSubmitProvider } from '@cardano-sdk/core';
6
+ export declare const ogmiosTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<TxSubmitProvider>;
7
+ export declare const getOgmiosTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<TxSubmitProvider>;
8
+ export declare const ogmiosCardanoNodeWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<OgmiosCardanoNode>;
9
+ export declare const getOgmiosCardanoNode: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<OgmiosCardanoNode>;
10
+ //# sourceMappingURL=ogmios.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ogmios.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/ogmios.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,iBAAiB,EAAiD,MAAM,qBAAqB,CAAC;AAEvG,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA8BrD,eAAO,MAAM,mCAAmC,gBACjC,WAAW,UAChB,MAAM,eACD,MAAM,KAClB,QAAQ,gBAAgB,CA+B1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACvB,WAAW,UAChB,MAAM,YACJ,oBAAoB,KAC7B,QAAQ,gBAAgB,CAQ1B,CAAC;AAaF,eAAO,MAAM,8BAA8B,gBAC5B,WAAW,UAChB,MAAM,eACD,MAAM,KAClB,QAAQ,iBAAiB,CAmC3B,CAAC;AAEF,eAAO,MAAM,oBAAoB,gBAClB,WAAW,UAChB,MAAM,YACJ,oBAAoB,KAC7B,QAAQ,iBAAiB,CAQ3B,CAAC"}
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getOgmiosCardanoNode = exports.ogmiosCardanoNodeWithDiscovery = exports.getOgmiosTxSubmitProvider = exports.ogmiosTxSubmitProviderWithDiscovery = void 0;
4
+ const ProgramsCommon_1 = require("../../ProgramsCommon");
5
+ const errors_1 = require("../errors");
6
+ const ogmios_1 = require("@cardano-sdk/ogmios");
7
+ const ServiceNames_1 = require("../ServiceNames");
8
+ const util_1 = require("@cardano-sdk/util");
9
+ const isCardanoNodeOperation = (prop) => ['eraSummaries', 'systemStart'].includes(prop);
10
+ const recreateOgmiosCardanoNode = async (serviceName, ogmiosCardanoNode, dnsResolver, logger) => {
11
+ const record = await dnsResolver(serviceName);
12
+ logger.info(`DNS resolution for Ogmios service, resolved with record: ${JSON.stringify(record)}`);
13
+ await ogmiosCardanoNode
14
+ .shutdown?.()
15
+ .catch((error_) => logger.warn(`Ogmios cardano node failed to shutdown after connection error: ${error_}`));
16
+ return new ogmios_1.OgmiosCardanoNode({ host: record.name, port: record.port }, logger);
17
+ };
18
+ const ogmiosTxSubmitProviderWithDiscovery = async (dnsResolver, logger, serviceName) => {
19
+ const { name, port } = await dnsResolver(serviceName);
20
+ let ogmiosProvider = (0, ogmios_1.ogmiosTxSubmitProvider)({ host: name, port });
21
+ return new Proxy({}, {
22
+ get(_, prop) {
23
+ if (prop === 'then')
24
+ return;
25
+ if (prop === 'submitTx') {
26
+ return (args) => ogmiosProvider.submitTx(args).catch(async (error) => {
27
+ if (error.innerError && (0, util_1.isConnectionError)(error.innerError)) {
28
+ const record = await dnsResolver(serviceName);
29
+ logger.info(`DNS resolution for Ogmios service, resolved with record: ${JSON.stringify(record)}`);
30
+ await ogmiosProvider
31
+ .close?.()
32
+ .catch((error_) => logger.warn(`Ogmios tx submit provider failed to close after DNS resolution: ${error_}`));
33
+ ogmiosProvider = (0, ogmios_1.ogmiosTxSubmitProvider)({ host: record.name, port: record.port });
34
+ return await ogmiosProvider.submitTx(args);
35
+ }
36
+ throw error;
37
+ });
38
+ }
39
+ if (typeof ogmiosProvider[prop] === 'function') {
40
+ const method = ogmiosProvider[prop];
41
+ return method.bind(ogmiosProvider);
42
+ }
43
+ }
44
+ });
45
+ };
46
+ exports.ogmiosTxSubmitProviderWithDiscovery = ogmiosTxSubmitProviderWithDiscovery;
47
+ const getOgmiosTxSubmitProvider = async (dnsResolver, logger, options) => {
48
+ if (options?.ogmiosSrvServiceName)
49
+ return (0, exports.ogmiosTxSubmitProviderWithDiscovery)(dnsResolver, logger, options.ogmiosSrvServiceName);
50
+ if (options?.ogmiosUrl)
51
+ return (0, ogmios_1.ogmiosTxSubmitProvider)((0, ogmios_1.urlToConnectionConfig)(options?.ogmiosUrl));
52
+ throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.TxSubmit, [
53
+ ProgramsCommon_1.CommonOptionDescriptions.OgmiosUrl,
54
+ ProgramsCommon_1.CommonOptionDescriptions.OgmiosSrvServiceName
55
+ ]);
56
+ };
57
+ exports.getOgmiosTxSubmitProvider = getOgmiosTxSubmitProvider;
58
+ const ogmiosCardanoNodeWithDiscovery = async (dnsResolver, logger, serviceName) => {
59
+ const { name, port } = await dnsResolver(serviceName);
60
+ let ogmiosCardanoNode = new ogmios_1.OgmiosCardanoNode({ host: name, port }, logger);
61
+ return new Proxy({}, {
62
+ get(_, prop) {
63
+ if (prop === 'then')
64
+ return;
65
+ if (prop === 'initialize') {
66
+ return () => ogmiosCardanoNode.initialize().catch(async (error) => {
67
+ if ((0, util_1.isConnectionError)(error)) {
68
+ ogmiosCardanoNode = await recreateOgmiosCardanoNode(serviceName, ogmiosCardanoNode, dnsResolver, logger);
69
+ return await ogmiosCardanoNode.initialize();
70
+ }
71
+ throw error;
72
+ });
73
+ }
74
+ if (isCardanoNodeOperation(prop)) {
75
+ return () => ogmiosCardanoNode[prop]().catch(async (error) => {
76
+ if ((0, util_1.isConnectionError)(error)) {
77
+ ogmiosCardanoNode = await recreateOgmiosCardanoNode(serviceName, ogmiosCardanoNode, dnsResolver, logger);
78
+ await ogmiosCardanoNode.initialize();
79
+ return await ogmiosCardanoNode[prop]();
80
+ }
81
+ throw error;
82
+ });
83
+ }
84
+ if (typeof ogmiosCardanoNode[prop] === 'function') {
85
+ const method = ogmiosCardanoNode[prop];
86
+ return method.bind(ogmiosCardanoNode);
87
+ }
88
+ }
89
+ });
90
+ };
91
+ exports.ogmiosCardanoNodeWithDiscovery = ogmiosCardanoNodeWithDiscovery;
92
+ const getOgmiosCardanoNode = async (dnsResolver, logger, options) => {
93
+ if (options?.ogmiosSrvServiceName)
94
+ return (0, exports.ogmiosCardanoNodeWithDiscovery)(dnsResolver, logger, options.ogmiosSrvServiceName);
95
+ if (options?.ogmiosUrl)
96
+ return new ogmios_1.OgmiosCardanoNode((0, ogmios_1.urlToConnectionConfig)(options.ogmiosUrl), logger);
97
+ throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.TxSubmit, [
98
+ ProgramsCommon_1.CommonOptionDescriptions.OgmiosUrl,
99
+ ProgramsCommon_1.CommonOptionDescriptions.OgmiosSrvServiceName
100
+ ]);
101
+ };
102
+ exports.getOgmiosCardanoNode = getOgmiosCardanoNode;
103
+ //# sourceMappingURL=ogmios.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ogmios.js","sourceRoot":"","sources":["../../../../src/Program/services/ogmios.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ClientConfig, Pool } from 'pg';
2
+ import { DnsResolver } from '../utils';
3
+ import { HttpServerOptions } from '../loadHttpServer';
4
+ import { Logger } from 'ts-log';
5
+ export declare const getPoolWithServiceDiscovery: (dnsResolver: DnsResolver, logger: Logger, { host, database, password, ssl, user }: ClientConfig) => Promise<Pool>;
6
+ export declare const loadSecret: (path: string) => string;
7
+ export declare const getPool: (dnsResolver: DnsResolver, logger: Logger, options?: HttpServerOptions) => Promise<Pool | undefined>;
8
+ //# sourceMappingURL=postgres.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAEtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAehC,eAAO,MAAM,2BAA2B,gBACzB,WAAW,UAChB,MAAM,2CAC2B,YAAY,KACpD,QAAQ,IAAI,CA0Bd,CAAC;AAEF,eAAO,MAAM,UAAU,SAAU,MAAM,WAA6C,CAAC;AAErF,eAAO,MAAM,OAAO,gBACL,WAAW,UAChB,MAAM,YACJ,iBAAiB,KAC1B,QAAQ,IAAI,GAAG,SAAS,CAmB1B,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.getPool = exports.loadSecret = exports.getPoolWithServiceDiscovery = void 0;
7
+ const pg_1 = require("pg");
8
+ const errors_1 = require("../errors");
9
+ const ProgramOptionDescriptions_1 = require("../ProgramOptionDescriptions");
10
+ const util_1 = require("@cardano-sdk/util");
11
+ const fs_1 = __importDefault(require("fs"));
12
+ const getPoolWithServiceDiscovery = async (dnsResolver, logger, { host, database, password, ssl, user }) => {
13
+ const { name, port } = await dnsResolver(host);
14
+ let pool = new pg_1.Pool({ database, host: name, password, port, ssl, user });
15
+ return new Proxy({}, {
16
+ get(_, prop) {
17
+ if (prop === 'then')
18
+ return;
19
+ if (prop === 'query') {
20
+ return (args, values) => pool.query(args, values).catch(async (error) => {
21
+ if ((0, util_1.isConnectionError)(error)) {
22
+ const record = await dnsResolver(host);
23
+ logger.info(`DNS resolution for Postgres service, resolved with record: ${JSON.stringify(record)}`);
24
+ pool = new pg_1.Pool({ database, host: record.name, password, port: record.port, ssl, user });
25
+ return await pool.query(args, values);
26
+ }
27
+ throw error;
28
+ });
29
+ }
30
+ if (typeof pool[prop] === 'function') {
31
+ const method = pool[prop];
32
+ return method.bind(pool);
33
+ }
34
+ }
35
+ });
36
+ };
37
+ exports.getPoolWithServiceDiscovery = getPoolWithServiceDiscovery;
38
+ const loadSecret = (path) => fs_1.default.readFileSync(path, 'utf8').toString();
39
+ exports.loadSecret = loadSecret;
40
+ const getPool = async (dnsResolver, logger, options) => {
41
+ const ssl = options?.postgresSslCaFile ? { ca: (0, exports.loadSecret)(options.postgresSslCaFile) } : undefined;
42
+ if (options?.postgresConnectionString && options.postgresSrvServiceName)
43
+ throw new errors_1.InvalidArgsCombination(ProgramOptionDescriptions_1.ProgramOptionDescriptions.PostgresConnectionString, ProgramOptionDescriptions_1.ProgramOptionDescriptions.PostgresServiceDiscoveryArgs);
44
+ if (options?.postgresConnectionString)
45
+ return new pg_1.Pool({ connectionString: options.postgresConnectionString, ssl });
46
+ if (options?.postgresSrvServiceName && options.postgresUser && options.postgresDb && options.postgresPassword) {
47
+ return (0, exports.getPoolWithServiceDiscovery)(dnsResolver, logger, {
48
+ database: options.postgresDb,
49
+ host: options.postgresSrvServiceName,
50
+ password: options.postgresPassword,
51
+ ssl,
52
+ user: options.postgresUser
53
+ });
54
+ }
55
+ return undefined;
56
+ };
57
+ exports.getPool = getPool;
58
+ //# sourceMappingURL=postgres.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ import { CommonProgramOptions } from '../../ProgramsCommon';
2
+ import { DnsResolver } from '../utils';
3
+ import { Logger } from 'ts-log';
4
+ import { RabbitMqTxSubmitProvider } from '@cardano-sdk/rabbitmq';
5
+ export declare const rabbitMqTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<RabbitMqTxSubmitProvider>;
6
+ export declare const getRabbitMqTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<RabbitMqTxSubmitProvider>;
7
+ //# sourceMappingURL=rabbitmq.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rabbitmq.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/rabbitmq.ts"],"names":[],"mappings":"AAGA,OAAO,EAA4B,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACtF,OAAO,EAAE,WAAW,EAA0B,MAAM,UAAU,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAcjE,eAAO,MAAM,qCAAqC,gBACnC,WAAW,UAChB,MAAM,eACD,MAAM,KAClB,QAAQ,wBAAwB,CAoClC,CAAC;AAEF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,UAChB,MAAM,YACJ,oBAAoB,KAC7B,QAAQ,wBAAwB,CAQlC,CAAC"}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getRabbitMqTxSubmitProvider = exports.rabbitMqTxSubmitProviderWithDiscovery = void 0;
4
+ const ProgramsCommon_1 = require("../../ProgramsCommon");
5
+ const utils_1 = require("../utils");
6
+ const errors_1 = require("../errors");
7
+ const core_1 = require("@cardano-sdk/core");
8
+ const rabbitmq_1 = require("@cardano-sdk/rabbitmq");
9
+ const ServiceNames_1 = require("../ServiceNames");
10
+ const util_1 = require("@cardano-sdk/util");
11
+ const rabbitMqTxSubmitProviderWithDiscovery = async (dnsResolver, logger, serviceName) => {
12
+ const record = await dnsResolver(serviceName);
13
+ let rabbitmqProvider = new rabbitmq_1.RabbitMqTxSubmitProvider({
14
+ rabbitmqUrl: (0, utils_1.srvRecordToRabbitmqURL)(record)
15
+ });
16
+ return new Proxy({}, {
17
+ get(_, prop) {
18
+ if (prop === 'then')
19
+ return;
20
+ if (prop === 'submitTx') {
21
+ return (args) => rabbitmqProvider.submitTx(args).catch(async (error) => {
22
+ if (error.innerError?.reason === core_1.ProviderFailure.ConnectionFailure ||
23
+ (0, util_1.isConnectionError)(error.innerError.innerError)) {
24
+ const resolvedRecord = await dnsResolver(serviceName);
25
+ logger.info(`DNS resolution for RabbitMQ service, resolved with record: ${JSON.stringify(record)}`);
26
+ await rabbitmqProvider
27
+ .close?.()
28
+ .catch((error_) => logger.warn(`RabbitMQ provider failed to close after DNS resolution: ${error_}`));
29
+ rabbitmqProvider = new rabbitmq_1.RabbitMqTxSubmitProvider({
30
+ rabbitmqUrl: (0, utils_1.srvRecordToRabbitmqURL)(resolvedRecord)
31
+ });
32
+ return await rabbitmqProvider.submitTx(args);
33
+ }
34
+ throw error;
35
+ });
36
+ }
37
+ if (typeof rabbitmqProvider[prop] === 'function') {
38
+ const method = rabbitmqProvider[prop];
39
+ return method.bind(rabbitmqProvider);
40
+ }
41
+ }
42
+ });
43
+ };
44
+ exports.rabbitMqTxSubmitProviderWithDiscovery = rabbitMqTxSubmitProviderWithDiscovery;
45
+ const getRabbitMqTxSubmitProvider = async (dnsResolver, logger, options) => {
46
+ if (options?.rabbitmqSrvServiceName)
47
+ return (0, exports.rabbitMqTxSubmitProviderWithDiscovery)(dnsResolver, logger, options.rabbitmqSrvServiceName);
48
+ if (options?.rabbitmqUrl)
49
+ return new rabbitmq_1.RabbitMqTxSubmitProvider({ rabbitmqUrl: options.rabbitmqUrl });
50
+ throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.TxSubmit, [
51
+ ProgramsCommon_1.CommonOptionDescriptions.RabbitMQUrl,
52
+ ProgramsCommon_1.CommonOptionDescriptions.RabbitMQSrvServiceName
53
+ ]);
54
+ };
55
+ exports.getRabbitMqTxSubmitProvider = getRabbitMqTxSubmitProvider;
56
+ //# sourceMappingURL=rabbitmq.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rabbitmq.js","sourceRoot":"","sources":["../../../../src/Program/services/rabbitmq.ts"],"names":[],"mappings":";;;AAGA,yDAAsF;AACtF,oCAA+D;AAE/D,sCAAiD;AACjD,4CAAoD;AACpD,oDAAiE;AACjE,kDAA+C;AAC/C,4CAAsD;AAY/C,MAAM,qCAAqC,GAAG,KAAK,EACxD,WAAwB,EACxB,MAAc,EACd,WAAmB,EACgB,EAAE;IACrC,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,WAAY,CAAC,CAAC;IAC/C,IAAI,gBAAgB,GAAG,IAAI,mCAAwB,CAAC;QAClD,WAAW,EAAE,IAAA,8BAAsB,EAAC,MAAM,CAAC;KAC5C,CAAC,CAAC;IAEH,OAAO,IAAI,KAAK,CAA2B,EAA8B,EAAE;QACzE,GAAG,CAAC,CAAC,EAAE,IAAI;YACT,IAAI,IAAI,KAAK,MAAM;gBAAE,OAAO;YAC5B,IAAI,IAAI,KAAK,UAAU,EAAE;gBACvB,OAAO,CAAC,IAAgB,EAAE,EAAE,CAC1B,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBACpD,IACE,KAAK,CAAC,UAAU,EAAE,MAAM,KAAK,sBAAe,CAAC,iBAAiB;wBAC9D,IAAA,wBAAiB,EAAC,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,EAC9C;wBACA,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,WAAY,CAAC,CAAC;wBACvD,MAAM,CAAC,IAAI,CAAC,8DAA8D,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACpG,MAAM,gBAAgB;6BACnB,KAAK,EAAE,EAAE;6BACT,KAAK,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,2DAA2D,MAAM,EAAE,CAAC,CAAC,CAAC;wBACvG,gBAAgB,GAAG,IAAI,mCAAwB,CAAC;4BAC9C,WAAW,EAAE,IAAA,8BAAsB,EAAC,cAAc,CAAC;yBACpD,CAAC,CAAC;wBACH,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBAC9C;oBACD,MAAM,KAAK,CAAC;gBACd,CAAC,CAAC,CAAC;aACN;YAED,IAAI,OAAO,gBAAgB,CAAC,IAAsC,CAAC,KAAK,UAAU,EAAE;gBAClF,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAsC,CAAQ,CAAC;gBAC/E,OAAO,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;aACtC;QACH,CAAC;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAxCW,QAAA,qCAAqC,yCAwChD;AAEK,MAAM,2BAA2B,GAAG,KAAK,EAC9C,WAAwB,EACxB,MAAc,EACd,OAA8B,EACK,EAAE;IACrC,IAAI,OAAO,EAAE,sBAAsB;QACjC,OAAO,IAAA,6CAAqC,EAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACpG,IAAI,OAAO,EAAE,WAAW;QAAE,OAAO,IAAI,mCAAwB,CAAC,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IACpG,MAAM,IAAI,6BAAoB,CAAC,2BAAY,CAAC,QAAQ,EAAE;QACpD,yCAAwB,CAAC,WAAW;QACpC,yCAAwB,CAAC,sBAAsB;KAChD,CAAC,CAAC;AACL,CAAC,CAAC;AAZW,QAAA,2BAA2B,+BAYtC"}
@@ -1,9 +1,4 @@
1
- import { ClientConfig, Pool } from 'pg';
2
- import { CommonProgramOptions } from '../ProgramsCommon';
3
- import { HttpServerOptions } from './loadHttpServer';
4
1
  import { Logger } from 'ts-log';
5
- import { TxSubmitProvider } from '@cardano-sdk/core';
6
- import { RabbitMqTxSubmitProvider } from '@cardano-sdk/rabbitmq';
7
2
  import dns, { SrvRecord } from 'dns';
8
3
  import { FailedAttemptError } from 'p-retry';
9
4
  export declare const SERVICE_DISCOVERY_BACKOFF_FACTOR_DEFAULT = 1.1;
@@ -17,12 +12,5 @@ export declare const onFailedAttemptFor: (serviceName: string, logger: Logger) =
17
12
  export declare const resolveSrvRecord: (serviceName: string) => Promise<SrvRecord>;
18
13
  export declare const createDnsResolver: (config: RetryBackoffConfig, logger: Logger) => (serviceName: string) => Promise<dns.SrvRecord>;
19
14
  export declare type DnsResolver = ReturnType<typeof createDnsResolver>;
20
- export declare const getPoolWithServiceDiscovery: (dnsResolver: DnsResolver, logger: Logger, { host, database, password, user }: ClientConfig) => Promise<Pool>;
21
- export declare const getPool: (dnsResolver: DnsResolver, logger: Logger, options?: HttpServerOptions) => Promise<Pool | undefined>;
22
- export declare const isOgmiosConnectionError: (error: any) => boolean;
23
- export declare const ogmiosTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<TxSubmitProvider>;
24
- export declare const getOgmiosTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<TxSubmitProvider>;
25
15
  export declare const srvRecordToRabbitmqURL: ({ name, port }: SrvRecord) => URL;
26
- export declare const rabbitMqTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<RabbitMqTxSubmitProvider>;
27
- export declare const getRabbitMqTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<RabbitMqTxSubmitProvider>;
28
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/Program/utils.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AACrD,OAAO,EAA4B,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAmB,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,wCAAwC,MAAM,CAAC;AAC5D,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAC3D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,oBAAY,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACf,MAAM,UAAU,MAAM,+CACY,kBAAkB,kBAajE,CAAC;AAGJ,eAAO,MAAM,gBAAgB,gBAAuB,MAAM,KAAG,QAAQ,SAAS,CAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,kBAAkB,UAAU,MAAM,mBAAyB,MAAM,2BAKvG,CAAC;AAEL,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAY/D,eAAO,MAAM,2BAA2B,gBACzB,WAAW,UAChB,MAAM,sCACsB,YAAY,KAC/C,QAAQ,IAAI,CA0Bd,CAAC;AAEF,eAAO,MAAM,OAAO,gBACL,WAAW,UAChB,MAAM,YACJ,iBAAiB,KAC1B,QAAQ,IAAI,GAAG,SAAS,CAiB1B,CAAC;AAEF,eAAO,MAAM,uBAAuB,UAAW,GAAG,YAQjD,CAAC;AAYF,eAAO,MAAM,mCAAmC,gBACjC,WAAW,UAChB,MAAM,eACD,MAAM,KAClB,QAAQ,gBAAgB,CA6B1B,CAAC;AAEF,eAAO,MAAM,yBAAyB,gBACvB,WAAW,UAChB,MAAM,YACJ,oBAAoB,KAC7B,QAAQ,gBAAgB,CAQ1B,CAAC;AAEF,eAAO,MAAM,sBAAsB,mBAAoB,SAAS,QAAsC,CAAC;AAYvG,eAAO,MAAM,qCAAqC,gBACnC,WAAW,UAChB,MAAM,eACD,MAAM,KAClB,QAAQ,wBAAwB,CAoClC,CAAC;AAEF,eAAO,MAAM,2BAA2B,gBACzB,WAAW,UAChB,MAAM,YACJ,oBAAoB,KAC7B,QAAQ,wBAAwB,CAQlC,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/Program/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,GAAG,EAAE,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACrC,OAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAErD,eAAO,MAAM,wCAAwC,MAAM,CAAC;AAC5D,eAAO,MAAM,iCAAiC,QAAY,CAAC;AAC3D,eAAO,MAAM,iBAAiB,mBAAmB,CAAC;AAElD,oBAAY,kBAAkB,GAAG;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,gBACf,MAAM,UAAU,MAAM,+CACY,kBAAkB,kBAajE,CAAC;AAGJ,eAAO,MAAM,gBAAgB,gBAAuB,MAAM,KAAG,QAAQ,SAAS,CAG7E,CAAC;AAEF,eAAO,MAAM,iBAAiB,WAAY,kBAAkB,UAAU,MAAM,mBAAyB,MAAM,2BAKvG,CAAC;AAEL,oBAAY,WAAW,GAAG,UAAU,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE/D,eAAO,MAAM,sBAAsB,mBAAoB,SAAS,QAAsC,CAAC"}