@chainlink/external-adapter-framework 0.5.0 → 0.5.1
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/basic.d.ts +90 -0
- package/adapter/basic.js +325 -0
- package/adapter/basic.js.map +1 -0
- package/adapter/endpoint.d.ts +17 -0
- package/adapter/endpoint.js +20 -0
- package/adapter/endpoint.js.map +1 -0
- package/adapter/index.d.ts +4 -0
- package/adapter/index.js +21 -0
- package/adapter/index.js.map +1 -0
- package/adapter/price.d.ts +77 -0
- package/adapter/price.js +88 -0
- package/adapter/price.js.map +1 -0
- package/adapter/types.d.ts +124 -0
- package/adapter/types.js +3 -0
- package/adapter/types.js.map +1 -0
- package/background-executor.d.ts +9 -0
- package/background-executor.js +97 -0
- package/background-executor.js.map +1 -0
- package/cache/factory.d.ts +6 -0
- package/cache/factory.js +24 -0
- package/cache/factory.js.map +1 -0
- package/cache/index.d.ts +87 -0
- package/cache/index.js +133 -0
- package/cache/index.js.map +1 -0
- package/cache/local.d.ts +23 -0
- package/cache/local.js +84 -0
- package/cache/local.js.map +1 -0
- package/cache/metrics.d.ts +27 -0
- package/cache/metrics.js +121 -0
- package/cache/metrics.js.map +1 -0
- package/cache/redis.d.ts +16 -0
- package/cache/redis.js +101 -0
- package/cache/redis.js.map +1 -0
- package/config/index.d.ts +298 -0
- package/config/index.js +359 -0
- package/config/index.js.map +1 -0
- package/config/provider-limits.d.ts +27 -0
- package/config/provider-limits.js +75 -0
- package/config/provider-limits.js.map +1 -0
- package/examples/bank-frick/accounts.d.ts +45 -0
- package/examples/bank-frick/accounts.js +203 -0
- package/examples/bank-frick/accounts.js.map +1 -0
- package/examples/bank-frick/config/index.d.ts +17 -0
- package/examples/bank-frick/config/index.js +55 -0
- package/examples/bank-frick/config/index.js.map +1 -0
- package/examples/bank-frick/index.d.ts +2 -0
- package/examples/bank-frick/index.js +16 -0
- package/examples/bank-frick/index.js.map +1 -0
- package/examples/bank-frick/util.d.ts +4 -0
- package/examples/bank-frick/util.js +40 -0
- package/examples/bank-frick/util.js.map +1 -0
- package/examples/coingecko/src/config/index.d.ts +2 -0
- package/examples/coingecko/src/config/index.js +6 -0
- package/examples/coingecko/src/config/index.js.map +1 -0
- package/examples/coingecko/src/config/overrides.json +10825 -0
- package/examples/coingecko/src/crypto-utils.d.ts +62 -0
- package/examples/coingecko/src/crypto-utils.js +60 -0
- package/examples/coingecko/src/crypto-utils.js.map +1 -0
- package/examples/coingecko/src/endpoint/coins.d.ts +26 -0
- package/examples/coingecko/src/endpoint/coins.js +37 -0
- package/examples/coingecko/src/endpoint/coins.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +3 -0
- package/examples/coingecko/src/endpoint/crypto-marketcap.js +30 -0
- package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto-volume.d.ts +3 -0
- package/examples/coingecko/src/endpoint/crypto-volume.js +30 -0
- package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -0
- package/examples/coingecko/src/endpoint/crypto.d.ts +3 -0
- package/examples/coingecko/src/endpoint/crypto.js +28 -0
- package/examples/coingecko/src/endpoint/crypto.js.map +1 -0
- package/examples/coingecko/src/endpoint/dominance.d.ts +3 -0
- package/examples/coingecko/src/endpoint/dominance.js +28 -0
- package/examples/coingecko/src/endpoint/dominance.js.map +1 -0
- package/examples/coingecko/src/endpoint/global-marketcap.d.ts +3 -0
- package/examples/coingecko/src/endpoint/global-marketcap.js +28 -0
- package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -0
- package/examples/coingecko/src/endpoint/index.d.ts +6 -0
- package/examples/coingecko/src/endpoint/index.js +16 -0
- package/examples/coingecko/src/endpoint/index.js.map +1 -0
- package/examples/coingecko/src/global-utils.d.ts +42 -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 +4 -0
- package/examples/coingecko/src/index.js +19 -0
- package/examples/coingecko/src/index.js.map +1 -0
- package/examples/coingecko-old/batch-warming.d.ts +7 -0
- package/examples/coingecko-old/batch-warming.js +54 -0
- package/examples/coingecko-old/batch-warming.js.map +1 -0
- package/examples/coingecko-old/index.d.ts +2 -0
- package/examples/coingecko-old/index.js +12 -0
- package/examples/coingecko-old/index.js.map +1 -0
- package/examples/coingecko-old/rest.d.ts +12 -0
- package/examples/coingecko-old/rest.js +55 -0
- package/examples/coingecko-old/rest.js.map +1 -0
- package/examples/cryptocompare/src/config/index.d.ts +2 -0
- package/examples/cryptocompare/src/config/index.js +6 -0
- package/examples/cryptocompare/src/config/index.js.map +1 -0
- package/examples/cryptocompare/src/endpoints/crypto.d.ts +40 -0
- package/examples/cryptocompare/src/endpoints/crypto.js +54 -0
- package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -0
- package/examples/cryptocompare/src/endpoints/index.d.ts +1 -0
- package/examples/cryptocompare/src/endpoints/index.js +6 -0
- package/examples/cryptocompare/src/endpoints/index.js.map +1 -0
- package/examples/cryptocompare/src/index.d.ts +4 -0
- package/examples/cryptocompare/src/index.js +14 -0
- package/examples/cryptocompare/src/index.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 +27 -0
- package/examples/genesis/sseStream.js +149 -0
- package/examples/genesis/sseStream.js.map +1 -0
- package/examples/ncfx/config/index.d.ts +12 -0
- package/examples/ncfx/config/index.js +16 -0
- package/examples/ncfx/config/index.js.map +1 -0
- package/examples/ncfx/index.d.ts +2 -0
- package/examples/ncfx/index.js +12 -0
- package/examples/ncfx/index.js.map +1 -0
- package/examples/ncfx/websocket.d.ts +37 -0
- package/examples/ncfx/websocket.js +74 -0
- package/examples/ncfx/websocket.js.map +1 -0
- package/index.d.ts +17 -0
- package/index.js +174 -0
- package/index.js.map +1 -0
- package/metrics/constants.d.ts +16 -0
- package/metrics/constants.js +26 -0
- package/metrics/constants.js.map +1 -0
- package/metrics/index.d.ts +19 -0
- package/metrics/index.js +139 -0
- package/metrics/index.js.map +1 -0
- package/metrics/util.d.ts +7 -0
- package/metrics/util.js +10 -0
- package/metrics/util.js.map +1 -0
- package/package.json +50 -42
- package/rate-limiting/background/fixed-frequency.d.ts +10 -0
- package/rate-limiting/background/fixed-frequency.js +36 -0
- package/rate-limiting/background/fixed-frequency.js.map +1 -0
- package/rate-limiting/index.d.ts +56 -0
- package/rate-limiting/index.js +86 -0
- package/rate-limiting/index.js.map +1 -0
- package/rate-limiting/metrics.d.ts +3 -0
- package/rate-limiting/metrics.js +45 -0
- package/rate-limiting/metrics.js.map +1 -0
- package/rate-limiting/request/simple-counting.d.ts +20 -0
- package/rate-limiting/request/simple-counting.js +63 -0
- package/rate-limiting/request/simple-counting.js.map +1 -0
- package/transports/batch-warming.d.ts +53 -0
- package/transports/batch-warming.js +136 -0
- package/transports/batch-warming.js.map +1 -0
- package/transports/index.d.ts +108 -0
- package/transports/index.js +56 -0
- package/transports/index.js.map +1 -0
- package/transports/inference-test.d.ts +0 -0
- package/transports/inference-test.js +202 -0
- package/transports/inference-test.js.map +1 -0
- package/transports/metrics.d.ts +25 -0
- package/transports/metrics.js +122 -0
- package/transports/metrics.js.map +1 -0
- package/transports/rest.d.ts +68 -0
- package/transports/rest.js +131 -0
- package/transports/rest.js.map +1 -0
- package/transports/routing.d.ts +21 -0
- package/transports/routing.js +50 -0
- package/transports/routing.js.map +1 -0
- package/transports/sse.d.ts +61 -0
- package/transports/sse.js +97 -0
- package/transports/sse.js.map +1 -0
- package/transports/util.d.ts +9 -0
- package/transports/util.js +87 -0
- package/transports/util.js.map +1 -0
- package/transports/websocket.d.ts +95 -0
- package/transports/websocket.js +164 -0
- 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 +13 -0
- package/util/index.js +38 -0
- package/util/index.js.map +1 -0
- package/util/logger.d.ts +49 -0
- package/util/logger.js +123 -0
- package/util/logger.js.map +1 -0
- package/util/request.d.ts +138 -0
- package/util/request.js +3 -0
- package/util/request.js.map +1 -0
- package/util/subscription-set/expiring-sorted-set.d.ts +21 -0
- package/util/subscription-set/expiring-sorted-set.js +36 -0
- 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 +19 -0
- package/util/subscription-set/subscription-set.js +28 -0
- package/util/subscription-set/subscription-set.js.map +1 -0
- package/util/test-payload-loader.d.ts +26 -0
- package/util/test-payload-loader.js +85 -0
- package/util/test-payload-loader.js.map +1 -0
- package/validation/error.d.ts +48 -0
- package/validation/error.js +78 -0
- package/validation/error.js.map +1 -0
- package/validation/index.d.ts +5 -0
- package/validation/index.js +102 -0
- package/validation/index.js.map +1 -0
- package/validation/input-params.d.ts +14 -0
- package/validation/input-params.js +3 -0
- package/validation/input-params.js.map +1 -0
- package/validation/input-validator.d.ts +16 -0
- package/validation/input-validator.js +123 -0
- package/validation/input-validator.js.map +1 -0
- package/README.md +0 -102
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { HttpRequestConfig, HttpResponse } from '../../../transports';
|
|
2
|
+
import { AdapterConfig, SettingsMap } from '../../../config';
|
|
3
|
+
export interface CryptoRequestParams {
|
|
4
|
+
coinid?: string;
|
|
5
|
+
base?: string;
|
|
6
|
+
quote: string;
|
|
7
|
+
}
|
|
8
|
+
export declare const cryptoInputParams: {
|
|
9
|
+
readonly coinid: {
|
|
10
|
+
readonly description: "The CoinGecko id or to query";
|
|
11
|
+
readonly type: "string";
|
|
12
|
+
readonly required: false;
|
|
13
|
+
};
|
|
14
|
+
readonly base: {
|
|
15
|
+
readonly aliases: readonly ["from", "coin"];
|
|
16
|
+
readonly type: "string";
|
|
17
|
+
readonly description: "The symbol of symbols of the currency to query";
|
|
18
|
+
readonly required: false;
|
|
19
|
+
};
|
|
20
|
+
readonly quote: {
|
|
21
|
+
readonly aliases: readonly ["to", "market"];
|
|
22
|
+
readonly type: "string";
|
|
23
|
+
readonly description: "The symbol of the currency to convert to";
|
|
24
|
+
readonly required: true;
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
export interface ProviderRequestBody {
|
|
28
|
+
ids: string;
|
|
29
|
+
vs_currencies: string;
|
|
30
|
+
include_market_cap?: boolean;
|
|
31
|
+
include_24hr_vol?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface ProviderResponseBody {
|
|
34
|
+
[base: string]: {
|
|
35
|
+
[quote: string]: number;
|
|
36
|
+
};
|
|
37
|
+
}
|
|
38
|
+
interface ResultEntry {
|
|
39
|
+
value: number;
|
|
40
|
+
params: {
|
|
41
|
+
quote: string;
|
|
42
|
+
base?: string;
|
|
43
|
+
coinid?: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export declare type CryptoEndpointTypes = {
|
|
47
|
+
Request: {
|
|
48
|
+
Params: CryptoRequestParams;
|
|
49
|
+
};
|
|
50
|
+
Response: {
|
|
51
|
+
Data: ProviderResponseBody;
|
|
52
|
+
Result: number;
|
|
53
|
+
};
|
|
54
|
+
CustomSettings: SettingsMap;
|
|
55
|
+
Provider: {
|
|
56
|
+
RequestBody: ProviderRequestBody;
|
|
57
|
+
ResponseBody: ProviderResponseBody;
|
|
58
|
+
};
|
|
59
|
+
};
|
|
60
|
+
export declare const buildBatchedRequestBody: (params: CryptoRequestParams[], config: AdapterConfig) => HttpRequestConfig<ProviderRequestBody>;
|
|
61
|
+
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload: CryptoRequestParams, resultPath: string) => ResultEntry | undefined;
|
|
62
|
+
export {};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.constructEntry = exports.buildBatchedRequestBody = exports.cryptoInputParams = void 0;
|
|
4
|
+
const config_1 = require("./config");
|
|
5
|
+
const logger_1 = require("../../../util/logger");
|
|
6
|
+
exports.cryptoInputParams = {
|
|
7
|
+
coinid: {
|
|
8
|
+
description: 'The CoinGecko id or to query',
|
|
9
|
+
type: 'string',
|
|
10
|
+
required: false,
|
|
11
|
+
},
|
|
12
|
+
base: {
|
|
13
|
+
aliases: ['from', 'coin'],
|
|
14
|
+
type: 'string',
|
|
15
|
+
description: 'The symbol of symbols of the currency to query',
|
|
16
|
+
required: false,
|
|
17
|
+
},
|
|
18
|
+
quote: {
|
|
19
|
+
aliases: ['to', 'market'],
|
|
20
|
+
type: 'string',
|
|
21
|
+
description: 'The symbol of the currency to convert to',
|
|
22
|
+
required: true,
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
const buildBatchedRequestBody = (params, config) => {
|
|
26
|
+
return {
|
|
27
|
+
baseURL: config.API_KEY ? config_1.PRO_API_ENDPOINT : config_1.DEFAULT_API_ENDPOINT,
|
|
28
|
+
url: '/simple/price',
|
|
29
|
+
method: 'GET',
|
|
30
|
+
params: {
|
|
31
|
+
ids: [...new Set(params.map((p) => p.coinid ?? p.base))].join(','),
|
|
32
|
+
vs_currencies: [...new Set(params.map((p) => p.quote))].join(','),
|
|
33
|
+
x_cg_pro_api_key: config.API_KEY,
|
|
34
|
+
},
|
|
35
|
+
};
|
|
36
|
+
};
|
|
37
|
+
exports.buildBatchedRequestBody = buildBatchedRequestBody;
|
|
38
|
+
const logger = (0, logger_1.makeLogger)('CoinGecko Crypto Batched');
|
|
39
|
+
const constructEntry = (res, requestPayload, resultPath) => {
|
|
40
|
+
const coinId = requestPayload.coinid ?? requestPayload.base;
|
|
41
|
+
const dataForCoin = res.data[coinId];
|
|
42
|
+
const dataForQuote = dataForCoin ? dataForCoin[resultPath] : undefined;
|
|
43
|
+
if (!dataForQuote) {
|
|
44
|
+
logger.warn(`Data for "${requestPayload.quote}" not found for token "${coinId}`);
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
const entry = {
|
|
48
|
+
params: requestPayload,
|
|
49
|
+
value: dataForQuote,
|
|
50
|
+
};
|
|
51
|
+
if (requestPayload.coinid) {
|
|
52
|
+
entry.params.coinid = requestPayload.coinid;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
entry.params.base = requestPayload.base;
|
|
56
|
+
}
|
|
57
|
+
return entry;
|
|
58
|
+
};
|
|
59
|
+
exports.constructEntry = constructEntry;
|
|
60
|
+
//# sourceMappingURL=crypto-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/crypto-utils.ts"],"names":[],"mappings":";;;AACA,qCAAiE;AAEjE,iDAAiD;AAQpC,QAAA,iBAAiB,GAAG;IAC/B,MAAM,EAAE;QACN,WAAW,EAAE,8BAA8B;QAC3C,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;KAChB;IACD,IAAI,EAAE;QACJ,OAAO,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,gDAAgD;QAC7D,QAAQ,EAAE,KAAK;KAChB;IACD,KAAK,EAAE;QACL,OAAO,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC;QACzB,IAAI,EAAE,QAAQ;QACd,WAAW,EAAE,0CAA0C;QACvD,QAAQ,EAAE,IAAI;KACf;CACO,CAAA;AAuCH,MAAM,uBAAuB,GAAG,CACrC,MAA6B,EAC7B,MAAqB,EACmB,EAAE;IAC1C,OAAO;QACL,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,6BAAoB;QACjE,GAAG,EAAE,eAAe;QACpB,MAAM,EAAE,KAAK;QACb,MAAM,EAAE;YACN,GAAG,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;YAClE,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;YACjE,gBAAgB,EAAE,MAAM,CAAC,OAAO;SACjC;KACF,CAAA;AACH,CAAC,CAAA;AAdY,QAAA,uBAAuB,2BAcnC;AAED,MAAM,MAAM,GAAG,IAAA,mBAAU,EAAC,0BAA0B,CAAC,CAAA;AAE9C,MAAM,cAAc,GAAG,CAC5B,GAAuC,EACvC,cAAmC,EACnC,UAAkB,EACO,EAAE;IAC3B,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,IAAK,cAAc,CAAC,IAAe,CAAA;IACvE,MAAM,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACpC,MAAM,YAAY,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IACtE,IAAI,CAAC,YAAY,EAAE;QACjB,MAAM,CAAC,IAAI,CAAC,aAAa,cAAc,CAAC,KAAK,0BAA0B,MAAM,EAAE,CAAC,CAAA;QAChF,OAAM;KACP;IACD,MAAM,KAAK,GAAG;QACZ,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,YAAY;KACL,CAAA;IAChB,IAAI,cAAc,CAAC,MAAM,EAAE;QACzB,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC,MAAM,CAAA;KAC5C;SAAM;QACL,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,cAAc,CAAC,IAAI,CAAA;KACxC;IACD,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAtBY,QAAA,cAAc,kBAsB1B"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { InputParameters } from '../../../../../src/validation';
|
|
2
|
+
import { AdapterEndpoint } from '../../../../adapter';
|
|
3
|
+
import { SettingsMap } from '../../../../config';
|
|
4
|
+
import { EmptyObject } from '../../../../util';
|
|
5
|
+
export declare const inputParameters: InputParameters;
|
|
6
|
+
interface CoinsResponse {
|
|
7
|
+
id: string;
|
|
8
|
+
symbol: string;
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
11
|
+
declare type EndpointTypes = {
|
|
12
|
+
Request: {
|
|
13
|
+
Params: EmptyObject;
|
|
14
|
+
};
|
|
15
|
+
Response: {
|
|
16
|
+
Data: CoinsResponse;
|
|
17
|
+
Result: null;
|
|
18
|
+
};
|
|
19
|
+
CustomSettings: SettingsMap;
|
|
20
|
+
Provider: {
|
|
21
|
+
RequestBody: never;
|
|
22
|
+
ResponseBody: CoinsResponse;
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
export declare const endpoint: AdapterEndpoint<EndpointTypes>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = exports.inputParameters = void 0;
|
|
4
|
+
const transports_1 = require("../../../../../src/transports");
|
|
5
|
+
const adapter_1 = require("../../../../adapter");
|
|
6
|
+
const config_1 = require("../config");
|
|
7
|
+
exports.inputParameters = {};
|
|
8
|
+
const restEndpointTransport = new transports_1.RestTransport({
|
|
9
|
+
prepareRequest: (_, config) => {
|
|
10
|
+
const baseURL = config.API_KEY ? config_1.PRO_API_ENDPOINT : config_1.DEFAULT_API_ENDPOINT;
|
|
11
|
+
const params = config.API_KEY ? { x_cg_pro_api_key: config.API_KEY } : undefined;
|
|
12
|
+
return {
|
|
13
|
+
baseURL,
|
|
14
|
+
url: '/coins/list',
|
|
15
|
+
method: 'GET',
|
|
16
|
+
params,
|
|
17
|
+
};
|
|
18
|
+
},
|
|
19
|
+
parseResponse: (req, res) => {
|
|
20
|
+
return {
|
|
21
|
+
data: res.data,
|
|
22
|
+
statusCode: 200,
|
|
23
|
+
result: null,
|
|
24
|
+
};
|
|
25
|
+
},
|
|
26
|
+
options: {
|
|
27
|
+
requestCoalescing: {
|
|
28
|
+
enabled: true,
|
|
29
|
+
},
|
|
30
|
+
},
|
|
31
|
+
});
|
|
32
|
+
exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
33
|
+
name: 'coins',
|
|
34
|
+
transport: restEndpointTransport,
|
|
35
|
+
inputParameters: exports.inputParameters,
|
|
36
|
+
});
|
|
37
|
+
//# sourceMappingURL=coins.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"coins.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/coins.ts"],"names":[],"mappings":";;;AAAA,8DAA6D;AAE7D,iDAAqD;AAGrD,sCAAkE;AAErD,QAAA,eAAe,GAAoB,EAAE,CAAA;AAuBlD,MAAM,qBAAqB,GAAG,IAAI,0BAAa,CAAgB;IAC7D,cAAc,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC5B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,yBAAgB,CAAC,CAAC,CAAC,6BAAoB,CAAA;QACxE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,SAAS,CAAA;QAChF,OAAO;YACL,OAAO;YACP,GAAG,EAAE,aAAa;YAClB,MAAM,EAAE,KAAK;YACb,MAAM;SACP,CAAA;IACH,CAAC;IACD,aAAa,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QAC1B,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,IAAI;SACb,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE;YACjB,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC,CAAA;AAEW,QAAA,QAAQ,GAAG,IAAI,yBAAe,CAAgB;IACzD,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,qBAAqB;IAChC,eAAe,EAAf,uBAAe;CAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
+
const crypto_utils_1 = require("../crypto-utils");
|
|
7
|
+
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
+
prepareRequest: (params, config) => {
|
|
9
|
+
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params, config);
|
|
10
|
+
requestBody.params.include_market_cap = true;
|
|
11
|
+
return requestBody;
|
|
12
|
+
},
|
|
13
|
+
parseResponse: (params, res) => {
|
|
14
|
+
const entries = [];
|
|
15
|
+
for (const requestPayload of params) {
|
|
16
|
+
const entry = (0, crypto_utils_1.constructEntry)(res, requestPayload, `${requestPayload.quote.toLowerCase()}_market_cap`);
|
|
17
|
+
if (entry) {
|
|
18
|
+
entries.push(entry);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return entries;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
25
|
+
name: 'marketcap',
|
|
26
|
+
aliases: ['crypto-marketcap'],
|
|
27
|
+
transport: batchEndpointTransport,
|
|
28
|
+
inputParameters: crypto_utils_1.cryptoInputParams,
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=crypto-marketcap.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-marketcap.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-marketcap.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,wEAA4E;AAE5E,kDAKwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAsB;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,IAAA,sCAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3D,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC5C,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,EAA2C,CAAA;QAC3D,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAC1B,GAAG,EACH,cAAc,EACd,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,aAAa,CACnD,CAAA;YACD,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,WAAW;IACjB,OAAO,EAAE,CAAC,kBAAkB,CAAC;IAC7B,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAE,gCAAiB;CACnC,CAAC,CAAA"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
+
const crypto_utils_1 = require("../crypto-utils");
|
|
7
|
+
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
+
prepareRequest: (params, config) => {
|
|
9
|
+
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params, config);
|
|
10
|
+
requestBody.params.include_24hr_vol = true;
|
|
11
|
+
return requestBody;
|
|
12
|
+
},
|
|
13
|
+
parseResponse: (params, res) => {
|
|
14
|
+
const entries = [];
|
|
15
|
+
for (const requestPayload of params) {
|
|
16
|
+
const entry = (0, crypto_utils_1.constructEntry)(res, requestPayload, `${requestPayload.quote.toLowerCase()}_24h_vol`);
|
|
17
|
+
if (entry) {
|
|
18
|
+
entries.push(entry);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return entries;
|
|
22
|
+
},
|
|
23
|
+
});
|
|
24
|
+
exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
25
|
+
name: 'volume',
|
|
26
|
+
aliases: ['crypto-volume'],
|
|
27
|
+
transport: batchEndpointTransport,
|
|
28
|
+
inputParameters: crypto_utils_1.cryptoInputParams,
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=crypto-volume.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto-volume.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-volume.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AACrD,wEAA4E;AAE5E,kDAKwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAsB;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACjC,MAAM,WAAW,GAAG,IAAA,sCAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;QAC3D,WAAW,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC1C,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,EAA2C,CAAA;QAC3D,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAC1B,GAAG,EACH,cAAc,EACd,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,UAAU,CAChD,CAAA;YACD,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,QAAQ;IACd,OAAO,EAAE,CAAC,eAAe,CAAC;IAC1B,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAE,gCAAiB;CACnC,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
+
const crypto_utils_1 = require("../crypto-utils");
|
|
7
|
+
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
+
prepareRequest: (params, config) => {
|
|
9
|
+
return (0, crypto_utils_1.buildBatchedRequestBody)(params, config);
|
|
10
|
+
},
|
|
11
|
+
parseResponse: (params, res) => {
|
|
12
|
+
const entries = [];
|
|
13
|
+
for (const requestPayload of params) {
|
|
14
|
+
const entry = (0, crypto_utils_1.constructEntry)(res, requestPayload, requestPayload.quote.toLowerCase());
|
|
15
|
+
if (entry) {
|
|
16
|
+
entries.push(entry);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return entries;
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
exports.endpoint = new adapter_1.PriceEndpoint({
|
|
23
|
+
name: 'crypto',
|
|
24
|
+
aliases: ['crypto-batched', 'batched', 'batch'],
|
|
25
|
+
transport: batchEndpointTransport,
|
|
26
|
+
inputParameters: crypto_utils_1.cryptoInputParams,
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto.ts"],"names":[],"mappings":";;;AAAA,iDAAmD;AACnD,wEAA4E;AAE5E,kDAKwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAsB;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;QACjC,OAAO,IAAA,sCAAuB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChD,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,EAA2C,CAAA;QAC3D,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAAC,GAAG,EAAE,cAAc,EAAE,cAAc,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAA;YACrF,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,uBAAa,CAAsB;IAC7D,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,gBAAgB,EAAE,SAAS,EAAE,OAAO,CAAC;IAC/C,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAE,gCAAiB;CACnC,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
+
const global_utils_1 = require("../global-utils");
|
|
7
|
+
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
+
prepareRequest: (params, config) => {
|
|
9
|
+
return (0, global_utils_1.buildGlobalRequestBody)(config.API_KEY);
|
|
10
|
+
},
|
|
11
|
+
parseResponse: (params, res) => {
|
|
12
|
+
const entries = [];
|
|
13
|
+
for (const requestPayload of params) {
|
|
14
|
+
const entry = (0, global_utils_1.constructEntry)(res, requestPayload, 'market_cap_percentage');
|
|
15
|
+
if (entry) {
|
|
16
|
+
entries.push(entry);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return entries;
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
23
|
+
name: 'dominance',
|
|
24
|
+
aliases: ['market_cap_percentage'],
|
|
25
|
+
transport: batchEndpointTransport,
|
|
26
|
+
inputParameters: global_utils_1.inputParameters,
|
|
27
|
+
});
|
|
28
|
+
//# sourceMappingURL=dominance.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dominance.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/dominance.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,wEAA4E;AAE5E,kDAKwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAsB;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAA4B,EAAE;QAC3D,OAAO,IAAA,qCAAsB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAyC,EAAE;QACpE,MAAM,OAAO,GAAG,EAA2C,CAAA;QAC3D,KAAK,MAAM,cAAc,IAAI,MAAM,EAAE;YACnC,MAAM,KAAK,GAAG,IAAA,6BAAc,EAAC,GAAG,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAA;YAC1E,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,WAAW;IACjB,OAAO,EAAE,CAAC,uBAAuB,CAAC;IAClC,SAAS,EAAE,sBAAsB;IACjC,eAAe,EAAf,8BAAe;CAChB,CAAC,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.endpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
|
+
const global_utils_1 = require("../global-utils");
|
|
7
|
+
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
+
prepareRequest: (params, config) => {
|
|
9
|
+
return (0, global_utils_1.buildGlobalRequestBody)(config.API_KEY);
|
|
10
|
+
},
|
|
11
|
+
parseResponse: (params, res) => {
|
|
12
|
+
const entries = [];
|
|
13
|
+
for (const requestPayload of params) {
|
|
14
|
+
const entry = (0, global_utils_1.constructEntry)(res, requestPayload, 'total_market_cap');
|
|
15
|
+
if (entry) {
|
|
16
|
+
entries.push(entry);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
return entries;
|
|
20
|
+
},
|
|
21
|
+
});
|
|
22
|
+
exports.endpoint = new adapter_1.AdapterEndpoint({
|
|
23
|
+
name: 'globalmarketcap',
|
|
24
|
+
aliases: ['total_market_cap'],
|
|
25
|
+
transport: batchEndpointTransport,
|
|
26
|
+
inputParameters: global_utils_1.inputParameters,
|
|
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":";;;AAAA,iDAAqD;AAErD,wEAA4E;AAE5E,kDAKwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAsB;IAC5E,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAA4B,EAAE;QAC3D,OAAO,IAAA,qCAAsB,EAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC/C,CAAC;IACD,aAAa,EAAE,CAAC,MAAM,EAAE,GAAG,EAAyC,EAAE;QACpE,MAAM,OAAO,GAAG,EAA2C,CAAA;QAC3D,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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export { endpoint as coins } from './coins';
|
|
2
|
+
export { endpoint as crypto } from './crypto';
|
|
3
|
+
export { endpoint as cryptoMarketcap } from './crypto-marketcap';
|
|
4
|
+
export { endpoint as globalMarketcap } from './global-marketcap';
|
|
5
|
+
export { endpoint as dominance } from './dominance';
|
|
6
|
+
export { endpoint as cryptoVolume } from './crypto-volume';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cryptoVolume = exports.dominance = exports.globalMarketcap = exports.cryptoMarketcap = exports.crypto = exports.coins = void 0;
|
|
4
|
+
var coins_1 = require("./coins");
|
|
5
|
+
Object.defineProperty(exports, "coins", { enumerable: true, get: function () { return coins_1.endpoint; } });
|
|
6
|
+
var crypto_1 = require("./crypto");
|
|
7
|
+
Object.defineProperty(exports, "crypto", { enumerable: true, get: function () { return crypto_1.endpoint; } });
|
|
8
|
+
var crypto_marketcap_1 = require("./crypto-marketcap");
|
|
9
|
+
Object.defineProperty(exports, "cryptoMarketcap", { enumerable: true, get: function () { return crypto_marketcap_1.endpoint; } });
|
|
10
|
+
var global_marketcap_1 = require("./global-marketcap");
|
|
11
|
+
Object.defineProperty(exports, "globalMarketcap", { enumerable: true, get: function () { return global_marketcap_1.endpoint; } });
|
|
12
|
+
var dominance_1 = require("./dominance");
|
|
13
|
+
Object.defineProperty(exports, "dominance", { enumerable: true, get: function () { return dominance_1.endpoint; } });
|
|
14
|
+
var crypto_volume_1 = require("./crypto-volume");
|
|
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,42 @@
|
|
|
1
|
+
import { HttpRequestConfig, HttpResponse } from '../../../transports';
|
|
2
|
+
import { InputParameters } from '../../../validation';
|
|
3
|
+
import { SettingsMap } from '../../../config';
|
|
4
|
+
export declare const inputParameters: InputParameters;
|
|
5
|
+
export interface GlobalRequestParams {
|
|
6
|
+
market: string;
|
|
7
|
+
}
|
|
8
|
+
export interface ProviderResponseBody {
|
|
9
|
+
data: {
|
|
10
|
+
active_cryptocurrencies: number;
|
|
11
|
+
upcoming_icos: number;
|
|
12
|
+
ongoing_icos: number;
|
|
13
|
+
ended_icos: number;
|
|
14
|
+
markets: number;
|
|
15
|
+
total_market_cap: Record<string, number>;
|
|
16
|
+
total_volume: Record<string, number>;
|
|
17
|
+
market_cap_percentage: Record<string, number>;
|
|
18
|
+
market_cap_change_percentage_24h_usd: number;
|
|
19
|
+
updated_at: number;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
interface ResultEntry {
|
|
23
|
+
value: number;
|
|
24
|
+
params: GlobalRequestParams;
|
|
25
|
+
}
|
|
26
|
+
export declare type GlobalEndpointTypes = {
|
|
27
|
+
Request: {
|
|
28
|
+
Params: GlobalRequestParams;
|
|
29
|
+
};
|
|
30
|
+
Response: {
|
|
31
|
+
Data: ProviderResponseBody;
|
|
32
|
+
Result: number;
|
|
33
|
+
};
|
|
34
|
+
CustomSettings: SettingsMap;
|
|
35
|
+
Provider: {
|
|
36
|
+
RequestBody: never;
|
|
37
|
+
ResponseBody: ProviderResponseBody;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
export declare const buildGlobalRequestBody: (apiKey?: string) => HttpRequestConfig<never>;
|
|
41
|
+
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload: GlobalRequestParams, resultPath: 'total_market_cap' | 'market_cap_percentage') => ResultEntry | undefined;
|
|
42
|
+
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;AAIjD,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;AAyCM,MAAM,sBAAsB,GAAG,CAAC,MAAe,EAA4B,EAAE;IAClF,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,GAAuC,EACvC,cAAmC,EACnC,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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
import { PriceAdapter } from '../../../adapter';
|
|
3
|
+
export declare const adapter: PriceAdapter<import("../../../config").SettingsMap>;
|
|
4
|
+
export declare const server: () => Promise<import("fastify/types/instance").FastifyInstance<import("fastify").RawServerDefault, import("http").IncomingMessage, import("http").ServerResponse<import("http").IncomingMessage>, import("fastify").FastifyBaseLogger, import("fastify").FastifyTypeProviderDefault> | undefined>;
|
|
@@ -0,0 +1,19 @@
|
|
|
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.server = exports.adapter = void 0;
|
|
7
|
+
const __1 = require("../../..");
|
|
8
|
+
const adapter_1 = require("../../../adapter");
|
|
9
|
+
const overrides_json_1 = __importDefault(require("./config/overrides.json"));
|
|
10
|
+
const endpoint_1 = require("./endpoint");
|
|
11
|
+
exports.adapter = new adapter_1.PriceAdapter({
|
|
12
|
+
defaultEndpoint: 'crypto',
|
|
13
|
+
name: 'COINGECKO',
|
|
14
|
+
endpoints: [endpoint_1.crypto, endpoint_1.coins, endpoint_1.cryptoMarketcap, endpoint_1.cryptoVolume, endpoint_1.dominance, endpoint_1.globalMarketcap],
|
|
15
|
+
overrides: overrides_json_1.default['coingecko'],
|
|
16
|
+
});
|
|
17
|
+
const server = () => (0, __1.expose)(exports.adapter);
|
|
18
|
+
exports.server = server;
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/index.ts"],"names":[],"mappings":";;;;;;AAAA,gCAAiC;AACjC,8CAA+C;AAC/C,6EAA+C;AAC/C,yCAOmB;AAEN,QAAA,OAAO,GAAG,IAAI,sBAAY,CAAC;IACtC,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,7 @@
|
|
|
1
|
+
import { AdapterEndpoint } from '../../adapter';
|
|
2
|
+
interface AdapterRequestParams {
|
|
3
|
+
base: string;
|
|
4
|
+
quote: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const batchEndpoint: AdapterEndpoint<AdapterRequestParams, import("../../transports").BackgroundStoredResultType, import("../../config").SettingsMap>;
|
|
7
|
+
export {};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.batchEndpoint = void 0;
|
|
4
|
+
const adapter_1 = require("../../adapter");
|
|
5
|
+
const batch_warming_1 = require("../../transports/batch-warming");
|
|
6
|
+
const DEFAULT_URL = 'https://pro-api.coingecko.com/api/v3';
|
|
7
|
+
const inputParameters = {
|
|
8
|
+
coinid: {
|
|
9
|
+
description: 'The CoinGecko id or array of ids of the coin(s) to query (Note: because of current limitations to use a dummy base will need to be supplied)',
|
|
10
|
+
required: false,
|
|
11
|
+
},
|
|
12
|
+
base: {
|
|
13
|
+
aliases: ['from', 'coin'],
|
|
14
|
+
description: 'The symbol or array of symbols 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 batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
24
|
+
prepareRequest: (params, config) => {
|
|
25
|
+
return {
|
|
26
|
+
baseURL: DEFAULT_URL,
|
|
27
|
+
url: '/simple/price',
|
|
28
|
+
method: 'GET',
|
|
29
|
+
params: {
|
|
30
|
+
ids: [...new Set(params.map((p) => p.base))].join(','),
|
|
31
|
+
vs_currencies: [...new Set(params.map((p) => p.quote))].join(','),
|
|
32
|
+
x_cg_pro_api_key: config.API_KEY,
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
},
|
|
36
|
+
parseResponse: (params, res) => {
|
|
37
|
+
const entries = [];
|
|
38
|
+
for (const [base, entry] of Object.entries(res.data)) {
|
|
39
|
+
for (const [quote, price] of Object.entries(entry)) {
|
|
40
|
+
entries.push({
|
|
41
|
+
params: { base, quote },
|
|
42
|
+
value: price,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return entries;
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
exports.batchEndpoint = new adapter_1.AdapterEndpoint({
|
|
50
|
+
name: 'batch',
|
|
51
|
+
transport: batchEndpointTransport,
|
|
52
|
+
inputParameters,
|
|
53
|
+
});
|
|
54
|
+
//# sourceMappingURL=batch-warming.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"batch-warming.js","sourceRoot":"","sources":["../../../../src/examples/coingecko-old/batch-warming.ts"],"names":[],"mappings":";;;AACA,2CAA+C;AAC/C,kEAAsE;AAKtE,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,MAAqB,EACoB,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,MAAM,CAAC,OAAO;aACjC;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,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.adapter = void 0;
|
|
4
|
+
const adapter_1 = require("../../adapter");
|
|
5
|
+
const batch_warming_1 = require("./batch-warming");
|
|
6
|
+
const rest_1 = require("./rest");
|
|
7
|
+
exports.adapter = new adapter_1.Adapter({
|
|
8
|
+
name: 'COINGECKO',
|
|
9
|
+
defaultEndpoint: 'batch',
|
|
10
|
+
endpoints: [rest_1.restEndpoint, batch_warming_1.batchEndpoint],
|
|
11
|
+
});
|
|
12
|
+
//# sourceMappingURL=index.js.map
|