@cardano-sdk/cardano-services 0.5.0-nightly.0 → 0.5.0-nightly.11
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/ChainHistory/ChainHistoryHttpService.d.ts +1 -1
- package/dist/cjs/ChainHistory/ChainHistoryHttpService.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/ChainHistoryHttpService.js +1 -2
- package/dist/cjs/ChainHistory/ChainHistoryHttpService.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js +1 -2
- package/dist/cjs/ChainHistory/DbSyncChainHistory/ChainHistoryBuilder.js.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.d.ts.map +1 -1
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js +1 -2
- package/dist/cjs/ChainHistory/DbSyncChainHistory/DbSyncChainHistoryProvider.js.map +1 -1
- package/dist/cjs/Http/HttpServer.d.ts +2 -16
- package/dist/cjs/Http/HttpServer.d.ts.map +1 -1
- package/dist/cjs/Http/HttpServer.js +27 -2
- package/dist/cjs/Http/HttpServer.js.map +1 -1
- package/dist/cjs/Http/HttpService.d.ts +1 -1
- package/dist/cjs/Http/HttpService.d.ts.map +1 -1
- package/dist/cjs/Http/HttpService.js +1 -2
- package/dist/cjs/Http/HttpService.js.map +1 -1
- package/dist/cjs/Http/index.d.ts +1 -0
- package/dist/cjs/Http/index.d.ts.map +1 -1
- package/dist/cjs/Http/index.js +1 -0
- package/dist/cjs/Http/index.js.map +1 -1
- package/dist/cjs/Http/types.d.ts +24 -0
- package/dist/cjs/Http/types.d.ts.map +1 -0
- package/dist/cjs/Http/types.js +3 -0
- package/dist/cjs/Http/types.js.map +1 -0
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/DbSyncNetworkInfoProvider.d.ts +7 -5
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/DbSyncNetworkInfoProvider.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/DbSyncNetworkInfoProvider.js +26 -21
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/DbSyncNetworkInfoProvider.js.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/NetworkInfoBuilder.d.ts +1 -2
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/NetworkInfoBuilder.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/NetworkInfoBuilder.js +1 -7
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/NetworkInfoBuilder.js.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/index.d.ts +0 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/index.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/index.js +0 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/index.js.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/keys.d.ts +0 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/keys.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/keys.js +1 -2
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/keys.js.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/mappers.d.ts +1 -7
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/mappers.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/mappers.js +1 -13
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/mappers.js.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/queries.d.ts +0 -2
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/queries.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/queries.js +1 -19
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/queries.js.map +1 -1
- package/dist/cjs/NetworkInfo/NetworkInfoHttpService.d.ts +1 -1
- package/dist/cjs/NetworkInfo/NetworkInfoHttpService.d.ts.map +1 -1
- package/dist/cjs/NetworkInfo/NetworkInfoHttpService.js +2 -3
- package/dist/cjs/NetworkInfo/NetworkInfoHttpService.js.map +1 -1
- package/dist/cjs/NetworkInfo/openApi.json +40 -24
- package/dist/cjs/Program/ProgramOptionDescriptions.d.ts +2 -0
- package/dist/cjs/Program/ProgramOptionDescriptions.d.ts.map +1 -1
- package/dist/cjs/Program/ProgramOptionDescriptions.js +1 -0
- package/dist/cjs/Program/ProgramOptionDescriptions.js.map +1 -1
- 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 +1 -0
- package/dist/cjs/Program/loadHttpServer.d.ts.map +1 -1
- package/dist/cjs/Program/loadHttpServer.js +30 -13
- 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 +52 -0
- package/dist/cjs/Program/services/rabbitmq.js.map +1 -0
- package/dist/cjs/Program/utils.d.ts +0 -12
- package/dist/cjs/Program/utils.d.ts.map +1 -1
- package/dist/cjs/Program/utils.js +1 -144
- package/dist/cjs/Program/utils.js.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/DbSyncRewards.d.ts +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/DbSyncRewards.d.ts.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/DbSyncRewards.js +1 -2
- package/dist/cjs/Rewards/DbSyncRewardProvider/DbSyncRewards.js.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/RewardsBuilder.d.ts +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/RewardsBuilder.d.ts.map +1 -1
- package/dist/cjs/Rewards/DbSyncRewardProvider/RewardsBuilder.js +1 -2
- package/dist/cjs/Rewards/DbSyncRewardProvider/RewardsBuilder.js.map +1 -1
- package/dist/cjs/Rewards/RewardsHttpService.d.ts +1 -1
- package/dist/cjs/Rewards/RewardsHttpService.d.ts.map +1 -1
- package/dist/cjs/Rewards/RewardsHttpService.js +1 -2
- package/dist/cjs/Rewards/RewardsHttpService.js.map +1 -1
- package/dist/cjs/RunnableModule.d.ts +1 -1
- package/dist/cjs/RunnableModule.d.ts.map +1 -1
- package/dist/cjs/RunnableModule.js +3 -4
- package/dist/cjs/RunnableModule.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.d.ts +15 -2
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.js +60 -24
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js +9 -7
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.js.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts +3 -3
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.js +51 -39
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/mappers.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/StakePool/DbSyncStakePoolProvider/types.d.ts +13 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/types.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts +24 -0
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.d.ts.map +1 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js +27 -1
- package/dist/cjs/StakePool/DbSyncStakePoolProvider/util.js.map +1 -1
- package/dist/cjs/StakePool/StakePoolHttpService.d.ts +1 -1
- package/dist/cjs/StakePool/StakePoolHttpService.d.ts.map +1 -1
- package/dist/cjs/StakePool/StakePoolHttpService.js +1 -2
- package/dist/cjs/StakePool/StakePoolHttpService.js.map +1 -1
- package/dist/cjs/TxSubmit/TxSubmitHttpService.d.ts +1 -1
- package/dist/cjs/TxSubmit/TxSubmitHttpService.d.ts.map +1 -1
- package/dist/cjs/TxSubmit/TxSubmitHttpService.js +1 -2
- package/dist/cjs/TxSubmit/TxSubmitHttpService.js.map +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/DbSyncUtxoProvider.d.ts +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/DbSyncUtxoProvider.d.ts.map +1 -1
- package/dist/cjs/Utxo/DbSyncUtxoProvider/DbSyncUtxoProvider.js +1 -2
- package/dist/cjs/Utxo/DbSyncUtxoProvider/DbSyncUtxoProvider.js.map +1 -1
- 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 +1 -2
- package/dist/cjs/Utxo/DbSyncUtxoProvider/UtxoBuilder.js.map +1 -1
- package/dist/cjs/Utxo/UtxoHttpService.d.ts +1 -1
- package/dist/cjs/Utxo/UtxoHttpService.d.ts.map +1 -1
- package/dist/cjs/Utxo/UtxoHttpService.js +1 -2
- package/dist/cjs/Utxo/UtxoHttpService.js.map +1 -1
- package/dist/cjs/cli.js +7 -7
- package/dist/cjs/cli.js.map +1 -1
- package/dist/cjs/original-package.json +10 -9
- package/dist/cjs/run.js +10 -8
- package/dist/cjs/run.js.map +1 -1
- package/dist/cjs/startWorker.js +1 -1
- package/dist/cjs/startWorker.js.map +1 -1
- 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/dist/cjs/util/index.d.ts +1 -1
- package/dist/cjs/util/index.d.ts.map +1 -1
- package/dist/cjs/util/index.js +1 -1
- package/dist/cjs/util/index.js.map +1 -1
- package/dist/cjs/util/polling/DbSyncEpochPollService.d.ts +10 -0
- package/dist/cjs/util/polling/DbSyncEpochPollService.d.ts.map +1 -0
- package/dist/cjs/util/polling/DbSyncEpochPollService.js +67 -0
- package/dist/cjs/util/polling/DbSyncEpochPollService.js.map +1 -0
- package/dist/cjs/util/polling/index.d.ts +4 -0
- package/dist/cjs/util/polling/index.d.ts.map +1 -0
- package/dist/cjs/util/polling/index.js +20 -0
- package/dist/cjs/util/polling/index.js.map +1 -0
- package/dist/cjs/util/polling/queries.d.ts +2 -0
- package/dist/cjs/util/polling/queries.d.ts.map +1 -0
- package/dist/cjs/util/polling/queries.js +10 -0
- package/dist/cjs/util/polling/queries.js.map +1 -0
- package/dist/cjs/util/polling/types.d.ts +5 -0
- package/dist/cjs/util/polling/types.d.ts.map +1 -0
- package/dist/cjs/util/polling/types.js +3 -0
- package/dist/cjs/util/polling/types.js.map +1 -0
- package/package.json +10 -9
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/utils.d.ts +0 -5
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/utils.d.ts.map +0 -1
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/utils.js +0 -29
- package/dist/cjs/NetworkInfo/DbSyncNetworkInfoProvider/utils.js.map +0 -1
- package/dist/cjs/util/logging.d.ts +0 -4
- package/dist/cjs/util/logging.d.ts.map +0 -1
- package/dist/cjs/util/logging.js +0 -18
- package/dist/cjs/util/logging.js.map +0 -1
|
@@ -3,15 +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.
|
|
7
|
-
const pg_1 = require("pg");
|
|
8
|
-
const ProgramsCommon_1 = require("../ProgramsCommon");
|
|
9
|
-
const errors_1 = require("./errors");
|
|
10
|
-
const ogmios_1 = require("@cardano-sdk/ogmios");
|
|
11
|
-
const ProgramOptionDescriptions_1 = require("./ProgramOptionDescriptions");
|
|
12
|
-
const core_1 = require("@cardano-sdk/core");
|
|
13
|
-
const rabbitmq_1 = require("@cardano-sdk/rabbitmq");
|
|
14
|
-
const ServiceNames_1 = require("./ServiceNames");
|
|
6
|
+
exports.srvRecordToRabbitmqURL = exports.createDnsResolver = exports.resolveSrvRecord = exports.onFailedAttemptFor = exports.DNS_SRV_CACHE_KEY = exports.SERVICE_DISCOVERY_TIMEOUT_DEFAULT = exports.SERVICE_DISCOVERY_BACKOFF_FACTOR_DEFAULT = void 0;
|
|
15
7
|
const dns_1 = __importDefault(require("dns"));
|
|
16
8
|
const p_retry_1 = __importDefault(require("p-retry"));
|
|
17
9
|
exports.SERVICE_DISCOVERY_BACKOFF_FACTOR_DEFAULT = 1.1;
|
|
@@ -38,141 +30,6 @@ const createDnsResolver = (config, logger) => async (serviceName) => await (0, p
|
|
|
38
30
|
onFailedAttempt: (0, exports.onFailedAttemptFor)(serviceName, logger)
|
|
39
31
|
});
|
|
40
32
|
exports.createDnsResolver = createDnsResolver;
|
|
41
|
-
const getPoolWithServiceDiscovery = async (dnsResolver, logger, { host, database, password, user }) => {
|
|
42
|
-
const { name, port } = await dnsResolver(host);
|
|
43
|
-
let pool = new pg_1.Pool({ database, host: name, password, port, user });
|
|
44
|
-
return new Proxy({}, {
|
|
45
|
-
get(_, prop) {
|
|
46
|
-
if (prop === 'then')
|
|
47
|
-
return;
|
|
48
|
-
if (prop === 'query') {
|
|
49
|
-
return (args, values) => pool.query(args, values).catch(async (error) => {
|
|
50
|
-
if (error.code && ['ENOTFOUND', 'ECONNREFUSED', 'ECONNRESET'].includes(error.code)) {
|
|
51
|
-
const record = await dnsResolver(host);
|
|
52
|
-
logger.info(`DNS resolution for Postgres service, resolved with record: ${JSON.stringify(record)}`);
|
|
53
|
-
pool = new pg_1.Pool({ database, host: record.name, password, port: record.port, user });
|
|
54
|
-
return await pool.query(args, values);
|
|
55
|
-
}
|
|
56
|
-
throw error;
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
if (typeof pool[prop] === 'function') {
|
|
60
|
-
const method = pool[prop];
|
|
61
|
-
return method.bind(pool);
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
};
|
|
66
|
-
exports.getPoolWithServiceDiscovery = getPoolWithServiceDiscovery;
|
|
67
|
-
const getPool = async (dnsResolver, logger, options) => {
|
|
68
|
-
if (options?.postgresConnectionString && options.postgresSrvServiceName)
|
|
69
|
-
throw new errors_1.InvalidArgsCombination(ProgramOptionDescriptions_1.ProgramOptionDescriptions.PostgresConnectionString, ProgramOptionDescriptions_1.ProgramOptionDescriptions.PostgresServiceDiscoveryArgs);
|
|
70
|
-
if (options?.postgresConnectionString)
|
|
71
|
-
return new pg_1.Pool({ connectionString: options.postgresConnectionString });
|
|
72
|
-
if (options?.postgresSrvServiceName && options.postgresUser && options.postgresDb && options.postgresPassword) {
|
|
73
|
-
return (0, exports.getPoolWithServiceDiscovery)(dnsResolver, logger, {
|
|
74
|
-
database: options.postgresDb,
|
|
75
|
-
host: options.postgresSrvServiceName,
|
|
76
|
-
password: options.postgresPassword,
|
|
77
|
-
user: options.postgresUser
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
return undefined;
|
|
81
|
-
};
|
|
82
|
-
exports.getPool = getPool;
|
|
83
|
-
const isOgmiosConnectionError = (error) => {
|
|
84
|
-
if ((error?.innerError?.code && ['ENOTFOUND', 'ECONNREFUSED', 'ECONNRESET'].includes(error.innerError.code)) ||
|
|
85
|
-
error instanceof ogmios_1.Ogmios.WebSocketClosed) {
|
|
86
|
-
return true;
|
|
87
|
-
}
|
|
88
|
-
return false;
|
|
89
|
-
};
|
|
90
|
-
exports.isOgmiosConnectionError = isOgmiosConnectionError;
|
|
91
|
-
const ogmiosTxSubmitProviderWithDiscovery = async (dnsResolver, logger, serviceName) => {
|
|
92
|
-
const { name, port } = await dnsResolver(serviceName);
|
|
93
|
-
let ogmiosProvider = (0, ogmios_1.ogmiosTxSubmitProvider)({ host: name, port });
|
|
94
|
-
return new Proxy({}, {
|
|
95
|
-
get(_, prop) {
|
|
96
|
-
if (prop === 'then')
|
|
97
|
-
return;
|
|
98
|
-
if (prop === 'submitTx') {
|
|
99
|
-
return (args) => ogmiosProvider.submitTx(args).catch(async (error) => {
|
|
100
|
-
if ((0, exports.isOgmiosConnectionError)(error)) {
|
|
101
|
-
const record = await dnsResolver(serviceName);
|
|
102
|
-
logger.info(`DNS resolution for Ogmios service, resolved with record: ${JSON.stringify(record)}`);
|
|
103
|
-
await ogmiosProvider
|
|
104
|
-
.close?.()
|
|
105
|
-
.catch((error_) => logger.warn(`Ogmios provider failed to close after DNS resolution: ${error_}`));
|
|
106
|
-
ogmiosProvider = (0, ogmios_1.ogmiosTxSubmitProvider)({ host: record.name, port: record.port });
|
|
107
|
-
return await ogmiosProvider.submitTx(args);
|
|
108
|
-
}
|
|
109
|
-
throw error;
|
|
110
|
-
});
|
|
111
|
-
}
|
|
112
|
-
if (typeof ogmiosProvider[prop] === 'function') {
|
|
113
|
-
const method = ogmiosProvider[prop];
|
|
114
|
-
return method.bind(ogmiosProvider);
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
});
|
|
118
|
-
};
|
|
119
|
-
exports.ogmiosTxSubmitProviderWithDiscovery = ogmiosTxSubmitProviderWithDiscovery;
|
|
120
|
-
const getOgmiosTxSubmitProvider = async (dnsResolver, logger, options) => {
|
|
121
|
-
if (options?.ogmiosSrvServiceName)
|
|
122
|
-
return (0, exports.ogmiosTxSubmitProviderWithDiscovery)(dnsResolver, logger, options.ogmiosSrvServiceName);
|
|
123
|
-
if (options?.ogmiosUrl)
|
|
124
|
-
return (0, ogmios_1.ogmiosTxSubmitProvider)((0, ogmios_1.urlToConnectionConfig)(options?.ogmiosUrl));
|
|
125
|
-
throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.TxSubmit, [
|
|
126
|
-
ProgramsCommon_1.CommonOptionDescriptions.OgmiosUrl,
|
|
127
|
-
ProgramsCommon_1.CommonOptionDescriptions.OgmiosSrvServiceName
|
|
128
|
-
]);
|
|
129
|
-
};
|
|
130
|
-
exports.getOgmiosTxSubmitProvider = getOgmiosTxSubmitProvider;
|
|
131
33
|
const srvRecordToRabbitmqURL = ({ name, port }) => new URL(`amqp://${name}:${port}`);
|
|
132
34
|
exports.srvRecordToRabbitmqURL = srvRecordToRabbitmqURL;
|
|
133
|
-
const rabbitMqTxSubmitProviderWithDiscovery = async (dnsResolver, logger, serviceName) => {
|
|
134
|
-
const record = await dnsResolver(serviceName);
|
|
135
|
-
let rabbitmqProvider = new rabbitmq_1.RabbitMqTxSubmitProvider({
|
|
136
|
-
rabbitmqUrl: (0, exports.srvRecordToRabbitmqURL)(record)
|
|
137
|
-
});
|
|
138
|
-
return new Proxy({}, {
|
|
139
|
-
get(_, prop) {
|
|
140
|
-
if (prop === 'then')
|
|
141
|
-
return;
|
|
142
|
-
if (prop === 'submitTx') {
|
|
143
|
-
return (args) => rabbitmqProvider.submitTx(args).catch(async (error) => {
|
|
144
|
-
if (error.innerError?.reason === core_1.ProviderFailure.ConnectionFailure ||
|
|
145
|
-
(0, exports.isOgmiosConnectionError)(error.innerError)) {
|
|
146
|
-
const resolvedRecord = await dnsResolver(serviceName);
|
|
147
|
-
logger.info(`DNS resolution for RabbitMQ service, resolved with record: ${JSON.stringify(record)}`);
|
|
148
|
-
await rabbitmqProvider
|
|
149
|
-
.close?.()
|
|
150
|
-
.catch((error_) => logger.warn(`RabbitMQ provider failed to close after DNS resolution: ${error_}`));
|
|
151
|
-
rabbitmqProvider = new rabbitmq_1.RabbitMqTxSubmitProvider({
|
|
152
|
-
rabbitmqUrl: (0, exports.srvRecordToRabbitmqURL)(resolvedRecord)
|
|
153
|
-
});
|
|
154
|
-
return await rabbitmqProvider.submitTx(args);
|
|
155
|
-
}
|
|
156
|
-
throw error;
|
|
157
|
-
});
|
|
158
|
-
}
|
|
159
|
-
if (typeof rabbitmqProvider[prop] === 'function') {
|
|
160
|
-
const method = rabbitmqProvider[prop];
|
|
161
|
-
return method.bind(rabbitmqProvider);
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
});
|
|
165
|
-
};
|
|
166
|
-
exports.rabbitMqTxSubmitProviderWithDiscovery = rabbitMqTxSubmitProviderWithDiscovery;
|
|
167
|
-
const getRabbitMqTxSubmitProvider = async (dnsResolver, logger, options) => {
|
|
168
|
-
if (options?.rabbitmqSrvServiceName)
|
|
169
|
-
return (0, exports.rabbitMqTxSubmitProviderWithDiscovery)(dnsResolver, logger, options.rabbitmqSrvServiceName);
|
|
170
|
-
if (options?.rabbitmqUrl)
|
|
171
|
-
return new rabbitmq_1.RabbitMqTxSubmitProvider({ rabbitmqUrl: options.rabbitmqUrl });
|
|
172
|
-
throw new errors_1.MissingProgramOption(ServiceNames_1.ServiceNames.TxSubmit, [
|
|
173
|
-
ProgramsCommon_1.CommonOptionDescriptions.RabbitMQUrl,
|
|
174
|
-
ProgramsCommon_1.CommonOptionDescriptions.RabbitMQSrvServiceName
|
|
175
|
-
]);
|
|
176
|
-
};
|
|
177
|
-
exports.getRabbitMqTxSubmitProvider = getRabbitMqTxSubmitProvider;
|
|
178
35
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/Program/utils.ts"],"names":[],"mappings":";;;;;;AAGA,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/Program/utils.ts"],"names":[],"mappings":";;;;;;AAGA,8CAAqC;AACrC,sDAAqD;AAExC,QAAA,wCAAwC,GAAG,GAAG,CAAC;AAC/C,QAAA,iCAAiC,GAAG,EAAE,GAAG,IAAI,CAAC;AAC9C,QAAA,iBAAiB,GAAG,gBAAgB,CAAC;AAO3C,MAAM,kBAAkB,GAC7B,CAAC,WAAmB,EAAE,MAAc,EAAE,EAAE,CACxC,KAAK,EAAE,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAsB,EAAE,EAAE;IACpE,MAAM,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/D,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACtB,MAAM,CAAC,KAAK,CACV,8BAA8B,WAAW,aAAa,aAAa,OACjE,aAAa,GAAG,WAClB,KAAK,UAAU,EAAE,CAClB,CAAC;IACF,IAAI,WAAW,KAAK,CAAC,EAAE;QACrB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAEtB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC;KACtC;AACH,CAAC,CAAC;AAfS,QAAA,kBAAkB,sBAe3B;AAGG,MAAM,gBAAgB,GAAG,KAAK,EAAE,WAAmB,EAAsB,EAAE;IAChF,MAAM,CAAC,SAAS,CAAC,GAAG,MAAM,aAAG,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IAC/D,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAHW,QAAA,gBAAgB,oBAG3B;AAEK,MAAM,iBAAiB,GAAG,CAAC,MAA0B,EAAE,MAAc,EAAE,EAAE,CAAC,KAAK,EAAE,WAAmB,EAAE,EAAE,CAC7G,MAAM,IAAA,iBAAM,EAAC,KAAK,IAAI,EAAE,CAAC,MAAM,IAAA,wBAAgB,EAAC,WAAW,CAAC,EAAE;IAC5D,MAAM,EAAE,MAAM,CAAC,MAAM;IACrB,YAAY,EAAE,MAAM,CAAC,YAAY;IACjC,eAAe,EAAE,IAAA,0BAAkB,EAAC,WAAW,EAAE,MAAM,CAAC;CACzD,CAAC,CAAC;AALQ,QAAA,iBAAiB,qBAKzB;AAIE,MAAM,sBAAsB,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAa,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;AAA1F,QAAA,sBAAsB,0BAAoE"}
|
|
@@ -4,7 +4,7 @@ import { Logger } from 'ts-log';
|
|
|
4
4
|
import { Pool } from 'pg';
|
|
5
5
|
export declare class DbSyncRewardsProvider extends DbSyncProvider implements RewardsProvider {
|
|
6
6
|
#private;
|
|
7
|
-
constructor(db: Pool, logger
|
|
7
|
+
constructor(db: Pool, logger: Logger);
|
|
8
8
|
rewardsHistory(props: RewardHistoryProps): Promise<Map<Cardano.RewardAccount, import("@cardano-sdk/core").EpochRewards[]>>;
|
|
9
9
|
rewardAccountBalance(rewardAccount: Cardano.RewardAccount): Promise<bigint>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSyncRewards.d.ts","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/DbSyncRewards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"DbSyncRewards.d.ts","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/DbSyncRewards.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAI1B,qBAAa,qBAAsB,SAAQ,cAAe,YAAW,eAAe;;gBAItE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAMvB,cAAc,CAAC,KAAK,EAAE,kBAAkB;IAKxC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa;CAKvE"}
|
|
@@ -14,11 +14,10 @@ var _DbSyncRewardsProvider_builder, _DbSyncRewardsProvider_logger;
|
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DbSyncRewardsProvider = void 0;
|
|
16
16
|
const DbSyncProvider_1 = require("../../DbSyncProvider");
|
|
17
|
-
const ts_log_1 = require("ts-log");
|
|
18
17
|
const RewardsBuilder_1 = require("./RewardsBuilder");
|
|
19
18
|
const mappers_1 = require("./mappers");
|
|
20
19
|
class DbSyncRewardsProvider extends DbSyncProvider_1.DbSyncProvider {
|
|
21
|
-
constructor(db, logger
|
|
20
|
+
constructor(db, logger) {
|
|
22
21
|
super(db);
|
|
23
22
|
_DbSyncRewardsProvider_builder.set(this, void 0);
|
|
24
23
|
_DbSyncRewardsProvider_logger.set(this, void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSyncRewards.js","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/DbSyncRewards.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yDAAsD;
|
|
1
|
+
{"version":3,"file":"DbSyncRewards.js","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/DbSyncRewards.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,yDAAsD;AAGtD,qDAAkD;AAClD,uCAA0C;AAE1C,MAAa,qBAAsB,SAAQ,+BAAc;IAIvD,YAAY,EAAQ,EAAE,MAAc;QAClC,KAAK,CAAC,EAAE,CAAC,CAAC;QAJZ,iDAAyB;QACzB,gDAAgB;QAId,uBAAA,IAAI,kCAAY,IAAI,+BAAc,CAAC,EAAE,EAAE,MAAM,CAAC,MAAA,CAAC;QAC/C,uBAAA,IAAI,iCAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IAEM,KAAK,CAAC,cAAc,CAAC,KAAyB;QACnD,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC;QACzC,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,sCAAS,CAAC,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;QAC9E,OAAO,IAAA,uBAAa,EAAC,OAAO,CAAC,CAAC;IAChC,CAAC;IACM,KAAK,CAAC,oBAAoB,CAAC,aAAoC;QACpE,uBAAA,IAAI,qCAAQ,CAAC,KAAK,CAAC,0CAA0C,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;QACzF,MAAM,OAAO,GAAG,MAAM,uBAAA,IAAI,sCAAS,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,OAAO,EAAE,OAAO,IAAI,GAAG,CAAC,CAAC;IACzC,CAAC;CACF;AApBD,sDAoBC"}
|
|
@@ -4,7 +4,7 @@ import { Logger } from 'ts-log';
|
|
|
4
4
|
import { Pool } from 'pg';
|
|
5
5
|
export declare class RewardsBuilder {
|
|
6
6
|
#private;
|
|
7
|
-
constructor(db: Pool, logger
|
|
7
|
+
constructor(db: Pool, logger: Logger);
|
|
8
8
|
getAccountBalance(rewardAccount: Cardano.RewardAccount): Promise<AccountBalanceModel | undefined>;
|
|
9
9
|
getRewardsHistory(rewardAccounts: Cardano.RewardAccount[], epochs?: EpochRange): Promise<RewardEpochModel[]>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsBuilder.d.ts","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/RewardsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RewardsBuilder.d.ts","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/RewardsBuilder.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AAGvC,qBAAa,cAAc;;gBAGb,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAIvB,iBAAiB,CAAC,aAAa,EAAE,OAAO,CAAC,aAAa;IAOtD,iBAAiB,CAAC,cAAc,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,MAAM,CAAC,EAAE,UAAU;CAS5F"}
|
|
@@ -13,10 +13,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
13
13
|
var _RewardsBuilder_db, _RewardsBuilder_logger;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.RewardsBuilder = void 0;
|
|
16
|
-
const ts_log_1 = require("ts-log");
|
|
17
16
|
const queries_1 = require("./queries");
|
|
18
17
|
class RewardsBuilder {
|
|
19
|
-
constructor(db, logger
|
|
18
|
+
constructor(db, logger) {
|
|
20
19
|
_RewardsBuilder_db.set(this, void 0);
|
|
21
20
|
_RewardsBuilder_logger.set(this, void 0);
|
|
22
21
|
__classPrivateFieldSet(this, _RewardsBuilder_db, db, "f");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsBuilder.js","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/RewardsBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"RewardsBuilder.js","sourceRoot":"","sources":["../../../../src/Rewards/DbSyncRewardProvider/RewardsBuilder.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAIA,uCAAmE;AAEnE,MAAa,cAAc;IAGzB,YAAY,EAAQ,EAAE,MAAc;QAFpC,qCAAU;QACV,yCAAgB;QAEd,uBAAA,IAAI,sBAAO,EAAE,MAAA,CAAC;QACd,uBAAA,IAAI,0BAAW,MAAM,MAAA,CAAC;IACxB,CAAC;IACM,KAAK,CAAC,iBAAiB,CAAC,aAAoC;QACjE,uBAAA,IAAI,8BAAQ,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAqC,MAAM,uBAAA,IAAI,0BAAI,CAAC,KAAK,CAAC,4BAAkB,EAAE;YACxF,aAAa,CAAC,QAAQ,EAAE;SACzB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,CAAC;IACM,KAAK,CAAC,iBAAiB,CAAC,cAAuC,EAAE,MAAmB;QACzF,MAAM,MAAM,GAA0B,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAChG,uBAAA,IAAI,8BAAQ,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAC5D,MAAM,MAAM,GAAkC,MAAM,uBAAA,IAAI,0BAAI,CAAC,KAAK,CAChE,IAAA,4BAAkB,EAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,CAAC,EAC1D,MAAM,CACP,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IACnD,CAAC;CACF;AAvBD,wCAuBC"}
|
|
@@ -3,7 +3,7 @@ import { Logger } from 'ts-log';
|
|
|
3
3
|
import { RewardsProvider } from '@cardano-sdk/core';
|
|
4
4
|
import express from 'express';
|
|
5
5
|
export interface RewardServiceDependencies {
|
|
6
|
-
logger
|
|
6
|
+
logger: Logger;
|
|
7
7
|
rewardsProvider: RewardsProvider;
|
|
8
8
|
}
|
|
9
9
|
export declare class RewardsHttpService extends HttpService {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsHttpService.d.ts","sourceRoot":"","sources":["../../../src/Rewards/RewardsHttpService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"RewardsHttpService.d.ts","sourceRoot":"","sources":["../../../src/Rewards/RewardsHttpService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,OAAO,MAAM,SAAS,CAAC;AAG9B,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,eAAe,CAAC;CAClC;AAED,qBAAa,kBAAmB,SAAQ,WAAW;gBACrC,EAAE,MAAM,EAAE,eAAe,EAAE,EAAE,yBAAyB,EAAE,MAAM,GAAE,OAAO,CAAC,MAAyB;CAwB9G"}
|
|
@@ -29,13 +29,12 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
29
29
|
exports.RewardsHttpService = void 0;
|
|
30
30
|
const OpenApiValidator = __importStar(require("express-openapi-validator"));
|
|
31
31
|
const Http_1 = require("../Http");
|
|
32
|
-
const ts_log_1 = require("ts-log");
|
|
33
32
|
const Program_1 = require("../Program");
|
|
34
33
|
const util_1 = require("../util");
|
|
35
34
|
const express_1 = __importDefault(require("express"));
|
|
36
35
|
const path_1 = __importDefault(require("path"));
|
|
37
36
|
class RewardsHttpService extends Http_1.HttpService {
|
|
38
|
-
constructor({ logger
|
|
37
|
+
constructor({ logger, rewardsProvider }, router = express_1.default.Router()) {
|
|
39
38
|
super(Program_1.ServiceNames.Rewards, rewardsProvider, router, logger);
|
|
40
39
|
const apiSpec = path_1.default.join(__dirname, 'openApi.json');
|
|
41
40
|
router.use(OpenApiValidator.middleware({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RewardsHttpService.js","sourceRoot":"","sources":["../../../src/Rewards/RewardsHttpService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AAC9D,kCAAsC;
|
|
1
|
+
{"version":3,"file":"RewardsHttpService.js","sourceRoot":"","sources":["../../../src/Rewards/RewardsHttpService.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4EAA8D;AAC9D,kCAAsC;AAGtC,wCAA0C;AAC1C,kCAA0C;AAC1C,sDAA8B;AAC9B,gDAAwB;AAOxB,MAAa,kBAAmB,SAAQ,kBAAW;IACjD,YAAY,EAAE,MAAM,EAAE,eAAe,EAA6B,EAAE,SAAyB,iBAAO,CAAC,MAAM,EAAE;QAC3G,KAAK,CAAC,sBAAY,CAAC,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAE7D,MAAM,OAAO,GAAG,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,MAAM,CAAC,GAAG,CACR,gBAAgB,CAAC,UAAU,CAAC;YAC1B,OAAO;YACP,kBAAkB,EAAE,IAAI;YACxB,gBAAgB,EAAE,IAAI;YACtB,iBAAiB,EAAE,IAAI;SACxB,CAAC,CACH,CAAC;QACF,MAAM,CAAC,IAAI,CACT,kBAAkB,EAClB,IAAA,sBAAe,EAAC,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CACzE,kBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAChC,MAAM,CACP,CACF,CAAC;QACF,MAAM,CAAC,IAAI,CACT,UAAU,EACV,IAAA,sBAAe,EAAC,eAAe,CAAC,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,kBAAW,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAChH,CAAC;IACJ,CAAC;CACF;AAzBD,gDAyBC"}
|
|
@@ -8,7 +8,7 @@ export declare abstract class RunnableModule {
|
|
|
8
8
|
protected abstract shutdownImpl(): Promise<void>;
|
|
9
9
|
logger: Logger;
|
|
10
10
|
name: string;
|
|
11
|
-
protected constructor(name: string, logger
|
|
11
|
+
protected constructor(name: string, logger: Logger);
|
|
12
12
|
initialize(): Promise<void>;
|
|
13
13
|
start(): Promise<void>;
|
|
14
14
|
shutdown(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnableModule.d.ts","sourceRoot":"","sources":["../../src/RunnableModule.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RunnableModule.d.ts","sourceRoot":"","sources":["../../src/RunnableModule.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEtC,oBAAY,mBAAmB,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC;AAEpF,8BAAsB,cAAc;IAC3B,KAAK,EAAE,mBAAmB,CAAC;IAClC,SAAS,CAAC,QAAQ,CAAC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAClD,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAC7C,SAAS,CAAC,QAAQ,CAAC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAChD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IAEb,SAAS,aAAa,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAM5C,UAAU;IAMV,KAAK;IAML,QAAQ;IAMd,gBAAgB;IAQhB,eAAe;IAQf,WAAW;IAQX,UAAU;IAQV,cAAc;IAQd,aAAa;CAOd"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.RunnableModule = void 0;
|
|
4
|
+
const util_1 = require("@cardano-sdk/util");
|
|
4
5
|
const errors_1 = require("./errors");
|
|
5
|
-
const ts_log_1 = require("ts-log");
|
|
6
|
-
const util_1 = require("./util");
|
|
7
6
|
class RunnableModule {
|
|
8
|
-
constructor(name, logger
|
|
7
|
+
constructor(name, logger) {
|
|
9
8
|
this.state = null;
|
|
10
|
-
this.logger = (0, util_1.
|
|
9
|
+
this.logger = (0, util_1.contextLogger)(logger, name);
|
|
11
10
|
this.name = name;
|
|
12
11
|
}
|
|
13
12
|
async initialize() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RunnableModule.js","sourceRoot":"","sources":["../../src/RunnableModule.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"RunnableModule.js","sourceRoot":"","sources":["../../src/RunnableModule.ts"],"names":[],"mappings":";;;AAAA,4CAAkD;AAElD,qCAA8C;AAM9C,MAAsB,cAAc;IAQlC,YAAsB,IAAY,EAAE,MAAc;QAChD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;QAClB,IAAI,CAAC,MAAM,GAAG,IAAA,oBAAa,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACxB,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;QAC5B,IAAI,CAAC,eAAe,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;QACvB,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,cAAc,EAAE,CAAC;QACtB,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED,gBAAgB;QACd,IAAI,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE;YACvB,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;SACxF;QACD,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;QAC5B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IACtC,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,KAAK,KAAK,cAAc,EAAE;YACjC,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,cAAc,CAAC,CAAC;SACjG;QACD,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAClC,CAAC;IAED,WAAW;QACT,IAAI,IAAI,CAAC,KAAK,KAAK,aAAa,EAAE;YAChC,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,aAAa,CAAC,CAAC;SACtF;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACR,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;YAC7B,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;SACnF;QACD,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAC9B,CAAC;IAED,cAAc;QACZ,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;YAC5B,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;SACrF;QACD,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,aAAa;QACX,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE;YAC7B,MAAM,IAAI,2BAAkB,CAAsB,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,UAAU,CAAC,CAAC;SACtF;QACD,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3C,CAAC;CACF;AA/ED,wCA+EC"}
|
|
@@ -1,12 +1,25 @@
|
|
|
1
|
+
import { StakePoolProvider, StakePoolQueryOptions, StakePoolSearchResults, StakePoolStats } from '@cardano-sdk/core';
|
|
1
2
|
import { DbSyncProvider } from '../../DbSyncProvider';
|
|
3
|
+
import { EpochMonitor } from '../../util/polling/types';
|
|
4
|
+
import { InMemoryCache } from '../../InMemoryCache';
|
|
2
5
|
import { Logger } from 'ts-log';
|
|
3
6
|
import { Pool } from 'pg';
|
|
4
|
-
|
|
7
|
+
export interface StakePoolProviderDependencies {
|
|
8
|
+
db: Pool;
|
|
9
|
+
logger: Logger;
|
|
10
|
+
cache: InMemoryCache;
|
|
11
|
+
epochMonitor: EpochMonitor;
|
|
12
|
+
}
|
|
5
13
|
export declare class DbSyncStakePoolProvider extends DbSyncProvider implements StakePoolProvider {
|
|
6
14
|
#private;
|
|
7
|
-
constructor(db
|
|
15
|
+
constructor({ db, cache, logger, epochMonitor }: StakePoolProviderDependencies);
|
|
8
16
|
private getQueryBySortType;
|
|
17
|
+
private getPoolsDataOrdered;
|
|
18
|
+
private cacheStakePools;
|
|
19
|
+
private queryExtraPoolsData;
|
|
9
20
|
queryStakePools(options?: StakePoolQueryOptions): Promise<StakePoolSearchResults>;
|
|
10
21
|
stakePoolStats(): Promise<StakePoolStats>;
|
|
22
|
+
start(): Promise<void>;
|
|
23
|
+
close(): Promise<void>;
|
|
11
24
|
}
|
|
12
25
|
//# sourceMappingURL=DbSyncStakePool.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSyncStakePool.d.ts","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DbSyncStakePool.d.ts","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EACjB,qBAAqB,EACrB,sBAAsB,EACtB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAY,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,EAAE,aAAa,EAAuB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAK1B,MAAM,WAAW,6BAA6B;IAC5C,EAAE,EAAE,IAAI,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,EAAE,YAAY,CAAC;CAC5B;AAED,qBAAa,uBAAwB,SAAQ,cAAe,YAAW,iBAAiB;;gBAO1E,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,6BAA6B;IAQ9E,OAAO,CAAC,kBAAkB;YAmBZ,mBAAmB;IAyCjC,OAAO,CAAC,eAAe;YAKT,mBAAmB;IA0BpB,eAAe,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAkFjF,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;IAKhD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAItB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAI7B"}
|
|
@@ -10,22 +10,27 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
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
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
-
var _DbSyncStakePoolProvider_builder, _DbSyncStakePoolProvider_logger;
|
|
13
|
+
var _DbSyncStakePoolProvider_builder, _DbSyncStakePoolProvider_logger, _DbSyncStakePoolProvider_cache, _DbSyncStakePoolProvider_epochMonitor, _DbSyncStakePoolProvider_epochRolloverDisposer;
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
15
|
exports.DbSyncStakePoolProvider = void 0;
|
|
16
16
|
const DbSyncProvider_1 = require("../../DbSyncProvider");
|
|
17
|
-
const ts_log_1 = require("ts-log");
|
|
18
|
-
const StakePoolBuilder_1 = require("./StakePoolBuilder");
|
|
19
17
|
const util_1 = require("./util");
|
|
18
|
+
const InMemoryCache_1 = require("../../InMemoryCache");
|
|
19
|
+
const StakePoolBuilder_1 = require("./StakePoolBuilder");
|
|
20
20
|
const util_2 = require("@cardano-sdk/util");
|
|
21
21
|
const mappers_1 = require("./mappers");
|
|
22
22
|
class DbSyncStakePoolProvider extends DbSyncProvider_1.DbSyncProvider {
|
|
23
|
-
constructor(db, logger
|
|
23
|
+
constructor({ db, cache, logger, epochMonitor }) {
|
|
24
24
|
super(db);
|
|
25
25
|
_DbSyncStakePoolProvider_builder.set(this, void 0);
|
|
26
26
|
_DbSyncStakePoolProvider_logger.set(this, void 0);
|
|
27
|
-
|
|
27
|
+
_DbSyncStakePoolProvider_cache.set(this, void 0);
|
|
28
|
+
_DbSyncStakePoolProvider_epochMonitor.set(this, void 0);
|
|
29
|
+
_DbSyncStakePoolProvider_epochRolloverDisposer.set(this, void 0);
|
|
28
30
|
__classPrivateFieldSet(this, _DbSyncStakePoolProvider_logger, logger, "f");
|
|
31
|
+
__classPrivateFieldSet(this, _DbSyncStakePoolProvider_cache, cache, "f");
|
|
32
|
+
__classPrivateFieldSet(this, _DbSyncStakePoolProvider_epochMonitor, epochMonitor, "f");
|
|
33
|
+
__classPrivateFieldSet(this, _DbSyncStakePoolProvider_builder, new StakePoolBuilder_1.StakePoolBuilder(db, logger), "f");
|
|
29
34
|
}
|
|
30
35
|
getQueryBySortType(sortType, queryArgs) {
|
|
31
36
|
const { hashesIds, updatesIds, totalAdaAmount } = queryArgs;
|
|
@@ -39,17 +44,10 @@ class DbSyncStakePoolProvider extends DbSyncProvider_1.DbSyncProvider {
|
|
|
39
44
|
return (options) => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolData(updatesIds, options);
|
|
40
45
|
}
|
|
41
46
|
}
|
|
42
|
-
async
|
|
43
|
-
const { params, query } = options?.filters?._condition === 'or'
|
|
44
|
-
? __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").buildOrQuery(options?.filters)
|
|
45
|
-
: __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").buildAndQuery(options?.filters);
|
|
46
|
-
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_logger, "f").debug('About to query pool hashes');
|
|
47
|
-
const poolUpdates = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolHashes(query, params);
|
|
47
|
+
async getPoolsDataOrdered(poolUpdates, totalAdaAmount, options) {
|
|
48
48
|
const hashesIds = poolUpdates.map(({ id }) => id);
|
|
49
49
|
const updatesIds = poolUpdates.map(({ updateId }) => updateId);
|
|
50
50
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_logger, "f").debug(`${hashesIds.length} pools found`);
|
|
51
|
-
const totalAdaAmount = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").getTotalAmountOfAda();
|
|
52
|
-
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_logger, "f").debug('About to query stake pools by sort options');
|
|
53
51
|
const sortType = options?.sort?.field ? (0, util_1.getStakePoolSortType)(options.sort.field) : 'data';
|
|
54
52
|
const orderedResult = await this.getQueryBySortType(sortType, { hashesIds, totalAdaAmount, updatesIds })(options);
|
|
55
53
|
const orderedResultHashIds = orderedResult.map(({ hashId }) => hashId);
|
|
@@ -74,23 +72,52 @@ class DbSyncStakePoolProvider extends DbSyncProvider_1.DbSyncProvider {
|
|
|
74
72
|
else {
|
|
75
73
|
poolDatas = orderedResult;
|
|
76
74
|
}
|
|
75
|
+
return { hashesIds, orderedResult, orderedResultHashIds, orderedResultUpdateIds, poolDatas, sortType };
|
|
76
|
+
}
|
|
77
|
+
cacheStakePools(itemsToCache) {
|
|
78
|
+
for (const [hashId, pool] of Object.entries(itemsToCache))
|
|
79
|
+
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").set(`${util_1.IDS_NAMESPACE}/${hashId}`, pool, InMemoryCache_1.UNLIMITED_CACHE_TTL);
|
|
80
|
+
}
|
|
81
|
+
async queryExtraPoolsData(idsToFetch, sortType, totalAdaAmount, orderedResult) {
|
|
82
|
+
if (idsToFetch.length === 0)
|
|
83
|
+
return util_1.emptyPoolsExtraInfo;
|
|
77
84
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_logger, "f").debug('About to query stake pool extra information');
|
|
78
|
-
const
|
|
85
|
+
const orderedResultHashIds = idsToFetch.map(({ id }) => id);
|
|
86
|
+
const orderedResultUpdateIds = idsToFetch.map(({ updateId }) => updateId);
|
|
87
|
+
const [poolRelays, poolOwners, poolRegistrations, poolRetirements, poolMetrics] = await Promise.all([
|
|
79
88
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolRelays(orderedResultUpdateIds),
|
|
80
89
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolOwners(orderedResultUpdateIds),
|
|
81
90
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryRegistrations(orderedResultHashIds),
|
|
82
91
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryRetirements(orderedResultHashIds),
|
|
83
|
-
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolRewards(orderedResultHashIds, options?.rewardsHistoryLimit),
|
|
84
92
|
sortType === 'metrics'
|
|
85
93
|
? orderedResult
|
|
86
|
-
: __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolMetrics(orderedResultHashIds, totalAdaAmount)
|
|
87
|
-
sortType === 'apy'
|
|
88
|
-
? orderedResult
|
|
89
|
-
: __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolAPY(hashesIds, { rewardsHistoryLimit: options?.rewardsHistoryLimit }),
|
|
90
|
-
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryTotalCount(query, params),
|
|
91
|
-
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").getLastEpoch()
|
|
94
|
+
: __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolMetrics(orderedResultHashIds, totalAdaAmount)
|
|
92
95
|
]);
|
|
93
|
-
return
|
|
96
|
+
return { poolMetrics, poolOwners, poolRegistrations, poolRelays, poolRetirements };
|
|
97
|
+
}
|
|
98
|
+
async queryStakePools(options) {
|
|
99
|
+
const { params, query } = options?.filters?._condition === 'or'
|
|
100
|
+
? __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").buildOrQuery(options?.filters)
|
|
101
|
+
: __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").buildAndQuery(options?.filters);
|
|
102
|
+
const poolUpdates = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.POOL_HASHES, options), () => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolHashes(query, params));
|
|
103
|
+
const totalAdaAmount = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.TOTAL_ADA_AMOUNT), () => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").getTotalAmountOfAda());
|
|
104
|
+
const totalCount = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryTotalCount(query, params);
|
|
105
|
+
const lastEpoch = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").getLastEpoch();
|
|
106
|
+
const { orderedResultHashIds, orderedResultUpdateIds, orderedResult, poolDatas, hashesIds, sortType } = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.POOLS_DATA_ORDERED, options), () => this.getPoolsDataOrdered(poolUpdates, totalAdaAmount, options));
|
|
107
|
+
const poolAPYs = sortType === 'apy'
|
|
108
|
+
? orderedResult
|
|
109
|
+
: await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.APY, hashesIds, options), () => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolAPY(hashesIds, { rewardsHistoryLimit: options?.rewardsHistoryLimit }));
|
|
110
|
+
const poolRewards = await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.REWARDS, orderedResultHashIds, options), () => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolRewards(orderedResultHashIds, options?.rewardsHistoryLimit), InMemoryCache_1.UNLIMITED_CACHE_TTL);
|
|
111
|
+
const hashIdsMap = Object.fromEntries(orderedResultHashIds.map((hashId, idx) => [hashId, orderedResultUpdateIds[idx]]));
|
|
112
|
+
const fromCache = Object.fromEntries(orderedResultHashIds.map((hashId) => [
|
|
113
|
+
hashId,
|
|
114
|
+
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").getVal(`${util_1.IDS_NAMESPACE}/${hashId}`)
|
|
115
|
+
]));
|
|
116
|
+
const idsToFetch = Object.entries(fromCache)
|
|
117
|
+
.filter(([_, pool]) => pool === undefined)
|
|
118
|
+
.map(([hashId, _]) => ({ id: Number(hashId), updateId: hashIdsMap[hashId] }));
|
|
119
|
+
const { poolRelays, poolOwners, poolRegistrations, poolRetirements, poolMetrics } = await this.queryExtraPoolsData(idsToFetch, sortType, totalAdaAmount, orderedResult);
|
|
120
|
+
const { results, poolsToCache } = (0, mappers_1.toStakePoolResults)(orderedResultHashIds, fromCache, {
|
|
94
121
|
lastEpoch,
|
|
95
122
|
poolAPYs,
|
|
96
123
|
poolDatas,
|
|
@@ -102,12 +129,21 @@ class DbSyncStakePoolProvider extends DbSyncProvider_1.DbSyncProvider {
|
|
|
102
129
|
poolRewards: poolRewards.filter(util_2.isNotNil),
|
|
103
130
|
totalCount
|
|
104
131
|
});
|
|
132
|
+
this.cacheStakePools(poolsToCache);
|
|
133
|
+
return results;
|
|
105
134
|
}
|
|
106
135
|
async stakePoolStats() {
|
|
107
136
|
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_logger, "f").debug('About to query pool stats');
|
|
108
|
-
return __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolStats();
|
|
137
|
+
return await __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").get((0, util_1.queryCacheKey)(util_1.StakePoolsSubQuery.STATS), () => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_builder, "f").queryPoolStats());
|
|
138
|
+
}
|
|
139
|
+
async start() {
|
|
140
|
+
__classPrivateFieldSet(this, _DbSyncStakePoolProvider_epochRolloverDisposer, __classPrivateFieldGet(this, _DbSyncStakePoolProvider_epochMonitor, "f").onEpochRollover(() => __classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").clear()), "f");
|
|
141
|
+
}
|
|
142
|
+
async close() {
|
|
143
|
+
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_cache, "f").shutdown();
|
|
144
|
+
__classPrivateFieldGet(this, _DbSyncStakePoolProvider_epochRolloverDisposer, "f").call(this);
|
|
109
145
|
}
|
|
110
146
|
}
|
|
111
147
|
exports.DbSyncStakePoolProvider = DbSyncStakePoolProvider;
|
|
112
|
-
_DbSyncStakePoolProvider_builder = new WeakMap(), _DbSyncStakePoolProvider_logger = new WeakMap();
|
|
148
|
+
_DbSyncStakePoolProvider_builder = new WeakMap(), _DbSyncStakePoolProvider_logger = new WeakMap(), _DbSyncStakePoolProvider_cache = new WeakMap(), _DbSyncStakePoolProvider_epochMonitor = new WeakMap(), _DbSyncStakePoolProvider_epochRolloverDisposer = new WeakMap();
|
|
113
149
|
//# sourceMappingURL=DbSyncStakePool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DbSyncStakePool.js","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"DbSyncStakePool.js","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/DbSyncStakePool.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { Logger } from 'ts-log';
|
|
|
4
4
|
import { Pool } from 'pg';
|
|
5
5
|
export declare class StakePoolBuilder {
|
|
6
6
|
#private;
|
|
7
|
-
constructor(db: Pool, logger
|
|
7
|
+
constructor(db: Pool, logger: Logger);
|
|
8
8
|
queryRetirements(hashesIds: number[]): Promise<import("./types").PoolRetirement[]>;
|
|
9
9
|
queryRegistrations(hashesIds: number[]): Promise<import("./types").PoolRegistration[]>;
|
|
10
10
|
queryPoolRelays(updatesIds: number[]): Promise<import("./types").PoolRelay[]>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StakePoolBuilder.d.ts","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,0BAA0B,EAG1B,qBAAqB,EACrB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,OAAO,EASP,QAAQ,EAGT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"StakePoolBuilder.d.ts","sourceRoot":"","sources":["../../../../src/StakePool/DbSyncStakePoolProvider/StakePoolBuilder.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EACP,0BAA0B,EAG1B,qBAAqB,EACrB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAKL,OAAO,EASP,QAAQ,EAGT,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAe,MAAM,IAAI,CAAC;AA2BvC,qBAAa,gBAAgB;;gBAGf,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM;IAKvB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE;IAMpC,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE;IAQtC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE;IAMpC,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE;IAMpC,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM;IAYpD,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAWtF,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAenE,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,GAAE,GAAG,EAAO;IAMjD,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,qBAAqB;IAanG,2BAA2B,CAChC,UAAU,EAAE,0BAA0B,CACpC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC,CACjG;;;;;;;;IAaI,uBAAuB,CAAC,MAAM,EAAE,OAAO,CAAC,eAAe,EAAE;;;;;;;IASzD,0BAA0B,CAAC,SAAS,EAAE,OAAO;IAYvC,YAAY;IAMZ,mBAAmB;IAMzB,YAAY,CAAC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC;;;;IA0BtD,aAAa,CAAC,OAAO,EAAE,qBAAqB,CAAC,SAAS,CAAC;;;;IAyDjD,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,EAAE;IAM7C,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC;CAOvD"}
|