@chainlink/external-adapter-framework 0.8.1 → 0.9.0
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 +6 -50
- package/adapter/basic.js +2 -165
- package/adapter/basic.js.map +1 -1
- package/adapter/endpoint.d.ts +6 -6
- package/adapter/endpoint.js +0 -1
- package/adapter/endpoint.js.map +1 -1
- package/adapter/price.d.ts +8 -38
- package/adapter/price.js +1 -43
- package/adapter/price.js.map +1 -1
- package/adapter/types.d.ts +14 -37
- package/background-executor.js +4 -19
- package/background-executor.js.map +1 -1
- package/cache/index.d.ts +16 -9
- package/cache/index.js +46 -4
- package/cache/index.js.map +1 -1
- package/config/index.d.ts +11 -19
- package/config/index.js +39 -54
- package/config/index.js.map +1 -1
- package/examples/bank-frick/accounts.d.ts +25 -17
- package/examples/bank-frick/accounts.js +13 -23
- package/examples/bank-frick/accounts.js.map +1 -1
- package/examples/bank-frick/config/index.d.ts +0 -5
- package/examples/bank-frick/config/index.js +0 -5
- package/examples/bank-frick/config/index.js.map +1 -1
- package/examples/bank-frick/index.d.ts +15 -1
- package/examples/bank-frick/index.js +1 -1
- package/examples/coingecko/src/config/index.d.ts +0 -7
- package/examples/coingecko/src/config/index.js +1 -8
- package/examples/coingecko/src/config/index.js.map +1 -1
- package/examples/coingecko/src/crypto-utils.d.ts +4 -19
- package/examples/coingecko/src/crypto-utils.js +2 -1
- package/examples/coingecko/src/crypto-utils.js.map +1 -1
- package/examples/coingecko/src/endpoint/coins.d.ts +3 -20
- package/examples/coingecko/src/endpoint/coins.js +2 -2
- package/examples/coingecko/src/endpoint/coins.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +2 -2
- package/examples/coingecko/src/endpoint/crypto-marketcap.js +2 -2
- package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto-volume.d.ts +2 -2
- package/examples/coingecko/src/endpoint/crypto-volume.js +2 -2
- package/examples/coingecko/src/endpoint/crypto-volume.js.map +1 -1
- package/examples/coingecko/src/endpoint/crypto.d.ts +4 -2
- package/examples/coingecko/src/endpoint/crypto.js +2 -2
- package/examples/coingecko/src/endpoint/crypto.js.map +1 -1
- package/examples/coingecko/src/endpoint/dominance.d.ts +2 -2
- package/examples/coingecko/src/endpoint/dominance.js +2 -2
- package/examples/coingecko/src/endpoint/dominance.js.map +1 -1
- package/examples/coingecko/src/endpoint/global-marketcap.d.ts +2 -2
- package/examples/coingecko/src/endpoint/global-marketcap.js +2 -2
- package/examples/coingecko/src/endpoint/global-marketcap.js.map +1 -1
- package/examples/coingecko/src/global-utils.d.ts +3 -18
- package/examples/coingecko/src/global-utils.js.map +1 -1
- package/examples/coingecko/src/index.js +1 -3
- package/examples/coingecko/src/index.js.map +1 -1
- 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 +0 -7
- package/examples/cryptocompare/src/config/index.js +1 -8
- package/examples/cryptocompare/src/config/index.js.map +1 -1
- package/examples/cryptocompare/src/endpoints/crypto.d.ts +2 -14
- package/examples/cryptocompare/src/endpoints/crypto.js.map +1 -1
- package/examples/cryptocompare/src/index.js +1 -3
- package/examples/cryptocompare/src/index.js.map +1 -1
- package/examples/genesis/config/index.d.ts +0 -5
- package/examples/genesis/config/index.js +0 -5
- package/examples/genesis/config/index.js.map +1 -1
- package/examples/genesis/index.js +1 -1
- package/examples/genesis/sseStream.d.ts +2 -13
- package/examples/genesis/sseStream.js +1 -4
- package/examples/genesis/sseStream.js.map +1 -1
- 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 +13 -0
- package/examples/ncfx/index.js +12 -0
- package/examples/ncfx/index.js.map +1 -0
- package/examples/ncfx/websocket.d.ts +47 -0
- package/examples/ncfx/websocket.js +74 -0
- package/examples/ncfx/websocket.js.map +1 -0
- package/index.d.ts +0 -1
- package/index.js +6 -4
- package/index.js.map +1 -1
- package/metrics/index.d.ts +0 -2
- package/metrics/index.js +4 -5
- package/metrics/index.js.map +1 -1
- package/metrics/util.d.ts +5 -5
- package/metrics/util.js.map +1 -1
- package/package.json +9 -7
- package/rate-limiting/background/fixed-frequency.d.ts +3 -2
- package/rate-limiting/background/fixed-frequency.js.map +1 -1
- package/rate-limiting/index.d.ts +4 -4
- package/rate-limiting/index.js +1 -1
- package/rate-limiting/index.js.map +1 -1
- package/rate-limiting/request/simple-counting.d.ts +3 -2
- package/rate-limiting/request/simple-counting.js.map +1 -1
- package/transports/batch-warming.d.ts +17 -39
- package/transports/batch-warming.js +16 -43
- package/transports/batch-warming.js.map +1 -1
- package/transports/index.d.ts +31 -65
- package/transports/index.js +59 -2
- package/transports/index.js.map +1 -1
- package/transports/metrics.d.ts +2 -2
- package/transports/metrics.js +2 -2
- package/transports/metrics.js.map +1 -1
- package/transports/rest.d.ts +30 -42
- package/transports/rest.js +25 -17
- package/transports/rest.js.map +1 -1
- package/transports/sse.d.ts +20 -40
- package/transports/sse.js +8 -10
- package/transports/sse.js.map +1 -1
- package/transports/websocket.d.ts +25 -40
- package/transports/websocket.js +16 -13
- package/transports/websocket.js.map +1 -1
- package/util/logger.d.ts +0 -2
- package/util/logger.js +7 -4
- package/util/logger.js.map +1 -1
- package/util/request.d.ts +10 -46
- package/util/subscription-set/subscription-set.d.ts +1 -1
- package/util/subscription-set/subscription-set.js +1 -1
- package/util/subscription-set/subscription-set.js.map +1 -1
- package/util/test-payload-loader.d.ts +0 -1
- package/util/test-payload-loader.js +1 -2
- package/util/test-payload-loader.js.map +1 -1
- package/validation/error.d.ts +3 -1
- package/validation/error.js +4 -2
- package/validation/error.js.map +1 -1
- package/validation/index.js +17 -26
- package/validation/index.js.map +1 -1
- package/validation/input-params.d.ts +1 -0
- package/validation/input-params.js +28 -0
- package/validation/input-params.js.map +1 -1
- package/validation/input-validator.js +2 -1
- package/validation/input-validator.js.map +1 -1
- package/validation/override-functions.d.ts +3 -0
- package/validation/override-functions.js +41 -0
- package/validation/override-functions.js.map +1 -0
- package/README.md +0 -67
- package/transports/routing.d.ts +0 -21
- package/transports/routing.js +0 -50
- package/transports/routing.js.map +0 -1
|
@@ -1,18 +1,11 @@
|
|
|
1
1
|
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
-
import { AdapterDependencies, AdapterEndpoint } from '../../adapter';
|
|
3
|
-
import { Cache } from '../../cache';
|
|
4
|
-
import { AdapterConfig } from '../../config';
|
|
5
|
-
import { Transport } from '../../transports';
|
|
6
|
-
import { AdapterRequest, AdapterResponse, SingleNumberResultResponse } from '../../util';
|
|
7
|
-
import { customSettings } from './config';
|
|
8
2
|
import { AdapterInputParameters, BankFrickAccountsRequestSchema, BankFrickAccountsResponseSchema, SigningAlgorithm } from './types';
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
3
|
+
import { customSettings } from './config';
|
|
4
|
+
import { Transport } from '../../transports';
|
|
5
|
+
import { AdapterRequest, AdapterResponse } from '../../util';
|
|
6
|
+
import { AdapterConfig } from '../../config';
|
|
7
|
+
import { Cache } from '../../cache';
|
|
8
|
+
import { AdapterDependencies, AdapterEndpoint } from '../../adapter';
|
|
16
9
|
/**
|
|
17
10
|
* RestTransport implementation for Bank Frick, which has unusually complex requirements for an EA
|
|
18
11
|
* The RestTransport is generally built to make a single request and return a single response.
|
|
@@ -21,10 +14,11 @@ export declare type AccountsEndpointTypes = {
|
|
|
21
14
|
* This transport does all the heavy lifting in setup(), which is where the paging happens, and it
|
|
22
15
|
* also has complex retry logic that will attempt to refresh the JWT when certain HTTP errors occur
|
|
23
16
|
*/
|
|
24
|
-
export declare class BankFrickAccountsTransport implements Transport<
|
|
17
|
+
export declare class BankFrickAccountsTransport implements Transport<AdapterInputParameters, number, typeof customSettings> {
|
|
25
18
|
token: string;
|
|
26
|
-
cache: Cache
|
|
19
|
+
cache: Cache;
|
|
27
20
|
initialize(dependencies: AdapterDependencies): Promise<void>;
|
|
21
|
+
hasBeenSetUp(): Promise<boolean>;
|
|
28
22
|
/**
|
|
29
23
|
* Creates an AxiosRequestConfig object for fetching a page of accounts from the Bank Frick API
|
|
30
24
|
*/
|
|
@@ -40,6 +34,20 @@ export declare class BankFrickAccountsTransport implements Transport<AccountsEnd
|
|
|
40
34
|
* Fetches pages of data from the Bank Frick API, scans for accounts by IBAN, and returns the balance
|
|
41
35
|
* of all found accounts. Returns a 404 if any IBAN isn't found.
|
|
42
36
|
*/
|
|
43
|
-
|
|
37
|
+
setup(req: AdapterRequest<AdapterInputParameters>, config: AdapterConfig<typeof customSettings>): Promise<AdapterResponse<number>>;
|
|
44
38
|
}
|
|
45
|
-
export declare const accountsRestEndpoint: AdapterEndpoint<
|
|
39
|
+
export declare const accountsRestEndpoint: AdapterEndpoint<AdapterInputParameters, number, {
|
|
40
|
+
readonly PAGE_SIZE: {
|
|
41
|
+
readonly description: "The number of accounts to fetch per call to /accounts. Must be >= 1 and <= 500.";
|
|
42
|
+
readonly type: "number";
|
|
43
|
+
readonly required: false;
|
|
44
|
+
readonly default: 500;
|
|
45
|
+
readonly validate: (value?: number | undefined) => string | undefined;
|
|
46
|
+
};
|
|
47
|
+
readonly PRIVATE_KEY: {
|
|
48
|
+
readonly description: "";
|
|
49
|
+
readonly type: "string";
|
|
50
|
+
readonly required: true;
|
|
51
|
+
readonly validate: (value: string) => string | undefined;
|
|
52
|
+
};
|
|
53
|
+
}>;
|
|
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.accountsRestEndpoint = exports.BankFrickAccountsTransport = void 0;
|
|
7
7
|
const axios_1 = __importDefault(require("axios"));
|
|
8
|
-
const
|
|
9
|
-
const
|
|
8
|
+
const util_1 = require("./util");
|
|
9
|
+
const util_2 = require("../../util");
|
|
10
10
|
const error_1 = require("../../validation/error");
|
|
11
|
-
const
|
|
12
|
-
const logger = (0,
|
|
11
|
+
const adapter_1 = require("../../adapter");
|
|
12
|
+
const logger = (0, util_2.makeLogger)('BankFrickTransport');
|
|
13
13
|
// Note: this is a shallow pattern that only checks for a country code since IBANs in the sandbox are invalid
|
|
14
14
|
const ibanPattern = /^[A-Z]{2}[A-Z\d]{14,30}$/;
|
|
15
15
|
const inputParameters = {
|
|
@@ -47,6 +47,9 @@ class BankFrickAccountsTransport {
|
|
|
47
47
|
async initialize(dependencies) {
|
|
48
48
|
this.cache = dependencies.cache;
|
|
49
49
|
}
|
|
50
|
+
async hasBeenSetUp() {
|
|
51
|
+
return false; // Return false since we aren't coalescing requests
|
|
52
|
+
}
|
|
50
53
|
/**
|
|
51
54
|
* Creates an AxiosRequestConfig object for fetching a page of accounts from the Bank Frick API
|
|
52
55
|
*/
|
|
@@ -87,7 +90,7 @@ class BankFrickAccountsTransport {
|
|
|
87
90
|
else if (AuthErrors[response.status]) {
|
|
88
91
|
// We've encountered a known auth error, so try to refresh the token before making another request
|
|
89
92
|
logger.info('Auth error received from the Bank Frick API, attempting to refresh the token');
|
|
90
|
-
this.token = await (0,
|
|
93
|
+
this.token = await (0, util_1.generateJWT)(config, signingAlgorithm);
|
|
91
94
|
}
|
|
92
95
|
else if (retryNumber === config.REST_TRANSPORT_MAX_RATE_LIMIT_RETRIES) {
|
|
93
96
|
throw new error_1.AdapterError({
|
|
@@ -96,7 +99,7 @@ class BankFrickAccountsTransport {
|
|
|
96
99
|
});
|
|
97
100
|
}
|
|
98
101
|
logger.debug(`Sleeping for ${config.REST_TRANSPORT_MS_BETWEEN_RATE_LIMIT_RETRIES}ms before retrying`);
|
|
99
|
-
await (0,
|
|
102
|
+
await (0, util_2.sleep)(config.REST_TRANSPORT_MS_BETWEEN_RATE_LIMIT_RETRIES);
|
|
100
103
|
response = await axios_1.default.request(axiosRequest);
|
|
101
104
|
}
|
|
102
105
|
return response;
|
|
@@ -120,7 +123,7 @@ class BankFrickAccountsTransport {
|
|
|
120
123
|
* Fetches pages of data from the Bank Frick API, scans for accounts by IBAN, and returns the balance
|
|
121
124
|
* of all found accounts. Returns a 404 if any IBAN isn't found.
|
|
122
125
|
*/
|
|
123
|
-
async
|
|
126
|
+
async setup(req, config) {
|
|
124
127
|
const { ibanIDs, signingAlgorithm } = req.requestContext.data;
|
|
125
128
|
const { PAGE_SIZE = 500 } = config;
|
|
126
129
|
logger.debug(`Validating input: ${JSON.stringify(req.requestContext.data)}`);
|
|
@@ -134,7 +137,7 @@ class BankFrickAccountsTransport {
|
|
|
134
137
|
}
|
|
135
138
|
// Refresh the token if it isn't set
|
|
136
139
|
if (!this.token) {
|
|
137
|
-
this.token = await (0,
|
|
140
|
+
this.token = await (0, util_1.generateJWT)(config, signingAlgorithm);
|
|
138
141
|
}
|
|
139
142
|
let sum = 0;
|
|
140
143
|
let position = 0;
|
|
@@ -165,9 +168,7 @@ class BankFrickAccountsTransport {
|
|
|
165
168
|
if (keys.length > 0) {
|
|
166
169
|
logger.error(`Could not find all accounts, returning 404: ${keys.join(', ')}`);
|
|
167
170
|
const res = {
|
|
168
|
-
data:
|
|
169
|
-
result: 0,
|
|
170
|
-
},
|
|
171
|
+
data: 0,
|
|
171
172
|
statusCode: 404,
|
|
172
173
|
result: 0,
|
|
173
174
|
};
|
|
@@ -175,9 +176,7 @@ class BankFrickAccountsTransport {
|
|
|
175
176
|
}
|
|
176
177
|
logger.debug('Was able to find all accounts, returning balance across all accounts: ', sum);
|
|
177
178
|
const res = {
|
|
178
|
-
data:
|
|
179
|
-
result: sum,
|
|
180
|
-
},
|
|
179
|
+
data: sum,
|
|
181
180
|
statusCode: 200,
|
|
182
181
|
result: sum,
|
|
183
182
|
};
|
|
@@ -190,14 +189,5 @@ exports.accountsRestEndpoint = new adapter_1.AdapterEndpoint({
|
|
|
190
189
|
name: 'accounts',
|
|
191
190
|
transport: new BankFrickAccountsTransport(),
|
|
192
191
|
inputParameters,
|
|
193
|
-
cacheKeyGenerator: (data) => {
|
|
194
|
-
const sortedData = Object.keys(data)
|
|
195
|
-
.sort()
|
|
196
|
-
.reduce((a, i) => {
|
|
197
|
-
a[i] = data[i];
|
|
198
|
-
return a;
|
|
199
|
-
}, {});
|
|
200
|
-
return `accounts-${JSON.stringify(sortedData)}`;
|
|
201
|
-
},
|
|
202
192
|
});
|
|
203
193
|
//# sourceMappingURL=accounts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../src/examples/bank-frick/accounts.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAgE;
|
|
1
|
+
{"version":3,"file":"accounts.js","sourceRoot":"","sources":["../../../../src/examples/bank-frick/accounts.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,11 +8,6 @@ export declare const customSettings: {
|
|
|
8
8
|
readonly default: 500;
|
|
9
9
|
readonly validate: (value?: number) => string | undefined;
|
|
10
10
|
};
|
|
11
|
-
readonly API_KEY: {
|
|
12
|
-
readonly description: "API key";
|
|
13
|
-
readonly type: "string";
|
|
14
|
-
readonly required: true;
|
|
15
|
-
};
|
|
16
11
|
readonly PRIVATE_KEY: {
|
|
17
12
|
readonly description: "";
|
|
18
13
|
readonly type: "string";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/bank-frick/config/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,wCAA0C;AAE1C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAE5C,uCAAuC;AAC1B,QAAA,iBAAiB,GAAuB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAC/F,MAAM,aAAa,GAAG,GAAG,CAAA;AAEZ,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE;QACT,WAAW,EAAE,iFAAiF;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;YAC3B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,EAAE,CAAA;aACV;iBAAM,IAAI,KAAK,GAAG,CAAC,EAAE;gBACpB,OAAO,wCAAwC,KAAK,EAAE,CAAA;aACvD;iBAAM,IAAI,KAAK,GAAG,aAAa,EAAE;gBAChC,OAAO,iCAAiC,KAAK,EAAE,CAAA;aAChD;QACH,CAAC;KACF;IACD,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/bank-frick/config/index.ts"],"names":[],"mappings":";;;;;;AAAA,oDAA2B;AAE3B,wCAA0C;AAE1C,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,iBAAiB,CAAC,CAAA;AAE5C,uCAAuC;AAC1B,QAAA,iBAAiB,GAAuB,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC,CAAA;AAC/F,MAAM,aAAa,GAAG,GAAG,CAAA;AAEZ,QAAA,cAAc,GAAG;IAC5B,SAAS,EAAE;QACT,WAAW,EAAE,iFAAiF;QAC9F,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,KAAK;QACf,OAAO,EAAE,aAAa;QACtB,QAAQ,EAAE,CAAC,KAAc,EAAE,EAAE;YAC3B,IAAI,CAAC,KAAK,EAAE;gBACV,OAAO,EAAE,CAAA;aACV;iBAAM,IAAI,KAAK,GAAG,CAAC,EAAE;gBACpB,OAAO,wCAAwC,KAAK,EAAE,CAAA;aACvD;iBAAM,IAAI,KAAK,GAAG,aAAa,EAAE;gBAChC,OAAO,iCAAiC,KAAK,EAAE,CAAA;aAChD;QACH,CAAC;KACF;IACD,WAAW,EAAE;QACX,WAAW,EAAE,EAAE;QACf,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,CAAC,KAAa,EAAE,EAAE;YAC1B,MAAM,WAAW,GAAuB,EAAE,CAAA;YAC1C,KAAK,MAAM,SAAS,IAAI,yBAAiB,EAAE;gBACzC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAA;gBAC7B,IAAI;oBACF,gBAAM,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;oBAChE,MAAM,CAAC,KAAK,CAAC,gEAAgE,EAAE,SAAS,CAAC,CAAA;iBAC1F;gBAAC,MAAM;oBACN,MAAM,CAAC,KAAK,CAAC,wDAAwD,EAAE,SAAS,CAAC,CAAA;oBACjF,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;iBAC5B;aACF;YAED,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1B,OAAO,gFAAgF,WAAW,CAAC,IAAI,CACrG,GAAG,CACJ,EAAE,CAAA;aACJ;YACD,MAAM,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAA;QAC7F,CAAC;KACF;CACO,CAAA"}
|
|
@@ -1,2 +1,16 @@
|
|
|
1
1
|
import { Adapter } from '../../adapter';
|
|
2
|
-
export declare const adapter: Adapter<
|
|
2
|
+
export declare const adapter: Adapter<{
|
|
3
|
+
readonly PAGE_SIZE: {
|
|
4
|
+
readonly description: "The number of accounts to fetch per call to /accounts. Must be >= 1 and <= 500.";
|
|
5
|
+
readonly type: "number";
|
|
6
|
+
readonly required: false;
|
|
7
|
+
readonly default: 500;
|
|
8
|
+
readonly validate: (value?: number | undefined) => string | undefined;
|
|
9
|
+
};
|
|
10
|
+
readonly PRIVATE_KEY: {
|
|
11
|
+
readonly description: "";
|
|
12
|
+
readonly type: "string";
|
|
13
|
+
readonly required: true;
|
|
14
|
+
readonly validate: (value: string) => string | undefined;
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
@@ -5,7 +5,7 @@ const adapter_1 = require("../../adapter");
|
|
|
5
5
|
const accounts_1 = require("./accounts");
|
|
6
6
|
const config_1 = require("./config");
|
|
7
7
|
exports.adapter = new adapter_1.Adapter({
|
|
8
|
-
name: '
|
|
8
|
+
name: 'bank-frick',
|
|
9
9
|
defaultEndpoint: 'accounts',
|
|
10
10
|
endpoints: [accounts_1.accountsRestEndpoint],
|
|
11
11
|
customSettings: config_1.customSettings,
|
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
export declare const DEFAULT_API_ENDPOINT = "https://api.coingecko.com/api/v3";
|
|
2
2
|
export declare const PRO_API_ENDPOINT = "https://pro-api.coingecko.com/api/v3";
|
|
3
|
-
export declare const customSettings: {
|
|
4
|
-
readonly API_KEY: {
|
|
5
|
-
readonly description: "API key";
|
|
6
|
-
readonly type: "string";
|
|
7
|
-
readonly required: false;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
@@ -1,13 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.PRO_API_ENDPOINT = exports.DEFAULT_API_ENDPOINT = void 0;
|
|
4
4
|
exports.DEFAULT_API_ENDPOINT = 'https://api.coingecko.com/api/v3';
|
|
5
5
|
exports.PRO_API_ENDPOINT = 'https://pro-api.coingecko.com/api/v3';
|
|
6
|
-
exports.customSettings = {
|
|
7
|
-
API_KEY: {
|
|
8
|
-
description: 'API key',
|
|
9
|
-
type: 'string',
|
|
10
|
-
required: false,
|
|
11
|
-
},
|
|
12
|
-
};
|
|
13
6
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/config/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,kCAAkC,CAAA;AACzD,QAAA,gBAAgB,GAAG,sCAAsC,CAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/config/index.ts"],"names":[],"mappings":";;;AAAa,QAAA,oBAAoB,GAAG,kCAAkC,CAAA;AACzD,QAAA,gBAAgB,GAAG,sCAAsC,CAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { HttpRequestConfig, HttpResponse } from '../../../transports';
|
|
2
|
-
import { customSettings } from './config';
|
|
3
2
|
import { AdapterConfig } from '../../../config';
|
|
4
3
|
export interface CryptoRequestParams {
|
|
5
4
|
coinid?: string;
|
|
@@ -16,7 +15,7 @@ export declare const cryptoInputParams: {
|
|
|
16
15
|
readonly aliases: readonly ["from", "coin"];
|
|
17
16
|
readonly type: "string";
|
|
18
17
|
readonly description: "The symbol of symbols of the currency to query";
|
|
19
|
-
readonly required:
|
|
18
|
+
readonly required: true;
|
|
20
19
|
};
|
|
21
20
|
readonly quote: {
|
|
22
21
|
readonly aliases: readonly ["to", "market"];
|
|
@@ -36,7 +35,7 @@ export interface ProviderResponseBody {
|
|
|
36
35
|
[quote: string]: number;
|
|
37
36
|
};
|
|
38
37
|
}
|
|
39
|
-
interface
|
|
38
|
+
interface ResultEntryWithoutOverrides {
|
|
40
39
|
value: number;
|
|
41
40
|
params: {
|
|
42
41
|
quote: string;
|
|
@@ -44,20 +43,6 @@ interface ResultEntry {
|
|
|
44
43
|
coinid?: string;
|
|
45
44
|
};
|
|
46
45
|
}
|
|
47
|
-
export declare
|
|
48
|
-
|
|
49
|
-
Params: CryptoRequestParams;
|
|
50
|
-
};
|
|
51
|
-
Response: {
|
|
52
|
-
Data: ProviderResponseBody;
|
|
53
|
-
Result: number;
|
|
54
|
-
};
|
|
55
|
-
CustomSettings: typeof customSettings;
|
|
56
|
-
Provider: {
|
|
57
|
-
RequestBody: ProviderRequestBody;
|
|
58
|
-
ResponseBody: ProviderResponseBody;
|
|
59
|
-
};
|
|
60
|
-
};
|
|
61
|
-
export declare const buildBatchedRequestBody: (params: CryptoRequestParams[], config: AdapterConfig<typeof customSettings>) => HttpRequestConfig<ProviderRequestBody>;
|
|
62
|
-
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload: CryptoRequestParams, resultPath: string) => ResultEntry | undefined;
|
|
46
|
+
export declare const buildBatchedRequestBody: (params: CryptoRequestParams[], config: AdapterConfig) => HttpRequestConfig<ProviderRequestBody>;
|
|
47
|
+
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload: CryptoRequestParams, resultPath: string) => ResultEntryWithoutOverrides | undefined;
|
|
63
48
|
export {};
|
|
@@ -13,7 +13,7 @@ exports.cryptoInputParams = {
|
|
|
13
13
|
aliases: ['from', 'coin'],
|
|
14
14
|
type: 'string',
|
|
15
15
|
description: 'The symbol of symbols of the currency to query',
|
|
16
|
-
required:
|
|
16
|
+
required: true,
|
|
17
17
|
},
|
|
18
18
|
quote: {
|
|
19
19
|
aliases: ['to', 'market'],
|
|
@@ -54,6 +54,7 @@ const constructEntry = (res, requestPayload, resultPath) => {
|
|
|
54
54
|
else {
|
|
55
55
|
entry.params.base = requestPayload.base;
|
|
56
56
|
}
|
|
57
|
+
delete entry.params.overrides;
|
|
57
58
|
return entry;
|
|
58
59
|
};
|
|
59
60
|
exports.constructEntry = constructEntry;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/crypto-utils.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"crypto-utils.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/crypto-utils.ts"],"names":[],"mappings":";;;AACA,qCAAiE;AAEjE,iDAAiD;AAUpC,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,IAAI;KACf;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;AAkCH,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,EACuB,EAAE;IAC3C,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,CAAC,MAAM,CAAC,SAAS,CAAA;IAC7B,OAAO,KAAK,CAAA;AACd,CAAC,CAAA;AAvBY,QAAA,cAAc,kBAuB1B"}
|
|
@@ -1,26 +1,9 @@
|
|
|
1
|
-
import { InputParameters } from '../../../../../src/validation';
|
|
2
1
|
import { AdapterEndpoint } from '../../../../adapter';
|
|
3
|
-
import {
|
|
4
|
-
import { customSettings } from '../config';
|
|
2
|
+
import { InputParameters } from '../../../../../src/validation';
|
|
5
3
|
export declare const inputParameters: InputParameters;
|
|
6
|
-
interface CoinsResponse {
|
|
4
|
+
export interface CoinsResponse {
|
|
7
5
|
id: string;
|
|
8
6
|
symbol: string;
|
|
9
7
|
name: string;
|
|
10
8
|
}
|
|
11
|
-
declare
|
|
12
|
-
Request: {
|
|
13
|
-
Params: EmptyObject;
|
|
14
|
-
};
|
|
15
|
-
Response: {
|
|
16
|
-
Data: CoinsResponse;
|
|
17
|
-
Result: null;
|
|
18
|
-
};
|
|
19
|
-
CustomSettings: typeof customSettings;
|
|
20
|
-
Provider: {
|
|
21
|
-
RequestBody: never;
|
|
22
|
-
ResponseBody: CoinsResponse;
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
export declare const endpoint: AdapterEndpoint<EndpointTypes>;
|
|
26
|
-
export {};
|
|
9
|
+
export declare const endpoint: AdapterEndpoint<import("../../../../util/request").AdapterRequestData, CoinsResponse[], import("../../../../config").SettingsMap>;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.endpoint = exports.inputParameters = void 0;
|
|
4
|
-
const transports_1 = require("../../../../../src/transports");
|
|
5
4
|
const adapter_1 = require("../../../../adapter");
|
|
5
|
+
const transports_1 = require("../../../../../src/transports");
|
|
6
6
|
const config_1 = require("../config");
|
|
7
7
|
exports.inputParameters = {};
|
|
8
8
|
const restEndpointTransport = new transports_1.RestTransport({
|
|
@@ -20,7 +20,7 @@ const restEndpointTransport = new transports_1.RestTransport({
|
|
|
20
20
|
return {
|
|
21
21
|
data: res.data,
|
|
22
22
|
statusCode: 200,
|
|
23
|
-
result:
|
|
23
|
+
result: res.data,
|
|
24
24
|
};
|
|
25
25
|
},
|
|
26
26
|
options: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coins.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/coins.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"coins.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/coins.ts"],"names":[],"mappings":";;;AACA,iDAAqD;AACrD,8DAA8F;AAG9F,sCAAkE;AAErD,QAAA,eAAe,GAAoB,EAAE,CAAA;AAQlD,MAAM,qBAAqB,GAAG,IAAI,0BAAa,CAAC;IAC9C,cAAc,EAAE,CAAC,CAAiB,EAAE,MAAqB,EAAoC,EAAE;QAC7F,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,CACb,GAAmB,EACnB,GAAkC,EACA,EAAE;QACpC,OAAO;YACL,IAAI,EAAE,GAAG,CAAC,IAAI;YACd,UAAU,EAAE,GAAG;YACf,MAAM,EAAE,GAAG,CAAC,IAAI;SACjB,CAAA;IACH,CAAC;IACD,OAAO,EAAE;QACP,iBAAiB,EAAE;YACjB,OAAO,EAAE,IAAI;SACd;KACF;CACF,CAAC,CAAA;AAEW,QAAA,QAAQ,GAAG,IAAI,yBAAe,CAAC;IAC1C,IAAI,EAAE,OAAO;IACb,SAAS,EAAE,qBAAqB;IAChC,eAAe,EAAf,uBAAe;CAChB,CAAC,CAAA"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdapterEndpoint } from '../../../../adapter';
|
|
2
|
-
import {
|
|
3
|
-
export declare const endpoint: AdapterEndpoint<
|
|
2
|
+
import { CryptoRequestParams } from '../crypto-utils';
|
|
3
|
+
export declare const endpoint: AdapterEndpoint<CryptoRequestParams, unknown, import("../../../../config").SettingsMap>;
|
|
@@ -5,8 +5,8 @@ const adapter_1 = require("../../../../adapter");
|
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
6
|
const crypto_utils_1 = require("../crypto-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
-
prepareRequest: (params,
|
|
9
|
-
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params,
|
|
8
|
+
prepareRequest: (params, context) => {
|
|
9
|
+
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params, context.adapterConfig);
|
|
10
10
|
requestBody.params.include_market_cap = true;
|
|
11
11
|
return requestBody;
|
|
12
12
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-marketcap.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-marketcap.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"crypto-marketcap.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-marketcap.ts"],"names":[],"mappings":";;;AACA,iDAAqE;AACrE,wEAA4E;AAE5E,kDAOwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA6B,EAC7B,OAAuB,EACiB,EAAE;QAC1C,MAAM,WAAW,GAAG,IAAA,sCAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;QAC1E,WAAW,CAAC,MAAM,CAAC,kBAAkB,GAAG,IAAI,CAAA;QAC5C,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,aAAa,EAAE,CACb,MAA6B,EAC7B,GAAuC,EACA,EAAE;QACzC,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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdapterEndpoint } from '../../../../adapter';
|
|
2
|
-
import {
|
|
3
|
-
export declare const endpoint: AdapterEndpoint<
|
|
2
|
+
import { CryptoRequestParams } from '../crypto-utils';
|
|
3
|
+
export declare const endpoint: AdapterEndpoint<CryptoRequestParams, unknown, import("../../../../config").SettingsMap>;
|
|
@@ -5,8 +5,8 @@ const adapter_1 = require("../../../../adapter");
|
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
6
|
const crypto_utils_1 = require("../crypto-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
-
prepareRequest: (params,
|
|
9
|
-
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params,
|
|
8
|
+
prepareRequest: (params, context) => {
|
|
9
|
+
const requestBody = (0, crypto_utils_1.buildBatchedRequestBody)(params, context.adapterConfig);
|
|
10
10
|
requestBody.params.include_24hr_vol = true;
|
|
11
11
|
return requestBody;
|
|
12
12
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto-volume.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-volume.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"crypto-volume.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto-volume.ts"],"names":[],"mappings":";;;AACA,iDAAqE;AACrE,wEAA4E;AAE5E,kDAOwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA6B,EAC7B,OAAuB,EACiB,EAAE;QAC1C,MAAM,WAAW,GAAG,IAAA,sCAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;QAC1E,WAAW,CAAC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC1C,OAAO,WAAW,CAAA;IACpB,CAAC;IACD,aAAa,EAAE,CACb,MAA6B,EAC7B,GAAuC,EACA,EAAE;QACzC,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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import { PriceEndpoint } from '../../../../adapter';
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
export declare const endpoint: PriceEndpoint<{
|
|
3
|
+
base: string;
|
|
4
|
+
quote: string;
|
|
5
|
+
}, unknown, import("../../../../config").SettingsMap>;
|
|
@@ -5,8 +5,8 @@ const adapter_1 = require("../../../../adapter");
|
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
6
|
const crypto_utils_1 = require("../crypto-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
-
prepareRequest: (params,
|
|
9
|
-
return (0, crypto_utils_1.buildBatchedRequestBody)(params,
|
|
8
|
+
prepareRequest: (params, context) => {
|
|
9
|
+
return (0, crypto_utils_1.buildBatchedRequestBody)(params, context.adapterConfig);
|
|
10
10
|
},
|
|
11
11
|
parseResponse: (params, res) => {
|
|
12
12
|
const entries = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/crypto.ts"],"names":[],"mappings":";;;AACA,iDAAmE;AACnE,wEAA4E;AAE5E,kDAOwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA6B,EAC7B,OAAuB,EACiB,EAAE;QAC1C,OAAO,IAAA,sCAAuB,EAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,CAAA;IAC/D,CAAC;IACD,aAAa,EAAE,CACb,MAA6B,EAC7B,GAAuC,EACA,EAAE;QACzC,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,CAAC;IACxC,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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdapterEndpoint } from '../../../../adapter';
|
|
2
|
-
import {
|
|
3
|
-
export declare const endpoint: AdapterEndpoint<
|
|
2
|
+
import { AdapterRequestParams } from '../global-utils';
|
|
3
|
+
export declare const endpoint: AdapterEndpoint<AdapterRequestParams, unknown, import("../../../../config").SettingsMap>;
|
|
@@ -5,8 +5,8 @@ const adapter_1 = require("../../../../adapter");
|
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
6
|
const global_utils_1 = require("../global-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
-
prepareRequest: (params,
|
|
9
|
-
return (0, global_utils_1.buildGlobalRequestBody)(
|
|
8
|
+
prepareRequest: (params, context) => {
|
|
9
|
+
return (0, global_utils_1.buildGlobalRequestBody)(context.adapterConfig.API_KEY);
|
|
10
10
|
},
|
|
11
11
|
parseResponse: (params, res) => {
|
|
12
12
|
const entries = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dominance.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/dominance.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"dominance.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/dominance.ts"],"names":[],"mappings":";;;AACA,iDAAqE;AACrE,wEAA4E;AAE5E,kDAMwB;AAExB,MAAM,sBAAsB,GAAG,IAAI,qCAAqB,CAAC;IACvD,cAAc,EAAE,CACd,MAA8B,EAC9B,OAAuB,EACG,EAAE;QAC5B,OAAO,IAAA,qCAAsB,EAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9D,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAuC,EACC,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,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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import { AdapterEndpoint } from '../../../../adapter';
|
|
2
|
-
import {
|
|
3
|
-
export declare const endpoint: AdapterEndpoint<
|
|
2
|
+
import { AdapterRequestParams } from '../global-utils';
|
|
3
|
+
export declare const endpoint: AdapterEndpoint<AdapterRequestParams, unknown, import("../../../../config").SettingsMap>;
|
|
@@ -5,8 +5,8 @@ const adapter_1 = require("../../../../adapter");
|
|
|
5
5
|
const batch_warming_1 = require("../../../../transports/batch-warming");
|
|
6
6
|
const global_utils_1 = require("../global-utils");
|
|
7
7
|
const batchEndpointTransport = new batch_warming_1.BatchWarmingTransport({
|
|
8
|
-
prepareRequest: (params,
|
|
9
|
-
return (0, global_utils_1.buildGlobalRequestBody)(
|
|
8
|
+
prepareRequest: (params, context) => {
|
|
9
|
+
return (0, global_utils_1.buildGlobalRequestBody)(context.adapterConfig.API_KEY);
|
|
10
10
|
},
|
|
11
11
|
parseResponse: (params, res) => {
|
|
12
12
|
const entries = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-marketcap.js","sourceRoot":"","sources":["../../../../../../src/examples/coingecko/src/endpoint/global-marketcap.ts"],"names":[],"mappings":";;;
|
|
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,EACG,EAAE;QAC5B,OAAO,IAAA,qCAAsB,EAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAA;IAC9D,CAAC;IACD,aAAa,EAAE,CACb,MAA8B,EAC9B,GAAuC,EACC,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"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { HttpRequestConfig, HttpResponse } from '../../../transports';
|
|
2
|
-
import { customSettings } from './config';
|
|
3
2
|
import { InputParameters } from '../../../validation';
|
|
4
3
|
export declare const inputParameters: InputParameters;
|
|
5
|
-
export interface
|
|
4
|
+
export interface AdapterRequestParams {
|
|
6
5
|
market: string;
|
|
7
6
|
}
|
|
8
7
|
export interface ProviderResponseBody {
|
|
@@ -21,22 +20,8 @@ export interface ProviderResponseBody {
|
|
|
21
20
|
}
|
|
22
21
|
interface ResultEntry {
|
|
23
22
|
value: number;
|
|
24
|
-
params:
|
|
23
|
+
params: AdapterRequestParams;
|
|
25
24
|
}
|
|
26
|
-
export declare type GlobalEndpointTypes = {
|
|
27
|
-
Request: {
|
|
28
|
-
Params: GlobalRequestParams;
|
|
29
|
-
};
|
|
30
|
-
Response: {
|
|
31
|
-
Data: ProviderResponseBody;
|
|
32
|
-
Result: number;
|
|
33
|
-
};
|
|
34
|
-
CustomSettings: typeof customSettings;
|
|
35
|
-
Provider: {
|
|
36
|
-
RequestBody: never;
|
|
37
|
-
ResponseBody: ProviderResponseBody;
|
|
38
|
-
};
|
|
39
|
-
};
|
|
40
25
|
export declare const buildGlobalRequestBody: (apiKey?: string) => HttpRequestConfig<never>;
|
|
41
|
-
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload:
|
|
26
|
+
export declare const constructEntry: (res: HttpResponse<ProviderResponseBody>, requestPayload: AdapterRequestParams, resultPath: 'total_market_cap' | 'market_cap_percentage') => ResultEntry | undefined;
|
|
42
27
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-utils.js","sourceRoot":"","sources":["../../../../../src/examples/coingecko/src/global-utils.ts"],"names":[],"mappings":";;;AACA,
|
|
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,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,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"}
|