@requestnetwork/request-client.js 0.30.1-next.1351 → 0.30.1-next.709

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 (75) hide show
  1. package/README.md +9 -13
  2. package/dist/api/content-data-extension.js +3 -3
  3. package/dist/api/content-data-extension.js.map +1 -1
  4. package/dist/api/request-network.d.ts +50 -15
  5. package/dist/api/request-network.d.ts.map +1 -1
  6. package/dist/api/request-network.js +187 -87
  7. package/dist/api/request-network.js.map +1 -1
  8. package/dist/api/request.d.ts +55 -6
  9. package/dist/api/request.d.ts.map +1 -1
  10. package/dist/api/request.js +171 -149
  11. package/dist/api/request.js.map +1 -1
  12. package/dist/api/utils.d.ts +5 -6
  13. package/dist/api/utils.d.ts.map +1 -1
  14. package/dist/api/utils.js +1 -3
  15. package/dist/api/utils.js.map +1 -1
  16. package/dist/http-config-defaults.d.ts +4 -0
  17. package/dist/http-config-defaults.d.ts.map +1 -0
  18. package/dist/http-config-defaults.js +16 -0
  19. package/dist/http-config-defaults.js.map +1 -0
  20. package/dist/http-data-access.d.ts +40 -9
  21. package/dist/http-data-access.d.ts.map +1 -1
  22. package/dist/http-data-access.js +113 -95
  23. package/dist/http-data-access.js.map +1 -1
  24. package/dist/http-metamask-data-access.d.ts +7 -7
  25. package/dist/http-metamask-data-access.d.ts.map +1 -1
  26. package/dist/http-metamask-data-access.js +57 -61
  27. package/dist/http-metamask-data-access.js.map +1 -1
  28. package/dist/http-request-network.d.ts +15 -15
  29. package/dist/http-request-network.d.ts.map +1 -1
  30. package/dist/http-request-network.js +23 -25
  31. package/dist/http-request-network.js.map +1 -1
  32. package/dist/index.d.ts +3 -2
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +5 -3
  35. package/dist/index.js.map +1 -1
  36. package/dist/mock-storage.d.ts +2 -5
  37. package/dist/mock-storage.d.ts.map +1 -1
  38. package/dist/mock-storage.js +24 -77
  39. package/dist/mock-storage.js.map +1 -1
  40. package/dist/no-persist-http-data-access.d.ts +10 -0
  41. package/dist/no-persist-http-data-access.d.ts.map +1 -0
  42. package/dist/no-persist-http-data-access.js +36 -0
  43. package/dist/no-persist-http-data-access.js.map +1 -0
  44. package/dist/report.html +9 -24
  45. package/dist/requestnetwork.min.js +441 -1
  46. package/dist/requestnetwork.min.js.LICENSE.txt +11 -24
  47. package/dist/requestnetwork.min.js.map +1 -1
  48. package/dist/types.js +2 -11
  49. package/dist/types.js.map +1 -1
  50. package/package.json +32 -43
  51. package/CHANGELOG.md +0 -2077
  52. package/dist/api/currency/erc20/celo.d.ts +0 -14
  53. package/dist/api/currency/erc20/celo.d.ts.map +0 -1
  54. package/dist/api/currency/erc20/celo.js +0 -26
  55. package/dist/api/currency/erc20/celo.js.map +0 -1
  56. package/dist/api/currency/erc20/networks.d.ts +0 -25
  57. package/dist/api/currency/erc20/networks.d.ts.map +0 -1
  58. package/dist/api/currency/erc20/networks.js +0 -14
  59. package/dist/api/currency/erc20/networks.js.map +0 -1
  60. package/dist/api/currency/erc20/rinkeby.d.ts +0 -19
  61. package/dist/api/currency/erc20/rinkeby.d.ts.map +0 -1
  62. package/dist/api/currency/erc20/rinkeby.js +0 -43
  63. package/dist/api/currency/erc20/rinkeby.js.map +0 -1
  64. package/dist/api/currency/erc20.d.ts +0 -62
  65. package/dist/api/currency/erc20.d.ts.map +0 -1
  66. package/dist/api/currency/erc20.js +0 -136
  67. package/dist/api/currency/erc20.js.map +0 -1
  68. package/dist/api/currency.d.ts +0 -45
  69. package/dist/api/currency.d.ts.map +0 -1
  70. package/dist/api/currency.js +0 -162
  71. package/dist/api/currency.js.map +0 -1
  72. package/dist/mock-data-access.d.ts +0 -11
  73. package/dist/mock-data-access.d.ts.map +0 -1
  74. package/dist/mock-data-access.js +0 -16
  75. package/dist/mock-data-access.js.map +0 -1
package/dist/api/utils.js CHANGED
@@ -1,19 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const utils_1 = require("@requestnetwork/utils");
4
- const currency_1 = require("./currency");
5
4
  /**
6
5
  * Collection of utils functions related to the library, meant to simplify its use.
7
6
  */
8
7
  exports.default = {
9
8
  formatGetRequestFromIdError,
10
- getDecimalsForCurrency: currency_1.getDecimalsForCurrency,
11
9
  /**
12
10
  * Returns the current timestamp in second
13
11
  *
14
12
  * @returns current timestamp in second
15
13
  */
16
- getCurrentTimestampInSecond: utils_1.default.getCurrentTimestampInSecond,
14
+ getCurrentTimestampInSecond: utils_1.getCurrentTimestampInSecond,
17
15
  };
18
16
  /**
19
17
  * Formats a human readable message from ignored transactions
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":";;AACA,iDAA0C;AAC1C,yCAAoD;AACpD;;GAEG;AACH,kBAAe;IACb,2BAA2B;IAC3B,sBAAsB,EAAtB,iCAAsB;IAEtB;;;;OAIG;IACH,2BAA2B,EAAE,eAAK,CAAC,2BAA2B;CAC/D,CAAC;AAEF;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,cAAyD;IAEzD,IACE,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB;QACtC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC;QACvD,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAC3E;QACA,OAAO,iCAAiC,IAAI,CAAC,SAAS,CACpD,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB;aAC3D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;aACrD,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CACpC,EAAE,CAAC;KACL;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/api/utils.ts"],"names":[],"mappings":";;AACA,iDAAoE;AACpE;;GAEG;AACH,kBAAe;IACb,2BAA2B;IAE3B;;;;OAIG;IACH,2BAA2B,EAA3B,mCAA2B;CAC5B,CAAC;AAEF;;;;;GAKG;AACH,SAAS,2BAA2B,CAClC,cAAyD;IAEzD,IACE,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB;QACtC,cAAc,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,CAAC;QACvD,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB,CAAC,MAAM,KAAK,CAAC,EAC3E;QACA,OAAO,iCAAiC,IAAI,CAAC,SAAS,CACpD,cAAc,CAAC,IAAI,CAAC,sBAAsB,CAAC,mBAAmB;aAC3D,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,mBAAmB,IAAI,EAAE,CAAC;aACrD,MAAM,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,CACpC,EAAE,CAAC;KACL;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { ClientTypes } from '@requestnetwork/types';
2
+ declare const config: ClientTypes.IHttpDataAccessConfig;
3
+ export default config;
4
+ //# sourceMappingURL=http-config-defaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-config-defaults.d.ts","sourceRoot":"","sources":["../src/http-config-defaults.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,QAAA,MAAM,MAAM,EAAE,WAAW,CAAC,qBAWzB,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const config = {
4
+ requestClientVersionHeader: 'X-Request-Network-Client-Version',
5
+ httpRequestMaxRetry: 3,
6
+ httpRequestRetryDelay: 100,
7
+ httpRequestExponentialBackoffDelay: 0,
8
+ httpRequestMaxExponentialBackoffDelay: 30000,
9
+ getConfirmationMaxRetry: 30,
10
+ getConfirmationRetryDelay: 1000,
11
+ getConfirmationExponentialBackoffDelay: 0,
12
+ getConfirmationMaxExponentialBackoffDelay: 30000,
13
+ getConfirmationDeferDelay: 3000,
14
+ };
15
+ exports.default = config;
16
+ //# sourceMappingURL=http-config-defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"http-config-defaults.js","sourceRoot":"","sources":["../src/http-config-defaults.ts"],"names":[],"mappings":";;AAEA,MAAM,MAAM,GAAsC;IAChD,0BAA0B,EAAE,kCAAkC;IAC9D,mBAAmB,EAAE,CAAC;IACtB,qBAAqB,EAAE,GAAG;IAC1B,kCAAkC,EAAE,CAAC;IACrC,qCAAqC,EAAE,KAAK;IAC5C,uBAAuB,EAAE,EAAE;IAC3B,yBAAyB,EAAE,IAAI;IAC/B,sCAAsC,EAAE,CAAC;IACzC,yCAAyC,EAAE,KAAK;IAChD,yBAAyB,EAAE,IAAI;CAChC,CAAC;AAEF,kBAAe,MAAM,CAAC"}
@@ -1,25 +1,42 @@
1
- import { DataAccessTypes } from '@requestnetwork/types';
2
- import { AxiosRequestConfig } from 'axios';
1
+ import { ClientTypes, DataAccessTypes } from '@requestnetwork/types';
2
+ export type NodeConnectionConfig = {
3
+ baseURL: string;
4
+ headers: Record<string, string>;
5
+ };
3
6
  /**
4
7
  * Exposes a Data-Access module over HTTP
5
8
  */
6
9
  export default class HttpDataAccess implements DataAccessTypes.IDataAccess {
7
10
  /**
8
- * Configuration that will be sent to axios for each request.
9
- * We can also create a AxiosInstance with axios.create() but it dramatically complicates testing.
11
+ * Configuration that overrides http-config-defaults,
12
+ * @see httpConfigDefaults for the default configuration.
10
13
  */
11
- protected axiosConfig: AxiosRequestConfig;
14
+ protected httpConfig: ClientTypes.IHttpDataAccessConfig;
15
+ /**
16
+ * Configuration that will be sent at each request.
17
+ */
18
+ protected nodeConnectionConfig: NodeConnectionConfig;
12
19
  /**
13
20
  * Creates an instance of HttpDataAccess.
14
- * @param nodeConnectionConfig Configuration options to connect to the node. Follows Axios configuration format.
21
+ * @param httpConfig @see ClientTypes.IHttpDataAccessConfig for available options.
22
+ * @param nodeConnectionConfig Configuration options to connect to the node.
15
23
  */
16
- constructor(nodeConnectionConfig?: AxiosRequestConfig);
24
+ constructor({ httpConfig, nodeConnectionConfig, }?: {
25
+ httpConfig?: Partial<ClientTypes.IHttpDataAccessConfig>;
26
+ nodeConnectionConfig?: Partial<NodeConnectionConfig>;
27
+ });
17
28
  /**
18
29
  * Initialize the module. Does nothing, exists only to implement IDataAccess
19
30
  *
20
31
  * @returns nothing
21
32
  */
22
33
  initialize(): Promise<void>;
34
+ /**
35
+ * Closes the module. Does nothing, exists only to implement IDataAccess
36
+ *
37
+ * @returns nothing
38
+ */
39
+ close(): Promise<void>;
23
40
  /**
24
41
  * Persists a new transaction on a node through HTTP.
25
42
  *
@@ -51,8 +68,22 @@ export default class HttpDataAccess implements DataAccessTypes.IDataAccess {
51
68
  /**
52
69
  * Gets information from the node (version, files etc...)
53
70
  *
54
- * @param detailed if true get the list of files hashes
55
71
  */
56
- _getStatus(detailed?: boolean): Promise<any>;
72
+ _getStatus(): Promise<any>;
73
+ /**
74
+ * Sends an HTTP GET request to the node and retries until it succeeds.
75
+ * Throws when the retry count reaches a maximum.
76
+ *
77
+ * @param url HTTP GET request url
78
+ * @param params HTTP GET request parameters
79
+ * @param retryConfig Maximum retry count, delay between retries, exponential backoff delay, and maximum exponential backoff delay
80
+ */
81
+ protected fetchAndRetry<T = unknown>(path: string, params: Record<string, unknown>, retryConfig?: {
82
+ maxRetries?: number;
83
+ retryDelay?: number;
84
+ exponentialBackoffDelay?: number;
85
+ maxExponentialBackoffDelay?: number;
86
+ }): Promise<T>;
87
+ protected fetch<T = unknown>(method: 'GET' | 'POST', path: string, params: Record<string, unknown> | undefined, body?: Record<string, unknown>): Promise<T>;
57
88
  }
58
89
  //# sourceMappingURL=http-data-access.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"http-data-access.d.ts","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAoBlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,eAAe,CAAC,WAAW;IACxE;;;OAGG;IACH,SAAS,CAAC,WAAW,EAAE,kBAAkB,CAAC;IAE1C;;;OAGG;gBACS,oBAAoB,GAAE,kBAAuB;IAezD;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;;OAKG;IACU,kBAAkB,CAC7B,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAuDrD;;;;;OAKG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAkBlD;;;;;OAKG;IACU,kBAAkB,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAkBrD;;;;;OAKG;IACU,2BAA2B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAkBrD;;;;OAIG;IACU,UAAU,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC;CAiB1D"}
1
+ {"version":3,"file":"http-data-access.d.ts","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAUrE,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAExF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,YAAW,eAAe,CAAC,WAAW;IACxE;;;OAGG;IACH,SAAS,CAAC,UAAU,EAAE,WAAW,CAAC,qBAAqB,CAAC;IAExD;;OAEG;IACH,SAAS,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IAErD;;;;OAIG;gBAED,EACE,UAAU,EACV,oBAAoB,GACrB,GAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACxD,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;KAItD;IAiBH;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;;OAKG;IACU,kBAAkB,CAC7B,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAyDrD;;;;;OAKG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAUlD;;;;;OAKG;IACU,kBAAkB,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAOrD;;;;;OAKG;IACU,2BAA2B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAOrD;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC;IAIvC;;;;;;;OAOG;cACa,aAAa,CAAC,CAAC,GAAG,OAAO,EACvC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,WAAW,GAAE;QACX,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,uBAAuB,CAAC,EAAE,MAAM,CAAC;QACjC,0BAA0B,CAAC,EAAE,MAAM,CAAC;KAChC,GACL,OAAO,CAAC,CAAC,CAAC;cAWG,KAAK,CAAC,CAAC,GAAG,OAAO,EAC/B,MAAM,EAAE,KAAK,GAAG,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC7B,OAAO,CAAC,CAAC,CAAC;CA8Bd"}
@@ -1,44 +1,31 @@
1
1
  "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
2
  Object.defineProperty(exports, "__esModule", { value: true });
12
- const utils_1 = require("@requestnetwork/utils");
13
- const axios_1 = require("axios");
3
+ const tslib_1 = require("tslib");
14
4
  const events_1 = require("events");
5
+ const http_config_defaults_1 = require("./http-config-defaults");
6
+ const utils_1 = require("@requestnetwork/utils");
7
+ const qs_1 = require("qs");
8
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
15
9
  const packageJson = require('../package.json');
16
- const REQUEST_CLIENT_VERSION_HEADER = 'X-Request-Network-Client-Version';
17
- // Maximum number of retries to attempt when http requests to the Node fail
18
- const HTTP_REQUEST_MAX_RETRY = 3;
19
- // Delay between retry in ms
20
- const HTTP_REQUEST_RETRY_DELAY = 100;
21
- // Maximum number of retries to get the confirmation of a persistTransaction
22
- const GET_CONFIRMATION_MAX_RETRY = 500;
23
- // Delay between retry in ms to get the confirmation of a persistTransaction
24
- const GET_CONFIRMATION_RETRY_DELAY = 3000;
25
10
  /**
26
11
  * Exposes a Data-Access module over HTTP
27
12
  */
28
13
  class HttpDataAccess {
29
14
  /**
30
15
  * Creates an instance of HttpDataAccess.
31
- * @param nodeConnectionConfig Configuration options to connect to the node. Follows Axios configuration format.
16
+ * @param httpConfig @see ClientTypes.IHttpDataAccessConfig for available options.
17
+ * @param nodeConnectionConfig Configuration options to connect to the node.
32
18
  */
33
- constructor(nodeConnectionConfig = {}) {
19
+ constructor({ httpConfig, nodeConnectionConfig, } = {
20
+ httpConfig: {},
21
+ nodeConnectionConfig: {},
22
+ }) {
34
23
  // Get Request Client version to set it in the header
35
24
  const requestClientVersion = packageJson.version;
36
- this.axiosConfig = Object.assign({
37
- baseURL: 'http://localhost:3000',
38
- headers: {
39
- [REQUEST_CLIENT_VERSION_HEADER]: requestClientVersion,
40
- },
41
- }, nodeConnectionConfig);
25
+ this.httpConfig = Object.assign(Object.assign({}, http_config_defaults_1.default), httpConfig);
26
+ this.nodeConnectionConfig = Object.assign({ baseURL: 'http://localhost:3000', headers: {
27
+ [this.httpConfig.requestClientVersionHeader]: requestClientVersion,
28
+ } }, nodeConnectionConfig);
42
29
  }
43
30
  /**
44
31
  * Initialize the module. Does nothing, exists only to implement IDataAccess
@@ -46,7 +33,18 @@ class HttpDataAccess {
46
33
  * @returns nothing
47
34
  */
48
35
  initialize() {
49
- return __awaiter(this, void 0, void 0, function* () {
36
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
37
+ // no-op, nothing to do
38
+ return;
39
+ });
40
+ }
41
+ /**
42
+ * Closes the module. Does nothing, exists only to implement IDataAccess
43
+ *
44
+ * @returns nothing
45
+ */
46
+ close() {
47
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
50
48
  // no-op, nothing to do
51
49
  return;
52
50
  });
@@ -58,39 +56,40 @@ class HttpDataAccess {
58
56
  * @param topics The topics used to index the transaction
59
57
  */
60
58
  persistTransaction(transactionData, channelId, topics) {
61
- return __awaiter(this, void 0, void 0, function* () {
59
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
62
60
  // We don't retry this request since it may fail because of a slow Storage
63
61
  // For example, if the Ethereum network is slow and we retry the request three times
64
62
  // three data will be persisted at the end
65
- const { data } = yield axios_1.default.post('/persistTransaction', {
66
- channelId,
67
- topics,
68
- transactionData,
69
- }, this.axiosConfig);
70
- const transactionHash = utils_1.default.crypto.normalizeKeccak256Hash(transactionData).value;
63
+ const data = yield this.fetch('POST', '/persistTransaction', undefined, { channelId, topics, transactionData });
64
+ const transactionHash = (0, utils_1.normalizeKeccak256Hash)(transactionData).value;
71
65
  // Create the return result with EventEmitter
72
66
  const result = Object.assign(new events_1.EventEmitter(), data);
73
67
  // Try to get the confirmation
74
- utils_1.default.retry(() => __awaiter(this, void 0, void 0, function* () {
75
- return axios_1.default.get('/getConfirmedTransaction', Object.assign(this.axiosConfig, {
76
- params: { transactionHash },
77
- }));
78
- }), {
79
- maxRetries: GET_CONFIRMATION_MAX_RETRY,
80
- retryDelay: GET_CONFIRMATION_RETRY_DELAY,
81
- })()
82
- .then((resultConfirmed) => {
68
+ new Promise((r) => setTimeout(r, this.httpConfig.getConfirmationDeferDelay))
69
+ .then(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
70
+ const confirmedData = yield this.fetchAndRetry('/getConfirmedTransaction', {
71
+ transactionHash,
72
+ }, {
73
+ maxRetries: this.httpConfig.getConfirmationMaxRetry,
74
+ retryDelay: this.httpConfig.getConfirmationRetryDelay,
75
+ exponentialBackoffDelay: this.httpConfig.getConfirmationExponentialBackoffDelay,
76
+ maxExponentialBackoffDelay: this.httpConfig.getConfirmationMaxExponentialBackoffDelay,
77
+ });
83
78
  // when found, emit the event 'confirmed'
84
- result.emit('confirmed', resultConfirmed.data);
85
- })
79
+ result.emit('confirmed', confirmedData);
80
+ }))
86
81
  .catch((e) => {
87
- // tslint:disable-next-line:no-magic-numbers
88
- if (e.response.status === 404) {
89
- throw new Error(`Transaction confirmation not receive after ${GET_CONFIRMATION_MAX_RETRY} retries`);
90
- }
91
- else {
92
- throw new Error(e.message);
82
+ let error = e;
83
+ if (e.status === 404) {
84
+ error = new Error(`Transaction confirmation not received. Try polling
85
+ getTransactionsByChannelId() until the transaction is confirmed.
86
+ deferDelay: ${this.httpConfig.getConfirmationDeferDelay}ms,
87
+ maxRetries: ${this.httpConfig.getConfirmationMaxRetry},
88
+ retryDelay: ${this.httpConfig.getConfirmationRetryDelay}ms,
89
+ exponentialBackoffDelay: ${this.httpConfig.getConfirmationExponentialBackoffDelay}ms,
90
+ maxExponentialBackoffDelay: ${this.httpConfig.getConfirmationMaxExponentialBackoffDelay}ms`);
93
91
  }
92
+ result.emit('error', error);
94
93
  });
95
94
  return result;
96
95
  });
@@ -102,16 +101,11 @@ class HttpDataAccess {
102
101
  * @param timestampBoundaries filter timestamp boundaries
103
102
  */
104
103
  getTransactionsByChannelId(channelId, timestampBoundaries) {
105
- return __awaiter(this, void 0, void 0, function* () {
106
- const { data } = yield utils_1.default.retry(() => __awaiter(this, void 0, void 0, function* () {
107
- return axios_1.default.get('/getTransactionsByChannelId', Object.assign(this.axiosConfig, {
108
- params: { channelId, timestampBoundaries },
109
- }));
110
- }), {
111
- maxRetries: HTTP_REQUEST_MAX_RETRY,
112
- retryDelay: HTTP_REQUEST_RETRY_DELAY,
113
- })();
114
- return data;
104
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
105
+ return yield this.fetchAndRetry('/getTransactionsByChannelId', {
106
+ channelId,
107
+ timestampBoundaries,
108
+ });
115
109
  });
116
110
  }
117
111
  /**
@@ -121,16 +115,11 @@ class HttpDataAccess {
121
115
  * @param updatedBetween filter timestamp boundaries
122
116
  */
123
117
  getChannelsByTopic(topic, updatedBetween) {
124
- return __awaiter(this, void 0, void 0, function* () {
125
- const { data } = yield utils_1.default.retry(() => __awaiter(this, void 0, void 0, function* () {
126
- return axios_1.default.get('/getChannelsByTopic', Object.assign(this.axiosConfig, {
127
- params: { topic, updatedBetween },
128
- }));
129
- }), {
130
- maxRetries: HTTP_REQUEST_MAX_RETRY,
131
- retryDelay: HTTP_REQUEST_RETRY_DELAY,
132
- })();
133
- return data;
118
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
119
+ return yield this.fetchAndRetry('/getChannelsByTopic', {
120
+ topic,
121
+ updatedBetween,
122
+ });
134
123
  });
135
124
  }
136
125
  /**
@@ -140,34 +129,63 @@ class HttpDataAccess {
140
129
  * @param updatedBetween filter timestamp boundaries
141
130
  */
142
131
  getChannelsByMultipleTopics(topics, updatedBetween) {
143
- return __awaiter(this, void 0, void 0, function* () {
144
- const { data } = yield utils_1.default.retry(() => __awaiter(this, void 0, void 0, function* () {
145
- return axios_1.default.get('/getChannelsByMultipleTopics', Object.assign(this.axiosConfig, {
146
- params: { topics, updatedBetween },
147
- }));
148
- }), {
149
- maxRetries: HTTP_REQUEST_MAX_RETRY,
150
- retryDelay: HTTP_REQUEST_RETRY_DELAY,
151
- })();
152
- return data;
132
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
133
+ return yield this.fetchAndRetry('/getChannelsByMultipleTopics', {
134
+ topics,
135
+ updatedBetween,
136
+ });
153
137
  });
154
138
  }
155
139
  /**
156
140
  * Gets information from the node (version, files etc...)
157
141
  *
158
- * @param detailed if true get the list of files hashes
159
142
  */
160
- _getStatus(detailed) {
161
- return __awaiter(this, void 0, void 0, function* () {
162
- const { data } = yield utils_1.default.retry(() => __awaiter(this, void 0, void 0, function* () {
163
- return axios_1.default.get('/information', Object.assign(this.axiosConfig, {
164
- params: { detailed },
165
- }));
166
- }), {
167
- maxRetries: HTTP_REQUEST_MAX_RETRY,
168
- retryDelay: HTTP_REQUEST_RETRY_DELAY,
169
- })();
170
- return data;
143
+ _getStatus() {
144
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
145
+ return yield this.fetchAndRetry('/information', {});
146
+ });
147
+ }
148
+ /**
149
+ * Sends an HTTP GET request to the node and retries until it succeeds.
150
+ * Throws when the retry count reaches a maximum.
151
+ *
152
+ * @param url HTTP GET request url
153
+ * @param params HTTP GET request parameters
154
+ * @param retryConfig Maximum retry count, delay between retries, exponential backoff delay, and maximum exponential backoff delay
155
+ */
156
+ fetchAndRetry(path, params, retryConfig = {}) {
157
+ var _a, _b, _c, _d;
158
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
159
+ retryConfig.maxRetries = (_a = retryConfig.maxRetries) !== null && _a !== void 0 ? _a : this.httpConfig.httpRequestMaxRetry;
160
+ retryConfig.retryDelay = (_b = retryConfig.retryDelay) !== null && _b !== void 0 ? _b : this.httpConfig.httpRequestRetryDelay;
161
+ retryConfig.exponentialBackoffDelay =
162
+ (_c = retryConfig.exponentialBackoffDelay) !== null && _c !== void 0 ? _c : this.httpConfig.httpRequestExponentialBackoffDelay;
163
+ retryConfig.maxExponentialBackoffDelay =
164
+ (_d = retryConfig.maxExponentialBackoffDelay) !== null && _d !== void 0 ? _d : this.httpConfig.httpRequestMaxExponentialBackoffDelay;
165
+ return yield (0, utils_1.retry)(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.fetch('GET', path, params); }), retryConfig)();
166
+ });
167
+ }
168
+ fetch(method, path, params, body) {
169
+ return tslib_1.__awaiter(this, void 0, void 0, function* () {
170
+ const _a = this.nodeConnectionConfig, { baseURL, headers } = _a, options = tslib_1.__rest(_a, ["baseURL", "headers"]);
171
+ const url = new URL(path, baseURL);
172
+ if (params) {
173
+ // qs.parse doesn't handle well mixes of string and object params
174
+ for (const [key, value] of Object.entries(params)) {
175
+ if (typeof value === 'object') {
176
+ params[key] = JSON.stringify(value);
177
+ }
178
+ }
179
+ url.search = (0, qs_1.stringify)(params);
180
+ }
181
+ const r = yield fetch(url, Object.assign({ method, body: body ? JSON.stringify(body) : undefined, headers: Object.assign({ 'Content-Type': 'application/json' }, headers) }, options));
182
+ if (r.ok) {
183
+ return yield r.json();
184
+ }
185
+ throw Object.assign(new Error(r.statusText), {
186
+ status: r.status,
187
+ statusText: r.statusText,
188
+ });
171
189
  });
172
190
  }
173
191
  }
@@ -1 +1 @@
1
- {"version":3,"file":"http-data-access.js","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"http-data-access.js","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- import { DataAccessTypes } from '@requestnetwork/types';
2
- import { AxiosRequestConfig } from 'axios';
3
- import HttpDataAccess from './http-data-access';
1
+ import { ClientTypes, DataAccessTypes } from '@requestnetwork/types';
2
+ import HttpDataAccess, { NodeConnectionConfig } from './http-data-access';
4
3
  /**
5
4
  * Exposes a Data-Access module over HTTP
6
5
  */
@@ -17,15 +16,16 @@ export default class HttpMetaMaskDataAccess extends HttpDataAccess {
17
16
  } | null;
18
17
  };
19
18
  };
20
- private submitterContract;
21
19
  private provider;
22
20
  private networkName;
23
21
  /**
24
22
  * Creates an instance of HttpDataAccess.
25
- * @param nodeConnectionConfig Configuration options to connect to the node. Follows Axios configuration format.
23
+ * @param httpConfig Http config that will be used by the underlying http-data-access. @see ClientTypes.IHttpDataAccessConfig
24
+ * @param nodeConnectionConfig Configuration options to connect to the node.
26
25
  */
27
- constructor({ nodeConnectionConfig, web3, ethereumProviderUrl, }?: {
28
- nodeConnectionConfig?: AxiosRequestConfig;
26
+ constructor({ httpConfig, nodeConnectionConfig, web3, ethereumProviderUrl, }?: {
27
+ httpConfig?: Partial<ClientTypes.IHttpDataAccessConfig>;
28
+ nodeConnectionConfig?: NodeConnectionConfig;
29
29
  web3?: any;
30
30
  ethereumProviderUrl?: string;
31
31
  });
@@ -1 +1 @@
1
- {"version":3,"file":"http-metamask-data-access.d.ts","sourceRoot":"","sources":["../src/http-metamask-data-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAc,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAGlD,OAAO,cAAc,MAAM,oBAAoB,CAAC;AAQhD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,cAAc;IAChE;;;OAGG;IACI,KAAK,EAAE;QACZ,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,CAAC,QAAQ,EAAE,MAAM,GAAG;gBAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;gBAAC,WAAW,EAAE,GAAG,CAAA;aAAE,GAAG,IAAI,CAAC;SAChF,CAAC;KACH,CAAM;IAEP,OAAO,CAAC,iBAAiB,CAA8B;IACvD,OAAO,CAAC,QAAQ,CAAmE;IACnF,OAAO,CAAC,WAAW,CAAc;IAEjC;;;OAGG;gBAED,EACE,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,GACpB,GAAE;QACD,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;QAC1C,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAG9B;IAYH;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;;OAKG;IACU,kBAAkB,CAC7B,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IA+FrD;;;;;OAKG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAoClD;;;;;;;OAOG;IACI,kCAAkC,CACvC,SAAS,EAAE,MAAM,EACjB,uBAAuB,EAAE,MAAM,EAAE,EACjC,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,eAAe,CAAC,sBAAsB;CAqC1C"}
1
+ {"version":3,"file":"http-metamask-data-access.d.ts","sourceRoot":"","sources":["../src/http-metamask-data-access.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAiB,eAAe,EAAgB,MAAM,uBAAuB,CAAC;AAGlG,OAAO,cAAc,EAAE,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,sBAAuB,SAAQ,cAAc;IAChE;;;OAGG;IACI,KAAK,EAAE;QACZ,CAAC,SAAS,EAAE,MAAM,GAAG;YACnB,CAAC,QAAQ,EAAE,MAAM,GAAG;gBAAE,KAAK,EAAE,eAAe,CAAC,MAAM,CAAC;gBAAC,WAAW,EAAE,GAAG,CAAA;aAAE,GAAG,IAAI,CAAC;SAChF,CAAC;KACH,CAAM;IAEP,OAAO,CAAC,QAAQ,CAAmE;IACnF,OAAO,CAAC,WAAW,CAAyC;IAE5D;;;;OAIG;gBAED,EACE,UAAU,EACV,oBAAoB,EACpB,IAAI,EACJ,mBAAmB,GACpB,GAAE;QACD,UAAU,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACxD,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;QAC5C,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,mBAAmB,CAAC,EAAE,MAAM,CAAC;KAG9B;IAYH;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;;OAKG;IACU,kBAAkB,CAC7B,eAAe,EAAE,eAAe,CAAC,YAAY,EAC7C,SAAS,EAAE,MAAM,EACjB,MAAM,CAAC,EAAE,MAAM,EAAE,GAChB,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;IAsGrD;;;;;OAKG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,OAAO,CAAC,eAAe,CAAC,sBAAsB,CAAC;IAiClD;;;;;;;OAOG;IACI,kCAAkC,CACvC,SAAS,EAAE,MAAM,EACjB,uBAAuB,EAAE,MAAM,EAAE,EACjC,mBAAmB,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACzD,eAAe,CAAC,sBAAsB;CAqC1C"}