@cardano-sdk/cardano-services 0.5.0-nightly.2 → 0.5.0-nightly.5
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/README.md +96 -0
- package/dist/cjs/Program/index.d.ts +1 -0
- package/dist/cjs/Program/index.d.ts.map +1 -1
- package/dist/cjs/Program/index.js +1 -0
- package/dist/cjs/Program/index.js.map +1 -1
- package/dist/cjs/Program/loadHttpServer.d.ts.map +1 -1
- package/dist/cjs/Program/loadHttpServer.js +7 -6
- package/dist/cjs/Program/loadHttpServer.js.map +1 -1
- package/dist/cjs/Program/services/index.d.ts +4 -0
- package/dist/cjs/Program/services/index.d.ts.map +1 -0
- package/dist/cjs/Program/services/index.js +20 -0
- package/dist/cjs/Program/services/index.js.map +1 -0
- package/dist/cjs/Program/services/ogmios.d.ts +10 -0
- package/dist/cjs/Program/services/ogmios.d.ts.map +1 -0
- package/dist/cjs/Program/services/ogmios.js +103 -0
- package/dist/cjs/Program/services/ogmios.js.map +1 -0
- package/dist/cjs/Program/services/postgres.d.ts +8 -0
- package/dist/cjs/Program/services/postgres.d.ts.map +1 -0
- package/dist/cjs/Program/services/postgres.js +58 -0
- package/dist/cjs/Program/services/postgres.js.map +1 -0
- package/dist/cjs/Program/services/rabbitmq.d.ts +7 -0
- package/dist/cjs/Program/services/rabbitmq.d.ts.map +1 -0
- package/dist/cjs/Program/services/rabbitmq.js +56 -0
- package/dist/cjs/Program/services/rabbitmq.js.map +1 -0
- package/dist/cjs/Program/utils.d.ts +0 -13
- package/dist/cjs/Program/utils.d.ts.map +1 -1
- package/dist/cjs/Program/utils.js +1 -149
- package/dist/cjs/Program/utils.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js +6 -4
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js +3 -3
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js.map +1 -1
- package/dist/cjs/cli.js +2 -3
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/original-package.json +10 -9
- package/dist/cjs/run.js +0 -0
- package/dist/cjs/startWorker.js +0 -0
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/http.d.ts.map +1 -1
- package/dist/cjs/util/http.js +2 -5
- package/dist/cjs/util/http.js.map +1 -1
- 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
|
|
@@ -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"}
|
|
@@ -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;
|
|
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
|
|
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,
|
|
61
|
-
: await (0,
|
|
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,
|
|
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":";;;AAEA,oCAAiH;AACjH,kDAAsF;AAEtF,gDAAmF;AACnF,wCAAuE;AACvE,4CAA6E;AAC7E,kCAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"loadHttpServer.js","sourceRoot":"","sources":["../../../src/Program/loadHttpServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,13 +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, ssl, user }: ClientConfig) => Promise<Pool>;
|
|
21
|
-
export declare const loadSecret: (path: string) => string;
|
|
22
|
-
export declare const getPool: (dnsResolver: DnsResolver, logger: Logger, options?: HttpServerOptions) => Promise<Pool | undefined>;
|
|
23
|
-
export declare const isOgmiosConnectionError: (error: any) => boolean;
|
|
24
|
-
export declare const ogmiosTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<TxSubmitProvider>;
|
|
25
|
-
export declare const getOgmiosTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<TxSubmitProvider>;
|
|
26
15
|
export declare const srvRecordToRabbitmqURL: ({ name, port }: SrvRecord) => URL;
|
|
27
|
-
export declare const rabbitMqTxSubmitProviderWithDiscovery: (dnsResolver: DnsResolver, logger: Logger, serviceName: string) => Promise<RabbitMqTxSubmitProvider>;
|
|
28
|
-
export declare const getRabbitMqTxSubmitProvider: (dnsResolver: DnsResolver, logger: Logger, options?: CommonProgramOptions) => Promise<RabbitMqTxSubmitProvider>;
|
|
29
16
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/Program/utils.ts"],"names":[],"mappings":"
|
|
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"}
|