@requestnetwork/request-client.js 0.30.1-next.757 → 0.30.1-next.783
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/dist/api/request-network.d.ts +17 -5
- package/dist/api/request-network.d.ts.map +1 -1
- package/dist/api/request-network.js +34 -10
- package/dist/api/request-network.js.map +1 -1
- package/dist/http-data-access-config.d.ts +36 -0
- package/dist/http-data-access-config.d.ts.map +1 -0
- package/dist/http-data-access-config.js +66 -0
- package/dist/http-data-access-config.js.map +1 -0
- package/dist/http-data-access.d.ts +9 -32
- package/dist/http-data-access.d.ts.map +1 -1
- package/dist/http-data-access.js +27 -105
- package/dist/http-data-access.js.map +1 -1
- package/dist/http-data-read.d.ts +40 -0
- package/dist/http-data-read.d.ts.map +1 -0
- package/dist/http-data-read.js +76 -0
- package/dist/http-data-read.js.map +1 -0
- package/dist/http-data-write.d.ts +28 -0
- package/dist/http-data-write.d.ts.map +1 -0
- package/dist/http-data-write.js +67 -0
- package/dist/http-data-write.js.map +1 -0
- package/dist/http-metamask-data-access.d.ts +2 -1
- package/dist/http-metamask-data-access.d.ts.map +1 -1
- package/dist/http-metamask-data-access.js +4 -4
- package/dist/http-metamask-data-access.js.map +1 -1
- package/dist/http-request-network.d.ts +1 -1
- package/dist/http-request-network.d.ts.map +1 -1
- package/dist/http-request-network.js +1 -7
- package/dist/http-request-network.js.map +1 -1
- package/dist/http-transaction.d.ts +12 -0
- package/dist/http-transaction.d.ts.map +1 -0
- package/dist/http-transaction.js +29 -0
- package/dist/http-transaction.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/report.html +2 -2
- package/dist/requestnetwork.min.js +2 -2
- package/dist/requestnetwork.min.js.map +1 -1
- package/package.json +14 -14
- package/dist/no-persist-http-data-access.d.ts +0 -10
- package/dist/no-persist-http-data-access.d.ts.map +0 -1
- package/dist/no-persist-http-data-access.js +0 -36
- package/dist/no-persist-http-data-access.js.map +0 -1
package/dist/http-data-access.js
CHANGED
|
@@ -1,32 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const tslib_1 = require("tslib");
|
|
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
4
|
const ethers_1 = require("ethers");
|
|
9
|
-
|
|
10
|
-
const
|
|
5
|
+
const data_access_1 = require("@requestnetwork/data-access");
|
|
6
|
+
const http_data_read_1 = require("./http-data-read");
|
|
7
|
+
const http_data_write_1 = require("./http-data-write");
|
|
8
|
+
const http_data_access_config_1 = require("./http-data-access-config");
|
|
9
|
+
const http_transaction_1 = require("./http-transaction");
|
|
11
10
|
/**
|
|
12
11
|
* Exposes a Data-Access module over HTTP
|
|
13
12
|
*/
|
|
14
|
-
class HttpDataAccess {
|
|
13
|
+
class HttpDataAccess extends data_access_1.CombinedDataAccess {
|
|
15
14
|
/**
|
|
16
15
|
* Creates an instance of HttpDataAccess.
|
|
17
16
|
* @param httpConfig @see ClientTypes.IHttpDataAccessConfig for available options.
|
|
18
17
|
* @param nodeConnectionConfig Configuration options to connect to the node.
|
|
19
18
|
*/
|
|
20
|
-
constructor({ httpConfig, nodeConnectionConfig, } = {
|
|
19
|
+
constructor({ httpConfig, nodeConnectionConfig, skipPersistence, } = {
|
|
21
20
|
httpConfig: {},
|
|
22
21
|
nodeConnectionConfig: {},
|
|
22
|
+
skipPersistence: true,
|
|
23
23
|
}) {
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
const dataAccessConfig = new http_data_access_config_1.HttpDataAccessConfig({ httpConfig, nodeConnectionConfig });
|
|
25
|
+
const transaction = new http_transaction_1.HttpTransaction(dataAccessConfig);
|
|
26
|
+
const reader = new http_data_read_1.HttpDataRead(dataAccessConfig);
|
|
27
|
+
const writer = skipPersistence
|
|
28
|
+
? new data_access_1.NoPersistDataWrite()
|
|
29
|
+
: new http_data_write_1.HttpDataWrite(dataAccessConfig, transaction);
|
|
30
|
+
super(reader, writer);
|
|
31
|
+
this.dataAccessConfig = dataAccessConfig;
|
|
32
|
+
this.transaction = transaction;
|
|
30
33
|
}
|
|
31
34
|
/**
|
|
32
35
|
* Initialize the module. Does nothing, exists only to implement IDataAccess
|
|
@@ -58,27 +61,7 @@ class HttpDataAccess {
|
|
|
58
61
|
*/
|
|
59
62
|
persistTransaction(transactionData, channelId, topics) {
|
|
60
63
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
|
|
62
|
-
// For example, if the Ethereum network is slow and we retry the request three times
|
|
63
|
-
// three data will be persisted at the end
|
|
64
|
-
const data = yield this.fetch('POST', '/persistTransaction', undefined, { channelId, topics, transactionData });
|
|
65
|
-
// Create the return result with EventEmitter
|
|
66
|
-
const result = Object.assign(new events_1.EventEmitter(), data);
|
|
67
|
-
// Try to get the confirmation
|
|
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.getConfirmedTransaction(transactionData);
|
|
71
|
-
// when found, emit the event 'confirmed'
|
|
72
|
-
result.emit('confirmed', confirmedData);
|
|
73
|
-
}))
|
|
74
|
-
.catch((e) => {
|
|
75
|
-
let error = e;
|
|
76
|
-
if (e && 'status' in e && e.status === 404) {
|
|
77
|
-
error = new Error(`Timeout while confirming the Request was persisted. It is likely that the Request will be confirmed eventually. Catch this error and use getConfirmedTransaction() to continue polling for confirmation. Adjusting the httpConfig settings on the RequestNetwork object to avoid future timeouts. Avoid calling persistTransaction() again to prevent creating a duplicate Request.`);
|
|
78
|
-
}
|
|
79
|
-
result.emit('error', error);
|
|
80
|
-
});
|
|
81
|
-
return result;
|
|
64
|
+
return yield this.writer.persistTransaction(transactionData, channelId, topics);
|
|
82
65
|
});
|
|
83
66
|
}
|
|
84
67
|
/**
|
|
@@ -87,15 +70,7 @@ class HttpDataAccess {
|
|
|
87
70
|
*/
|
|
88
71
|
getConfirmedTransaction(transactionData) {
|
|
89
72
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
|
|
91
|
-
return yield this.fetchAndRetry('/getConfirmedTransaction', {
|
|
92
|
-
transactionHash,
|
|
93
|
-
}, {
|
|
94
|
-
maxRetries: this.httpConfig.getConfirmationMaxRetry,
|
|
95
|
-
retryDelay: this.httpConfig.getConfirmationRetryDelay,
|
|
96
|
-
exponentialBackoffDelay: this.httpConfig.getConfirmationExponentialBackoffDelay,
|
|
97
|
-
maxExponentialBackoffDelay: this.httpConfig.getConfirmationMaxExponentialBackoffDelay,
|
|
98
|
-
});
|
|
73
|
+
return yield this.transaction.getConfirmedTransaction(transactionData);
|
|
99
74
|
});
|
|
100
75
|
}
|
|
101
76
|
/**
|
|
@@ -106,10 +81,7 @@ class HttpDataAccess {
|
|
|
106
81
|
*/
|
|
107
82
|
getTransactionsByChannelId(channelId, timestampBoundaries) {
|
|
108
83
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
109
|
-
return yield this.
|
|
110
|
-
channelId,
|
|
111
|
-
timestampBoundaries,
|
|
112
|
-
});
|
|
84
|
+
return yield this.reader.getTransactionsByChannelId(channelId, timestampBoundaries);
|
|
113
85
|
});
|
|
114
86
|
}
|
|
115
87
|
/**
|
|
@@ -118,12 +90,9 @@ class HttpDataAccess {
|
|
|
118
90
|
* @param topic topic to search for
|
|
119
91
|
* @param updatedBetween filter timestamp boundaries
|
|
120
92
|
*/
|
|
121
|
-
getChannelsByTopic(topic, updatedBetween
|
|
93
|
+
getChannelsByTopic(topic, updatedBetween) {
|
|
122
94
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
123
|
-
|
|
124
|
-
const params = Object.assign(Object.assign({ topic,
|
|
125
|
-
updatedBetween }, (page !== undefined && { page })), (pageSize !== undefined && { pageSize }));
|
|
126
|
-
return yield this.fetchAndRetry('/getChannelsByTopic', params);
|
|
95
|
+
return yield this.reader.getChannelsByTopic(topic, updatedBetween);
|
|
127
96
|
});
|
|
128
97
|
}
|
|
129
98
|
/**
|
|
@@ -132,15 +101,9 @@ class HttpDataAccess {
|
|
|
132
101
|
* @param topics topics to search for
|
|
133
102
|
* @param updatedBetween filter timestamp boundaries
|
|
134
103
|
*/
|
|
135
|
-
getChannelsByMultipleTopics(topics, updatedBetween
|
|
104
|
+
getChannelsByMultipleTopics(topics, updatedBetween) {
|
|
136
105
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
137
|
-
|
|
138
|
-
return yield this.fetchAndRetry('/getChannelsByMultipleTopics', {
|
|
139
|
-
topics,
|
|
140
|
-
updatedBetween,
|
|
141
|
-
page,
|
|
142
|
-
pageSize,
|
|
143
|
-
});
|
|
106
|
+
return yield this.reader.getChannelsByMultipleTopics(topics, updatedBetween);
|
|
144
107
|
});
|
|
145
108
|
}
|
|
146
109
|
/**
|
|
@@ -149,7 +112,7 @@ class HttpDataAccess {
|
|
|
149
112
|
*/
|
|
150
113
|
_getStatus() {
|
|
151
114
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
152
|
-
return yield this.fetchAndRetry('/information', {});
|
|
115
|
+
return yield this.dataAccessConfig.fetchAndRetry('/information', {});
|
|
153
116
|
});
|
|
154
117
|
}
|
|
155
118
|
/**
|
|
@@ -165,49 +128,8 @@ class HttpDataAccess {
|
|
|
165
128
|
if (!ethers_1.utils.isAddress(delegateeAddress)) {
|
|
166
129
|
throw new Error('delegateeAddress must be a valid Ethereum address');
|
|
167
130
|
}
|
|
168
|
-
return yield this.fetchAndRetry('/getLitCapacityDelegationAuthSig', {
|
|
169
|
-
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* Sends an HTTP GET request to the node and retries until it succeeds.
|
|
173
|
-
* Throws when the retry count reaches a maximum.
|
|
174
|
-
*
|
|
175
|
-
* @param url HTTP GET request url
|
|
176
|
-
* @param params HTTP GET request parameters
|
|
177
|
-
* @param retryConfig Maximum retry count, delay between retries, exponential backoff delay, and maximum exponential backoff delay
|
|
178
|
-
*/
|
|
179
|
-
fetchAndRetry(path, params, retryConfig = {}) {
|
|
180
|
-
var _a, _b, _c, _d;
|
|
181
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
182
|
-
retryConfig.maxRetries = (_a = retryConfig.maxRetries) !== null && _a !== void 0 ? _a : this.httpConfig.httpRequestMaxRetry;
|
|
183
|
-
retryConfig.retryDelay = (_b = retryConfig.retryDelay) !== null && _b !== void 0 ? _b : this.httpConfig.httpRequestRetryDelay;
|
|
184
|
-
retryConfig.exponentialBackoffDelay =
|
|
185
|
-
(_c = retryConfig.exponentialBackoffDelay) !== null && _c !== void 0 ? _c : this.httpConfig.httpRequestExponentialBackoffDelay;
|
|
186
|
-
retryConfig.maxExponentialBackoffDelay =
|
|
187
|
-
(_d = retryConfig.maxExponentialBackoffDelay) !== null && _d !== void 0 ? _d : this.httpConfig.httpRequestMaxExponentialBackoffDelay;
|
|
188
|
-
return yield (0, utils_1.retry)(() => tslib_1.__awaiter(this, void 0, void 0, function* () { return yield this.fetch('GET', path, params); }), retryConfig)();
|
|
189
|
-
});
|
|
190
|
-
}
|
|
191
|
-
fetch(method, path, params, body) {
|
|
192
|
-
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
193
|
-
const _a = this.nodeConnectionConfig, { baseURL, headers } = _a, options = tslib_1.__rest(_a, ["baseURL", "headers"]);
|
|
194
|
-
const url = new URL(path, baseURL);
|
|
195
|
-
if (params) {
|
|
196
|
-
// qs.parse doesn't handle well mixes of string and object params
|
|
197
|
-
for (const [key, value] of Object.entries(params)) {
|
|
198
|
-
if (typeof value === 'object') {
|
|
199
|
-
params[key] = JSON.stringify(value);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
url.search = (0, qs_1.stringify)(params);
|
|
203
|
-
}
|
|
204
|
-
const r = yield fetch(url, Object.assign({ method, body: body ? JSON.stringify(body) : undefined, headers: Object.assign({ 'Content-Type': 'application/json' }, headers) }, options));
|
|
205
|
-
if (r.ok) {
|
|
206
|
-
return yield r.json();
|
|
207
|
-
}
|
|
208
|
-
throw Object.assign(new Error(r.statusText), {
|
|
209
|
-
status: r.status,
|
|
210
|
-
statusText: r.statusText,
|
|
131
|
+
return yield this.dataAccessConfig.fetchAndRetry('/getLitCapacityDelegationAuthSig', {
|
|
132
|
+
delegateeAddress,
|
|
211
133
|
});
|
|
212
134
|
});
|
|
213
135
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-data-access.js","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"http-data-access.js","sourceRoot":"","sources":["../src/http-data-access.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAC/B,6DAAqF;AACrF,qDAAgD;AAChD,uDAAkD;AAClD,uEAAuF;AACvF,yDAAqD;AAErD;;GAEG;AACH,MAAqB,cAAe,SAAQ,gCAAkB;IAG5D;;;;OAIG;IACH,YACE,EACE,UAAU,EACV,oBAAoB,EACpB,eAAe,MAKb;QACF,UAAU,EAAE,EAAE;QACd,oBAAoB,EAAE,EAAE;QACxB,eAAe,EAAE,IAAI;KACtB;QAED,MAAM,gBAAgB,GAAG,IAAI,8CAAoB,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,CAAC,CAAC;QACxF,MAAM,WAAW,GAAG,IAAI,kCAAe,CAAC,gBAAgB,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,IAAI,6BAAY,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,MAAM,GAAG,eAAe;YAC5B,CAAC,CAAC,IAAI,gCAAkB,EAAE;YAC1B,CAAC,CAAC,IAAI,+BAAa,CAAC,gBAAgB,EAAE,WAAW,CAAC,CAAC;QAErD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAEtB,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IACD;;;;OAIG;IACU,UAAU;;YACrB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;OAIG;IACU,KAAK;;YAChB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;;OAKG;IACU,kBAAkB,CAC7B,eAA6C,EAC7C,SAAiB,EACjB,MAAiB;;YAEjB,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,eAAe,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;KAAA;IAED;;;OAGG;IACU,uBAAuB,CAClC,eAA6C;;YAE7C,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;QACzE,CAAC;KAAA;IAED;;;;;OAKG;IACU,0BAA0B,CACrC,SAAiB,EACjB,mBAA0D;;YAE1D,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,0BAA0B,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;QACtF,CAAC;KAAA;IAED;;;;;OAKG;IACU,kBAAkB,CAC7B,KAAa,EACb,cAAqD;;YAErD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACrE,CAAC;KAAA;IAED;;;;;OAKG;IACU,2BAA2B,CACtC,MAAgB,EAChB,cAAqD;;YAErD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,2BAA2B,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QAC/E,CAAC;KAAA;IAED;;;OAGG;IACU,UAAU;;YACrB,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACvE,CAAC;KAAA;IAED;;;;OAIG;IACU,+BAA+B,CAC1C,gBAAwB;;YAExB,IAAI,CAAC,gBAAgB,IAAI,OAAO,gBAAgB,KAAK,QAAQ,EAAE;gBAC7D,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;aAChE;YACD,IAAI,CAAC,cAAK,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE;gBACtC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;aACtE;YACD,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,kCAAkC,EAAE;gBACnF,gBAAgB;aACjB,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAhJD,iCAgJC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DataAccessTypes } from '@requestnetwork/types';
|
|
2
|
+
import { HttpDataAccessConfig } from './http-data-access-config';
|
|
3
|
+
export declare class HttpDataRead implements DataAccessTypes.IDataRead {
|
|
4
|
+
private readonly dataAccessConfig;
|
|
5
|
+
constructor(dataAccessConfig: HttpDataAccessConfig);
|
|
6
|
+
/**
|
|
7
|
+
* Initialize the module. Does nothing, exists only to implement IDataAccess
|
|
8
|
+
*
|
|
9
|
+
* @returns nothing
|
|
10
|
+
*/
|
|
11
|
+
initialize(): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Closes the module. Does nothing, exists only to implement IDataAccess
|
|
14
|
+
*
|
|
15
|
+
* @returns nothing
|
|
16
|
+
*/
|
|
17
|
+
close(): Promise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Gets the transactions for a channel from the node through HTTP.
|
|
20
|
+
*
|
|
21
|
+
* @param channelId The channel id to search for
|
|
22
|
+
* @param timestampBoundaries filter timestamp boundaries
|
|
23
|
+
*/
|
|
24
|
+
getTransactionsByChannelId(channelId: string, timestampBoundaries?: DataAccessTypes.ITimestampBoundaries): Promise<DataAccessTypes.IReturnGetTransactions>;
|
|
25
|
+
/**
|
|
26
|
+
* Gets all the transactions of channel indexed by topic from the node through HTTP.
|
|
27
|
+
*
|
|
28
|
+
* @param topic topic to search for
|
|
29
|
+
* @param updatedBetween filter timestamp boundaries
|
|
30
|
+
*/
|
|
31
|
+
getChannelsByTopic(topic: string, updatedBetween?: DataAccessTypes.ITimestampBoundaries): Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
|
|
32
|
+
/**
|
|
33
|
+
* Gets all the transactions of channel indexed by multiple topics from the node through HTTP.
|
|
34
|
+
*
|
|
35
|
+
* @param topics topics to search for
|
|
36
|
+
* @param updatedBetween filter timestamp boundaries
|
|
37
|
+
*/
|
|
38
|
+
getChannelsByMultipleTopics(topics: string[], updatedBetween?: DataAccessTypes.ITimestampBoundaries): Promise<DataAccessTypes.IReturnGetChannelsByTopic>;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=http-data-read.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-data-read.d.ts","sourceRoot":"","sources":["../src/http-data-read.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBAAa,YAAa,YAAW,eAAe,CAAC,SAAS;IAChD,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,oBAAoB;IAEnE;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAKxC;;;;OAIG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAKnC;;;;;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;IASrD;;;;;OAKG;IACU,2BAA2B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,eAAe,CAAC,oBAAoB,GACpD,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;CAMtD"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpDataRead = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
class HttpDataRead {
|
|
6
|
+
constructor(dataAccessConfig) {
|
|
7
|
+
this.dataAccessConfig = dataAccessConfig;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Initialize the module. Does nothing, exists only to implement IDataAccess
|
|
11
|
+
*
|
|
12
|
+
* @returns nothing
|
|
13
|
+
*/
|
|
14
|
+
initialize() {
|
|
15
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
// no-op, nothing to do
|
|
17
|
+
return;
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Closes the module. Does nothing, exists only to implement IDataAccess
|
|
22
|
+
*
|
|
23
|
+
* @returns nothing
|
|
24
|
+
*/
|
|
25
|
+
close() {
|
|
26
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
27
|
+
// no-op, nothing to do
|
|
28
|
+
return;
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Gets the transactions for a channel from the node through HTTP.
|
|
33
|
+
*
|
|
34
|
+
* @param channelId The channel id to search for
|
|
35
|
+
* @param timestampBoundaries filter timestamp boundaries
|
|
36
|
+
*/
|
|
37
|
+
getTransactionsByChannelId(channelId, timestampBoundaries) {
|
|
38
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
39
|
+
return yield this.dataAccessConfig.fetchAndRetry('/getTransactionsByChannelId', {
|
|
40
|
+
channelId,
|
|
41
|
+
timestampBoundaries,
|
|
42
|
+
});
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Gets all the transactions of channel indexed by topic from the node through HTTP.
|
|
47
|
+
*
|
|
48
|
+
* @param topic topic to search for
|
|
49
|
+
* @param updatedBetween filter timestamp boundaries
|
|
50
|
+
*/
|
|
51
|
+
getChannelsByTopic(topic, updatedBetween) {
|
|
52
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
53
|
+
const params = {
|
|
54
|
+
topic,
|
|
55
|
+
updatedBetween,
|
|
56
|
+
};
|
|
57
|
+
return yield this.dataAccessConfig.fetchAndRetry('/getChannelsByTopic', params);
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Gets all the transactions of channel indexed by multiple topics from the node through HTTP.
|
|
62
|
+
*
|
|
63
|
+
* @param topics topics to search for
|
|
64
|
+
* @param updatedBetween filter timestamp boundaries
|
|
65
|
+
*/
|
|
66
|
+
getChannelsByMultipleTopics(topics, updatedBetween) {
|
|
67
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
68
|
+
return yield this.dataAccessConfig.fetchAndRetry('/getChannelsByMultipleTopics', {
|
|
69
|
+
topics,
|
|
70
|
+
updatedBetween,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.HttpDataRead = HttpDataRead;
|
|
76
|
+
//# sourceMappingURL=http-data-read.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-data-read.js","sourceRoot":"","sources":["../src/http-data-read.ts"],"names":[],"mappings":";;;;AAGA,MAAa,YAAY;IACvB,YAA6B,gBAAsC;QAAtC,qBAAgB,GAAhB,gBAAgB,CAAsB;IAAG,CAAC;IAEvE;;;;OAIG;IACU,UAAU;;YACrB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;OAIG;IACU,KAAK;;YAChB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;;OAKG;IACU,0BAA0B,CACrC,SAAiB,EACjB,mBAA0D;;YAE1D,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAC9C,6BAA6B,EAC7B;gBACE,SAAS;gBACT,mBAAmB;aACpB,CACF,CAAC;QACJ,CAAC;KAAA;IAED;;;;;OAKG;IACU,kBAAkB,CAC7B,KAAa,EACb,cAAqD;;YAErD,MAAM,MAAM,GAAG;gBACb,KAAK;gBACL,cAAc;aACf,CAAC;YAEF,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;QAClF,CAAC;KAAA;IAED;;;;;OAKG;IACU,2BAA2B,CACtC,MAAgB,EAChB,cAAqD;;YAErD,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAAC,8BAA8B,EAAE;gBAC/E,MAAM;gBACN,cAAc;aACf,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AA3ED,oCA2EC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DataAccessTypes } from '@requestnetwork/types';
|
|
2
|
+
import { HttpDataAccessConfig } from './http-data-access-config';
|
|
3
|
+
import { HttpTransaction } from './http-transaction';
|
|
4
|
+
export declare class HttpDataWrite implements DataAccessTypes.IDataWrite {
|
|
5
|
+
private readonly dataAccessConfig;
|
|
6
|
+
private readonly transaction;
|
|
7
|
+
constructor(dataAccessConfig: HttpDataAccessConfig, transaction: HttpTransaction);
|
|
8
|
+
/**
|
|
9
|
+
* Initialize the module. Does nothing, exists only to implement IDataAccess
|
|
10
|
+
*
|
|
11
|
+
* @returns nothing
|
|
12
|
+
*/
|
|
13
|
+
initialize(): Promise<void>;
|
|
14
|
+
/**
|
|
15
|
+
* Closes the module. Does nothing, exists only to implement IDataAccess
|
|
16
|
+
*
|
|
17
|
+
* @returns nothing
|
|
18
|
+
*/
|
|
19
|
+
close(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Persists a new transaction on a node through HTTP.
|
|
22
|
+
*
|
|
23
|
+
* @param transactionData The transaction data
|
|
24
|
+
* @param topics The topics used to index the transaction
|
|
25
|
+
*/
|
|
26
|
+
persistTransaction(transactionData: DataAccessTypes.ITransaction, channelId: string, topics?: string[]): Promise<DataAccessTypes.IReturnPersistTransaction>;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=http-data-write.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-data-write.d.ts","sourceRoot":"","sources":["../src/http-data-write.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAErD,qBAAa,aAAc,YAAW,eAAe,CAAC,UAAU;IAE5D,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,WAAW;gBADX,gBAAgB,EAAE,oBAAoB,EACtC,WAAW,EAAE,eAAe;IAG/C;;;;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;CAmCtD"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpDataWrite = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const events_1 = require("events");
|
|
6
|
+
class HttpDataWrite {
|
|
7
|
+
constructor(dataAccessConfig, transaction) {
|
|
8
|
+
this.dataAccessConfig = dataAccessConfig;
|
|
9
|
+
this.transaction = transaction;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Initialize the module. Does nothing, exists only to implement IDataAccess
|
|
13
|
+
*
|
|
14
|
+
* @returns nothing
|
|
15
|
+
*/
|
|
16
|
+
initialize() {
|
|
17
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
18
|
+
// no-op, nothing to do
|
|
19
|
+
return;
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Closes the module. Does nothing, exists only to implement IDataAccess
|
|
24
|
+
*
|
|
25
|
+
* @returns nothing
|
|
26
|
+
*/
|
|
27
|
+
close() {
|
|
28
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
// no-op, nothing to do
|
|
30
|
+
return;
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Persists a new transaction on a node through HTTP.
|
|
35
|
+
*
|
|
36
|
+
* @param transactionData The transaction data
|
|
37
|
+
* @param topics The topics used to index the transaction
|
|
38
|
+
*/
|
|
39
|
+
persistTransaction(transactionData, channelId, topics) {
|
|
40
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
const eventEmitter = new events_1.EventEmitter();
|
|
42
|
+
// We don't retry this request since it may fail because of a slow Storage
|
|
43
|
+
// For example, if the Ethereum network is slow and we retry the request three times
|
|
44
|
+
// three data will be persisted at the end
|
|
45
|
+
const data = yield this.dataAccessConfig.fetch('POST', '/persistTransaction', undefined, { channelId, topics, transactionData });
|
|
46
|
+
// Create the return result with EventEmitter
|
|
47
|
+
const result = Object.assign(eventEmitter, data);
|
|
48
|
+
// Try to get the confirmation
|
|
49
|
+
new Promise((r) => setTimeout(r, this.dataAccessConfig.httpConfig.getConfirmationDeferDelay))
|
|
50
|
+
.then(() => tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
51
|
+
const confirmedData = yield this.transaction.getConfirmedTransaction(transactionData);
|
|
52
|
+
// when found, emit the event 'confirmed'
|
|
53
|
+
result.emit('confirmed', confirmedData);
|
|
54
|
+
}))
|
|
55
|
+
.catch((e) => {
|
|
56
|
+
let error = e;
|
|
57
|
+
if (e && 'status' in e && e.status === 404) {
|
|
58
|
+
error = new Error(`Timeout while confirming the Request was persisted. It is likely that the Request will be confirmed eventually. Catch this error and use getConfirmedTransaction() to continue polling for confirmation. Adjusting the httpConfig settings on the RequestNetwork object to avoid future timeouts. Avoid calling persistTransaction() again to prevent creating a duplicate Request.`);
|
|
59
|
+
}
|
|
60
|
+
result.emit('error', error);
|
|
61
|
+
});
|
|
62
|
+
return result;
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
exports.HttpDataWrite = HttpDataWrite;
|
|
67
|
+
//# sourceMappingURL=http-data-write.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-data-write.js","sourceRoot":"","sources":["../src/http-data-write.ts"],"names":[],"mappings":";;;;AAEA,mCAAsC;AAGtC,MAAa,aAAa;IACxB,YACmB,gBAAsC,EACtC,WAA4B;QAD5B,qBAAgB,GAAhB,gBAAgB,CAAsB;QACtC,gBAAW,GAAX,WAAW,CAAiB;IAC5C,CAAC;IAEJ;;;;OAIG;IACU,UAAU;;YACrB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;OAIG;IACU,KAAK;;YAChB,uBAAuB;YACvB,OAAO;QACT,CAAC;KAAA;IAED;;;;;OAKG;IACU,kBAAkB,CAC7B,eAA6C,EAC7C,SAAiB,EACjB,MAAiB;;YAEjB,MAAM,YAAY,GAAG,IAAI,qBAAY,EAA+C,CAAC;YAErF,0EAA0E;YAC1E,oFAAoF;YACpF,0CAA0C;YAC1C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAC5C,MAAM,EACN,qBAAqB,EACrB,SAAS,EACT,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,CACvC,CAAC;YAEF,6CAA6C;YAC7C,MAAM,MAAM,GAA8C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAE5F,8BAA8B;YAC9B,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;iBAC1F,IAAI,CAAC,GAAS,EAAE;gBACf,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC;gBACtF,yCAAyC;gBACzC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;YAC1C,CAAC,CAAA,CAAC;iBACD,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;gBACX,IAAI,KAAK,GAAU,CAAC,CAAC;gBACrB,IAAI,CAAC,IAAI,QAAQ,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,GAAG,EAAE;oBAC1C,KAAK,GAAG,IAAI,KAAK,CACf,qXAAqX,CACtX,CAAC;iBACH;gBACD,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YAC9B,CAAC,CAAC,CAAC;YAEL,OAAO,MAAM,CAAC;QAChB,CAAC;KAAA;CACF;AAvED,sCAuEC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ClientTypes, DataAccessTypes } from '@requestnetwork/types';
|
|
2
|
-
import HttpDataAccess
|
|
2
|
+
import HttpDataAccess from './http-data-access';
|
|
3
|
+
import { NodeConnectionConfig } from './http-data-access-config';
|
|
3
4
|
/**
|
|
4
5
|
* Exposes a Data-Access module over HTTP
|
|
5
6
|
*/
|
|
@@ -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,WAAW,EAAiB,eAAe,EAAgB,MAAM,uBAAuB,CAAC;AAGlG,OAAO,cAAc,
|
|
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,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;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;IAqGrD;;;;;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"}
|
|
@@ -62,7 +62,7 @@ class HttpMetaMaskDataAccess extends http_data_access_1.default {
|
|
|
62
62
|
// create a block and add the transaction in it
|
|
63
63
|
const block = data_access_1.Block.pushTransaction(data_access_1.Block.createEmptyBlock(), transactionData, channelId, topics);
|
|
64
64
|
// store the block on ipfs and get the the ipfs hash and size
|
|
65
|
-
const { ipfsHash, ipfsSize } = yield this.fetch('POST', '/ipfsAdd', { data: block });
|
|
65
|
+
const { ipfsHash, ipfsSize } = yield this.dataAccessConfig.fetch('POST', '/ipfsAdd', { data: block });
|
|
66
66
|
// get the fee required to submit the hash
|
|
67
67
|
const fee = yield submitterContract.getFeesAmount(ipfsSize);
|
|
68
68
|
// submit the hash to ethereum
|
|
@@ -135,11 +135,11 @@ class HttpMetaMaskDataAccess extends http_data_access_1.default {
|
|
|
135
135
|
getTransactionsByChannelId(channelId, timestampBoundaries) {
|
|
136
136
|
var _a, _b, _c;
|
|
137
137
|
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
138
|
-
const data = yield this.fetchAndRetry('/getTransactionsByChannelId', {
|
|
138
|
+
const data = yield this.dataAccessConfig.fetchAndRetry('/getTransactionsByChannelId', {
|
|
139
139
|
params: { channelId, timestampBoundaries },
|
|
140
140
|
}, {
|
|
141
|
-
maxRetries: this.httpConfig.httpRequestMaxRetry,
|
|
142
|
-
retryDelay: this.httpConfig.httpRequestRetryDelay,
|
|
141
|
+
maxRetries: this.dataAccessConfig.httpConfig.httpRequestMaxRetry,
|
|
142
|
+
retryDelay: this.dataAccessConfig.httpConfig.httpRequestRetryDelay,
|
|
143
143
|
});
|
|
144
144
|
// get the transactions from the cache
|
|
145
145
|
const transactionsCached = this.getCachedTransactionsAndCleanCache(channelId, data.meta.transactionsStorageLocation, timestampBoundaries);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-metamask-data-access.js","sourceRoot":"","sources":["../src/http-metamask-data-access.ts"],"names":[],"mappings":";;;AAAA,6DAAoD;AACpD,qEAA+E;AAC/E,iDAAkG;AAClG,mCAAgC;AAChC,mCAAsC;AACtC,
|
|
1
|
+
{"version":3,"file":"http-metamask-data-access.js","sourceRoot":"","sources":["../src/http-metamask-data-access.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ClientTypes, CurrencyTypes, CipherProviderTypes, DecryptionProviderTypes, SignatureProviderTypes } from '@requestnetwork/types';
|
|
2
2
|
import { PaymentNetworkOptions } from '@requestnetwork/payment-detection';
|
|
3
3
|
import RequestNetwork from './api/request-network';
|
|
4
|
-
import { NodeConnectionConfig } from './http-data-access';
|
|
4
|
+
import { NodeConnectionConfig } from './http-data-access-config';
|
|
5
5
|
/**
|
|
6
6
|
* Exposes RequestNetwork module configured to use http-data-access.
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-request-network.d.ts","sourceRoot":"","sources":["../src/http-request-network.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EAEnB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,cAAc,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"http-request-network.d.ts","sourceRoot":"","sources":["../src/http-request-network.ts"],"names":[],"mappings":"AACA,OAAO,EACL,WAAW,EACX,aAAa,EACb,mBAAmB,EAEnB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,cAAc,MAAM,uBAAuB,CAAC;AAInD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,cAAc;IAC5D;;;;;;;;;;OAUG;gBAED,EACE,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,GAChB,GAAE;QACD,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB,CAAC;QACjE,cAAc,CAAC,EAAE,mBAAmB,CAAC,eAAe,CAAC;QACrD,UAAU,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC;QACxD,oBAAoB,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,CAAC;QACrD,iBAAiB,CAAC,EAAE,sBAAsB,CAAC,kBAAkB,CAAC;QAC9D,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,eAAe,CAAC,EAAE,aAAa,CAAC,gBAAgB,CAAC;QACjD,cAAc,CAAC,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;QAChD,eAAe,CAAC,EAAE,OAAO,CAAC;KAK3B;CAmBJ"}
|
|
@@ -5,7 +5,6 @@ const request_network_1 = require("./api/request-network");
|
|
|
5
5
|
const http_data_access_1 = require("./http-data-access");
|
|
6
6
|
const data_access_1 = require("@requestnetwork/data-access");
|
|
7
7
|
const mock_storage_1 = require("./mock-storage");
|
|
8
|
-
const no_persist_http_data_access_1 = require("./no-persist-http-data-access");
|
|
9
8
|
/**
|
|
10
9
|
* Exposes RequestNetwork module configured to use http-data-access.
|
|
11
10
|
*/
|
|
@@ -28,12 +27,7 @@ class HttpRequestNetwork extends request_network_1.default {
|
|
|
28
27
|
}) {
|
|
29
28
|
const dataAccess = useMockStorage
|
|
30
29
|
? new data_access_1.MockDataAccess(new mock_storage_1.MockStorage())
|
|
31
|
-
: skipPersistence
|
|
32
|
-
? new no_persist_http_data_access_1.NoPersistHttpDataAccess({
|
|
33
|
-
httpConfig,
|
|
34
|
-
nodeConnectionConfig,
|
|
35
|
-
})
|
|
36
|
-
: new http_data_access_1.default({ httpConfig, nodeConnectionConfig });
|
|
30
|
+
: new http_data_access_1.default({ httpConfig, nodeConnectionConfig, skipPersistence });
|
|
37
31
|
if (!currencyManager) {
|
|
38
32
|
currencyManager = currency_1.CurrencyManager.getDefault();
|
|
39
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-request-network.js","sourceRoot":"","sources":["../src/http-request-network.ts"],"names":[],"mappings":";;AAAA,uDAA2D;AAU3D,2DAAmD;AACnD,
|
|
1
|
+
{"version":3,"file":"http-request-network.js","sourceRoot":"","sources":["../src/http-request-network.ts"],"names":[],"mappings":";;AAAA,uDAA2D;AAU3D,2DAAmD;AACnD,yDAAgD;AAChD,6DAA6D;AAC7D,iDAA6C;AAE7C;;GAEG;AACH,MAAqB,kBAAmB,SAAQ,yBAAc;IAC5D;;;;;;;;;;OAUG;IACH,YACE,EACE,kBAAkB,EAClB,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,cAAc,EACd,eAAe,MAWb;QACF,UAAU,EAAE,EAAE;QACd,cAAc,EAAE,KAAK;QACrB,eAAe,EAAE,KAAK;KACvB;QAED,MAAM,UAAU,GAAgC,cAAc;YAC5D,CAAC,CAAC,IAAI,4BAAc,CAAC,IAAI,0BAAW,EAAE,CAAC;YACvC,CAAC,CAAC,IAAI,0BAAc,CAAC,EAAE,UAAU,EAAE,oBAAoB,EAAE,eAAe,EAAE,CAAC,CAAC;QAE9E,IAAI,CAAC,eAAe,EAAE;YACpB,eAAe,GAAG,0BAAe,CAAC,UAAU,EAAE,CAAC;SAChD;QAED,KAAK,CAAC;YACJ,UAAU;YACV,iBAAiB;YACjB,kBAAkB;YAClB,cAAc;YACd,eAAe;YACf,cAAc;SACf,CAAC,CAAC;IACL,CAAC;CACF;AAxDD,qCAwDC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { HttpDataAccessConfig } from './http-data-access-config';
|
|
2
|
+
import { DataAccessTypes } from '@requestnetwork/types';
|
|
3
|
+
export declare class HttpTransaction {
|
|
4
|
+
private readonly dataAccessConfig;
|
|
5
|
+
constructor(dataAccessConfig: HttpDataAccessConfig);
|
|
6
|
+
/**
|
|
7
|
+
* Gets a transaction from the node through HTTP.
|
|
8
|
+
* @param transactionData The transaction data
|
|
9
|
+
*/
|
|
10
|
+
getConfirmedTransaction(transactionData: DataAccessTypes.ITransaction): Promise<DataAccessTypes.IReturnPersistTransaction>;
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=http-transaction.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-transaction.d.ts","sourceRoot":"","sources":["../src/http-transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,qBAAa,eAAe;IACd,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,oBAAoB;IAEnE;;;OAGG;IACU,uBAAuB,CAClC,eAAe,EAAE,eAAe,CAAC,YAAY,GAC5C,OAAO,CAAC,eAAe,CAAC,yBAAyB,CAAC;CAkBtD"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.HttpTransaction = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const utils_1 = require("@requestnetwork/utils");
|
|
6
|
+
class HttpTransaction {
|
|
7
|
+
constructor(dataAccessConfig) {
|
|
8
|
+
this.dataAccessConfig = dataAccessConfig;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Gets a transaction from the node through HTTP.
|
|
12
|
+
* @param transactionData The transaction data
|
|
13
|
+
*/
|
|
14
|
+
getConfirmedTransaction(transactionData) {
|
|
15
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
16
|
+
const transactionHash = (0, utils_1.normalizeKeccak256Hash)(transactionData).value;
|
|
17
|
+
return yield this.dataAccessConfig.fetchAndRetry('/getConfirmedTransaction', {
|
|
18
|
+
transactionHash,
|
|
19
|
+
}, {
|
|
20
|
+
maxRetries: this.dataAccessConfig.httpConfig.getConfirmationMaxRetry,
|
|
21
|
+
retryDelay: this.dataAccessConfig.httpConfig.getConfirmationRetryDelay,
|
|
22
|
+
exponentialBackoffDelay: this.dataAccessConfig.httpConfig.getConfirmationExponentialBackoffDelay,
|
|
23
|
+
maxExponentialBackoffDelay: this.dataAccessConfig.httpConfig.getConfirmationMaxExponentialBackoffDelay,
|
|
24
|
+
});
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
exports.HttpTransaction = HttpTransaction;
|
|
29
|
+
//# sourceMappingURL=http-transaction.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"http-transaction.js","sourceRoot":"","sources":["../src/http-transaction.ts"],"names":[],"mappings":";;;;AAEA,iDAA+D;AAE/D,MAAa,eAAe;IAC1B,YAA6B,gBAAsC;QAAtC,qBAAgB,GAAhB,gBAAgB,CAAsB;IAAG,CAAC;IAEvE;;;OAGG;IACU,uBAAuB,CAClC,eAA6C;;YAE7C,MAAM,eAAe,GAAW,IAAA,8BAAsB,EAAC,eAAe,CAAC,CAAC,KAAK,CAAC;YAE9E,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,CAC9C,0BAA0B,EAC1B;gBACE,eAAe;aAChB,EACD;gBACE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,uBAAuB;gBACpE,UAAU,EAAE,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,yBAAyB;gBACtE,uBAAuB,EACrB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,sCAAsC;gBACzE,0BAA0B,EACxB,IAAI,CAAC,gBAAgB,CAAC,UAAU,CAAC,yCAAyC;aAC7E,CACF,CAAC;QACJ,CAAC;KAAA;CACF;AA3BD,0CA2BC"}
|