@chainlink/external-adapter-framework 0.0.45 → 0.0.55
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/adapter.d.ts +18 -1
- package/adapter.js +70 -3
- package/adapter.js.map +1 -0
- package/background-executor.js +32 -0
- package/background-executor.js.map +1 -0
- package/cache/factory.d.ts +2 -2
- package/cache/factory.js +12 -46
- package/cache/factory.js.map +1 -0
- package/cache/index.js +4 -2
- package/cache/index.js.map +1 -0
- package/cache/local.js +1 -0
- package/cache/local.js.map +1 -0
- package/cache/metrics.js +1 -0
- package/cache/metrics.js.map +1 -0
- package/cache/redis.js +1 -0
- package/cache/redis.js.map +1 -0
- package/config/index.d.ts +34 -0
- package/config/index.js +41 -62
- package/config/index.js.map +1 -0
- package/config/provider-limits.js +1 -0
- package/config/provider-limits.js.map +1 -0
- package/examples/bank-frick/accounts.d.ts +15 -1
- package/examples/bank-frick/accounts.js +1 -0
- package/examples/bank-frick/accounts.js.map +1 -0
- package/examples/bank-frick/config/index.d.ts +15 -2
- package/examples/bank-frick/config/index.js +1 -0
- package/examples/bank-frick/config/index.js.map +1 -0
- package/examples/bank-frick/index.d.ts +15 -1
- package/examples/bank-frick/index.js +1 -0
- package/examples/bank-frick/index.js.map +1 -0
- package/examples/bank-frick/util.js +1 -0
- package/examples/bank-frick/util.js.map +1 -0
- package/examples/coingecko/batch-warming.d.ts +7 -0
- package/examples/coingecko/batch-warming.js +54 -0
- package/examples/coingecko/batch-warming.js.map +1 -0
- package/examples/coingecko/index.d.ts +2 -0
- package/examples/coingecko/index.js +12 -0
- package/examples/coingecko/index.js.map +1 -0
- package/examples/coingecko/rest.d.ts +12 -0
- package/examples/coingecko/rest.js +55 -0
- package/examples/coingecko/rest.js.map +1 -0
- package/examples/coingecko/src/config/index.js +1 -0
- package/examples/coingecko/src/config/index.js.map +1 -0
- package/examples/coingecko/src/crypto-utils.d.ts +31 -0
- package/examples/coingecko/src/crypto-utils.js +61 -0
- package/examples/coingecko/src/crypto-utils.js.map +1 -0
- package/examples/coingecko/src/endpoint/coins.js +4 -1
- package/examples/coingecko/src/endpoint/coins.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +1 -1
- package/examples/coingecko/src/endpoint/crypto-marketcap.js +5 -4
- package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto-volume.d.ts +1 -1
- package/examples/coingecko/src/endpoint/crypto-volume.js +5 -4
- package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto.d.ts +1 -1
- package/examples/coingecko/src/endpoint/crypto.js +5 -4
- package/examples/coingecko/src/endpoint/crypto.js.map +1 -0
- package/examples/coingecko/src/endpoint/dominance.d.ts +1 -1
- package/examples/coingecko/src/endpoint/dominance.js +5 -4
- package/examples/coingecko/src/endpoint/dominance.js.map +1 -0
- package/examples/coingecko/src/endpoint/global-marketcap.d.ts +1 -1
- package/examples/coingecko/src/endpoint/global-marketcap.js +5 -4
- package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -0
- package/examples/coingecko/src/endpoint/index.js +1 -0
- package/examples/coingecko/src/endpoint/index.js.map +1 -0
- package/examples/coingecko/src/global-utils.d.ts +27 -0
- package/examples/coingecko/src/global-utils.js +47 -0
- package/examples/coingecko/src/global-utils.js.map +1 -0
- package/examples/coingecko/src/index.d.ts +1 -1
- package/examples/coingecko/src/index.js +1 -0
- package/examples/coingecko/src/index.js.map +1 -0
- package/examples/coingecko-old/batch-warming.js +1 -0
- package/examples/coingecko-old/batch-warming.js.map +1 -0
- package/examples/coingecko-old/index.js +1 -0
- package/examples/coingecko-old/index.js.map +1 -0
- package/examples/coingecko-old/rest.js +5 -1
- package/examples/coingecko-old/rest.js.map +1 -0
- package/examples/genesis/config/index.d.ts +7 -0
- package/examples/genesis/config/index.js +11 -0
- package/examples/genesis/config/index.js.map +1 -0
- package/examples/genesis/index.d.ts +2 -0
- package/examples/genesis/index.js +13 -0
- package/examples/genesis/index.js.map +1 -0
- package/examples/genesis/sseStream.d.ts +16 -0
- package/examples/genesis/sseStream.js +142 -0
- package/examples/genesis/sseStream.js.map +1 -0
- package/examples/ncfx/config/index.js +1 -0
- package/examples/ncfx/config/index.js.map +1 -0
- package/examples/ncfx/index.js +1 -0
- package/examples/ncfx/index.js.map +1 -0
- package/examples/ncfx/websocket.js +1 -0
- package/examples/ncfx/websocket.js.map +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -0
- package/metrics/constants.js +1 -0
- package/metrics/constants.js.map +1 -0
- package/metrics/index.d.ts +2 -0
- package/metrics/index.js +13 -1
- package/metrics/index.js.map +1 -0
- package/metrics/util.js +1 -0
- package/metrics/util.js.map +1 -0
- package/package.json +6 -3
- package/rate-limiting/background/fixed-frequency.js +1 -3
- package/rate-limiting/background/fixed-frequency.js.map +1 -0
- package/rate-limiting/index.d.ts +1 -0
- package/rate-limiting/index.js +4 -2
- package/rate-limiting/index.js.map +1 -0
- package/rate-limiting/metrics.js +1 -0
- package/rate-limiting/metrics.js.map +1 -0
- package/rate-limiting/request/simple-counting.js +1 -0
- package/rate-limiting/request/simple-counting.js.map +1 -0
- package/transports/batch-warming.d.ts +2 -2
- package/transports/batch-warming.js +14 -6
- package/transports/batch-warming.js.map +1 -0
- package/transports/index.d.ts +2 -1
- package/transports/index.js +24 -0
- package/transports/index.js.map +1 -0
- package/transports/metrics.d.ts +3 -0
- package/transports/metrics.js +18 -1
- package/transports/metrics.js.map +1 -0
- package/transports/rest.d.ts +8 -2
- package/transports/rest.js +14 -13
- package/transports/rest.js.map +1 -0
- package/transports/sse.d.ts +41 -0
- package/transports/sse.js +96 -0
- package/transports/sse.js.map +1 -0
- package/transports/util.js +1 -0
- package/transports/util.js.map +1 -0
- package/transports/websocket.d.ts +2 -2
- package/transports/websocket.js +13 -11
- package/transports/websocket.js.map +1 -0
- package/util/censor/censor-list.d.ts +9 -0
- package/util/censor/censor-list.js +13 -0
- package/util/censor/censor-list.js.map +1 -0
- package/util/index.d.ts +1 -0
- package/util/index.js +4 -1
- package/util/index.js.map +1 -0
- package/util/logger.d.ts +3 -0
- package/util/logger.js +21 -1
- package/util/logger.js.map +1 -0
- package/util/request.d.ts +52 -6
- package/util/request.js +1 -0
- package/util/request.js.map +1 -0
- package/util/subscription-set/expiring-sorted-set.d.ts +0 -1
- package/util/subscription-set/expiring-sorted-set.js +1 -12
- package/util/subscription-set/expiring-sorted-set.js.map +1 -0
- package/util/subscription-set/redis-sorted-set.d.ts +9 -0
- package/util/subscription-set/redis-sorted-set.js +29 -0
- package/util/subscription-set/redis-sorted-set.js.map +1 -0
- package/util/subscription-set/subscription-set.d.ts +5 -4
- package/util/subscription-set/subscription-set.js +14 -5
- package/util/subscription-set/subscription-set.js.map +1 -0
- package/util/test-payload-loader.js +1 -0
- package/util/test-payload-loader.js.map +1 -0
- package/validation/error.js +1 -0
- package/validation/error.js.map +1 -0
- package/validation/index.js +9 -9
- package/validation/index.js.map +1 -0
- package/validation/input-params.d.ts +1 -1
- package/validation/input-params.js +1 -0
- package/validation/input-params.js.map +1 -0
- package/validation/input-validator.d.ts +16 -0
- package/validation/input-validator.js +124 -0
- package/validation/input-validator.js.map +1 -0
- package/validation/override-functions.js +1 -0
- package/validation/override-functions.js.map +1 -0
|
@@ -3,15 +3,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.endpoint = void 0;
|
|
4
4
|
const adapter_1 = require("../../../../adapter");
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
-
const
|
|
6
|
+
const global_utils_1 = require("../global-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
8
|
prepareRequest: (params, context) => {
|
|
9
|
-
return (0,
|
|
9
|
+
return (0, global_utils_1.buildGlobalRequestBody)(context.adapterConfig.API_KEY);
|
|
10
10
|
},
|
|
11
11
|
parseResponse: (params, res) => {
|
|
12
12
|
const entries = [];
|
|
13
13
|
for (const requestPayload of params) {
|
|
14
|
-
const entry = (0,
|
|
14
|
+
const entry = (0, global_utils_1.constructEntry)(res, requestPayload, 'total_market_cap');
|
|
15
15
|
if (entry) {
|
|
16
16
|
entries.push(entry);
|
|
17
17
|
}
|
|
@@ -23,5 +23,6 @@ exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
|
23
23
|
name: 'globalmarketcap',
|
|
24
24
|
aliases: ['total_market_cap'],
|
|
25
25
|
transport: batchEndpointTransport,
|
|
26
|
-
inputParameters:
|
|
26
|
+
inputParameters: global_utils_1.inputParameters,
|
|
27
27
|
});
|
|
28
|
+
//# sourceMappingURL=global-marketcap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-marketcap.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/global-marketcap.ts"],"names":[],"mappings":";;;AACA,iDAAqE;AACrE,wEAA4E;AAE5E,kDAMwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA8B,EAC9B,OAAuB,EACI,EAAE;QAC7B,OAAO,IAAA,qCAAsB,EAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9D,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAwC,EACA,EAAE;QAC1C,MAAM,OAAO,GAAG,EAA4C,CAAA;QAC5D,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAAC,GAAG,EAAE,cAAc,EAAE,kBAAkB,CAAC,CAAA;YACrE,IAAI,KAAK,EAAE;gBACT,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACpB;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAC,CAAA;AAEW,QAAA,QAAQ,GAAG,IAAI,yBAAe,CAAC;IAC1C,IAAI,EAAE,iBAAiB;IACvB,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAf,8BAAe;CAChB,CAAC,CAAA"}
|
|
@@ -13,3 +13,4 @@ var dominance_1 = require("./dominance");
|
|
|
13
13
|
Object.defineProperty(exports, "dominance", { enumerable: true, get: function () { return dominance_1.endpoint; } });
|
|
14
14
|
var crypto_volume_1 = require("./crypto-volume");
|
|
15
15
|
Object.defineProperty(exports, "cryptoVolume", { enumerable: true, get: function () { return crypto_volume_1.endpoint; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/index.ts"],"names":[],"mappings":";;;AAAA,iCAA2C;AAAlC,8FAAA,QAAQ,OAAS;AAC1B,mCAA6C;AAApC,gGAAA,QAAQ,OAAU;AAC3B,uDAAgE;AAAvD,mHAAA,QAAQ,OAAmB;AACpC,uDAAgE;AAAvD,mHAAA,QAAQ,OAAmB;AACpC,yCAAmD;AAA1C,sGAAA,QAAQ,OAAa;AAC9B,iDAA0D;AAAjD,6GAAA,QAAQ,OAAgB"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
import { InputParameters } from '../../../validation';
|
|
3
|
+
export declare const inputParameters: InputParameters;
|
|
4
|
+
export interface AdapterRequestParams {
|
|
5
|
+
market: string;
|
|
6
|
+
}
|
|
7
|
+
export interface ProviderResponseBody {
|
|
8
|
+
data: {
|
|
9
|
+
active_cryptocurrencies: number;
|
|
10
|
+
upcoming_icos: number;
|
|
11
|
+
ongoing_icos: number;
|
|
12
|
+
ended_icos: number;
|
|
13
|
+
markets: number;
|
|
14
|
+
total_market_cap: Record<string, number>;
|
|
15
|
+
total_volume: Record<string, number>;
|
|
16
|
+
market_cap_percentage: Record<string, number>;
|
|
17
|
+
market_cap_change_percentage_24h_usd: number;
|
|
18
|
+
updated_at: number;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
interface ResultEntry {
|
|
22
|
+
value: number;
|
|
23
|
+
params: AdapterRequestParams;
|
|
24
|
+
}
|
|
25
|
+
export declare const buildGlobalRequestBody: (apiKey?: string | undefined) => AxiosRequestConfig<never>;
|
|
26
|
+
export declare const constructEntry: (res: AxiosResponse<ProviderResponseBody>, requestPayload: AdapterRequestParams, resultPath: 'total_market_cap' | 'market_cap_percentage') => ResultEntry | undefined;
|
|
27
|
+
export {};
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructEntry = exports.buildGlobalRequestBody = exports.inputParameters = void 0;
|
|
4
|
+
const config_1 = require("./config");
|
|
5
|
+
const logger_1 = require("../../../util/logger");
|
|
6
|
+
const logger = (0, logger_1.makeLogger)('CoinGecko Global Batched');
|
|
7
|
+
exports.inputParameters = {
|
|
8
|
+
market: {
|
|
9
|
+
aliases: ['to', 'quote'],
|
|
10
|
+
description: 'The ticker of the coin to query',
|
|
11
|
+
required: true,
|
|
12
|
+
},
|
|
13
|
+
};
|
|
14
|
+
const buildGlobalRequestBody = (apiKey) => {
|
|
15
|
+
return {
|
|
16
|
+
baseURL: apiKey ? config_1.PRO_API_ENDPOINT : config_1.DEFAULT_API_ENDPOINT,
|
|
17
|
+
url: '/global',
|
|
18
|
+
method: 'GET',
|
|
19
|
+
params: {
|
|
20
|
+
x_cg_pro_api_key: apiKey,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
exports.buildGlobalRequestBody = buildGlobalRequestBody;
|
|
25
|
+
const constructEntry = (res, requestPayload, resultPath) => {
|
|
26
|
+
const resultData = res.data.data;
|
|
27
|
+
if (!resultData) {
|
|
28
|
+
logger.warn(`Data not found`);
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const totalMarketcapData = resultData[resultPath];
|
|
32
|
+
if (!totalMarketcapData) {
|
|
33
|
+
logger.warn(`Data for "${resultPath}" not found`);
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const result = totalMarketcapData[requestPayload.market.toLowerCase()];
|
|
37
|
+
if (!result) {
|
|
38
|
+
logger.warn(`Data for "${requestPayload.market}" not found`);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
return {
|
|
42
|
+
params: requestPayload,
|
|
43
|
+
value: result,
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
exports.constructEntry = constructEntry;
|
|
47
|
+
//# sourceMappingURL=global-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global-utils.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/global-utils.ts"],"names":[],"mappings":";;;AACA,qCAAiE;AACjE,iDAAiD;AAGjD,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,0BAA0B,CAAC,CAAA;AAExC,QAAA,eAAe,GAAoB;IAC9C,MAAM,EAAE;QACN,OAAO,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC;QACxB,WAAW,EAAE,iCAAiC;QAC9C,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AA0BM,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAA6B,EAAE;IACnF,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,6BAAoB;QACzD,GAAG,EAAE,SAAS;QACd,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACN,gBAAgB,EAAE,MAAM;SACzB;KACF,CAAA;AACH,CAAC,CAAA;AATY,QAAA,sBAAsB,0BASlC;AAEM,MAAM,cAAc,GAAG,CAC5B,GAAwC,EACxC,cAAoC,EACpC,UAAwD,EAC/B,EAAE;IAC3B,MAAM,UAAU,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAA;IAChC,IAAI,CAAC,UAAU,EAAE;QACf,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAA;QAC7B,OAAM;KACP;IAED,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC,CAAA;IACjD,IAAI,CAAC,kBAAkB,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC,aAAa,UAAU,aAAa,CAAC,CAAA;QACjD,OAAM;KACP;IAED,MAAM,MAAM,GAAG,kBAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAA;IACtE,IAAI,CAAC,MAAM,EAAE;QACX,MAAM,CAAC,IAAI,CAAC,aAAa,cAAc,CAAC,MAAM,aAAa,CAAC,CAAA;QAC5D,OAAM;KACP;IAED,OAAO;QACL,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,MAAM;KACd,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,cAAc,kBA2B1B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import { Adapter } from '../../../../src/adapter';
|
|
3
3
|
export declare const adapter: Adapter<import("../../../config").SettingsMap>;
|
|
4
|
-
export declare const server: () => Promise<import("fastify").FastifyInstance<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("fastify").
|
|
4
|
+
export declare const server: () => Promise<import("fastify").FastifyInstance<import("http").Server, import("http").IncomingMessage, import("http").ServerResponse, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault> | undefined>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gCAAiC;AACjC,qDAAiD;AACjD,6EAA+C;AAC/C,yCAOmB;AAEN,QAAA,OAAO,GAAG,IAAI,iBAAO,CAAC;IACjC,eAAe,EAAE,QAAQ;IACzB,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,CAAC,iBAAM,EAAE,gBAAK,EAAE,0BAAe,EAAE,uBAAY,EAAE,oBAAS,EAAE,0BAAe,CAAC;IACrF,SAAS,EAAE,wBAAS,CAAC,WAAW,CAAC;CAClC,CAAC,CAAA;AAEK,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,UAAM,EAAC,eAAO,CAAC,CAAA;AAA9B,QAAA,MAAM,UAAwB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/batch-warming.ts"],"names":[],"mappings":";;;AACA,2CAA+D;AAC/D,kEAAsE;AAItE,MAAM,WAAW,GAAG,sCAAsC,CAAA;AAO1D,MAAM,eAAe,GAAoB;IACvC,MAAM,EAAE;QACN,WAAW,EACT,8IAA8I;QAChJ,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAYD,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA8B,EAC9B,OAAuB,EACkB,EAAE;QAC3C,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACtD,aAAa,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBACjE,gBAAgB,EAAE,OAAO,CAAC,aAAa,CAAC,OAAO;aAChD;SACF,CAAA;IACH,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAwC,EACA,EAAE;QAC1C,MAAM,OAAO,GAAG,EAA4C,CAAA;QAC5D,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YACpD,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;oBACvB,KAAK,EAAE,KAAK;iBACb,CAAC,CAAA;aACH;SACF;QACD,OAAO,OAAO,CAAA;IAChB,CAAC;CACF,CAAC,CAAA;AAEW,QAAA,aAAa,GAAG,IAAI,yBAAe,CAAC;IAC/C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,sBAAsB;IACjC,eAAe;CAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AACvC,mDAA+C;AAC/C,iCAAqC;AAExB,QAAA,OAAO,GAAG,IAAI,iBAAO,CAAC;IACjC,IAAI,EAAE,WAAW;IACjB,eAAe,EAAE,OAAO;IACxB,SAAS,EAAE,CAAC,mBAAY,EAAE,6BAAa,CAAC;CACzC,CAAC,CAAA"}
|
|
@@ -40,7 +40,10 @@ const restEndpointTransport = new transports_1.RestTransport({
|
|
|
40
40
|
};
|
|
41
41
|
},
|
|
42
42
|
options: {
|
|
43
|
-
|
|
43
|
+
requestCoalescing: {
|
|
44
|
+
enabled: true,
|
|
45
|
+
entropyMax: 0,
|
|
46
|
+
},
|
|
44
47
|
},
|
|
45
48
|
});
|
|
46
49
|
exports.restEndpoint = new adapter_1.AdapterEndpoint({
|
|
@@ -49,3 +52,4 @@ exports.restEndpoint = new adapter_1.AdapterEndpoint({
|
|
|
49
52
|
transport: restEndpointTransport,
|
|
50
53
|
inputParameters,
|
|
51
54
|
});
|
|
55
|
+
//# sourceMappingURL=rest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rest.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/rest.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,iDAAgD;AAIhD,MAAM,WAAW,GAAG,kCAAkC,CAAA;AAOtD,MAAM,eAAe,GAAoB;IACvC,MAAM,EAAE;QACN,WAAW,EACT,8IAA8I;QAChJ,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,yDAAyD;QACtE,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAaD,MAAM,qBAAqB,GAAG,IAAI,0BAAa,CAAC;IAC9C,cAAc,EAAE,CACd,GAAyC,EACA,EAAE;QAC3C,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,eAAe;YACpB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE;gBACN,GAAG,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI;gBACjC,aAAa,EAAE,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK;aAC7C;SACF,CAAA;IACH,CAAC;IACD,aAAa,EAAE,CACb,GAAyC,EACzC,GAAwC,EACD,EAAE;QACzC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;SAChF,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE;YACjB,OAAO,EAAE,IAAI;YACb,UAAU,EAAE,CAAC;SACd;KACF;CACF,CAAC,CAAA;AAEW,QAAA,YAAY,GAAG,IAAI,yBAAe,CAAC;IAC9C,IAAI,EAAE,MAAM;IACZ,OAAO,EAAE,CAAC,KAAK,CAAC;IAChB,SAAS,EAAE,qBAAqB;IAChC,eAAe;CAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.customSettings = void 0;
|
|
4
|
+
exports.customSettings = {
|
|
5
|
+
API_SECRET: {
|
|
6
|
+
description: 'API secret',
|
|
7
|
+
type: 'string',
|
|
8
|
+
required: true,
|
|
9
|
+
},
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/genesis/config/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,UAAU,EAAE;QACV,WAAW,EAAE,YAAY;QACzB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf;CACO,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adapter = void 0;
|
|
4
|
+
const adapter_1 = require("../../adapter");
|
|
5
|
+
const sseStream_1 = require("./sseStream");
|
|
6
|
+
const config_1 = require("./config");
|
|
7
|
+
exports.adapter = new adapter_1.Adapter({
|
|
8
|
+
name: 'genesis',
|
|
9
|
+
defaultEndpoint: sseStream_1.sseEndpoint.name,
|
|
10
|
+
endpoints: [sseStream_1.sseEndpoint],
|
|
11
|
+
customSettings: config_1.customSettings,
|
|
12
|
+
});
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/examples/genesis/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AACvC,2CAAyC;AACzC,qCAAyC;AAE5B,QAAA,OAAO,GAAG,IAAI,iBAAO,CAAC;IACjC,IAAI,EAAE,SAAS;IACf,eAAe,EAAE,uBAAW,CAAC,IAAI;IACjC,SAAS,EAAE,CAAC,uBAAW,CAAC;IACxB,cAAc,EAAd,uBAAc;CACf,CAAC,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AdapterEndpoint } from '../../adapter';
|
|
2
|
+
import { SSETransport } from '../../transports';
|
|
3
|
+
import { InputParameters } from '../../validation';
|
|
4
|
+
import { SettingsMap } from '../../config';
|
|
5
|
+
interface AdapterRequestParams {
|
|
6
|
+
base: string;
|
|
7
|
+
quote: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const inputParameters: InputParameters;
|
|
10
|
+
declare type Price = number;
|
|
11
|
+
declare type Quantity = number;
|
|
12
|
+
export declare type Entry = ['BUY' | 'SELL' | '', Price, Quantity];
|
|
13
|
+
export declare const sseTransport: SSETransport<AdapterRequestParams, undefined, undefined, SettingsMap>;
|
|
14
|
+
export declare const calculateQWAPprice: (entries: Entry[]) => number | undefined;
|
|
15
|
+
export declare const sseEndpoint: AdapterEndpoint<AdapterRequestParams, unknown, SettingsMap>;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.sseEndpoint = exports.calculateQWAPprice = exports.sseTransport = exports.inputParameters = void 0;
|
|
7
|
+
const crypto_1 = __importDefault(require("crypto"));
|
|
8
|
+
const adapter_1 = require("../../adapter");
|
|
9
|
+
const transports_1 = require("../../transports");
|
|
10
|
+
const util_1 = require("../../util");
|
|
11
|
+
exports.inputParameters = {
|
|
12
|
+
base: {
|
|
13
|
+
aliases: ['from', 'coin'],
|
|
14
|
+
description: 'The symbol of the currency to query',
|
|
15
|
+
required: true,
|
|
16
|
+
},
|
|
17
|
+
quote: {
|
|
18
|
+
aliases: ['to', 'market'],
|
|
19
|
+
description: 'The symbol of the currency to convert to',
|
|
20
|
+
required: true,
|
|
21
|
+
},
|
|
22
|
+
};
|
|
23
|
+
const logger = (0, util_1.makeLogger)('GenesisSSETransport');
|
|
24
|
+
exports.sseTransport = new transports_1.SSETransport({
|
|
25
|
+
prepareSSEConnectionConfig: (params, context) => {
|
|
26
|
+
const payload = 'null';
|
|
27
|
+
const url = prepareRequestUrl(context.adapterConfig, 'sseStream', payload);
|
|
28
|
+
logger.debug('SSE Connection URL: ', url);
|
|
29
|
+
return { url };
|
|
30
|
+
},
|
|
31
|
+
prepareKeepAliveRequest: (context) => {
|
|
32
|
+
const payload = 'null';
|
|
33
|
+
const url = prepareRequestUrl(context.adapterConfig, 'ping', payload);
|
|
34
|
+
const axiosRequestConfig = {
|
|
35
|
+
method: 'POST',
|
|
36
|
+
url,
|
|
37
|
+
};
|
|
38
|
+
logger.debug('Keep Alive URL: ', url);
|
|
39
|
+
return axiosRequestConfig;
|
|
40
|
+
},
|
|
41
|
+
prepareSubscriptionRequest: (params, context) => {
|
|
42
|
+
const requestedSymbols = params.map((p) => {
|
|
43
|
+
return `${p.base.toUpperCase()}-${p.quote.toUpperCase()}`;
|
|
44
|
+
});
|
|
45
|
+
const payloadObj = {
|
|
46
|
+
Action: 'SUBSCRIBE',
|
|
47
|
+
Symbols: requestedSymbols,
|
|
48
|
+
};
|
|
49
|
+
const url = prepareRequestUrl(context.adapterConfig, 'marketDataRequest', JSON.stringify(payloadObj));
|
|
50
|
+
logger.debug('Subscribe URL: ', url);
|
|
51
|
+
const axiosConfig = {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
url,
|
|
54
|
+
};
|
|
55
|
+
return axiosConfig;
|
|
56
|
+
},
|
|
57
|
+
prepareUnsubscriptionRequest: (params, context) => {
|
|
58
|
+
const requestedSymbols = params.map((p) => {
|
|
59
|
+
return `${p.base.toUpperCase()}-${p.quote.toUpperCase()}`;
|
|
60
|
+
});
|
|
61
|
+
const payloadObj = {
|
|
62
|
+
Action: 'UNSUBSCRIBE',
|
|
63
|
+
Symbols: requestedSymbols,
|
|
64
|
+
};
|
|
65
|
+
const url = prepareRequestUrl(context.adapterConfig, 'marketDataRequest', JSON.stringify(payloadObj));
|
|
66
|
+
logger.debug('Unsubscribe URL: ', url);
|
|
67
|
+
const axiosConfig = {
|
|
68
|
+
method: 'POST',
|
|
69
|
+
url,
|
|
70
|
+
};
|
|
71
|
+
return axiosConfig;
|
|
72
|
+
},
|
|
73
|
+
eventListeners: [
|
|
74
|
+
{
|
|
75
|
+
type: 'L2Update',
|
|
76
|
+
parseResponse: (evt) => {
|
|
77
|
+
let providerData = {};
|
|
78
|
+
try {
|
|
79
|
+
// To parse, add the formatting to interperate as a JSON array.
|
|
80
|
+
providerData = JSON.parse(evt.data);
|
|
81
|
+
}
|
|
82
|
+
catch (error) {
|
|
83
|
+
logger.error(error, `Error parsing JSON from data provider`);
|
|
84
|
+
}
|
|
85
|
+
const entries = providerData.Changes.map((e) => e.Entry);
|
|
86
|
+
const value = (0, exports.calculateQWAPprice)(entries);
|
|
87
|
+
if (value) {
|
|
88
|
+
const [base, quote] = providerData.Symbol.split('-');
|
|
89
|
+
return [{
|
|
90
|
+
params: { base, quote },
|
|
91
|
+
value
|
|
92
|
+
}];
|
|
93
|
+
}
|
|
94
|
+
return [];
|
|
95
|
+
},
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
});
|
|
99
|
+
const calculateQWAPprice = (entries) => {
|
|
100
|
+
const meanPriceByQuantity = {};
|
|
101
|
+
// Group orders by quantity
|
|
102
|
+
let totalQuantity = 0;
|
|
103
|
+
entries.forEach((e) => {
|
|
104
|
+
if (e[2] === 0) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
if (!meanPriceByQuantity[e[2].toString()]) {
|
|
108
|
+
meanPriceByQuantity[e[2].toString()] = [e[1], NaN];
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
const meanPrice = (e[1] + meanPriceByQuantity[e[2].toString()][0]) / 2;
|
|
112
|
+
meanPriceByQuantity[e[2].toString()] = [meanPrice, meanPrice * e[2]];
|
|
113
|
+
totalQuantity += e[2];
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
if (Object.keys(meanPriceByQuantity).length === 0) {
|
|
117
|
+
return;
|
|
118
|
+
}
|
|
119
|
+
const priceTimesQuantitySum = Object.values(meanPriceByQuantity)
|
|
120
|
+
.reduce((e1, e2) => [NaN, e1[1] + e2[1]])[1];
|
|
121
|
+
// Return a sum of all the products divided by the total quantity
|
|
122
|
+
return priceTimesQuantitySum / totalQuantity;
|
|
123
|
+
};
|
|
124
|
+
exports.calculateQWAPprice = calculateQWAPprice;
|
|
125
|
+
const prepareRequestUrl = (config, endpoint, payload) => {
|
|
126
|
+
const apiKey = config.API_KEY;
|
|
127
|
+
if (!apiKey) {
|
|
128
|
+
logger.error(new Error('API_KEY not set'), 'Set the API_KEY configuration variable to a valid Genesis API key');
|
|
129
|
+
}
|
|
130
|
+
const apiSecret = config.API_SECRET;
|
|
131
|
+
const nonce = (BigInt(Date.now()) * BigInt('1000000')).toString();
|
|
132
|
+
const hash = crypto_1.default.createHmac('sha384', Buffer.from(apiSecret ?? ''));
|
|
133
|
+
const data = hash.update(Buffer.from(apiKey + payload + nonce));
|
|
134
|
+
const sig = data.digest().toString('hex');
|
|
135
|
+
return `https://trading.uat.genesistrading.com/${endpoint}?APIKEY=${apiKey}&PAYLOAD=${payload}&NONCE=${nonce}&SIGNATURE=${sig}`;
|
|
136
|
+
};
|
|
137
|
+
exports.sseEndpoint = new adapter_1.AdapterEndpoint({
|
|
138
|
+
name: 'sseStream',
|
|
139
|
+
transport: exports.sseTransport,
|
|
140
|
+
inputParameters: exports.inputParameters,
|
|
141
|
+
});
|
|
142
|
+
//# sourceMappingURL=sseStream.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sseStream.js","sourceRoot":"","sources":["../../../../src/examples/genesis/sseStream.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/ncfx/config/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,cAAc,GAAG;IAC5B,QAAQ,EAAE;QACR,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,2BAA2B;QACxC,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;KACf;CACO,CAAA"}
|
package/examples/ncfx/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/examples/ncfx/index.ts"],"names":[],"mappings":";;;AAAA,2CAAuC;AACvC,qCAAyC;AACzC,2CAA+C;AAElC,QAAA,OAAO,GAAG,IAAI,iBAAO,CAAC;IACjC,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,CAAC,6BAAiB,CAAC;IAC9B,cAAc,EAAd,uBAAc;CACf,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"websocket.js","sourceRoot":"","sources":["../../../../src/examples/ncfx/websocket.ts"],"names":[],"mappings":";;;AACA,2CAA+D;AAC/D,0DAA+D;AAC/D,qCAAuD;AAS1C,QAAA,eAAe,GAAoB;IAC9C,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,qCAAqC;QAClD,QAAQ,EAAE,IAAI;KACf;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACF,CAAA;AAiBD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,wBAAwB,CAAC,CAAA;AAEtC,QAAA,kBAAkB,GAAG,IAAI,8BAAkB,CAAC;IACvD,GAAG,EAAE,uCAAuC;IAC5C,QAAQ,EAAE;QACR,IAAI,CAAC,UAAqB,EAAE,OAA8C;YACxE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,kBAAkB;gBAClB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,IAAa,EAAE,EAAE;oBACzC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAC1C,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,mBAAmB,CAAC,EAAE;wBACnD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAA;wBAC1D,OAAO,EAAE,CAAA;qBACV;yBAAM;wBACL,MAAM,CAAC,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC,CAAA;qBACjE;gBACH,CAAC,CAAC,CAAA;gBACF,qBAAqB;gBACrB,UAAU,CAAC,IAAI,CACb,IAAI,CAAC,SAAS,CAAC;oBACb,OAAO,EAAE,OAAO;oBAChB,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;oBACxC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,QAAQ;iBACzC,CAAC,CACH,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,CAAC,OAA0B;YAChC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3B,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;gBACjD,OAAO,EAAE,CAAA;aACV;YACD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;gBACvB,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAC/C,OAAO;oBACL,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE;oBACvB,KAAK,EAAE,CAAC,CAAC,KAAK;iBACf,CAAA;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KACF;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,CAAC;YACnD,OAAO,EAAE,WAAW;YACpB,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;SACtC,CAAC;QACF,kBAAkB,EAAE,CAAC,MAA4B,EAAE,EAAE,CAAC,CAAC;YACrD,OAAO,EAAE,aAAa;YACtB,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE;SACtC,CAAC;KACH;CACF,CAAC,CAAA;AAEW,QAAA,iBAAiB,GAAG,IAAI,yBAAe,CAAC;IACnD,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,0BAAkB;IAC7B,eAAe,EAAf,uBAAe;CAChB,CAAC,CAAA"}
|
package/index.js
CHANGED
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/metrics/constants.js
CHANGED
|
@@ -23,3 +23,4 @@ var HttpRequestType;
|
|
|
23
23
|
exports.MAX_FEED_ID_LENGTH = 300;
|
|
24
24
|
// We should tune these as we collect data, this is the default bucket distribution that prom comes with
|
|
25
25
|
exports.requestDurationBuckets = [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10];
|
|
26
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/metrics/constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,eAcX;AAdD,WAAY,eAAe;IACzB,yCAAsB,CAAA;IACtB,wDAAqC,CAAA;IACrC,iDAA8B,CAAA;IAC9B,6CAA0B,CAAA;IAC1B,sDAAmC,CAAA;IACnC,yCAAyC;IACzC,kCAAkC;IAClC,iDAA8B,CAAA;IAC9B,iDAA8B,CAAA;IAC9B,uDAAoC,CAAA;IACpC,0CAA0C;IAC1C,8CAA8C;IAC9C,+CAA4B,CAAA;AAC9B,CAAC,EAdW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAc1B;AAED;;GAEG;AACU,QAAA,kBAAkB,GAAG,GAAG,CAAA;AAErC,wGAAwG;AAC3F,QAAA,sBAAsB,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAA"}
|
package/metrics/index.d.ts
CHANGED
|
@@ -13,3 +13,5 @@ export declare const setupMetrics: (name: string, config: AdapterConfig) => void
|
|
|
13
13
|
export declare const buildMetricsMiddleware: (req: AdapterRequest, res: FastifyReply, done: HookHandlerDoneFunction) => void;
|
|
14
14
|
export declare const httpRequestsTotal: client.Counter<"type" | "method" | "feed_id" | "status_code" | "provider_status_code" | "retry" | "is_cache_warming">;
|
|
15
15
|
export declare const httpRequestDurationSeconds: client.Histogram<string>;
|
|
16
|
+
export declare const bgExecuteTotal: client.Counter<"endpoint">;
|
|
17
|
+
export declare const bgExecuteDurationSeconds: client.Gauge<"endpoint">;
|
package/metrics/index.js
CHANGED
|
@@ -26,7 +26,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
26
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.httpRequestDurationSeconds = exports.httpRequestsTotal = exports.buildMetricsMiddleware = exports.setupMetrics = exports.setupMetricsServer = void 0;
|
|
29
|
+
exports.bgExecuteDurationSeconds = exports.bgExecuteTotal = exports.httpRequestDurationSeconds = exports.httpRequestsTotal = exports.buildMetricsMiddleware = exports.setupMetrics = exports.setupMetricsServer = void 0;
|
|
30
30
|
const client = __importStar(require("prom-client"));
|
|
31
31
|
const constants_1 = require("./constants");
|
|
32
32
|
const util_1 = require("../util");
|
|
@@ -124,3 +124,15 @@ exports.httpRequestDurationSeconds = new client.Histogram({
|
|
|
124
124
|
help: 'A histogram bucket of the distribution of http request durations',
|
|
125
125
|
buckets: constants_1.requestDurationBuckets,
|
|
126
126
|
});
|
|
127
|
+
// V3 specific metrics
|
|
128
|
+
exports.bgExecuteTotal = new client.Counter({
|
|
129
|
+
name: 'bg_execute_total',
|
|
130
|
+
help: 'The number of background executes performed per endpoint',
|
|
131
|
+
labelNames: ['endpoint'],
|
|
132
|
+
});
|
|
133
|
+
exports.bgExecuteDurationSeconds = new client.Gauge({
|
|
134
|
+
name: 'bg_execute_duration_seconds',
|
|
135
|
+
help: 'A histogram bucket of the distribution of background execute durations',
|
|
136
|
+
labelNames: ['endpoint'],
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/metrics/index.ts"],"names":[],"mappings":"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"}
|
package/metrics/util.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/metrics/util.ts"],"names":[],"mappings":";;;AAEA,oCAA0C;AAGnC,MAAM,cAAc,GAAG,CAC5B,EACE,eAAe,EACf,aAAa,GAId,EACD,IAAwB,EACJ,EAAE;IACtB,MAAM,MAAM,GAAG,IAAA,uBAAe,EAAC,EAAE,eAAe,EAAE,aAAa,EAAE,EAAE,IAAI,CAAC,CAAA;IACxE,OAAO,EAAE,MAAM,EAAE,CAAA;AACnB,CAAC,CAAA;AAZY,QAAA,cAAc,kBAY1B"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@chainlink/external-adapter-framework",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.55",
|
|
4
4
|
"main": "dist/index.js",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"axios": "^0.27.2",
|
|
8
|
+
"eventsource": "^2.0.2",
|
|
8
9
|
"fastify": "^4.5.3",
|
|
9
10
|
"ioredis": "^5.0.4",
|
|
10
11
|
"pino": "^8.5.0",
|
|
@@ -25,7 +26,8 @@
|
|
|
25
26
|
},
|
|
26
27
|
"devDependencies": {
|
|
27
28
|
"@sinonjs/fake-timers": "^9.1.2",
|
|
28
|
-
"@types/
|
|
29
|
+
"@types/eventsource": "^1.1.9",
|
|
30
|
+
"@types/jest": "^29.0.0",
|
|
29
31
|
"@types/node": "^18.6.5",
|
|
30
32
|
"@types/sinonjs__fake-timers": "^8.1.2",
|
|
31
33
|
"@types/supertest": "^2.0.12",
|
|
@@ -40,11 +42,12 @@
|
|
|
40
42
|
"eslint-plugin-tsdoc": "^0.2.16",
|
|
41
43
|
"jest": "^29.0.3",
|
|
42
44
|
"mock-socket": "^9.1.3",
|
|
45
|
+
"mocksse": "^1.0.4",
|
|
43
46
|
"nock": "^13.2.4",
|
|
44
47
|
"pino-pretty": "^9.1.0",
|
|
45
48
|
"prettier": "^2.6.1",
|
|
46
49
|
"supertest": "^6.2.4",
|
|
47
|
-
"ts-jest": "^
|
|
50
|
+
"ts-jest": "^29.0.0",
|
|
48
51
|
"ts-node-dev": "2.0.0",
|
|
49
52
|
"typedoc": "^0.22.15"
|
|
50
53
|
},
|
|
@@ -12,9 +12,6 @@ class FixedFrequencyRateLimiter {
|
|
|
12
12
|
initialize(endpoints, limits) {
|
|
13
13
|
// Translate the hourly limit into reqs per minute
|
|
14
14
|
let sharedMsBetweenRequests = 1000 / (0, __1.consolidateTierLimits)(limits);
|
|
15
|
-
console.log(limits);
|
|
16
|
-
console.log(sharedMsBetweenRequests);
|
|
17
|
-
console.log((0, __1.consolidateTierLimits)(limits));
|
|
18
15
|
// If there is no limit set, we use some reasonable number
|
|
19
16
|
if (!limits?.rateLimit1h && !limits?.rateLimit1m && !limits?.rateLimit1s) {
|
|
20
17
|
// 5s period for all seems good
|
|
@@ -36,3 +33,4 @@ class FixedFrequencyRateLimiter {
|
|
|
36
33
|
}
|
|
37
34
|
}
|
|
38
35
|
exports.FixedFrequencyRateLimiter = FixedFrequencyRateLimiter;
|
|
36
|
+
//# sourceMappingURL=fixed-frequency.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fixed-frequency.js","sourceRoot":"","sources":["../../../../src/rate-limiting/background/fixed-frequency.ts"],"names":[],"mappings":";;;AAAA,0BAA8F;AAG9F,qCAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,2BAA2B,CAAC,CAAA;AACzC,QAAA,kCAAkC,GAAG,IAAI,CAAA;AAEtD,MAAa,yBAAyB;IAAtC;QACE,yBAAoB,GAEhB,EAAE,CAAA;IAqCR,CAAC;IAnCC,UAAU,CACR,SAA4D,EAC5D,MAA6B;QAE7B,kDAAkD;QAClD,IAAI,uBAAuB,GAAG,IAAI,GAAG,IAAA,yBAAqB,EAAC,MAAM,CAAC,CAAA;QAElE,0DAA0D;QAC1D,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE;YACxE,+BAA+B;YAC/B,uBAAuB,GAAG,0CAAkC,CAAA;SAC7D;QAED,MAAM,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAA;QACzD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE;YAChC,IAAI,QAAQ,CAAC,YAAY,EAAE,oBAAoB,IAAI,IAAI,EAAE;gBACvD,MAAM,IAAI,KAAK,CAAC,uCAAuC,QAAQ,CAAC,IAAI,WAAW,CAAC,CAAA;aACjF;YAED,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACtC,CAAC,uBAAuB,GAAG,QAAQ,CAAC,YAAY,EAAE,oBAAoB,CAAC,GAAG,GAAG,CAAA;YAE/E,MAAM,CAAC,KAAK,CACV,aAAa,QAAQ,CAAC,IAAI,MACxB,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,IAC7C,oBAAoB,CACrB,CAAA;SACF;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,oBAAoB,CAAC,YAAoB;QACvC,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,CAAA;IAChD,CAAC;CACF;AAxCD,8DAwCC"}
|
package/rate-limiting/index.d.ts
CHANGED
|
@@ -53,3 +53,4 @@ export declare const consolidateTierLimits: (limits?: AdapterRateLimitTier | und
|
|
|
53
53
|
* @returns the specified API tier, or a default one if none are specified
|
|
54
54
|
*/
|
|
55
55
|
export declare const getRateLimitingTier: (config: AdapterConfig, tiers?: Record<string, AdapterRateLimitTier> | undefined) => AdapterRateLimitTier | undefined;
|
|
56
|
+
export declare const buildRateLimitTiersFromConfig: (config: AdapterConfig) => AdapterRateLimitTier | undefined;
|
package/rate-limiting/index.js
CHANGED
|
@@ -14,7 +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
|
-
exports.getRateLimitingTier = exports.consolidateTierLimits = void 0;
|
|
17
|
+
exports.buildRateLimitTiersFromConfig = exports.getRateLimitingTier = exports.consolidateTierLimits = void 0;
|
|
18
18
|
__exportStar(require("./request/simple-counting"), exports);
|
|
19
19
|
__exportStar(require("./background/fixed-frequency"), exports);
|
|
20
20
|
/**
|
|
@@ -42,7 +42,7 @@ const getRateLimitingTier = (config, tiers) => {
|
|
|
42
42
|
if (config.RATE_LIMIT_CAPACITY ||
|
|
43
43
|
config.RATE_LIMIT_CAPACITY_MINUTE ||
|
|
44
44
|
config.RATE_LIMIT_CAPACITY_SECOND) {
|
|
45
|
-
return buildRateLimitTiersFromConfig(config);
|
|
45
|
+
return (0, exports.buildRateLimitTiersFromConfig)(config);
|
|
46
46
|
}
|
|
47
47
|
if (!tiers) {
|
|
48
48
|
return;
|
|
@@ -82,3 +82,5 @@ const buildRateLimitTiersFromConfig = (config) => {
|
|
|
82
82
|
rateLimit1m,
|
|
83
83
|
};
|
|
84
84
|
};
|
|
85
|
+
exports.buildRateLimitTiersFromConfig = buildRateLimitTiersFromConfig;
|
|
86
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/rate-limiting/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAGA,4DAAyC;AACzC,+DAA4C;AA4C5C;;;;;;GAMG;AACI,MAAM,qBAAqB,GAAG,CAAC,MAA6B,EAAE,EAAE;IACrE,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,CAAA;IAClE,MAAM,cAAc,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAA;IAC7D,MAAM,cAAc,GAAG,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAA;IACtD,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,EAAE,cAAc,CAAC,CAAA;AAC/D,CAAC,CAAA;AALY,QAAA,qBAAqB,yBAKjC;AAED;;;;;;GAMG;AACI,MAAM,mBAAmB,GAAG,CACjC,MAAqB,EACrB,KAA4C,EACV,EAAE;IACpC,IACE,MAAM,CAAC,mBAAmB;QAC1B,MAAM,CAAC,0BAA0B;QACjC,MAAM,CAAC,0BAA0B,EACjC;QACA,OAAO,IAAA,qCAA6B,EAAC,MAAM,CAAC,CAAA;KAC7C;IACD,IAAI,CAAC,KAAK,EAAE;QACV,OAAM;KACP;IAED,2DAA2D;IAC3D,IAAI,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACrC,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAA;KACnE;IAED,8DAA8D;IAC9D,MAAM,YAAY,GAAG,MAAM,CAAC,mBAAmB,CAAA;IAC/C,IAAI,YAAY,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE;QACxC,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;aACxC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;aACpB,IAAI,CAAC,IAAI,CAAC,CAAA;QAEb,MAAM,IAAI,KAAK,CACb,iCAAiC,YAAY,iCAAiC,gBAAgB,GAAG,CAClG,CAAA;KACF;IAED,IAAI,CAAC,YAAY,EAAE;QACjB,8CAA8C;QAC9C,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CAC3C,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,IAAA,6BAAqB,EAAC,EAAE,CAAC,GAAG,IAAA,6BAAqB,EAAC,EAAE,CAAC,CAClE,CAAA;QAED,OAAO,WAAW,CAAC,CAAC,CAAC,CAAA;KACtB;IAED,OAAO,KAAK,CAAC,YAAY,CAAC,CAAA;AAC5B,CAAC,CAAA;AA1CY,QAAA,mBAAmB,uBA0C/B;AAED,0EAA0E;AACnE,MAAM,6BAA6B,GAAG,CAC3C,MAAqB,EACa,EAAE;IACpC,MAAM,WAAW,GAAG,MAAM,CAAC,0BAA0B,CAAA;IACrD,IAAI,WAAW,CAAA;IACf,IAAI,MAAM,CAAC,0BAA0B,EAAE;QACrC,WAAW,GAAG,MAAM,CAAC,0BAA0B,CAAA;KAChD;SAAM,IAAI,MAAM,CAAC,mBAAmB,EAAE;QACrC,WAAW,GAAG,MAAM,CAAC,mBAAmB,CAAA;KACzC;IACD,OAAO;QACL,WAAW;QACX,WAAW;KACZ,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,6BAA6B,iCAczC"}
|