@cardano-sdk/cardano-services 0.10.0-nightly.0 → 0.10.0-nightly.2

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 (147) hide show
  1. package/README.md +11 -11
  2. package/dist/cjs/Blockfrost/BlockfrostService.d.ts +23 -0
  3. package/dist/cjs/Blockfrost/BlockfrostService.d.ts.map +1 -0
  4. package/dist/cjs/Blockfrost/BlockfrostService.js +116 -0
  5. package/dist/cjs/Blockfrost/BlockfrostService.js.map +1 -0
  6. package/dist/cjs/Blockfrost/builder.d.ts +12 -0
  7. package/dist/cjs/Blockfrost/builder.d.ts.map +1 -0
  8. package/dist/cjs/Blockfrost/builder.js +51 -0
  9. package/dist/cjs/Blockfrost/builder.js.map +1 -0
  10. package/dist/cjs/Blockfrost/index.d.ts +2 -0
  11. package/dist/cjs/Blockfrost/index.d.ts.map +1 -0
  12. package/dist/cjs/Blockfrost/index.js +18 -0
  13. package/dist/cjs/Blockfrost/index.js.map +1 -0
  14. package/dist/cjs/Blockfrost/mappers.d.ts +3 -0
  15. package/dist/cjs/Blockfrost/mappers.d.ts.map +1 -0
  16. package/dist/cjs/Blockfrost/mappers.js +8 -0
  17. package/dist/cjs/Blockfrost/mappers.js.map +1 -0
  18. package/dist/cjs/Blockfrost/queries.d.ts +6 -0
  19. package/dist/cjs/Blockfrost/queries.d.ts.map +1 -0
  20. package/dist/cjs/Blockfrost/queries.js +62 -0
  21. package/dist/cjs/Blockfrost/queries.js.map +1 -0
  22. package/dist/cjs/Blockfrost/types.d.ts +18 -0
  23. package/dist/cjs/Blockfrost/types.d.ts.map +1 -0
  24. package/dist/cjs/Blockfrost/types.js +3 -0
  25. package/dist/cjs/Blockfrost/types.js.map +1 -0
  26. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts +10 -7
  27. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts.map +1 -1
  28. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js +51 -32
  29. package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js.map +1 -1
  30. package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts +1 -0
  31. package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts.map +1 -1
  32. package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js +24 -34
  33. package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js.map +1 -1
  34. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts +4 -2
  35. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts.map +1 -1
  36. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js +6 -3
  37. package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js.map +1 -1
  38. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts +32 -12
  39. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts.map +1 -1
  40. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js +80 -29
  41. package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js.map +1 -1
  42. package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts +8 -1
  43. package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts.map +1 -1
  44. package/dist/cjs/Http/HttpServer.d.ts +7 -3
  45. package/dist/cjs/Http/HttpServer.d.ts.map +1 -1
  46. package/dist/cjs/Http/HttpServer.js +10 -7
  47. package/dist/cjs/Http/HttpServer.js.map +1 -1
  48. package/dist/cjs/Http/HttpService.d.ts +3 -3
  49. package/dist/cjs/Http/HttpService.d.ts.map +1 -1
  50. package/dist/cjs/Http/HttpService.js.map +1 -1
  51. package/dist/cjs/InMemoryCache/NoCache.d.ts +12 -0
  52. package/dist/cjs/InMemoryCache/NoCache.d.ts.map +1 -0
  53. package/dist/cjs/InMemoryCache/NoCache.js +26 -0
  54. package/dist/cjs/InMemoryCache/NoCache.js.map +1 -0
  55. package/dist/cjs/InMemoryCache/index.d.ts +1 -0
  56. package/dist/cjs/InMemoryCache/index.d.ts.map +1 -1
  57. package/dist/cjs/InMemoryCache/index.js +1 -0
  58. package/dist/cjs/InMemoryCache/index.js.map +1 -1
  59. package/dist/cjs/Metadata/DbSyncMetadataService.js +10 -9
  60. package/dist/cjs/Metadata/DbSyncMetadataService.js.map +1 -1
  61. package/dist/cjs/Metadata/queries.d.ts +2 -1
  62. package/dist/cjs/Metadata/queries.d.ts.map +1 -1
  63. package/dist/cjs/Metadata/queries.js +11 -2
  64. package/dist/cjs/Metadata/queries.js.map +1 -1
  65. package/dist/cjs/Metadata/types.d.ts +1 -0
  66. package/dist/cjs/Metadata/types.d.ts.map +1 -1
  67. package/dist/cjs/Metadata/util.d.ts +4 -0
  68. package/dist/cjs/Metadata/util.d.ts.map +1 -0
  69. package/dist/cjs/Metadata/util.js +15 -0
  70. package/dist/cjs/Metadata/util.js.map +1 -0
  71. package/dist/cjs/Program/Options.d.ts +1 -0
  72. package/dist/cjs/Program/Options.d.ts.map +1 -0
  73. package/dist/cjs/Program/Options.js +2 -0
  74. package/dist/cjs/Program/Options.js.map +1 -0
  75. package/dist/cjs/Program/defaults.d.ts +1 -0
  76. package/dist/cjs/Program/defaults.d.ts.map +1 -0
  77. package/dist/cjs/Program/defaults.js +2 -0
  78. package/dist/cjs/Program/defaults.js.map +1 -0
  79. package/dist/cjs/Program/options/common.js +1 -1
  80. package/dist/cjs/Program/options/common.js.map +1 -1
  81. package/dist/cjs/Program/programs/blockfrostWorker.d.ts +32 -0
  82. package/dist/cjs/Program/programs/blockfrostWorker.d.ts.map +1 -0
  83. package/dist/cjs/Program/programs/blockfrostWorker.js +60 -0
  84. package/dist/cjs/Program/programs/blockfrostWorker.js.map +1 -0
  85. package/dist/cjs/Program/programs/index.d.ts +4 -2
  86. package/dist/cjs/Program/programs/index.d.ts.map +1 -1
  87. package/dist/cjs/Program/programs/index.js +4 -2
  88. package/dist/cjs/Program/programs/index.js.map +1 -1
  89. package/dist/cjs/Program/programs/{httpServer.d.ts → providerServer.d.ts} +14 -5
  90. package/dist/cjs/Program/programs/providerServer.d.ts.map +1 -0
  91. package/dist/cjs/Program/programs/{httpServer.js → providerServer.js} +32 -24
  92. package/dist/cjs/Program/programs/providerServer.js.map +1 -0
  93. package/dist/cjs/Program/services/blockfrost.d.ts +21 -0
  94. package/dist/cjs/Program/services/blockfrost.d.ts.map +1 -0
  95. package/dist/cjs/Program/services/blockfrost.js +117 -0
  96. package/dist/cjs/Program/services/blockfrost.js.map +1 -0
  97. package/dist/cjs/Program/services/index.d.ts +1 -0
  98. package/dist/cjs/Program/services/index.d.ts.map +1 -1
  99. package/dist/cjs/Program/services/index.js +1 -0
  100. package/dist/cjs/Program/services/index.js.map +1 -1
  101. package/dist/cjs/Program/services/postgres.d.ts +1 -2
  102. package/dist/cjs/Program/services/postgres.d.ts.map +1 -1
  103. package/dist/cjs/Program/services/postgres.js.map +1 -1
  104. package/dist/cjs/Rewards/DbSyncRewardProvider/queries.d.ts +1 -1
  105. package/dist/cjs/Rewards/DbSyncRewardProvider/queries.d.ts.map +1 -1
  106. package/dist/cjs/Rewards/DbSyncRewardProvider/queries.js +0 -2
  107. package/dist/cjs/Rewards/DbSyncRewardProvider/queries.js.map +1 -1
  108. package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.d.ts +9 -1
  109. package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.d.ts.map +1 -1
  110. package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.js +58 -26
  111. package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.js.map +1 -1
  112. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts +7 -5
  113. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts.map +1 -1
  114. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js +40 -14
  115. package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js.map +1 -1
  116. package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts +4 -3
  117. package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts.map +1 -1
  118. package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.js +37 -11
  119. package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.js.map +1 -1
  120. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.d.ts +23 -6
  121. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.d.ts.map +1 -1
  122. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js +87 -58
  123. package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js.map +1 -1
  124. package/dist/cjs/StakePool/DbSyncStakePoolProvider/types.d.ts +11 -5
  125. package/dist/cjs/StakePool/DbSyncStakePoolProvider/types.d.ts.map +1 -1
  126. package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts +1 -2
  127. package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts.map +1 -1
  128. package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js +1 -2
  129. package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js.map +1 -1
  130. package/dist/cjs/StakePool/openApi.json +2 -2
  131. package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.d.ts +1 -1
  132. package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.d.ts.map +1 -1
  133. package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.js.map +1 -1
  134. package/dist/cjs/Utxo/DbSyncUtxoProvider/mappers.js.map +1 -1
  135. package/dist/cjs/cli.js +79 -30
  136. package/dist/cjs/cli.js.map +1 -1
  137. package/dist/cjs/index.d.ts +1 -0
  138. package/dist/cjs/index.d.ts.map +1 -1
  139. package/dist/cjs/index.js +1 -0
  140. package/dist/cjs/index.js.map +1 -1
  141. package/dist/cjs/original-package.json +13 -12
  142. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  143. package/dist/cjs/util/validators.js +1 -1
  144. package/dist/cjs/util/validators.js.map +1 -1
  145. package/package.json +13 -12
  146. package/dist/cjs/Program/programs/httpServer.d.ts.map +0 -1
  147. package/dist/cjs/Program/programs/httpServer.js.map +0 -1
package/README.md CHANGED
@@ -23,10 +23,10 @@ The services require instances of [Cardano Node] and [Ogmios] as a minimum, with
23
23
  [docker-compose.json](./docker-compose.yml) for the current supported version of each service
24
24
  dependency.
25
25
 
26
- ### HTTP Server
26
+ ### Provider Server
27
27
 
28
- The HTTP server can be started with one or more provider modules by name, segmented by URL path.
29
- Run the [CLI] with `start-server --help` to see the full list of options.
28
+ The Provider server can be started with one or more services by name, segmented by URL path.
29
+ Run the [CLI] with `start-provider-server --help` to see the full list of options.
30
30
 
31
31
  ### Worker
32
32
 
@@ -44,11 +44,11 @@ _The following examples require the [install and build] steps to be completed._
44
44
  - Connects to [PostgreSQL] service running at `localhost:5432`
45
45
  - HTTP API exposed using a custom API URL
46
46
 
47
- **`start-server` using CLI options:**
47
+ **`start-provider-server` using CLI options:**
48
48
 
49
49
  ```bash
50
50
  ./dist/cjs/cli.js \
51
- start-server \
51
+ start-provider-server \
52
52
  --api-url http://localhost:6000 \
53
53
  --cardano-node-config-path ./config/network/preprod/cardano-node/config.json \
54
54
  --postgres-connection-string postgresql://somePgUser:somePassword@localhost:5432/someDbName \
@@ -56,7 +56,7 @@ _The following examples require the [install and build] steps to be completed._
56
56
  asset chain-history stake-pool tx-submit network-info utxo rewards
57
57
  ```
58
58
 
59
- **`start-server` using env variables:**
59
+ **`start-provider-server` using env variables:**
60
60
 
61
61
  ```bash
62
62
  SERVICE_NAMES=asset,chain-history,stake-pool,tx-submit,network-info,utxo,rewards \
@@ -64,7 +64,7 @@ API_URL=http://localhost:6000 \
64
64
  CARDANO_NODE_CONFIG_PATH=./config/network/preprod/cardano-node/config.json \
65
65
  POSTGRES_CONNECTION_STRING=postgresql://somePgUser:somePassword@localhost:5432/someDbName \
66
66
  OGMIOS_URL=ws://localhost:1338 \
67
- ./dist/cjs/cli.js start-server
67
+ ./dist/cjs/cli.js start-provider-server
68
68
  ```
69
69
 
70
70
  #### All Providers | Service Discovery | Queued Tx Submission | Metrics
@@ -77,11 +77,11 @@ OGMIOS_URL=ws://localhost:1338 \
77
77
  - HTTP API exposed using a custom API URL
78
78
  - Prometheus metrics exporter enabled at http://localhost:6000/metrics
79
79
 
80
- **`start-server` using CLI options:**
80
+ **`start-provider-server` using CLI options:**
81
81
 
82
82
  ```bash
83
83
  ./dist/cjs/cli.js \
84
- start-server \
84
+ start-provider-server \
85
85
  --api-url http://localhost:6000 \
86
86
  --enable-metrics \
87
87
  --cardano-node-config-path ./config/network/preprod/cardano-node/config.json \
@@ -95,7 +95,7 @@ OGMIOS_URL=ws://localhost:1338 \
95
95
  asset chain-history stake-pool tx-submit network-info utxo rewards
96
96
  ```
97
97
 
98
- **`start-server` using env variables:**
98
+ **`start-provider-server` using env variables:**
99
99
 
100
100
  ```bash
101
101
  SERVICE_NAMES=asset,chain-history,stake-pool,tx-submit,network-info,utxo,rewards \
@@ -109,7 +109,7 @@ POSTGRES_PASSWORD=somePassword \
109
109
  OGMIOS_SRV_SERVICE_NAME=some-domain-for-ogmios \
110
110
  RABBITMQ_SRV_SERVICE_NAME=some-domain-for-rabbitmq \
111
111
  USE_QUEUE=true \
112
- ./dist/cjs/cli.js start-server
112
+ ./dist/cjs/cli.js start-provider-server
113
113
  ```
114
114
 
115
115
  **`start-worker` using CLI options:**
@@ -0,0 +1,23 @@
1
+ import { AvailableNetworks } from '..';
2
+ import { HttpService } from '../Http';
3
+ import { Logger } from 'ts-log';
4
+ import { Pool } from 'pg';
5
+ export interface BlockfrostServiceConfig {
6
+ blockfrostApiKey: string;
7
+ cacheTtl: number;
8
+ network: AvailableNetworks;
9
+ }
10
+ export interface BlockfrostServiceDependencies {
11
+ db: Pool;
12
+ logger: Logger;
13
+ }
14
+ export declare class BlockfrostService extends HttpService {
15
+ #private;
16
+ constructor(cfg: BlockfrostServiceConfig, deps: BlockfrostServiceDependencies);
17
+ protected initializeImpl(): Promise<void>;
18
+ protected startImpl(): Promise<void>;
19
+ protected shutdownImpl(): Promise<void>;
20
+ refreshCache(): Promise<void>;
21
+ private writeCache;
22
+ }
23
+ //# sourceMappingURL=BlockfrostService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostService.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/BlockfrostService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AAIvC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAM1B,MAAM,WAAW,uBAAuB;IACtC,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,iBAAiB,CAAC;CAC5B;AAED,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,iBAAkB,SAAQ,WAAW;;gBAOpC,GAAG,EAAE,uBAAuB,EAAE,IAAI,EAAE,6BAA6B;IA0B7E,SAAS,CAAC,cAAc;IAIxB,SAAS,CAAC,SAAS;IAInB,SAAS,CAAC,YAAY;IAMT,YAAY;YA2BX,UAAU;CAiCzB"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _BlockfrostService_api, _BlockfrostService_builder, _BlockfrostService_cacheTtl, _BlockfrostService_db, _BlockfrostService_shuttingDown;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.BlockfrostService = void 0;
16
+ const blockfrost_js_1 = require("@blockfrost/blockfrost-js");
17
+ const builder_1 = require("./builder");
18
+ const core_1 = require("@cardano-sdk/core");
19
+ const Http_1 = require("../Http");
20
+ const express_1 = require("express");
21
+ const queries_1 = require("./queries");
22
+ class BlockfrostService extends Http_1.HttpService {
23
+ constructor(cfg, deps) {
24
+ const { blockfrostApiKey, cacheTtl, network } = cfg;
25
+ const { db, logger } = deps;
26
+ const provider = { healthCheck: () => Promise.resolve({ ok: false }) };
27
+ super('blockfrost-cache', provider, (0, express_1.Router)(), logger);
28
+ _BlockfrostService_api.set(this, void 0);
29
+ _BlockfrostService_builder.set(this, void 0);
30
+ _BlockfrostService_cacheTtl.set(this, void 0);
31
+ _BlockfrostService_db.set(this, void 0);
32
+ _BlockfrostService_shuttingDown.set(this, void 0);
33
+ __classPrivateFieldSet(this, _BlockfrostService_api, new blockfrost_js_1.BlockFrostAPI({ network, projectId: blockfrostApiKey }), "f");
34
+ __classPrivateFieldSet(this, _BlockfrostService_builder, new builder_1.BlockfrostCacheBuilder(db, logger), "f");
35
+ __classPrivateFieldSet(this, _BlockfrostService_cacheTtl, cacheTtl, "f");
36
+ __classPrivateFieldSet(this, _BlockfrostService_db, db, "f");
37
+ provider.healthCheck = async () => {
38
+ try {
39
+ await db.query('SELECT 1');
40
+ await __classPrivateFieldGet(this, _BlockfrostService_api, "f").pools();
41
+ }
42
+ catch (error) {
43
+ this.logger.error(error);
44
+ return { ok: false };
45
+ }
46
+ return { ok: true };
47
+ };
48
+ }
49
+ initializeImpl() {
50
+ return Promise.resolve();
51
+ }
52
+ startImpl() {
53
+ return Promise.resolve();
54
+ }
55
+ shutdownImpl() {
56
+ __classPrivateFieldSet(this, _BlockfrostService_shuttingDown, true, "f");
57
+ return Promise.resolve();
58
+ }
59
+ async refreshCache() {
60
+ const [pools, currentEpoch] = await Promise.all([
61
+ __classPrivateFieldGet(this, _BlockfrostService_builder, "f").getPools(__classPrivateFieldGet(this, _BlockfrostService_cacheTtl, "f")),
62
+ __classPrivateFieldGet(this, _BlockfrostService_builder, "f").getCurrentEpoch()
63
+ ]);
64
+ for (const { id, view } of pools) {
65
+ if (__classPrivateFieldGet(this, _BlockfrostService_shuttingDown, "f"))
66
+ return;
67
+ this.logger.debug(`Going to fetch data from Blockfrost for pool ${view}`);
68
+ const metrics = await __classPrivateFieldGet(this, _BlockfrostService_api, "f").poolsById(view);
69
+ const lastRetire = await __classPrivateFieldGet(this, _BlockfrostService_builder, "f").getLastRetire(id);
70
+ const firstUpdate = await __classPrivateFieldGet(this, _BlockfrostService_builder, "f").getFirstUpdateAfterBlock(id, lastRetire ? lastRetire.block_no : 0);
71
+ const status = firstUpdate
72
+ ? firstUpdate.epoch_no <= currentEpoch
73
+ ? core_1.Cardano.StakePoolStatus.Active
74
+ : core_1.Cardano.StakePoolStatus.Activating
75
+ : lastRetire.retiring_epoch <= currentEpoch
76
+ ? core_1.Cardano.StakePoolStatus.Retired
77
+ : core_1.Cardano.StakePoolStatus.Retiring;
78
+ this.logger.debug(`Going to write Blockfrost cache data for pool ${view}`);
79
+ await this.writeCache(id, metrics, status);
80
+ }
81
+ }
82
+ async writeCache(id, metrics, status) {
83
+ const client = await __classPrivateFieldGet(this, _BlockfrostService_db, "f").connect();
84
+ try {
85
+ await client.query('BEGIN');
86
+ try {
87
+ await client.query(queries_1.setPoolMetric, [
88
+ id,
89
+ 0,
90
+ Date.now(),
91
+ metrics.blocks_minted,
92
+ metrics.live_delegators,
93
+ metrics.active_stake,
94
+ metrics.live_stake,
95
+ metrics.live_pledge,
96
+ metrics.live_saturation,
97
+ metrics.reward_account,
98
+ JSON.stringify([metrics.owners, metrics.registration.reverse(), metrics.retirement]),
99
+ status
100
+ ]);
101
+ await client.query('COMMIT');
102
+ }
103
+ catch (error) {
104
+ this.logger.error(error);
105
+ await client.query('ROLLBACK');
106
+ }
107
+ }
108
+ catch (error) {
109
+ this.logger.error(error);
110
+ }
111
+ client.release();
112
+ }
113
+ }
114
+ exports.BlockfrostService = BlockfrostService;
115
+ _BlockfrostService_api = new WeakMap(), _BlockfrostService_builder = new WeakMap(), _BlockfrostService_cacheTtl = new WeakMap(), _BlockfrostService_db = new WeakMap(), _BlockfrostService_shuttingDown = new WeakMap();
116
+ //# sourceMappingURL=BlockfrostService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockfrostService.js","sourceRoot":"","sources":["../../../src/Blockfrost/BlockfrostService.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { FirstUpdateAfterBlock, LastRetireModel, PoolsModel } from './types';
2
+ import { Logger } from 'ts-log';
3
+ import { Pool } from 'pg';
4
+ export declare class BlockfrostCacheBuilder {
5
+ #private;
6
+ constructor(db: Pool, logger: Logger);
7
+ getCurrentEpoch(): Promise<number>;
8
+ getFirstUpdateAfterBlock(id: string, blockNo: number): Promise<FirstUpdateAfterBlock | undefined>;
9
+ getLastRetire(id: string): Promise<LastRetireModel | undefined>;
10
+ getPools(cacheTtl: number): Promise<PoolsModel[]>;
11
+ }
12
+ //# sourceMappingURL=builder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/builder.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,qBAAqB,EAErB,eAAe,EACf,UAAU,EACX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK1B,qBAAa,sBAAsB;;gBAIrB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAK9B,eAAe;IAOf,wBAAwB,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAC;IAOjG,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAO/D,QAAQ,CAAC,QAAQ,EAAE,MAAM;CAQhC"}
@@ -0,0 +1,51 @@
1
+ "use strict";
2
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
3
+ if (kind === "m") throw new TypeError("Private method is not writable");
4
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
5
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
7
+ };
8
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
9
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
10
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
11
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
+ };
13
+ var _BlockfrostCacheBuilder_db, _BlockfrostCacheBuilder_logger;
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.BlockfrostCacheBuilder = void 0;
16
+ const util_1 = require("@cardano-sdk/util");
17
+ const queries_1 = require("./queries");
18
+ const mappers_1 = require("./mappers");
19
+ class BlockfrostCacheBuilder {
20
+ constructor(db, logger) {
21
+ _BlockfrostCacheBuilder_db.set(this, void 0);
22
+ _BlockfrostCacheBuilder_logger.set(this, void 0);
23
+ __classPrivateFieldSet(this, _BlockfrostCacheBuilder_db, db, "f");
24
+ __classPrivateFieldSet(this, _BlockfrostCacheBuilder_logger, (0, util_1.contextLogger)(logger, 'builder'), "f");
25
+ }
26
+ async getCurrentEpoch() {
27
+ __classPrivateFieldGet(this, _BlockfrostCacheBuilder_logger, "f").debug('Going to query current epoch');
28
+ const result = await __classPrivateFieldGet(this, _BlockfrostCacheBuilder_db, "f").query(queries_1.findCurrentEpoch);
29
+ return result.rows[0].epoch_no;
30
+ }
31
+ async getFirstUpdateAfterBlock(id, blockNo) {
32
+ __classPrivateFieldGet(this, _BlockfrostCacheBuilder_logger, "f").debug(`Going to query first update for pool ${id} after block ${blockNo}`);
33
+ const result = await __classPrivateFieldGet(this, _BlockfrostCacheBuilder_db, "f").query(queries_1.findFirstUpdateAfterBlock, [id, blockNo]);
34
+ return result.rows.map(mappers_1.mapFirstUpdateAfterBlock)[0];
35
+ }
36
+ async getLastRetire(id) {
37
+ __classPrivateFieldGet(this, _BlockfrostCacheBuilder_logger, "f").debug(`Going to query last retire for pool ${id}`);
38
+ const result = await __classPrivateFieldGet(this, _BlockfrostCacheBuilder_db, "f").query(queries_1.findLastRetire, [id]);
39
+ return result.rows[0];
40
+ }
41
+ async getPools(cacheTtl) {
42
+ const since = Date.now() - cacheTtl * 60000;
43
+ __classPrivateFieldGet(this, _BlockfrostCacheBuilder_logger, "f").debug('Going to query stake pools to be refreshed');
44
+ const result = await __classPrivateFieldGet(this, _BlockfrostCacheBuilder_db, "f").query(queries_1.findPools, [since]);
45
+ __classPrivateFieldGet(this, _BlockfrostCacheBuilder_logger, "f").debug('Stake pools to refresh', result.rowCount);
46
+ return result.rows;
47
+ }
48
+ }
49
+ exports.BlockfrostCacheBuilder = BlockfrostCacheBuilder;
50
+ _BlockfrostCacheBuilder_db = new WeakMap(), _BlockfrostCacheBuilder_logger = new WeakMap();
51
+ //# sourceMappingURL=builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../src/Blockfrost/builder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AASA,4CAAkD;AAClD,uCAAmG;AACnG,uCAAqD;AAErD,MAAa,sBAAsB;IAIjC,YAAY,EAAQ,EAAE,MAAc;QAHpC,6CAAU;QACV,iDAAgB;QAGd,uBAAA,IAAI,8BAAO,EAAE,MAAA,CAAC;QACd,uBAAA,IAAI,kCAAW,IAAA,oBAAa,EAAC,MAAM,EAAE,SAAS,CAAC,MAAA,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,uBAAA,IAAI,sCAAQ,CAAC,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACnD,MAAM,MAAM,GAAG,MAAM,uBAAA,IAAI,kCAAI,CAAC,KAAK,CAAoB,0BAAgB,CAAC,CAAC;QAEzE,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,KAAK,CAAC,wBAAwB,CAAC,EAAU,EAAE,OAAe;QACxD,uBAAA,IAAI,sCAAQ,CAAC,KAAK,CAAC,wCAAwC,EAAE,gBAAgB,OAAO,EAAE,CAAC,CAAC;QACxF,MAAM,MAAM,GAAG,MAAM,uBAAA,IAAI,kCAAI,CAAC,KAAK,CAA6B,mCAAyB,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;QAE1G,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,kCAAwB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU;QAC5B,uBAAA,IAAI,sCAAQ,CAAC,KAAK,CAAC,uCAAuC,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,MAAM,GAAG,MAAM,uBAAA,IAAI,kCAAI,CAAC,KAAK,CAAkB,wBAAc,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAE3E,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,QAAgB;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,GAAG,KAAM,CAAC;QAC7C,uBAAA,IAAI,sCAAQ,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,MAAM,uBAAA,IAAI,kCAAI,CAAC,KAAK,CAAa,mBAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACpE,uBAAA,IAAI,sCAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAE9D,OAAO,MAAM,CAAC,IAAI,CAAC;IACrB,CAAC;CACF;AAtCD,wDAsCC"}
@@ -0,0 +1,2 @@
1
+ export * from './BlockfrostService';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/index.ts"],"names":[],"mappings":"AAAA,cAAc,qBAAqB,CAAC"}
@@ -0,0 +1,18 @@
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("./BlockfrostService"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/Blockfrost/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC"}
@@ -0,0 +1,3 @@
1
+ import { FirstUpdateAfterBlock, FirstUpdateAfterBlockModel } from './types';
2
+ export declare const mapFirstUpdateAfterBlock: ({ active_epoch_no }: FirstUpdateAfterBlockModel) => FirstUpdateAfterBlock;
3
+ //# sourceMappingURL=mappers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/mappers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAE5E,eAAO,MAAM,wBAAwB,wBAAyB,0BAA0B,KAAG,qBAEzF,CAAC"}
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mapFirstUpdateAfterBlock = void 0;
4
+ const mapFirstUpdateAfterBlock = ({ active_epoch_no }) => ({
5
+ epoch_no: Number(active_epoch_no)
6
+ });
7
+ exports.mapFirstUpdateAfterBlock = mapFirstUpdateAfterBlock;
8
+ //# sourceMappingURL=mappers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mappers.js","sourceRoot":"","sources":["../../../src/Blockfrost/mappers.ts"],"names":[],"mappings":";;;AAEO,MAAM,wBAAwB,GAAG,CAAC,EAAE,eAAe,EAA8B,EAAyB,EAAE,CAAC,CAAC;IACnH,QAAQ,EAAE,MAAM,CAAC,eAAe,CAAC;CAClC,CAAC,CAAC;AAFU,QAAA,wBAAwB,4BAElC"}
@@ -0,0 +1,6 @@
1
+ export declare const findCurrentEpoch = "\nSELECT\n MAX(no) AS epoch_no\nFROM epoch\n";
2
+ export declare const findFirstUpdateAfterBlock = "\nSELECT\n active_epoch_no\nFROM pool_update\nJOIN tx ON\n tx.id = registered_tx_id\nJOIN block ON\n block_id = block.id AND\n block_no > $2\nWHERE hash_id = $1\nORDER BY block_no DESC\nLIMIT 1\n";
3
+ export declare const findLastRetire = "\nSELECT\n block_no,\n retiring_epoch\nFROM pool_retire\nJOIN tx ON\n tx.id = announced_tx_id\nJOIN block ON\n block_id = block.id\nWHERE hash_id = $1\nORDER BY block_no DESC\nLIMIT 1\n";
4
+ export declare const findPools = "\nSELECT\n id,\n view\nFROM pool_hash\nLEFT JOIN blockfrost.pool_metric ON\n id = pool_hash_id\nWHERE\n COALESCE(cache_time, 0) < $1\n";
5
+ export declare const setPoolMetric = "\nINSERT INTO blockfrost.pool_metric\nVALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)\nON CONFLICT (pool_hash_id)\nDO UPDATE SET\n last_reward_epoch = $2,\n cache_time = $3,\n blocks_created = $4,\n delegators = $5,\n active_stake = $6,\n live_stake = $7,\n live_pledge = $8,\n saturation = $9,\n reward_address = $10,\n extra = $11,\n status = $12\n";
6
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/queries.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,kDAI5B,CAAC;AAEF,eAAO,MAAM,yBAAyB,4MAYrC,CAAC;AAEF,eAAO,MAAM,cAAc,kMAY1B,CAAC;AAEF,eAAO,MAAM,SAAS,+IASrB,CAAC;AAEF,eAAO,MAAM,aAAa,8WAgBzB,CAAC"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setPoolMetric = exports.findPools = exports.findLastRetire = exports.findFirstUpdateAfterBlock = exports.findCurrentEpoch = void 0;
4
+ exports.findCurrentEpoch = `
5
+ SELECT
6
+ MAX(no) AS epoch_no
7
+ FROM epoch
8
+ `;
9
+ exports.findFirstUpdateAfterBlock = `
10
+ SELECT
11
+ active_epoch_no
12
+ FROM pool_update
13
+ JOIN tx ON
14
+ tx.id = registered_tx_id
15
+ JOIN block ON
16
+ block_id = block.id AND
17
+ block_no > $2
18
+ WHERE hash_id = $1
19
+ ORDER BY block_no DESC
20
+ LIMIT 1
21
+ `;
22
+ exports.findLastRetire = `
23
+ SELECT
24
+ block_no,
25
+ retiring_epoch
26
+ FROM pool_retire
27
+ JOIN tx ON
28
+ tx.id = announced_tx_id
29
+ JOIN block ON
30
+ block_id = block.id
31
+ WHERE hash_id = $1
32
+ ORDER BY block_no DESC
33
+ LIMIT 1
34
+ `;
35
+ exports.findPools = `
36
+ SELECT
37
+ id,
38
+ view
39
+ FROM pool_hash
40
+ LEFT JOIN blockfrost.pool_metric ON
41
+ id = pool_hash_id
42
+ WHERE
43
+ COALESCE(cache_time, 0) < $1
44
+ `;
45
+ exports.setPoolMetric = `
46
+ INSERT INTO blockfrost.pool_metric
47
+ VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9,$10,$11,$12)
48
+ ON CONFLICT (pool_hash_id)
49
+ DO UPDATE SET
50
+ last_reward_epoch = $2,
51
+ cache_time = $3,
52
+ blocks_created = $4,
53
+ delegators = $5,
54
+ active_stake = $6,
55
+ live_stake = $7,
56
+ live_pledge = $8,
57
+ saturation = $9,
58
+ reward_address = $10,
59
+ extra = $11,
60
+ status = $12
61
+ `;
62
+ //# sourceMappingURL=queries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../src/Blockfrost/queries.ts"],"names":[],"mappings":";;;AAAa,QAAA,gBAAgB,GAAG;;;;CAI/B,CAAC;AAEW,QAAA,yBAAyB,GAAG;;;;;;;;;;;;CAYxC,CAAC;AAEW,QAAA,cAAc,GAAG;;;;;;;;;;;;CAY7B,CAAC;AAEW,QAAA,SAAS,GAAG;;;;;;;;;CASxB,CAAC;AAEW,QAAA,aAAa,GAAG;;;;;;;;;;;;;;;;CAgB5B,CAAC"}
@@ -0,0 +1,18 @@
1
+ export interface CurrentEpochModel {
2
+ epoch_no: number;
3
+ }
4
+ export interface FirstUpdateAfterBlock {
5
+ epoch_no: number;
6
+ }
7
+ export interface FirstUpdateAfterBlockModel {
8
+ active_epoch_no: string;
9
+ }
10
+ export interface LastRetireModel {
11
+ block_no: number;
12
+ retiring_epoch: number;
13
+ }
14
+ export interface PoolsModel {
15
+ id: string;
16
+ view: string;
17
+ }
18
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Blockfrost/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBAAqB;IACpC,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,0BAA0B;IACzC,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/Blockfrost/types.ts"],"names":[],"mappings":""}
@@ -1,16 +1,19 @@
1
- import { Cardano } from '@cardano-sdk/core';
1
+ import { Cardano, PaginationArgs, Range } from '@cardano-sdk/core';
2
2
  import { TransactionDataMap, TxInput, TxOutTokenMap, TxOutput, TxTokenMap } from './types';
3
3
  import { Logger } from 'ts-log';
4
4
  import { Pool } from 'pg';
5
5
  export declare class ChainHistoryBuilder {
6
6
  #private;
7
7
  constructor(db: Pool, logger: Logger);
8
- queryTransactionInputsByHashes(hashes: Cardano.TransactionId[], collateral?: boolean): Promise<TxInput[]>;
8
+ queryTransactionInputsByIds(ids: string[], collateral?: boolean): Promise<TxInput[]>;
9
9
  queryMultiAssetsByTxOut(txOutIds: BigInt[]): Promise<TxOutTokenMap>;
10
- queryTransactionOutputsByHashes(hashes: Cardano.TransactionId[]): Promise<TxOutput[]>;
11
- queryTxMintByHashes(hashes: Cardano.TransactionId[]): Promise<TxTokenMap>;
12
- queryWithdrawalsByHashes(hashes: Cardano.TransactionId[]): Promise<TransactionDataMap<Cardano.Withdrawal[]>>;
13
- queryRedeemersByHashes(hashes: Cardano.TransactionId[]): Promise<TransactionDataMap<Cardano.Redeemer[]>>;
14
- queryCertificatesByHashes(hashes: Cardano.TransactionId[]): Promise<TransactionDataMap<Cardano.Certificate[]>>;
10
+ queryTransactionOutputsByIds(ids: string[]): Promise<TxOutput[]>;
11
+ queryTxMintByIds(ids: string[]): Promise<TxTokenMap>;
12
+ queryTxRecordIdsByTxHashes(ids: Cardano.TransactionId[]): Promise<string[]>;
13
+ queryWithdrawalsByTxIds(ids: string[]): Promise<TransactionDataMap<Cardano.Withdrawal[]>>;
14
+ queryRedeemersByIds(ids: string[]): Promise<TransactionDataMap<Cardano.Redeemer[]>>;
15
+ queryCertificatesByIds(ids: string[]): Promise<TransactionDataMap<Cardano.Certificate[]>>;
16
+ queryTxIdsByAddresses(addresses: Cardano.PaymentAddress[], blockRange?: Range<Cardano.BlockNo>): Promise<number>;
17
+ queryTxIdsByAddresses(addresses: Cardano.PaymentAddress[], blockRange?: Range<Cardano.BlockNo>, pagination?: PaginationArgs): Promise<string[]>;
15
18
  }
16
19
  //# sourceMappingURL=ChainHistoryBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChainHistoryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EASL,kBAAkB,EAClB,OAAO,EAGP,aAAa,EACb,QAAQ,EAER,UAAU,EAIX,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AAcvC,qBAAa,mBAAmB;;gBAIlB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAKvB,8BAA8B,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAUvG,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAMnE,+BAA+B,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAWrF,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAOzE,wBAAwB,CACnC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAC9B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAavC,sBAAsB,CACjC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAC9B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAarC,yBAAyB,CACpC,MAAM,EAAE,OAAO,CAAC,aAAa,EAAE,GAC9B,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;CA4CtD"}
1
+ {"version":3,"file":"ChainHistoryBuilder.d.ts","sourceRoot":"","sources":["../../../../src/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAUL,kBAAkB,EAElB,OAAO,EAGP,aAAa,EACb,QAAQ,EAER,UAAU,EAIX,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AAgBvC,qBAAa,mBAAmB;;gBAIlB,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAKvB,2BAA2B,CAAC,GAAG,EAAE,MAAM,EAAE,EAAE,UAAU,UAAQ,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IASlF,uBAAuB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,aAAa,CAAC;IAMnE,4BAA4B,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUhE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IAMpD,0BAA0B,CAAC,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAO3E,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAYzF,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAYnF,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC;IAoD/F,qBAAqB,CAC1B,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,EACnC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAClC,OAAO,CAAC,MAAM,CAAC;IACX,qBAAqB,CAC1B,SAAS,EAAE,OAAO,CAAC,cAAc,EAAE,EACnC,UAAU,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EACnC,UAAU,CAAC,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,EAAE,CAAC;CA4BrB"}