@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.
- package/README.md +11 -11
- package/dist/cjs/Blockfrost/BlockfrostService.d.ts +23 -0
- package/dist/cjs/Blockfrost/BlockfrostService.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/BlockfrostService.js +116 -0
- package/dist/cjs/Blockfrost/BlockfrostService.js.map +1 -0
- package/dist/cjs/Blockfrost/builder.d.ts +12 -0
- package/dist/cjs/Blockfrost/builder.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/builder.js +51 -0
- package/dist/cjs/Blockfrost/builder.js.map +1 -0
- package/dist/cjs/Blockfrost/index.d.ts +2 -0
- package/dist/cjs/Blockfrost/index.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/index.js +18 -0
- package/dist/cjs/Blockfrost/index.js.map +1 -0
- package/dist/cjs/Blockfrost/mappers.d.ts +3 -0
- package/dist/cjs/Blockfrost/mappers.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/mappers.js +8 -0
- package/dist/cjs/Blockfrost/mappers.js.map +1 -0
- package/dist/cjs/Blockfrost/queries.d.ts +6 -0
- package/dist/cjs/Blockfrost/queries.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/queries.js +62 -0
- package/dist/cjs/Blockfrost/queries.js.map +1 -0
- package/dist/cjs/Blockfrost/types.d.ts +18 -0
- package/dist/cjs/Blockfrost/types.d.ts.map +1 -0
- package/dist/cjs/Blockfrost/types.js +3 -0
- package/dist/cjs/Blockfrost/types.js.map +1 -0
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts +10 -7
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js +51 -32
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts +1 -0
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js +24 -34
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts +4 -2
- package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js +6 -3
- package/dist/cjs/ChainHistory/DbSyncChainHistory/mappers.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts +32 -12
- package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js +80 -29
- package/dist/cjs/ChainHistory/DbSyncChainHistory/queries.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts +8 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/types.d.ts.map +1 -1
- package/dist/cjs/Http/HttpServer.d.ts +7 -3
- package/dist/cjs/Http/HttpServer.d.ts.map +1 -1
- package/dist/cjs/Http/HttpServer.js +10 -7
- package/dist/cjs/Http/HttpServer.js.map +1 -1
- package/dist/cjs/Http/HttpService.d.ts +3 -3
- package/dist/cjs/Http/HttpService.d.ts.map +1 -1
- package/dist/cjs/Http/HttpService.js.map +1 -1
- package/dist/cjs/InMemoryCache/NoCache.d.ts +12 -0
- package/dist/cjs/InMemoryCache/NoCache.d.ts.map +1 -0
- package/dist/cjs/InMemoryCache/NoCache.js +26 -0
- package/dist/cjs/InMemoryCache/NoCache.js.map +1 -0
- package/dist/cjs/InMemoryCache/index.d.ts +1 -0
- package/dist/cjs/InMemoryCache/index.d.ts.map +1 -1
- package/dist/cjs/InMemoryCache/index.js +1 -0
- package/dist/cjs/InMemoryCache/index.js.map +1 -1
- package/dist/cjs/Metadata/DbSyncMetadataService.js +10 -9
- package/dist/cjs/Metadata/DbSyncMetadataService.js.map +1 -1
- package/dist/cjs/Metadata/queries.d.ts +2 -1
- package/dist/cjs/Metadata/queries.d.ts.map +1 -1
- package/dist/cjs/Metadata/queries.js +11 -2
- package/dist/cjs/Metadata/queries.js.map +1 -1
- package/dist/cjs/Metadata/types.d.ts +1 -0
- package/dist/cjs/Metadata/types.d.ts.map +1 -1
- package/dist/cjs/Metadata/util.d.ts +4 -0
- package/dist/cjs/Metadata/util.d.ts.map +1 -0
- package/dist/cjs/Metadata/util.js +15 -0
- package/dist/cjs/Metadata/util.js.map +1 -0
- package/dist/cjs/Program/Options.d.ts +1 -0
- package/dist/cjs/Program/Options.d.ts.map +1 -0
- package/dist/cjs/Program/Options.js +2 -0
- package/dist/cjs/Program/Options.js.map +1 -0
- package/dist/cjs/Program/defaults.d.ts +1 -0
- package/dist/cjs/Program/defaults.d.ts.map +1 -0
- package/dist/cjs/Program/defaults.js +2 -0
- package/dist/cjs/Program/defaults.js.map +1 -0
- package/dist/cjs/Program/options/common.js +1 -1
- package/dist/cjs/Program/options/common.js.map +1 -1
- package/dist/cjs/Program/programs/blockfrostWorker.d.ts +32 -0
- package/dist/cjs/Program/programs/blockfrostWorker.d.ts.map +1 -0
- package/dist/cjs/Program/programs/blockfrostWorker.js +60 -0
- package/dist/cjs/Program/programs/blockfrostWorker.js.map +1 -0
- package/dist/cjs/Program/programs/index.d.ts +4 -2
- package/dist/cjs/Program/programs/index.d.ts.map +1 -1
- package/dist/cjs/Program/programs/index.js +4 -2
- package/dist/cjs/Program/programs/index.js.map +1 -1
- package/dist/cjs/Program/programs/{httpServer.d.ts → providerServer.d.ts} +14 -5
- package/dist/cjs/Program/programs/providerServer.d.ts.map +1 -0
- package/dist/cjs/Program/programs/{httpServer.js → providerServer.js} +32 -24
- package/dist/cjs/Program/programs/providerServer.js.map +1 -0
- package/dist/cjs/Program/services/blockfrost.d.ts +21 -0
- package/dist/cjs/Program/services/blockfrost.d.ts.map +1 -0
- package/dist/cjs/Program/services/blockfrost.js +117 -0
- package/dist/cjs/Program/services/blockfrost.js.map +1 -0
- package/dist/cjs/Program/services/index.d.ts +1 -0
- package/dist/cjs/Program/services/index.d.ts.map +1 -1
- package/dist/cjs/Program/services/index.js +1 -0
- package/dist/cjs/Program/services/index.js.map +1 -1
- package/dist/cjs/Program/services/postgres.d.ts +1 -2
- package/dist/cjs/Program/services/postgres.d.ts.map +1 -1
- package/dist/cjs/Program/services/postgres.js.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/queries.d.ts +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/queries.d.ts.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/queries.js +0 -2
- package/dist/cjs/Rewards/DbSyncRewardProvider/queries.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.d.ts +9 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.js +58 -26
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePoolProvider.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts +7 -5
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js +40 -14
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts +4 -3
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.js +37 -11
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.d.ts +23 -6
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js +87 -58
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/queries.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/types.d.ts +11 -5
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/types.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts +1 -2
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js +1 -2
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js.map +1 -1
- package/dist/cjs/StakePool/openApi.json +2 -2
- package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.d.ts +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.d.ts.map +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.js.map +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/mappers.js.map +1 -1
- package/dist/cjs/cli.js +79 -30
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/original-package.json +13 -12
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/cjs/util/validators.js +1 -1
- package/dist/cjs/util/validators.js.map +1 -1
- package/package.json +13 -12
- package/dist/cjs/Program/programs/httpServer.d.ts.map +0 -1
- package/dist/cjs/Program/programs/httpServer.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.d.ts","sourceRoot":"","sources":["../../../src/Program/Options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Options.js","sourceRoot":"","sources":["../../../src/Program/Options.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=defaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/Program/defaults.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/Program/defaults.ts"],"names":[],"mappings":""}
|
|
@@ -29,7 +29,7 @@ const withCommonOptions = (command, defaults) => command
|
|
|
29
29
|
.addOption(new commander_1.Option('--enable-metrics <true/false>', CommonOptionDescriptions.EnableMetrics)
|
|
30
30
|
.env('ENABLE_METRICS')
|
|
31
31
|
.default(exports.ENABLE_METRICS_DEFAULT)
|
|
32
|
-
.argParser((enableMetrics) => (0, utils_1.stringOptionToBoolean)(enableMetrics, programs_1.Programs.
|
|
32
|
+
.argParser((enableMetrics) => (0, utils_1.stringOptionToBoolean)(enableMetrics, programs_1.Programs.ProviderServer, CommonOptionDescriptions.EnableMetrics)))
|
|
33
33
|
.addOption(new commander_1.Option('--logger-min-severity <level>', CommonOptionDescriptions.LoggerMinSeverity)
|
|
34
34
|
.env('LOGGER_MIN_SEVERITY')
|
|
35
35
|
.default('info')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/Program/options/common.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,yCAAkD;AAElD,0CAAuC;AACvC,oCAIkB;AAElB,6BAA0B;AAC1B,sDAA2D;AAC3D,4CAAsD;AAEzC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAE5C,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,8CAAkB,CAAA;IAClB,4DAAgC,CAAA;IAChC,2DAA+B,CAAA;IAC/B,uEAA2C,CAAA;IAC3C,8GAAkF,CAAA;IAClF,8FAAkE,CAAA;AACpE,CAAC,EAPW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAOnC;AAWM,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,QAAyB,EAAE,EAAE,CAC/E,OAAO;KACJ,SAAS,CACR,IAAI,kBAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,MAAM,CAAC;KAC9D,GAAG,CAAC,SAAS,CAAC;KACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;KACxB,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC,CACpC;KACA,SAAS,CACR,IAAI,kBAAM,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,SAAS,CAAC;KACvE,GAAG,CAAC,YAAY,CAAC;KACjB,SAAS,CAAC,+BAAkB,CAAC,CACjC;KACA,SAAS,CACR,IAAI,kBAAM,CAAC,+BAA+B,EAAE,wBAAwB,CAAC,aAAa,CAAC;KAChF,GAAG,CAAC,gBAAgB,CAAC;KACrB,OAAO,CAAC,8BAAsB,CAAC;KAC/B,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE,CAC3B,IAAA,6BAAqB,EAAC,aAAa,EAAE,mBAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../../../../src/Program/options/common.ts"],"names":[],"mappings":";;;AAAA,yCAA4C;AAC5C,yCAAkD;AAElD,0CAAuC;AACvC,oCAIkB;AAElB,6BAA0B;AAC1B,sDAA2D;AAC3D,4CAAsD;AAEzC,QAAA,sBAAsB,GAAG,KAAK,CAAC;AAE5C,IAAY,wBAOX;AAPD,WAAY,wBAAwB;IAClC,8CAAkB,CAAA;IAClB,4DAAgC,CAAA;IAChC,2DAA+B,CAAA;IAC/B,uEAA2C,CAAA;IAC3C,8GAAkF,CAAA;IAClF,8FAAkE,CAAA;AACpE,CAAC,EAPW,wBAAwB,GAAxB,gCAAwB,KAAxB,gCAAwB,QAOnC;AAWM,MAAM,iBAAiB,GAAG,CAAC,OAAgB,EAAE,QAAyB,EAAE,EAAE,CAC/E,OAAO;KACJ,SAAS,CACR,IAAI,kBAAM,CAAC,oBAAoB,EAAE,wBAAwB,CAAC,MAAM,CAAC;KAC9D,GAAG,CAAC,SAAS,CAAC;KACd,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;KACxB,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,SAAG,CAAC,GAAG,CAAC,CAAC,CACpC;KACA,SAAS,CACR,IAAI,kBAAM,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,SAAS,CAAC;KACvE,GAAG,CAAC,YAAY,CAAC;KACjB,SAAS,CAAC,+BAAkB,CAAC,CACjC;KACA,SAAS,CACR,IAAI,kBAAM,CAAC,+BAA+B,EAAE,wBAAwB,CAAC,aAAa,CAAC;KAChF,GAAG,CAAC,gBAAgB,CAAC;KACrB,OAAO,CAAC,8BAAsB,CAAC;KAC/B,SAAS,CAAC,CAAC,aAAa,EAAE,EAAE,CAC3B,IAAA,6BAAqB,EAAC,aAAa,EAAE,mBAAQ,CAAC,cAAc,EAAE,wBAAwB,CAAC,aAAa,CAAC,CACtG,CACJ;KACA,SAAS,CACR,IAAI,kBAAM,CAAC,+BAA+B,EAAE,wBAAwB,CAAC,iBAAiB,CAAC;KACpF,GAAG,CAAC,qBAAqB,CAAC;KAC1B,OAAO,CAAC,MAAM,CAAC;KACf,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;IACnB,IAAI,CAAC,wBAAiB,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;QACtC,MAAM,IAAI,2BAAkB,CAAC,KAAK,CAAC,CAAC;KACrC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC,CACL;KACA,SAAS,CACR,IAAI,kBAAM,CACR,oEAAoE,EACpE,wBAAwB,CAAC,6BAA6B,CACvD;KACE,GAAG,CAAC,kCAAkC,CAAC;KACvC,OAAO,CAAC,gDAAwC,CAAC;KACjD,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CACpD;KACA,SAAS,CACR,IAAI,kBAAM,CACR,uDAAuD,EACvD,wBAAwB,CAAC,uBAAuB,CACjD;KACE,GAAG,CAAC,2BAA2B,CAAC;KAChC,OAAO,CAAC,yCAAiC,CAAC;KAC1C,SAAS,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,CAC1D,CAAC;AAjDO,QAAA,iBAAiB,qBAiDxB"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { BlockfrostWorker, BlockfrostWorkerConfig } from '../services';
|
|
3
|
+
import { CommonProgramOptions, PosgresProgramOptions } from '../options';
|
|
4
|
+
import { Logger } from 'ts-log';
|
|
5
|
+
import { SrvRecord } from 'dns';
|
|
6
|
+
export declare const BLOCKFROST_WORKER_API_URL_DEFAULT: URL;
|
|
7
|
+
export declare const CACHE_TTL_DEFAULT: number;
|
|
8
|
+
export declare const CREATE_SCHEMA_DEFAULT = false;
|
|
9
|
+
export declare const DROP_SCHEMA_DEFAULT = false;
|
|
10
|
+
export declare const DRY_RUN_DEFAULT = false;
|
|
11
|
+
export declare const SCAN_INTERVAL_DEFAULT = 60;
|
|
12
|
+
export declare const availableNetworks: readonly ["mainnet", "preprod", "preview"];
|
|
13
|
+
export declare type AvailableNetworks = typeof availableNetworks[number];
|
|
14
|
+
export declare enum BlockfrostWorkerOptionDescriptions {
|
|
15
|
+
BlockfrostApiFile = "Blockfrost API Key file path",
|
|
16
|
+
BlockfrostApiKey = "Blockfrost API Key",
|
|
17
|
+
CacheTTL = "TTL of blockfrost cached metrics in minutes",
|
|
18
|
+
CreateSchema = "create the schema; useful for development",
|
|
19
|
+
DropSchema = "drop the schema; useful for development",
|
|
20
|
+
DryRun = "dry run; useful for tests",
|
|
21
|
+
Network = "network to run against",
|
|
22
|
+
ScanInterval = "interval between a scan and the next one in minutes"
|
|
23
|
+
}
|
|
24
|
+
export declare type BlockfrostWorkerArgs = CommonProgramOptions & PosgresProgramOptions & BlockfrostWorkerConfig & {
|
|
25
|
+
blockfrostApiFile?: string;
|
|
26
|
+
};
|
|
27
|
+
export interface LoadBlockfrostWorkerDependencies {
|
|
28
|
+
dnsResolver?: (serviceName: string) => Promise<SrvRecord>;
|
|
29
|
+
logger?: Logger;
|
|
30
|
+
}
|
|
31
|
+
export declare const loadBlockfrostWorker: (args: BlockfrostWorkerArgs, deps?: LoadBlockfrostWorkerDependencies) => Promise<BlockfrostWorker>;
|
|
32
|
+
//# sourceMappingURL=blockfrostWorker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrostWorker.d.ts","sourceRoot":"","sources":["../../../../src/Program/programs/blockfrostWorker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAW,MAAM,aAAa,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,qBAAqB,EAA8B,MAAM,YAAY,CAAC;AACrG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAEhC,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAKhC,eAAO,MAAM,iCAAiC,KAAmC,CAAC;AAClF,eAAO,MAAM,iBAAiB,QAAU,CAAC;AACzC,eAAO,MAAM,qBAAqB,QAAQ,CAAC;AAC3C,eAAO,MAAM,mBAAmB,QAAQ,CAAC;AACzC,eAAO,MAAM,eAAe,QAAQ,CAAC;AACrC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,iBAAiB,4CAA6C,CAAC;AAC5E,oBAAY,iBAAiB,GAAG,OAAO,iBAAiB,CAAC,MAAM,CAAC,CAAC;AAEjE,oBAAY,kCAAkC;IAC5C,iBAAiB,iCAAiC;IAClD,gBAAgB,uBAAuB;IACvC,QAAQ,gDAAgD;IACxD,YAAY,8CAA8C;IAC1D,UAAU,4CAA4C;IACtD,MAAM,8BAA8B;IACpC,OAAO,2BAA2B;IAClC,YAAY,wDAAwD;CACrE;AAED,oBAAY,oBAAoB,GAAG,oBAAoB,GACrD,qBAAqB,GACrB,sBAAsB,GAAG;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE1D,MAAM,WAAW,gCAAgC;IAC/C,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,eAAO,MAAM,oBAAoB,SAAgB,oBAAoB,SAAQ,gCAAgC,8BAqC5G,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.loadBlockfrostWorker = exports.BlockfrostWorkerOptionDescriptions = exports.availableNetworks = exports.SCAN_INTERVAL_DEFAULT = exports.DRY_RUN_DEFAULT = exports.DROP_SCHEMA_DEFAULT = exports.CREATE_SCHEMA_DEFAULT = exports.CACHE_TTL_DEFAULT = exports.BLOCKFROST_WORKER_API_URL_DEFAULT = void 0;
|
|
4
|
+
const services_1 = require("../services");
|
|
5
|
+
const options_1 = require("../options");
|
|
6
|
+
const __1 = require("..");
|
|
7
|
+
const utils_1 = require("../utils");
|
|
8
|
+
const bunyan_1 = require("bunyan");
|
|
9
|
+
const promises_1 = require("fs/promises");
|
|
10
|
+
exports.BLOCKFROST_WORKER_API_URL_DEFAULT = new URL('http://localhost:3000');
|
|
11
|
+
exports.CACHE_TTL_DEFAULT = 24 * 60;
|
|
12
|
+
exports.CREATE_SCHEMA_DEFAULT = false;
|
|
13
|
+
exports.DROP_SCHEMA_DEFAULT = false;
|
|
14
|
+
exports.DRY_RUN_DEFAULT = false;
|
|
15
|
+
exports.SCAN_INTERVAL_DEFAULT = 60;
|
|
16
|
+
exports.availableNetworks = ['mainnet', 'preprod', 'preview'];
|
|
17
|
+
var BlockfrostWorkerOptionDescriptions;
|
|
18
|
+
(function (BlockfrostWorkerOptionDescriptions) {
|
|
19
|
+
BlockfrostWorkerOptionDescriptions["BlockfrostApiFile"] = "Blockfrost API Key file path";
|
|
20
|
+
BlockfrostWorkerOptionDescriptions["BlockfrostApiKey"] = "Blockfrost API Key";
|
|
21
|
+
BlockfrostWorkerOptionDescriptions["CacheTTL"] = "TTL of blockfrost cached metrics in minutes";
|
|
22
|
+
BlockfrostWorkerOptionDescriptions["CreateSchema"] = "create the schema; useful for development";
|
|
23
|
+
BlockfrostWorkerOptionDescriptions["DropSchema"] = "drop the schema; useful for development";
|
|
24
|
+
BlockfrostWorkerOptionDescriptions["DryRun"] = "dry run; useful for tests";
|
|
25
|
+
BlockfrostWorkerOptionDescriptions["Network"] = "network to run against";
|
|
26
|
+
BlockfrostWorkerOptionDescriptions["ScanInterval"] = "interval between a scan and the next one in minutes";
|
|
27
|
+
})(BlockfrostWorkerOptionDescriptions = exports.BlockfrostWorkerOptionDescriptions || (exports.BlockfrostWorkerOptionDescriptions = {}));
|
|
28
|
+
const blockfrostWorker = 'Blockfrost worker';
|
|
29
|
+
const loadBlockfrostWorker = async (args, deps = {}) => {
|
|
30
|
+
const logger = deps?.logger || (0, bunyan_1.createLogger)({ level: args.loggerMinSeverity, name: 'blockfrost-worker' });
|
|
31
|
+
const dnsResolver = deps?.dnsResolver ||
|
|
32
|
+
(0, utils_1.createDnsResolver)({
|
|
33
|
+
factor: args.serviceDiscoveryBackoffFactor,
|
|
34
|
+
maxRetryTime: args.serviceDiscoveryTimeout
|
|
35
|
+
}, logger);
|
|
36
|
+
const db = await (0, services_1.getPool)(dnsResolver, logger, args);
|
|
37
|
+
if (args.blockfrostApiFile)
|
|
38
|
+
try {
|
|
39
|
+
args.blockfrostApiKey = (await (0, promises_1.readFile)(args.blockfrostApiFile)).toString('utf-8').replace(/[\n\r]/g, '');
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger.error(error);
|
|
43
|
+
throw error;
|
|
44
|
+
}
|
|
45
|
+
if (!args.blockfrostApiKey)
|
|
46
|
+
throw new __1.MissingProgramOption(blockfrostWorker, [
|
|
47
|
+
BlockfrostWorkerOptionDescriptions.BlockfrostApiFile,
|
|
48
|
+
BlockfrostWorkerOptionDescriptions.BlockfrostApiKey
|
|
49
|
+
]);
|
|
50
|
+
if (!args.network)
|
|
51
|
+
throw new __1.MissingProgramOption(blockfrostWorker, BlockfrostWorkerOptionDescriptions.Network);
|
|
52
|
+
if (!db)
|
|
53
|
+
throw new __1.MissingProgramOption(blockfrostWorker, [
|
|
54
|
+
options_1.PostgresOptionDescriptions.ConnectionString,
|
|
55
|
+
options_1.PostgresOptionDescriptions.ServiceDiscoveryArgs
|
|
56
|
+
]);
|
|
57
|
+
return new services_1.BlockfrostWorker(args, { db, logger });
|
|
58
|
+
};
|
|
59
|
+
exports.loadBlockfrostWorker = loadBlockfrostWorker;
|
|
60
|
+
//# sourceMappingURL=blockfrostWorker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrostWorker.js","sourceRoot":"","sources":["../../../../src/Program/programs/blockfrostWorker.ts"],"names":[],"mappings":";;;AAAA,0CAAgF;AAChF,wCAAqG;AAErG,0BAA0C;AAE1C,oCAA6C;AAC7C,mCAAsC;AACtC,0CAAuC;AAE1B,QAAA,iCAAiC,GAAG,IAAI,GAAG,CAAC,uBAAuB,CAAC,CAAC;AACrE,QAAA,iBAAiB,GAAG,EAAE,GAAG,EAAE,CAAC;AAC5B,QAAA,qBAAqB,GAAG,KAAK,CAAC;AAC9B,QAAA,mBAAmB,GAAG,KAAK,CAAC;AAC5B,QAAA,eAAe,GAAG,KAAK,CAAC;AACxB,QAAA,qBAAqB,GAAG,EAAE,CAAC;AAE3B,QAAA,iBAAiB,GAAG,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAU,CAAC;AAG5E,IAAY,kCASX;AATD,WAAY,kCAAkC;IAC5C,wFAAkD,CAAA;IAClD,6EAAuC,CAAA;IACvC,8FAAwD,CAAA;IACxD,gGAA0D,CAAA;IAC1D,4FAAsD,CAAA;IACtD,0EAAoC,CAAA;IACpC,wEAAkC,CAAA;IAClC,0GAAoE,CAAA;AACtE,CAAC,EATW,kCAAkC,GAAlC,0CAAkC,KAAlC,0CAAkC,QAS7C;AAWD,MAAM,gBAAgB,GAAG,mBAAmB,CAAC;AAEtC,MAAM,oBAAoB,GAAG,KAAK,EAAE,IAA0B,EAAE,OAAyC,EAAE,EAAE,EAAE;IACpH,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,IAAA,qBAAY,EAAC,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC1G,MAAM,WAAW,GACf,IAAI,EAAE,WAAW;QACjB,IAAA,yBAAiB,EACf;YACE,MAAM,EAAE,IAAI,CAAC,6BAA6B;YAC1C,YAAY,EAAE,IAAI,CAAC,uBAAuB;SAC3C,EACD,MAAM,CACP,CAAC;IACJ,MAAM,EAAE,GAAG,MAAM,IAAA,kBAAO,EAAC,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IAEpD,IAAI,IAAI,CAAC,iBAAiB;QACxB,IAAI;YACF,IAAI,CAAC,gBAAgB,GAAG,CAAC,MAAM,IAAA,mBAAQ,EAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;SAC3G;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAEpB,MAAM,KAAK,CAAC;SACb;IAEH,IAAI,CAAC,IAAI,CAAC,gBAAgB;QACxB,MAAM,IAAI,wBAAoB,CAAC,gBAAgB,EAAE;YAC/C,kCAAkC,CAAC,iBAAiB;YACpD,kCAAkC,CAAC,gBAAgB;SACpD,CAAC,CAAC;IAEL,IAAI,CAAC,IAAI,CAAC,OAAO;QAAE,MAAM,IAAI,wBAAoB,CAAC,gBAAgB,EAAE,kCAAkC,CAAC,OAAO,CAAC,CAAC;IAEhH,IAAI,CAAC,EAAE;QACL,MAAM,IAAI,wBAAoB,CAAC,gBAAgB,EAAE;YAC/C,oCAA0B,CAAC,gBAAgB;YAC3C,oCAA0B,CAAC,oBAAoB;SAChD,CAAC,CAAC;IAEL,OAAO,IAAI,2BAAgB,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;AACpD,CAAC,CAAC;AArCW,QAAA,oBAAoB,wBAqC/B"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export * from './
|
|
1
|
+
export * from './blockfrostWorker';
|
|
2
|
+
export * from './providerServer';
|
|
2
3
|
export * from './txWorker';
|
|
3
4
|
export declare enum Programs {
|
|
4
|
-
|
|
5
|
+
BlockfrostWorker = "Blockfrost worker",
|
|
6
|
+
ProviderServer = "Provider server",
|
|
5
7
|
RabbitmqWorker = "RabbitMQ worker"
|
|
6
8
|
}
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Program/programs/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Program/programs/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,YAAY,CAAC;AAM3B,oBAAY,QAAQ;IAClB,gBAAgB,sBAAsB;IACtC,cAAc,oBAAoB;IAClC,cAAc,oBAAoB;CACnC"}
|
|
@@ -15,11 +15,13 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.Programs = void 0;
|
|
18
|
-
__exportStar(require("./
|
|
18
|
+
__exportStar(require("./blockfrostWorker"), exports);
|
|
19
|
+
__exportStar(require("./providerServer"), exports);
|
|
19
20
|
__exportStar(require("./txWorker"), exports);
|
|
20
21
|
var Programs;
|
|
21
22
|
(function (Programs) {
|
|
22
|
-
Programs["
|
|
23
|
+
Programs["BlockfrostWorker"] = "Blockfrost worker";
|
|
24
|
+
Programs["ProviderServer"] = "Provider server";
|
|
23
25
|
Programs["RabbitmqWorker"] = "RabbitMQ worker";
|
|
24
26
|
})(Programs = exports.Programs || (exports.Programs = {}));
|
|
25
27
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Program/programs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Program/programs/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,mDAAiC;AACjC,6CAA2B;AAM3B,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,kDAAsC,CAAA;IACtC,8CAAkC,CAAA;IAClC,8CAAkC,CAAA;AACpC,CAAC,EAJW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAInB"}
|
|
@@ -5,8 +5,11 @@ import { HttpServer } from '../../Http';
|
|
|
5
5
|
import { Logger } from 'ts-log';
|
|
6
6
|
import { SrvRecord } from 'dns';
|
|
7
7
|
import { URL } from 'url';
|
|
8
|
+
export declare const DISABLE_DB_CACHE_DEFAULT = false;
|
|
9
|
+
export declare const DISABLE_STAKE_POOL_METRIC_APY_DEFAULT = false;
|
|
8
10
|
export declare const HTTP_SERVER_API_URL_DEFAULT: URL;
|
|
9
11
|
export declare const PAGINATION_PAGE_SIZE_LIMIT_DEFAULT = 25;
|
|
12
|
+
export declare const USE_BLOCKFROST_DEFAULT = false;
|
|
10
13
|
export declare const USE_QUEUE_DEFAULT = false;
|
|
11
14
|
export declare enum ServiceNames {
|
|
12
15
|
Asset = "asset",
|
|
@@ -18,28 +21,34 @@ export declare enum ServiceNames {
|
|
|
18
21
|
Rewards = "rewards"
|
|
19
22
|
}
|
|
20
23
|
export declare const cardanoNodeDependantServices: Set<ServiceNames>;
|
|
21
|
-
export declare enum
|
|
24
|
+
export declare enum ProviderServerOptionDescriptions {
|
|
22
25
|
CardanoNodeConfigPath = "Cardano node config path",
|
|
23
26
|
DbCacheTtl = "Cache TTL in seconds between 60 and 172800 (two days), an option for database related operations",
|
|
27
|
+
DisableDbCache = "Disable DB cache",
|
|
28
|
+
DisableStakePoolMetricApy = "Omit this metric for improved query performance",
|
|
24
29
|
EpochPollInterval = "Epoch poll interval",
|
|
25
30
|
TokenMetadataCacheTtl = "Token Metadata API cache TTL in minutes",
|
|
26
31
|
TokenMetadataServerUrl = "Token Metadata API server URL",
|
|
32
|
+
UseBlockfrost = "Enables Blockfrost cached data DB",
|
|
27
33
|
UseQueue = "Enables RabbitMQ",
|
|
28
34
|
PaginationPageSizeLimit = "Pagination page size limit shared across all providers"
|
|
29
35
|
}
|
|
30
|
-
export declare type
|
|
36
|
+
export declare type ProviderServerArgs = CommonProgramOptions & PosgresProgramOptions & OgmiosProgramOptions & RabbitMqProgramOptions & {
|
|
31
37
|
cardanoNodeConfigPath?: string;
|
|
38
|
+
disableDbCache?: boolean;
|
|
39
|
+
disableStakePoolMetricApy?: boolean;
|
|
32
40
|
tokenMetadataCacheTTL?: number;
|
|
33
41
|
tokenMetadataServerUrl?: string;
|
|
34
42
|
epochPollInterval: number;
|
|
35
43
|
dbCacheTtl: number;
|
|
44
|
+
useBlockfrost?: boolean;
|
|
36
45
|
useQueue?: boolean;
|
|
37
46
|
paginationPageSizeLimit?: number;
|
|
38
47
|
serviceNames: ServiceNames[];
|
|
39
48
|
};
|
|
40
|
-
export interface
|
|
49
|
+
export interface LoadProviderServerDependencies {
|
|
41
50
|
dnsResolver?: (serviceName: string) => Promise<SrvRecord>;
|
|
42
51
|
logger?: Logger;
|
|
43
52
|
}
|
|
44
|
-
export declare const
|
|
45
|
-
//# sourceMappingURL=
|
|
53
|
+
export declare const loadProviderServer: (args: ProviderServerArgs, deps?: LoadProviderServerDependencies) => Promise<HttpServer>;
|
|
54
|
+
//# sourceMappingURL=providerServer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerServer.d.ts","sourceRoot":"","sources":["../../../../src/Program/programs/providerServer.ts"],"names":[],"mappings":";;AAWA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,qBAAqB,EAErB,sBAAsB,EACvB,MAAM,YAAY,CAAC;AAQpB,OAAO,EAAE,UAAU,EAA4C,MAAM,YAAY,CAAC;AAElF,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAGhC,OAAO,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAQ1B,eAAO,MAAM,wBAAwB,QAAQ,CAAC;AAC9C,eAAO,MAAM,qCAAqC,QAAQ,CAAC;AAC3D,eAAO,MAAM,2BAA2B,KAAmC,CAAC;AAC5E,eAAO,MAAM,kCAAkC,KAAK,CAAC;AACrD,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,iBAAiB,QAAQ,CAAC;AAMvC,oBAAY,YAAY;IACtB,KAAK,UAAU;IACf,SAAS,eAAe;IACxB,WAAW,iBAAiB;IAC5B,QAAQ,cAAc;IACtB,IAAI,SAAS;IACb,YAAY,kBAAkB;IAC9B,OAAO,YAAY;CACpB;AAED,eAAO,MAAM,4BAA4B,mBAOvC,CAAC;AAEH,oBAAY,gCAAgC;IAC1C,qBAAqB,6BAA6B;IAClD,UAAU,qGAAqG;IAC/G,cAAc,qBAAqB;IACnC,yBAAyB,oDAAoD;IAC7E,iBAAiB,wBAAwB;IACzC,qBAAqB,4CAA4C;IACjE,sBAAsB,kCAAkC;IACxD,aAAa,sCAAsC;IACnD,QAAQ,qBAAqB;IAC7B,uBAAuB,2DAA2D;CACnF;AAED,oBAAY,kBAAkB,GAAG,oBAAoB,GACnD,qBAAqB,GACrB,oBAAoB,GACpB,sBAAsB,GAAG;IACvB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,YAAY,EAAE,YAAY,EAAE,CAAC;CAC9B,CAAC;AAEJ,MAAM,WAAW,8BAA8B;IAC7C,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1D,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAqHD,eAAO,MAAM,kBAAkB,SACvB,kBAAkB,SAClB,8BAA8B,KACnC,QAAQ,UAAU,CAuCpB,CAAC"}
|
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.
|
|
6
|
+
exports.loadProviderServer = exports.ProviderServerOptionDescriptions = exports.cardanoNodeDependantServices = exports.ServiceNames = exports.USE_QUEUE_DEFAULT = exports.USE_BLOCKFROST_DEFAULT = exports.PAGINATION_PAGE_SIZE_LIMIT_DEFAULT = exports.HTTP_SERVER_API_URL_DEFAULT = exports.DISABLE_STAKE_POOL_METRIC_APY_DEFAULT = exports.DISABLE_DB_CACHE_DEFAULT = void 0;
|
|
7
7
|
const Asset_1 = require("../../Asset");
|
|
8
8
|
const ChainHistory_1 = require("../../ChainHistory");
|
|
9
9
|
const options_1 = require("../options");
|
|
@@ -23,8 +23,11 @@ const bunyan_1 = require("bunyan");
|
|
|
23
23
|
const services_1 = require("../services");
|
|
24
24
|
const util_2 = require("@cardano-sdk/util");
|
|
25
25
|
const memoize_1 = __importDefault(require("lodash/memoize"));
|
|
26
|
+
exports.DISABLE_DB_CACHE_DEFAULT = false;
|
|
27
|
+
exports.DISABLE_STAKE_POOL_METRIC_APY_DEFAULT = false;
|
|
26
28
|
exports.HTTP_SERVER_API_URL_DEFAULT = new url_1.URL('http://localhost:3000');
|
|
27
29
|
exports.PAGINATION_PAGE_SIZE_LIMIT_DEFAULT = 25;
|
|
30
|
+
exports.USE_BLOCKFROST_DEFAULT = false;
|
|
28
31
|
exports.USE_QUEUE_DEFAULT = false;
|
|
29
32
|
var ServiceNames;
|
|
30
33
|
(function (ServiceNames) {
|
|
@@ -44,16 +47,19 @@ exports.cardanoNodeDependantServices = new Set([
|
|
|
44
47
|
ServiceNames.Asset,
|
|
45
48
|
ServiceNames.ChainHistory
|
|
46
49
|
]);
|
|
47
|
-
var
|
|
48
|
-
(function (
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
50
|
+
var ProviderServerOptionDescriptions;
|
|
51
|
+
(function (ProviderServerOptionDescriptions) {
|
|
52
|
+
ProviderServerOptionDescriptions["CardanoNodeConfigPath"] = "Cardano node config path";
|
|
53
|
+
ProviderServerOptionDescriptions["DbCacheTtl"] = "Cache TTL in seconds between 60 and 172800 (two days), an option for database related operations";
|
|
54
|
+
ProviderServerOptionDescriptions["DisableDbCache"] = "Disable DB cache";
|
|
55
|
+
ProviderServerOptionDescriptions["DisableStakePoolMetricApy"] = "Omit this metric for improved query performance";
|
|
56
|
+
ProviderServerOptionDescriptions["EpochPollInterval"] = "Epoch poll interval";
|
|
57
|
+
ProviderServerOptionDescriptions["TokenMetadataCacheTtl"] = "Token Metadata API cache TTL in minutes";
|
|
58
|
+
ProviderServerOptionDescriptions["TokenMetadataServerUrl"] = "Token Metadata API server URL";
|
|
59
|
+
ProviderServerOptionDescriptions["UseBlockfrost"] = "Enables Blockfrost cached data DB";
|
|
60
|
+
ProviderServerOptionDescriptions["UseQueue"] = "Enables RabbitMQ";
|
|
61
|
+
ProviderServerOptionDescriptions["PaginationPageSizeLimit"] = "Pagination page size limit shared across all providers";
|
|
62
|
+
})(ProviderServerOptionDescriptions = exports.ProviderServerOptionDescriptions || (exports.ProviderServerOptionDescriptions = {}));
|
|
57
63
|
const serviceMapFactory = (options) => {
|
|
58
64
|
const { args, dbConnection, dnsResolver, genesisData, logger, node } = options;
|
|
59
65
|
const withDbSyncProvider = (factory, serviceName) => () => {
|
|
@@ -66,6 +72,7 @@ const serviceMapFactory = (options) => {
|
|
|
66
72
|
throw new errors_1.MissingServiceDependency(serviceName, errors_1.RunnableDependencies.CardanoNode);
|
|
67
73
|
return factory(dbConnection, node);
|
|
68
74
|
};
|
|
75
|
+
const getCache = () => (args.disableDbCache ? new InMemoryCache_1.NoCache() : new InMemoryCache_1.InMemoryCache(args.dbCacheTtl));
|
|
69
76
|
const getEpochMonitor = (0, memoize_1.default)((dbPool) => new util_1.DbSyncEpochPollService(dbPool, args.epochPollInterval));
|
|
70
77
|
return {
|
|
71
78
|
[ServiceNames.Asset]: withDbSyncProvider(async (db, cardanoNode) => {
|
|
@@ -88,9 +95,13 @@ const serviceMapFactory = (options) => {
|
|
|
88
95
|
}, ServiceNames.Asset),
|
|
89
96
|
[ServiceNames.StakePool]: withDbSyncProvider(async (db, cardanoNode) => {
|
|
90
97
|
if (!genesisData)
|
|
91
|
-
throw new errors_1.MissingProgramOption(ServiceNames.StakePool,
|
|
92
|
-
const stakePoolProvider = new StakePool_1.DbSyncStakePoolProvider({
|
|
93
|
-
|
|
98
|
+
throw new errors_1.MissingProgramOption(ServiceNames.StakePool, ProviderServerOptionDescriptions.CardanoNodeConfigPath);
|
|
99
|
+
const stakePoolProvider = new StakePool_1.DbSyncStakePoolProvider({
|
|
100
|
+
paginationPageSizeLimit: args.paginationPageSizeLimit,
|
|
101
|
+
responseConfig: { search: { metrics: { apy: !args.disableStakePoolMetricApy } } },
|
|
102
|
+
useBlockfrost: args.useBlockfrost
|
|
103
|
+
}, {
|
|
104
|
+
cache: getCache(),
|
|
94
105
|
cardanoNode,
|
|
95
106
|
db,
|
|
96
107
|
epochMonitor: getEpochMonitor(db),
|
|
@@ -112,9 +123,9 @@ const serviceMapFactory = (options) => {
|
|
|
112
123
|
}, ServiceNames.Rewards),
|
|
113
124
|
[ServiceNames.NetworkInfo]: withDbSyncProvider(async (db, cardanoNode) => {
|
|
114
125
|
if (!genesisData)
|
|
115
|
-
throw new errors_1.MissingProgramOption(ServiceNames.NetworkInfo,
|
|
126
|
+
throw new errors_1.MissingProgramOption(ServiceNames.NetworkInfo, ProviderServerOptionDescriptions.CardanoNodeConfigPath);
|
|
116
127
|
const networkInfoProvider = new NetworkInfo_1.DbSyncNetworkInfoProvider({
|
|
117
|
-
cache:
|
|
128
|
+
cache: getCache(),
|
|
118
129
|
cardanoNode,
|
|
119
130
|
db,
|
|
120
131
|
epochMonitor: getEpochMonitor(db),
|
|
@@ -131,12 +142,12 @@ const serviceMapFactory = (options) => {
|
|
|
131
142
|
}
|
|
132
143
|
};
|
|
133
144
|
};
|
|
134
|
-
const
|
|
145
|
+
const loadProviderServer = async (args, deps = {}) => {
|
|
135
146
|
const services = [];
|
|
136
147
|
const logger = deps?.logger ||
|
|
137
148
|
(0, bunyan_1.createLogger)({
|
|
138
149
|
level: args.loggerMinSeverity,
|
|
139
|
-
name: '
|
|
150
|
+
name: 'provider-server'
|
|
140
151
|
});
|
|
141
152
|
const dnsResolver = deps?.dnsResolver ||
|
|
142
153
|
(0, utils_1.createDnsResolver)({
|
|
@@ -158,10 +169,7 @@ const loadHttpServer = async (args, deps = {}) => {
|
|
|
158
169
|
}
|
|
159
170
|
}
|
|
160
171
|
const config = {
|
|
161
|
-
listen:
|
|
162
|
-
host: args.apiUrl.hostname,
|
|
163
|
-
port: args.apiUrl ? Number.parseInt(args.apiUrl.port) : undefined
|
|
164
|
-
},
|
|
172
|
+
listen: (0, Http_1.getListen)(args.apiUrl),
|
|
165
173
|
meta: { ...args.buildInfo, startupTime: Date.now() }
|
|
166
174
|
};
|
|
167
175
|
if (args.enableMetrics) {
|
|
@@ -169,5 +177,5 @@ const loadHttpServer = async (args, deps = {}) => {
|
|
|
169
177
|
}
|
|
170
178
|
return new Http_1.HttpServer(config, { logger, runnableDependencies: [cardanoNode].filter(util_2.isNotNil), services });
|
|
171
179
|
};
|
|
172
|
-
exports.
|
|
173
|
-
//# sourceMappingURL=
|
|
180
|
+
exports.loadProviderServer = loadProviderServer;
|
|
181
|
+
//# sourceMappingURL=providerServer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"providerServer.js","sourceRoot":"","sources":["../../../../src/Program/programs/providerServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { BlockfrostServiceConfig, BlockfrostServiceDependencies } from '../../Blockfrost';
|
|
2
|
+
import { HttpServer } from '../../Http';
|
|
3
|
+
export declare type BlockfrostWorkerConfig = BlockfrostServiceConfig & {
|
|
4
|
+
apiUrl: URL;
|
|
5
|
+
createSchema: boolean;
|
|
6
|
+
dropSchema: boolean;
|
|
7
|
+
dryRun: boolean;
|
|
8
|
+
scanInterval: number;
|
|
9
|
+
};
|
|
10
|
+
export declare type BlockfrostWorkerDependencies = BlockfrostServiceDependencies;
|
|
11
|
+
export declare class BlockfrostWorker extends HttpServer {
|
|
12
|
+
#private;
|
|
13
|
+
constructor(cfg: BlockfrostWorkerConfig, deps: BlockfrostWorkerDependencies);
|
|
14
|
+
protected initializeImpl(): Promise<void>;
|
|
15
|
+
protected startImpl(): Promise<void>;
|
|
16
|
+
protected shutdownImpl(): Promise<void>;
|
|
17
|
+
private dryRun;
|
|
18
|
+
private main;
|
|
19
|
+
private run;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=blockfrost.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrost.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/blockfrost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,uBAAuB,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC7G,OAAO,EAAE,UAAU,EAAa,MAAM,YAAY,CAAC;AAGnD,oBAAY,sBAAsB,GAAG,uBAAuB,GAAG;IAC7D,MAAM,EAAE,GAAG,CAAC;IACZ,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAEF,oBAAY,4BAA4B,GAAG,6BAA6B,CAAC;AAqBzE,qBAAa,gBAAiB,SAAQ,UAAU;;gBASlC,GAAG,EAAE,sBAAsB,EAAE,IAAI,EAAE,4BAA4B;cAkB3D,cAAc;cAsBd,SAAS;cAMT,YAAY;IAM5B,OAAO,CAAC,MAAM;YAMA,IAAI;IAuBlB,OAAO,CAAC,GAAG;CAOZ"}
|
|
@@ -0,0 +1,117 @@
|
|
|
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 _BlockfrostWorker_blockfrostService, _BlockfrostWorker_createSchema, _BlockfrostWorker_db, _BlockfrostWorker_dropSchema, _BlockfrostWorker_dryRun, _BlockfrostWorker_scanInterval, _BlockfrostWorker_timeOut;
|
|
14
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
+
exports.BlockfrostWorker = void 0;
|
|
16
|
+
const Blockfrost_1 = require("../../Blockfrost");
|
|
17
|
+
const Http_1 = require("../../Http");
|
|
18
|
+
const schema = [
|
|
19
|
+
`
|
|
20
|
+
CREATE TABLE IF NOT EXISTS blockfrost.pool_metric (
|
|
21
|
+
pool_hash_id integer NOT NULL,
|
|
22
|
+
last_reward_epoch smallint NOT NULL,
|
|
23
|
+
cache_time double precision NOT NULL,
|
|
24
|
+
blocks_created integer NOT NULL,
|
|
25
|
+
delegators integer NOT NULL,
|
|
26
|
+
active_stake numeric NOT NULL,
|
|
27
|
+
live_stake numeric NOT NULL,
|
|
28
|
+
live_pledge numeric NOT NULL,
|
|
29
|
+
saturation double precision NOT NULL,
|
|
30
|
+
reward_address varchar NOT NULL,
|
|
31
|
+
extra varchar NOT NULL,
|
|
32
|
+
status varchar NOT NULL
|
|
33
|
+
)`,
|
|
34
|
+
'CREATE UNIQUE INDEX IF NOT EXISTS "blockfrost.pool_metric_id" ON blockfrost.pool_metric (pool_hash_id)'
|
|
35
|
+
];
|
|
36
|
+
class BlockfrostWorker extends Http_1.HttpServer {
|
|
37
|
+
constructor(cfg, deps) {
|
|
38
|
+
const { apiUrl, createSchema, dropSchema, dryRun, scanInterval } = cfg;
|
|
39
|
+
const { db, logger } = deps;
|
|
40
|
+
const blockfrostService = new Blockfrost_1.BlockfrostService(cfg, deps);
|
|
41
|
+
super({ listen: (0, Http_1.getListen)(apiUrl), name: 'blockfrost-worker' }, { logger, runnableDependencies: [], services: [blockfrostService] });
|
|
42
|
+
_BlockfrostWorker_blockfrostService.set(this, void 0);
|
|
43
|
+
_BlockfrostWorker_createSchema.set(this, void 0);
|
|
44
|
+
_BlockfrostWorker_db.set(this, void 0);
|
|
45
|
+
_BlockfrostWorker_dropSchema.set(this, void 0);
|
|
46
|
+
_BlockfrostWorker_dryRun.set(this, void 0);
|
|
47
|
+
_BlockfrostWorker_scanInterval.set(this, void 0);
|
|
48
|
+
_BlockfrostWorker_timeOut.set(this, void 0);
|
|
49
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_blockfrostService, blockfrostService, "f");
|
|
50
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_createSchema, createSchema, "f");
|
|
51
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_db, db, "f");
|
|
52
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_dropSchema, dropSchema, "f");
|
|
53
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_dryRun, dryRun, "f");
|
|
54
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_scanInterval, scanInterval, "f");
|
|
55
|
+
}
|
|
56
|
+
async initializeImpl() {
|
|
57
|
+
await super.initializeImpl();
|
|
58
|
+
if (!__classPrivateFieldGet(this, _BlockfrostWorker_dryRun, "f")) {
|
|
59
|
+
if (__classPrivateFieldGet(this, _BlockfrostWorker_dropSchema, "f")) {
|
|
60
|
+
this.logger.info('Going to drop the schema');
|
|
61
|
+
await __classPrivateFieldGet(this, _BlockfrostWorker_db, "f").query('DROP SCHEMA IF EXISTS blockfrost CASCADE');
|
|
62
|
+
this.logger.info('Schema dropped');
|
|
63
|
+
}
|
|
64
|
+
if (__classPrivateFieldGet(this, _BlockfrostWorker_createSchema, "f")) {
|
|
65
|
+
this.logger.info('Going to create the schema');
|
|
66
|
+
await __classPrivateFieldGet(this, _BlockfrostWorker_db, "f").query('CREATE SCHEMA IF NOT EXISTS blockfrost');
|
|
67
|
+
this.logger.info('Schema created');
|
|
68
|
+
}
|
|
69
|
+
this.logger.info('Going to create tables and indexes');
|
|
70
|
+
for (const obj of schema)
|
|
71
|
+
await __classPrivateFieldGet(this, _BlockfrostWorker_db, "f").query(obj);
|
|
72
|
+
this.logger.info('Tables and indexes created');
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
async startImpl() {
|
|
76
|
+
await super.startImpl();
|
|
77
|
+
this.run();
|
|
78
|
+
}
|
|
79
|
+
async shutdownImpl() {
|
|
80
|
+
if (__classPrivateFieldGet(this, _BlockfrostWorker_timeOut, "f"))
|
|
81
|
+
clearTimeout(__classPrivateFieldGet(this, _BlockfrostWorker_timeOut, "f"));
|
|
82
|
+
await super.shutdownImpl();
|
|
83
|
+
}
|
|
84
|
+
dryRun() {
|
|
85
|
+
this.logger.info('Dry run');
|
|
86
|
+
return new Promise((resolve) => setTimeout(resolve, 100));
|
|
87
|
+
}
|
|
88
|
+
async main() {
|
|
89
|
+
const start = Date.now();
|
|
90
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_timeOut, undefined, "f");
|
|
91
|
+
this.logger.info('Starting new run');
|
|
92
|
+
try {
|
|
93
|
+
await (__classPrivateFieldGet(this, _BlockfrostWorker_dryRun, "f") ? this.dryRun() : __classPrivateFieldGet(this, _BlockfrostWorker_blockfrostService, "f").refreshCache());
|
|
94
|
+
}
|
|
95
|
+
catch (error) {
|
|
96
|
+
this.logger.error('Process failed with', error);
|
|
97
|
+
}
|
|
98
|
+
const restart = __classPrivateFieldGet(this, _BlockfrostWorker_scanInterval, "f") * 60000 - (Date.now() - start);
|
|
99
|
+
if (restart <= 0) {
|
|
100
|
+
this.logger.info('Restarting immediately due to scanInterval expired in previous run');
|
|
101
|
+
this.run();
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
this.logger.info(`Sleeping for ${restart} milliseconds to start next run`);
|
|
105
|
+
__classPrivateFieldSet(this, _BlockfrostWorker_timeOut, setTimeout(() => this.run(), restart), "f");
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
run() {
|
|
109
|
+
this.main().catch((error) => {
|
|
110
|
+
this.logger.error('Error while run', error);
|
|
111
|
+
process.exit(1);
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.BlockfrostWorker = BlockfrostWorker;
|
|
116
|
+
_BlockfrostWorker_blockfrostService = new WeakMap(), _BlockfrostWorker_createSchema = new WeakMap(), _BlockfrostWorker_db = new WeakMap(), _BlockfrostWorker_dropSchema = new WeakMap(), _BlockfrostWorker_dryRun = new WeakMap(), _BlockfrostWorker_scanInterval = new WeakMap(), _BlockfrostWorker_timeOut = new WeakMap();
|
|
117
|
+
//# sourceMappingURL=blockfrost.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockfrost.js","sourceRoot":"","sources":["../../../../src/Program/services/blockfrost.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC"}
|
|
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
14
14
|
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./blockfrost"), exports);
|
|
17
18
|
__exportStar(require("./postgres"), exports);
|
|
18
19
|
__exportStar(require("./ogmios"), exports);
|
|
19
20
|
__exportStar(require("./rabbitmq"), exports);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Program/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/Program/services/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,6CAA2B;AAC3B,2CAAyB;AACzB,6CAA2B"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { ClientConfig, Pool } from 'pg';
|
|
2
2
|
import { DnsResolver } from '../utils';
|
|
3
|
-
import { HttpServerArgs } from '../programs';
|
|
4
3
|
import { Logger } from 'ts-log';
|
|
5
4
|
import { PosgresProgramOptions } from '../options';
|
|
6
5
|
export declare const getPoolWithServiceDiscovery: (dnsResolver: DnsResolver, logger: Logger, { host, database, password, ssl, user }: ClientConfig) => Promise<Pool>;
|
|
7
6
|
export declare const loadSecret: (path: string) => string;
|
|
8
7
|
export declare const getPool: (dnsResolver: DnsResolver, logger: Logger, options?: PosgresProgramOptions) => Promise<Pool | undefined>;
|
|
9
|
-
export declare const connectionStringFromArgs: (args:
|
|
8
|
+
export declare const connectionStringFromArgs: (args: PosgresProgramOptions) => string | undefined;
|
|
10
9
|
//# sourceMappingURL=postgres.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"postgres.d.ts","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAenD,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,qBAAqB,KAC9B,QAAQ,IAAI,GAAG,SAAS,CAc1B,CAAC;AAKF,eAAO,MAAM,wBAAwB,SAAU,qBAAqB,uBAcnE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":";;;;;;AAIA,2BAAqD;
|
|
1
|
+
{"version":3,"file":"postgres.js","sourceRoot":"","sources":["../../../../src/Program/services/postgres.ts"],"names":[],"mappings":"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"}
|