@chainlink/external-adapter-framework 0.23.2 → 0.24.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (120) hide show
  1. package/README.md +12 -7
  2. package/adapter/basic.js +2 -2
  3. package/adapter/basic.js.map +1 -1
  4. package/adapter/endpoint.d.ts +2 -2
  5. package/adapter/endpoint.js.map +1 -1
  6. package/adapter/types.d.ts +2 -2
  7. package/config/provider-limits.js +3 -3
  8. package/config/provider-limits.js.map +1 -1
  9. package/package.json +1 -1
  10. package/transports/meta/routing.d.ts +22 -9
  11. package/transports/meta/routing.js +34 -8
  12. package/transports/meta/routing.js.map +1 -1
  13. package/transports/websocket.js +1 -0
  14. package/transports/websocket.js.map +1 -1
  15. package/util/types.d.ts +1 -6
  16. package/validation/index.d.ts +1 -1
  17. package/validation/input-params.d.ts +6 -1
  18. package/examples/bank-frick/accounts.d.ts +0 -45
  19. package/examples/bank-frick/accounts.js +0 -203
  20. package/examples/bank-frick/accounts.js.map +0 -1
  21. package/examples/bank-frick/config/index.d.ts +0 -17
  22. package/examples/bank-frick/config/index.js +0 -55
  23. package/examples/bank-frick/config/index.js.map +0 -1
  24. package/examples/bank-frick/index.d.ts +0 -2
  25. package/examples/bank-frick/index.js +0 -16
  26. package/examples/bank-frick/index.js.map +0 -1
  27. package/examples/bank-frick/util.d.ts +0 -4
  28. package/examples/bank-frick/util.js +0 -40
  29. package/examples/bank-frick/util.js.map +0 -1
  30. package/examples/coingecko/src/config/index.d.ts +0 -2
  31. package/examples/coingecko/src/config/index.js +0 -6
  32. package/examples/coingecko/src/config/index.js.map +0 -1
  33. package/examples/coingecko/src/config/overrides.json +0 -10825
  34. package/examples/coingecko/src/crypto-utils.d.ts +0 -62
  35. package/examples/coingecko/src/crypto-utils.js +0 -60
  36. package/examples/coingecko/src/crypto-utils.js.map +0 -1
  37. package/examples/coingecko/src/endpoint/coins.d.ts +0 -26
  38. package/examples/coingecko/src/endpoint/coins.js +0 -37
  39. package/examples/coingecko/src/endpoint/coins.js.map +0 -1
  40. package/examples/coingecko/src/endpoint/crypto-marketcap.d.ts +0 -3
  41. package/examples/coingecko/src/endpoint/crypto-marketcap.js +0 -30
  42. package/examples/coingecko/src/endpoint/crypto-marketcap.js.map +0 -1
  43. package/examples/coingecko/src/endpoint/crypto-volume.d.ts +0 -3
  44. package/examples/coingecko/src/endpoint/crypto-volume.js +0 -30
  45. package/examples/coingecko/src/endpoint/crypto-volume.js.map +0 -1
  46. package/examples/coingecko/src/endpoint/crypto.d.ts +0 -3
  47. package/examples/coingecko/src/endpoint/crypto.js +0 -28
  48. package/examples/coingecko/src/endpoint/crypto.js.map +0 -1
  49. package/examples/coingecko/src/endpoint/dominance.d.ts +0 -3
  50. package/examples/coingecko/src/endpoint/dominance.js +0 -28
  51. package/examples/coingecko/src/endpoint/dominance.js.map +0 -1
  52. package/examples/coingecko/src/endpoint/global-marketcap.d.ts +0 -3
  53. package/examples/coingecko/src/endpoint/global-marketcap.js +0 -28
  54. package/examples/coingecko/src/endpoint/global-marketcap.js.map +0 -1
  55. package/examples/coingecko/src/endpoint/index.d.ts +0 -6
  56. package/examples/coingecko/src/endpoint/index.js +0 -16
  57. package/examples/coingecko/src/endpoint/index.js.map +0 -1
  58. package/examples/coingecko/src/global-utils.d.ts +0 -42
  59. package/examples/coingecko/src/global-utils.js +0 -47
  60. package/examples/coingecko/src/global-utils.js.map +0 -1
  61. package/examples/coingecko/src/index.d.ts +0 -4
  62. package/examples/coingecko/src/index.js +0 -19
  63. package/examples/coingecko/src/index.js.map +0 -1
  64. package/examples/cryptocompare/src/config/index.d.ts +0 -2
  65. package/examples/cryptocompare/src/config/index.js +0 -6
  66. package/examples/cryptocompare/src/config/index.js.map +0 -1
  67. package/examples/cryptocompare/src/endpoints/crypto.d.ts +0 -40
  68. package/examples/cryptocompare/src/endpoints/crypto.js +0 -54
  69. package/examples/cryptocompare/src/endpoints/crypto.js.map +0 -1
  70. package/examples/cryptocompare/src/endpoints/index.d.ts +0 -1
  71. package/examples/cryptocompare/src/endpoints/index.js +0 -6
  72. package/examples/cryptocompare/src/endpoints/index.js.map +0 -1
  73. package/examples/cryptocompare/src/index.d.ts +0 -4
  74. package/examples/cryptocompare/src/index.js +0 -14
  75. package/examples/cryptocompare/src/index.js.map +0 -1
  76. package/examples/genesis/config/index.d.ts +0 -7
  77. package/examples/genesis/config/index.js +0 -11
  78. package/examples/genesis/config/index.js.map +0 -1
  79. package/examples/genesis/index.d.ts +0 -2
  80. package/examples/genesis/index.js +0 -13
  81. package/examples/genesis/index.js.map +0 -1
  82. package/examples/genesis/sseStream.d.ts +0 -27
  83. package/examples/genesis/sseStream.js +0 -149
  84. package/examples/genesis/sseStream.js.map +0 -1
  85. package/rate-limiting/background/fixed-frequency.d.ts +0 -10
  86. package/rate-limiting/background/fixed-frequency.js +0 -36
  87. package/rate-limiting/background/fixed-frequency.js.map +0 -1
  88. package/rate-limiting/metrics.d.ts +0 -1
  89. package/rate-limiting/metrics.js +0 -16
  90. package/rate-limiting/metrics.js.map +0 -1
  91. package/rate-limiting/request/simple-counting.d.ts +0 -20
  92. package/rate-limiting/request/simple-counting.js +0 -63
  93. package/rate-limiting/request/simple-counting.js.map +0 -1
  94. package/scripts/generator/index.d.ts +0 -1
  95. package/scripts/generator/index.js +0 -5
  96. package/scripts/generator/index.js.map +0 -1
  97. package/scripts/generator/lib.d.ts +0 -1
  98. package/scripts/generator/lib.js +0 -170
  99. package/scripts/generator/lib.js.map +0 -1
  100. package/scripts/generator/workspace.d.ts +0 -21
  101. package/scripts/generator/workspace.js +0 -76
  102. package/scripts/generator/workspace.js.map +0 -1
  103. package/transports/batch-warming.d.ts +0 -52
  104. package/transports/batch-warming.js +0 -150
  105. package/transports/batch-warming.js.map +0 -1
  106. package/transports/rest.d.ts +0 -66
  107. package/transports/rest.js +0 -144
  108. package/transports/rest.js.map +0 -1
  109. package/transports/routing.d.ts +0 -22
  110. package/transports/routing.js +0 -60
  111. package/transports/routing.js.map +0 -1
  112. package/transports/util.d.ts +0 -11
  113. package/transports/util.js +0 -117
  114. package/transports/util.js.map +0 -1
  115. package/util/metrics.d.ts +0 -8
  116. package/util/metrics.js +0 -50
  117. package/util/metrics.js.map +0 -1
  118. package/util/request.d.ts +0 -217
  119. package/util/request.js +0 -3
  120. package/util/request.js.map +0 -1
@@ -1,54 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.endpoint = exports.transport = void 0;
4
- const adapter_1 = require("../../../../adapter");
5
- const websocket_1 = require("../../../../transports/websocket");
6
- const util_1 = require("../../../../util");
7
- const config_1 = require("../config");
8
- const logger = (0, util_1.makeLogger)('CryptoCompareCryptoEndpoint');
9
- exports.transport = new websocket_1.WebSocketTransport({
10
- url: (context) => `${config_1.DEFAULT_WS_API_ENDPOINT}?api_key=${context.adapterConfig.API_KEY}`,
11
- handlers: {
12
- open(connection) {
13
- return new Promise((resolve, reject) => {
14
- // Set up listener
15
- connection.on('message', (data) => {
16
- const parsed = JSON.parse(data.toString());
17
- if (parsed.MESSAGE === 'STREAMERWELCOME') {
18
- logger.info('Got logged in response, connection is ready');
19
- resolve();
20
- }
21
- else {
22
- reject(new Error('Unexpected message after WS connection open'));
23
- }
24
- });
25
- });
26
- },
27
- message(message) {
28
- logger.trace(message, 'Got response from websocket');
29
- if (message.TYPE === '5') {
30
- return [
31
- { params: { base: message.FROMSYMBOL, quote: message.TOSYMBOL }, value: message.PRICE },
32
- ];
33
- }
34
- if (message.MESSAGE === 'INVALID_SUB') {
35
- logger.error(message, 'asset not supported by data provider');
36
- return;
37
- }
38
- },
39
- },
40
- builders: {
41
- subscribeMessage: (params) => {
42
- return { action: 'SubAdd', subs: [`5~CCCAGG~${`${params.base}~${params.quote}`}`] };
43
- },
44
- unsubscribeMessage: (params) => {
45
- return { action: 'SubRemove', subs: [`5~CCCAGG~${`${params.base}~${params.quote}`}`] };
46
- },
47
- },
48
- });
49
- exports.endpoint = new adapter_1.PriceEndpoint({
50
- name: 'crypto',
51
- transport: exports.transport,
52
- inputParameters: adapter_1.priceEndpointInputParameters,
53
- });
54
- //# sourceMappingURL=crypto.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"crypto.js","sourceRoot":"","sources":["../../../../../../src/examples/cryptocompare/src/endpoints/crypto.ts"],"names":[],"mappings":";;;AACA,iDAAiF;AAEjF,gEAAqE;AACrE,2CAAyF;AACzF,sCAAmD;AAuCnD,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,6BAA6B,CAAC,CAAA;AAE3C,QAAA,SAAS,GAAG,IAAI,8BAAkB,CAAsB;IACnE,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,GAAG,gCAAuB,YAAY,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE;IACvF,QAAQ,EAAE;QACR,IAAI,CAAC,UAAqB;YACxB,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,KAAK,iBAAiB,EAAE;wBACxC,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;YACJ,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,CAAC,OAAgB;YACtB,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,6BAA6B,CAAC,CAAA;YACpD,IAAI,OAAO,CAAC,IAAI,KAAK,GAAG,EAAE;gBACxB,OAAO;oBACL,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;iBACxF,CAAA;aACF;YACD,IAAI,OAAO,CAAC,OAAO,KAAK,aAAa,EAAE;gBACrC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,sCAAsC,CAAC,CAAA;gBAC7D,OAAM;aACP;QACH,CAAC;KACF;IACD,QAAQ,EAAE;QACR,gBAAgB,EAAE,CAAC,MAA4B,EAAE,EAAE;YACjD,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAA;QACrF,CAAC;QACD,kBAAkB,EAAE,CAAC,MAA4B,EAAE,EAAE;YACnD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,EAAE,CAAA;QACxF,CAAC;KACF;CACF,CAAC,CAAA;AAEW,QAAA,QAAQ,GAAG,IAAI,uBAAa,CAAC;IACxC,IAAI,EAAE,QAAQ;IACd,SAAS,EAAT,iBAAS;IACT,eAAe,EAAE,sCAA4B;CAC9C,CAAC,CAAA"}
@@ -1 +0,0 @@
1
- export { endpoint as cryptoEndpoint } from './crypto';
@@ -1,6 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.cryptoEndpoint = void 0;
4
- var crypto_1 = require("./crypto");
5
- Object.defineProperty(exports, "cryptoEndpoint", { enumerable: true, get: function () { return crypto_1.endpoint; } });
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/examples/cryptocompare/src/endpoints/index.ts"],"names":[],"mappings":";;;AAAA,mCAAqD;AAA5C,wGAAA,QAAQ,OAAkB"}
@@ -1,4 +0,0 @@
1
- /// <reference types="node" />
2
- import { PriceAdapter } from '../../../../src/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>;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.server = exports.adapter = void 0;
4
- const __1 = require("../../..");
5
- const adapter_1 = require("../../../../src/adapter");
6
- const endpoints_1 = require("./endpoints");
7
- exports.adapter = new adapter_1.PriceAdapter({
8
- name: 'CRYPTOCOMPARE',
9
- defaultEndpoint: 'crypto',
10
- endpoints: [endpoints_1.cryptoEndpoint],
11
- });
12
- const server = () => (0, __1.expose)(exports.adapter);
13
- exports.server = server;
14
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/examples/cryptocompare/src/index.ts"],"names":[],"mappings":";;;AAAA,gCAAiC;AACjC,qDAAsD;AACtD,2CAA4C;AAE/B,QAAA,OAAO,GAAG,IAAI,sBAAY,CAAC;IACtC,IAAI,EAAE,eAAe;IACrB,eAAe,EAAE,QAAQ;IACzB,SAAS,EAAE,CAAC,0BAAc,CAAC;CAC5B,CAAC,CAAA;AAEK,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,IAAA,UAAM,EAAC,eAAO,CAAC,CAAA;AAA9B,QAAA,MAAM,UAAwB"}
@@ -1,7 +0,0 @@
1
- export declare const customSettings: {
2
- readonly API_SECRET: {
3
- readonly description: "API secret";
4
- readonly type: "string";
5
- readonly required: true;
6
- };
7
- };
@@ -1,11 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,2 +0,0 @@
1
- import { Adapter } from '../../adapter';
2
- export declare const adapter: Adapter<import("../../config").SettingsMap>;
@@ -1,13 +0,0 @@
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
@@ -1 +0,0 @@
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"}
@@ -1,27 +0,0 @@
1
- import { AdapterEndpoint } from '../../adapter';
2
- import { SSETransport } from '../../transports';
3
- import { SingleNumberResultResponse } from '../../util';
4
- import { InputParameters } from '../../validation';
5
- import { SettingsMap } from '../../config';
6
- interface AdapterRequestParams {
7
- base: string;
8
- quote: string;
9
- }
10
- export declare const inputParameters: InputParameters;
11
- declare type Price = number;
12
- declare type Quantity = number;
13
- export declare type Entry = ['BUY' | 'SELL' | '', Price, Quantity];
14
- declare type StreamEndpointTypes = {
15
- Request: {
16
- Params: AdapterRequestParams;
17
- };
18
- Response: SingleNumberResultResponse;
19
- CustomSettings: SettingsMap;
20
- Provider: {
21
- RequestBody: never;
22
- };
23
- };
24
- export declare const sseTransport: SSETransport<StreamEndpointTypes>;
25
- export declare const calculateQWAPprice: (entries: Entry[]) => number | undefined;
26
- export declare const sseEndpoint: AdapterEndpoint<StreamEndpointTypes>;
27
- export {};
@@ -1,149 +0,0 @@
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
- const DEFAULT_ENDPOINT = 'https://api.genesistrading.com';
12
- exports.inputParameters = {
13
- base: {
14
- aliases: ['from', 'coin'],
15
- description: 'The symbol of the currency to query',
16
- required: true,
17
- },
18
- quote: {
19
- aliases: ['to', 'market'],
20
- description: 'The symbol of the currency to convert to',
21
- required: true,
22
- },
23
- };
24
- const logger = (0, util_1.makeLogger)('GenesisSSETransport');
25
- exports.sseTransport = new transports_1.SSETransport({
26
- prepareSSEConnectionConfig: (params, context) => {
27
- const payload = 'null';
28
- const url = prepareRequestUrl(context.adapterConfig, 'sseStream', payload);
29
- logger.debug('SSE Connection URL: ', url);
30
- return { url };
31
- },
32
- prepareKeepAliveRequest: (context) => {
33
- const payload = 'null';
34
- const url = prepareRequestUrl(context.adapterConfig, 'ping', payload);
35
- const axiosRequestConfig = {
36
- method: 'POST',
37
- url,
38
- };
39
- logger.debug('Keep Alive URL: ', url);
40
- return axiosRequestConfig;
41
- },
42
- prepareSubscriptionRequest: (params, context) => {
43
- const requestedSymbols = params.map((p) => {
44
- return `${p.base.toUpperCase()}-${p.quote.toUpperCase()}`;
45
- });
46
- const payloadObj = {
47
- Action: 'SUBSCRIBE',
48
- Symbols: requestedSymbols,
49
- };
50
- const url = prepareRequestUrl(context.adapterConfig, 'marketDataRequest', JSON.stringify(payloadObj));
51
- logger.debug('Subscribe URL: ', url);
52
- const axiosConfig = {
53
- method: 'POST',
54
- url,
55
- };
56
- return axiosConfig;
57
- },
58
- prepareUnsubscriptionRequest: (params, context) => {
59
- const requestedSymbols = params.map((p) => {
60
- return `${p.base.toUpperCase()}-${p.quote.toUpperCase()}`;
61
- });
62
- const payloadObj = {
63
- Action: 'UNSUBSCRIBE',
64
- Symbols: requestedSymbols,
65
- };
66
- const url = prepareRequestUrl(context.adapterConfig, 'marketDataRequest', JSON.stringify(payloadObj));
67
- logger.debug('Unsubscribe URL: ', url);
68
- const axiosConfig = {
69
- method: 'POST',
70
- url,
71
- };
72
- return axiosConfig;
73
- },
74
- eventListeners: [
75
- {
76
- type: 'L2Update',
77
- parseResponse: (evt) => {
78
- let providerData = {};
79
- try {
80
- // To parse, add the formatting to interperate as a JSON array.
81
- providerData = JSON.parse(evt.data);
82
- }
83
- catch (error) {
84
- logger.error(error, `Error parsing JSON from data provider`);
85
- }
86
- const entries = providerData.Changes.map((e) => e.Entry);
87
- const value = (0, exports.calculateQWAPprice)(entries);
88
- if (value) {
89
- const [base, quote] = providerData.Symbol.split('-');
90
- return [
91
- {
92
- params: { base, quote },
93
- value,
94
- },
95
- ];
96
- }
97
- return [];
98
- },
99
- },
100
- ],
101
- });
102
- const calculateQWAPprice = (entries) => {
103
- const meanPriceByQuantity = {};
104
- // Group orders by quantity
105
- let totalQuantity = 0;
106
- entries.forEach((e) => {
107
- if (e[2] === 0) {
108
- return;
109
- }
110
- if (!meanPriceByQuantity[e[2].toString()]) {
111
- meanPriceByQuantity[e[2].toString()] = [e[1], NaN];
112
- }
113
- else {
114
- const meanPrice = (e[1] + meanPriceByQuantity[e[2].toString()][0]) / 2;
115
- meanPriceByQuantity[e[2].toString()] = [meanPrice, meanPrice * e[2]];
116
- totalQuantity += e[2];
117
- }
118
- });
119
- if (Object.keys(meanPriceByQuantity).length === 0) {
120
- return;
121
- }
122
- const priceTimesQuantitySum = Object.values(meanPriceByQuantity).reduce((e1, e2) => [
123
- NaN,
124
- e1[1] + e2[1],
125
- ])[1];
126
- // Return a sum of all the products divided by the total quantity
127
- return priceTimesQuantitySum / totalQuantity;
128
- };
129
- exports.calculateQWAPprice = calculateQWAPprice;
130
- const prepareRequestUrl = (config, endpoint, payload) => {
131
- const apiKey = config.API_KEY;
132
- if (!apiKey) {
133
- logger.error(new Error('API_KEY not set'), 'Set the API_KEY configuration variable to a valid Genesis API key');
134
- }
135
- const apiSecret = config.API_SECRET;
136
- const nonce = (BigInt(Date.now()) * BigInt('1000000')).toString();
137
- const hash = crypto_1.default.createHmac('sha384', Buffer.from(apiSecret ?? ''));
138
- const data = hash.update(Buffer.from(apiKey + payload + nonce));
139
- const sig = data.digest().toString('hex');
140
- const baseUrl = config.API_ENDPOINT ?? DEFAULT_ENDPOINT;
141
- const subDir = `${endpoint}?APIKEY=${apiKey}&PAYLOAD=${payload}&NONCE=${nonce}&SIGNATURE=${sig}`;
142
- return new URL(subDir, baseUrl).toString();
143
- };
144
- exports.sseEndpoint = new adapter_1.AdapterEndpoint({
145
- name: 'sseStream',
146
- transport: exports.sseTransport,
147
- inputParameters: exports.inputParameters,
148
- });
149
- //# sourceMappingURL=sseStream.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sseStream.js","sourceRoot":"","sources":["../../../../src/examples/genesis/sseStream.ts"],"names":[],"mappings":"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"}
@@ -1,10 +0,0 @@
1
- import { AdapterRateLimitTier, BackgroundExecuteRateLimiter } from '..';
2
- import { AdapterEndpoint, EndpointGenerics } from '../../adapter';
3
- export declare const DEFAULT_SHARED_MS_BETWEEN_REQUESTS = 5000;
4
- export declare class FixedFrequencyRateLimiter implements BackgroundExecuteRateLimiter {
5
- msBetweenRequestsMap: {
6
- [endpointName: string]: number;
7
- };
8
- initialize<T extends EndpointGenerics>(endpoints: AdapterEndpoint<T>[], limits?: AdapterRateLimitTier): this;
9
- msUntilNextExecution(endpointName: string): number;
10
- }
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FixedFrequencyRateLimiter = exports.DEFAULT_SHARED_MS_BETWEEN_REQUESTS = void 0;
4
- const __1 = require("..");
5
- const util_1 = require("../../util");
6
- const logger = (0, util_1.makeLogger)('FixedFrequencyRateLimiter');
7
- exports.DEFAULT_SHARED_MS_BETWEEN_REQUESTS = 5000;
8
- class FixedFrequencyRateLimiter {
9
- constructor() {
10
- this.msBetweenRequestsMap = {};
11
- }
12
- initialize(endpoints, limits) {
13
- // Translate the hourly limit into reqs per minute
14
- let sharedMsBetweenRequests = 1000 / (0, __1.lowestTierLimit)(limits);
15
- // If there is no limit set, we use some reasonable number
16
- if (!limits?.rateLimit1h && !limits?.rateLimit1m && !limits?.rateLimit1s) {
17
- // 5s period for all seems good
18
- sharedMsBetweenRequests = exports.DEFAULT_SHARED_MS_BETWEEN_REQUESTS;
19
- }
20
- logger.debug('Using fixed frequency batch rate limiting');
21
- for (const endpoint of endpoints) {
22
- if (endpoint.rateLimiting?.allocationPercentage == null) {
23
- throw new Error(`Allocation percentage for endpoint "${endpoint.name}" is null`);
24
- }
25
- this.msBetweenRequestsMap[endpoint.name] =
26
- (sharedMsBetweenRequests / endpoint.rateLimiting?.allocationPercentage) * 100;
27
- logger.debug(`Endpoint [${endpoint.name}]: ${this.msBetweenRequestsMap[endpoint.name] / 1000}s between requests`);
28
- }
29
- return this;
30
- }
31
- msUntilNextExecution(endpointName) {
32
- return this.msBetweenRequestsMap[endpointName];
33
- }
34
- }
35
- exports.FixedFrequencyRateLimiter = FixedFrequencyRateLimiter;
36
- //# sourceMappingURL=fixed-frequency.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fixed-frequency.js","sourceRoot":"","sources":["../../../../src/rate-limiting/background/fixed-frequency.ts"],"names":[],"mappings":";;;AAAA,0BAAwF;AAExF,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,SAA+B,EAC/B,MAA6B;QAE7B,kDAAkD;QAClD,IAAI,uBAAuB,GAAG,IAAI,GAAG,IAAA,mBAAe,EAAC,MAAM,CAAC,CAAA;QAE5D,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"}
@@ -1 +0,0 @@
1
- export declare const retrieveCost: <ProviderResponseBody>(data: ProviderResponseBody) => number;
@@ -1,16 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.retrieveCost = void 0;
4
- // Retrieve cost field from response if exists
5
- // If not return default cost of 1
6
- const retrieveCost = (data) => {
7
- const cost = data?.['cost'];
8
- if (typeof cost === 'number' || typeof cost === 'string') {
9
- return Number(cost);
10
- }
11
- else {
12
- return 1;
13
- }
14
- };
15
- exports.retrieveCost = retrieveCost;
16
- //# sourceMappingURL=metrics.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.js","sourceRoot":"","sources":["../../../src/rate-limiting/metrics.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AAC9C,kCAAkC;AAC3B,MAAM,YAAY,GAAG,CAAuB,IAA0B,EAAU,EAAE;IACvF,MAAM,IAAI,GAAI,IAAgC,EAAE,CAAC,MAAM,CAAC,CAAA;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;QACxD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAA;KACpB;SAAM;QACL,OAAO,CAAC,CAAA;KACT;AACH,CAAC,CAAA;AAPY,QAAA,YAAY,gBAOxB"}
@@ -1,20 +0,0 @@
1
- import { AdapterRateLimitTier, RateLimiter } from '..';
2
- import { AdapterEndpoint, EndpointGenerics } from '../../adapter';
3
- /**
4
- * This rate limiter is the simplest stateful option.
5
- * On startup, it'll compare the different thresholds for each tier, calculate them all
6
- * in the finest window we'll use (seconds), and use the most restrictive one.
7
- * This is so if the EA were to restart, we don't need to worry about persisting state
8
- * for things like daily quotas. The downside is that this does not work well for bursty
9
- * loads or spikes, in cases where e.g. the per second limit is high but daily quotas low.
10
- */
11
- export declare class SimpleCountingRateLimiter implements RateLimiter {
12
- latestSecondInterval: number;
13
- requestsThisSecond: number;
14
- latestMinuteInterval: number;
15
- requestsThisMinute: number;
16
- perSecondLimit: number;
17
- perMinuteLimit: number;
18
- initialize<T extends EndpointGenerics>(endpoints: AdapterEndpoint<T>[], limits?: AdapterRateLimitTier): this;
19
- isUnderLimits(): boolean;
20
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SimpleCountingRateLimiter = void 0;
4
- const util_1 = require("../../util");
5
- const logger = (0, util_1.makeLogger)('SimpleCountingRateLimiter');
6
- /**
7
- * This rate limiter is the simplest stateful option.
8
- * On startup, it'll compare the different thresholds for each tier, calculate them all
9
- * in the finest window we'll use (seconds), and use the most restrictive one.
10
- * This is so if the EA were to restart, we don't need to worry about persisting state
11
- * for things like daily quotas. The downside is that this does not work well for bursty
12
- * loads or spikes, in cases where e.g. the per second limit is high but daily quotas low.
13
- */
14
- class SimpleCountingRateLimiter {
15
- constructor() {
16
- this.latestSecondInterval = 0;
17
- this.requestsThisSecond = 0;
18
- this.latestMinuteInterval = 0;
19
- this.requestsThisMinute = 0;
20
- }
21
- initialize(endpoints, limits) {
22
- // Translate the hourly limit into reqs per minute
23
- const perHourLimit = (limits?.rateLimit1h || Infinity) / 60;
24
- this.perMinuteLimit = Math.min(limits?.rateLimit1m || Infinity, perHourLimit);
25
- this.perSecondLimit = limits?.rateLimit1s || Infinity;
26
- logger.debug(`Using rate limiting settings: perMinute = ${this.perMinuteLimit} | perSecond: = ${this.perSecondLimit}`);
27
- return this;
28
- }
29
- isUnderLimits() {
30
- // If the limit is set to infinity, there was no tier limit specified
31
- if (this.perSecondLimit === Infinity && this.perMinuteLimit === Infinity) {
32
- return true;
33
- }
34
- const now = Date.now();
35
- const nearestSecondInterval = Math.floor(now / 1000);
36
- const nearestMinuteInterval = Math.floor(now / (1000 * 60));
37
- // This should always run to completion, even if it doesn't look atomic; therefore the
38
- // Ops should be "thread safe". Thank JS and its infinite single threaded dumbness.
39
- if (nearestSecondInterval !== this.latestSecondInterval) {
40
- logger.trace(`Clearing latest second interval, # of requests logged was: ${this.requestsThisSecond} `);
41
- this.latestSecondInterval = nearestSecondInterval;
42
- this.requestsThisSecond = 0;
43
- }
44
- if (nearestMinuteInterval !== this.latestMinuteInterval) {
45
- logger.trace(`Clearing latest second minute, # of requests logged was: ${this.requestsThisMinute} `);
46
- this.latestMinuteInterval = nearestMinuteInterval;
47
- this.requestsThisMinute = 0;
48
- }
49
- if (this.requestsThisSecond < this.perSecondLimit &&
50
- this.requestsThisMinute < this.perMinuteLimit) {
51
- logger.trace('Request under limits, counting +1');
52
- this.requestsThisSecond++;
53
- this.requestsThisMinute++;
54
- return true;
55
- }
56
- else {
57
- logger.trace('Requests seen this interval are above limits');
58
- return false;
59
- }
60
- }
61
- }
62
- exports.SimpleCountingRateLimiter = SimpleCountingRateLimiter;
63
- //# sourceMappingURL=simple-counting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"simple-counting.js","sourceRoot":"","sources":["../../../../src/rate-limiting/request/simple-counting.ts"],"names":[],"mappings":";;;AAEA,qCAAuC;AAEvC,MAAM,MAAM,GAAG,IAAA,iBAAU,EAAC,2BAA2B,CAAC,CAAA;AAEtD;;;;;;;GAOG;AACH,MAAa,yBAAyB;IAAtC;QACE,yBAAoB,GAAG,CAAC,CAAA;QACxB,uBAAkB,GAAG,CAAC,CAAA;QACtB,yBAAoB,GAAG,CAAC,CAAA;QACxB,uBAAkB,GAAG,CAAC,CAAA;IA4DxB,CAAC;IAxDC,UAAU,CACR,SAA+B,EAC/B,MAA6B;QAE7B,kDAAkD;QAClD,MAAM,YAAY,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,GAAG,EAAE,CAAA;QAC3D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,IAAI,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC7E,IAAI,CAAC,cAAc,GAAG,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAA;QACrD,MAAM,CAAC,KAAK,CACV,6CAA6C,IAAI,CAAC,cAAc,mBAAmB,IAAI,CAAC,cAAc,EAAE,CACzG,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,aAAa;QACX,qEAAqE;QACrE,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,IAAI,IAAI,CAAC,cAAc,KAAK,QAAQ,EAAE;YACxE,OAAO,IAAI,CAAA;SACZ;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,IAAI,CAAC,CAAA;QACpD,MAAM,qBAAqB,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC,CAAA;QAE3D,sFAAsF;QACtF,mFAAmF;QACnF,IAAI,qBAAqB,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACvD,MAAM,CAAC,KAAK,CACV,8DAA8D,IAAI,CAAC,kBAAkB,GAAG,CACzF,CAAA;YACD,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAA;YACjD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;SAC5B;QAED,IAAI,qBAAqB,KAAK,IAAI,CAAC,oBAAoB,EAAE;YACvD,MAAM,CAAC,KAAK,CACV,4DAA4D,IAAI,CAAC,kBAAkB,GAAG,CACvF,CAAA;YACD,IAAI,CAAC,oBAAoB,GAAG,qBAAqB,CAAA;YACjD,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;SAC5B;QAED,IACE,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc;YAC7C,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,EAC7C;YACA,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAA;YACjD,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,IAAI,CAAC,kBAAkB,EAAE,CAAA;YACzB,OAAO,IAAI,CAAA;SACZ;aAAM;YACL,MAAM,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAA;YAC5D,OAAO,KAAK,CAAA;SACb;IACH,CAAC;CACF;AAhED,8DAgEC"}
@@ -1 +0,0 @@
1
- export {};
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const lib_1 = require("./lib");
4
- (0, lib_1.newAdapter)();
5
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/scripts/generator/index.ts"],"names":[],"mappings":";;AAAA,+BAAkC;AAElC,IAAA,gBAAU,GAAE,CAAA"}
@@ -1 +0,0 @@
1
- export declare function newAdapter(): Promise<void>;