@requestnetwork/request-client.js 0.30.0 → 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.
- package/README.md +9 -13
- package/dist/api/content-data-extension.js +3 -3
- package/dist/api/content-data-extension.js.map +1 -1
- package/dist/api/request-network.d.ts +50 -15
- package/dist/api/request-network.d.ts.map +1 -1
- package/dist/api/request-network.js +187 -87
- package/dist/api/request-network.js.map +1 -1
- package/dist/api/request.d.ts +55 -6
- package/dist/api/request.d.ts.map +1 -1
- package/dist/api/request.js +171 -149
- package/dist/api/request.js.map +1 -1
- package/dist/api/utils.d.ts +5 -6
- package/dist/api/utils.d.ts.map +1 -1
- package/dist/api/utils.js +1 -3
- package/dist/api/utils.js.map +1 -1
- package/dist/http-config-defaults.d.ts +4 -0
- package/dist/http-config-defaults.d.ts.map +1 -0
- package/dist/http-config-defaults.js +16 -0
- package/dist/http-config-defaults.js.map +1 -0
- package/dist/http-data-access.d.ts +40 -9
- package/dist/http-data-access.d.ts.map +1 -1
- package/dist/http-data-access.js +113 -95
- package/dist/http-data-access.js.map +1 -1
- package/dist/http-metamask-data-access.d.ts +7 -7
- package/dist/http-metamask-data-access.d.ts.map +1 -1
- package/dist/http-metamask-data-access.js +57 -61
- package/dist/http-metamask-data-access.js.map +1 -1
- package/dist/http-request-network.d.ts +15 -15
- package/dist/http-request-network.d.ts.map +1 -1
- package/dist/http-request-network.js +23 -25
- package/dist/http-request-network.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/mock-storage.d.ts +2 -5
- package/dist/mock-storage.d.ts.map +1 -1
- package/dist/mock-storage.js +24 -77
- package/dist/mock-storage.js.map +1 -1
- package/dist/no-persist-http-data-access.d.ts +10 -0
- package/dist/no-persist-http-data-access.d.ts.map +1 -0
- package/dist/no-persist-http-data-access.js +36 -0
- package/dist/no-persist-http-data-access.js.map +1 -0
- package/dist/report.html +9 -24
- package/dist/requestnetwork.min.js +441 -1
- package/dist/requestnetwork.min.js.LICENSE.txt +18 -20
- package/dist/requestnetwork.min.js.map +1 -1
- package/dist/types.js +2 -11
- package/dist/types.js.map +1 -1
- package/package.json +33 -44
- package/CHANGELOG.md +0 -2077
- package/dist/api/currency/erc20/celo.d.ts +0 -14
- package/dist/api/currency/erc20/celo.d.ts.map +0 -1
- package/dist/api/currency/erc20/celo.js +0 -26
- package/dist/api/currency/erc20/celo.js.map +0 -1
- package/dist/api/currency/erc20/networks.d.ts +0 -25
- package/dist/api/currency/erc20/networks.d.ts.map +0 -1
- package/dist/api/currency/erc20/networks.js +0 -14
- package/dist/api/currency/erc20/networks.js.map +0 -1
- package/dist/api/currency/erc20/rinkeby.d.ts +0 -19
- package/dist/api/currency/erc20/rinkeby.d.ts.map +0 -1
- package/dist/api/currency/erc20/rinkeby.js +0 -43
- package/dist/api/currency/erc20/rinkeby.js.map +0 -1
- package/dist/api/currency/erc20.d.ts +0 -62
- package/dist/api/currency/erc20.d.ts.map +0 -1
- package/dist/api/currency/erc20.js +0 -136
- package/dist/api/currency/erc20.js.map +0 -1
- package/dist/api/currency.d.ts +0 -45
- package/dist/api/currency.d.ts.map +0 -1
- package/dist/api/currency.js +0 -162
- package/dist/api/currency.js.map +0 -1
- package/dist/mock-data-access.d.ts +0 -11
- package/dist/mock-data-access.d.ts.map +0 -1
- package/dist/mock-data-access.js +0 -16
- package/dist/mock-data-access.js.map +0 -1
package/README.md
CHANGED
|
@@ -56,8 +56,6 @@ const requestNetwork = new RequestNetwork({
|
|
|
56
56
|
});
|
|
57
57
|
```
|
|
58
58
|
|
|
59
|
-
It can be further configured with option from [Axios](https://github.com/axios/axios#request-config).
|
|
60
|
-
|
|
61
59
|
By default, it uses a local node, on http://localhost:3000.
|
|
62
60
|
|
|
63
61
|
### Use in development, without a node
|
|
@@ -71,7 +69,7 @@ const requestNetwork = new RequestNetwork({ useMockStorage: true });
|
|
|
71
69
|
|
|
72
70
|
## Guide
|
|
73
71
|
|
|
74
|
-
We are currently writing the full API reference and more detailed guides. This section will be updated. If you need help in the meantime, [join the Request
|
|
72
|
+
We are currently writing the full API reference and more detailed guides. This section will be updated. If you need help in the meantime, [join the Request Discord](https://request.network/discord/) and come chat with us.
|
|
75
73
|
|
|
76
74
|
### Create a request
|
|
77
75
|
|
|
@@ -88,7 +86,7 @@ const request = await requestNetwork.createRequest({
|
|
|
88
86
|
await request.waitForConfirmation();
|
|
89
87
|
|
|
90
88
|
// or wait the confirmation with an event
|
|
91
|
-
request.on('confirmed', confirmedRequest => {
|
|
89
|
+
request.on('confirmed', (confirmedRequest) => {
|
|
92
90
|
// ...
|
|
93
91
|
});
|
|
94
92
|
```
|
|
@@ -104,14 +102,12 @@ request.on('confirmed', confirmedRequest => {
|
|
|
104
102
|
```javascript
|
|
105
103
|
// a public key to encrypt the request with
|
|
106
104
|
const encryptionParameters = {
|
|
107
|
-
key:
|
|
108
|
-
'cf4a1d0bbef8bf0e3fa479a9def565af1b22ea6266294061bfb430701b54a83699e3d47bf52e9f0224dcc29a02721810f1f624f1f70ea3cc5f1fb752cfed379d',
|
|
105
|
+
key: 'cf4a1d0bbef8bf0e3fa479a9def565af1b22ea6266294061bfb430701b54a83699e3d47bf52e9f0224dcc29a02721810f1f624f1f70ea3cc5f1fb752cfed379d',
|
|
109
106
|
method: EncryptionTypes.METHOD.ECIES,
|
|
110
107
|
};
|
|
111
108
|
// another public key to encrypt the request with
|
|
112
109
|
const encryptionParameters2 = {
|
|
113
|
-
key:
|
|
114
|
-
'299708c07399c9b28e9870c4e643742f65c94683f35d1b3fc05d0478344ee0cc5a6a5e23f78b5ff8c93a04254232b32350c8672d2873677060d5095184dad422',
|
|
110
|
+
key: '299708c07399c9b28e9870c4e643742f65c94683f35d1b3fc05d0478344ee0cc5a6a5e23f78b5ff8c93a04254232b32350c8672d2873677060d5095184dad422',
|
|
115
111
|
method: EncryptionTypes.METHOD.ECIES,
|
|
116
112
|
};
|
|
117
113
|
|
|
@@ -130,7 +126,7 @@ const request = await requestNetwork.createEncryptedRequest(
|
|
|
130
126
|
await request.waitForConfirmation();
|
|
131
127
|
|
|
132
128
|
// or wait the confirmation with an event
|
|
133
|
-
request.on('confirmed', confirmedRequest => {
|
|
129
|
+
request.on('confirmed', (confirmedRequest) => {
|
|
134
130
|
// ...
|
|
135
131
|
});
|
|
136
132
|
```
|
|
@@ -228,7 +224,7 @@ npm install @requestnetwork/epk-decryption
|
|
|
228
224
|
const requestData = await request.accept(signerIdentity, refundInformation);
|
|
229
225
|
|
|
230
226
|
// wait the confirmation with an event
|
|
231
|
-
requestData.on('confirmed', confirmedRequestData => {
|
|
227
|
+
requestData.on('confirmed', (confirmedRequestData) => {
|
|
232
228
|
// ...
|
|
233
229
|
});
|
|
234
230
|
```
|
|
@@ -242,7 +238,7 @@ requestData.on('confirmed', confirmedRequestData => {
|
|
|
242
238
|
await request.cancel(signerIdentity, refundInformation);
|
|
243
239
|
|
|
244
240
|
// wait the confirmation with an event
|
|
245
|
-
requestData.on('confirmed', confirmedRequestData => {
|
|
241
|
+
requestData.on('confirmed', (confirmedRequestData) => {
|
|
246
242
|
// ...
|
|
247
243
|
});
|
|
248
244
|
```
|
|
@@ -256,7 +252,7 @@ requestData.on('confirmed', confirmedRequestData => {
|
|
|
256
252
|
await request.increaseExpectedAmountRequest(amount, signerIdentity, refundInformation);
|
|
257
253
|
|
|
258
254
|
// wait the confirmation with an event
|
|
259
|
-
requestData.on('confirmed', confirmedRequestData => {
|
|
255
|
+
requestData.on('confirmed', (confirmedRequestData) => {
|
|
260
256
|
// ...
|
|
261
257
|
});
|
|
262
258
|
```
|
|
@@ -271,7 +267,7 @@ requestData.on('confirmed', confirmedRequestData => {
|
|
|
271
267
|
await request.reduceExpectedAmountRequest(amount, signerIdentity, paymentInformation);
|
|
272
268
|
|
|
273
269
|
// wait the confirmation with an event
|
|
274
|
-
requestData.on('confirmed', confirmedRequestData => {
|
|
270
|
+
requestData.on('confirmed', (confirmedRequestData) => {
|
|
275
271
|
// ...
|
|
276
272
|
});
|
|
277
273
|
```
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const
|
|
3
|
+
const DataFormat = require("@requestnetwork/data-format");
|
|
4
4
|
const types_1 = require("@requestnetwork/types");
|
|
5
5
|
// Extension ID for this class: content data
|
|
6
6
|
const CONTENT_DATA_ID = types_1.ExtensionTypes.ID.CONTENT_DATA;
|
|
@@ -21,8 +21,8 @@ class ContentDataExtension {
|
|
|
21
21
|
* @returns ExtensionsData ready to be added to the request
|
|
22
22
|
*/
|
|
23
23
|
createExtensionsDataForCreation(content) {
|
|
24
|
-
if (
|
|
25
|
-
const { valid, errors } =
|
|
24
|
+
if (DataFormat.isKnownFormat(content)) {
|
|
25
|
+
const { valid, errors } = DataFormat.validate(content);
|
|
26
26
|
if (!valid) {
|
|
27
27
|
const errorsToShow = errors.map((e) => JSON.stringify(e)).join('\n');
|
|
28
28
|
throw new Error(`The content data seem to follow a request format but contains errors: ${errorsToShow}`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content-data-extension.js","sourceRoot":"","sources":["../../src/api/content-data-extension.ts"],"names":[],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"file":"content-data-extension.js","sourceRoot":"","sources":["../../src/api/content-data-extension.ts"],"names":[],"mappings":";;AAAA,0DAA0D;AAC1D,iDAA8F;AAE9F,4CAA4C;AAC5C,MAAM,eAAe,GAAG,sBAAc,CAAC,EAAE,CAAC,YAAY,CAAC;AAEvD;;GAEG;AACH,MAAqB,oBAAoB;IAIvC;;OAEG;IACH,YAAmB,aAAgD;QACjE,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC,UAAU,CAAC,WAAW,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACI,+BAA+B,CAAC,OAAY;QACjD,IAAI,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;YACrC,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,CAAC,KAAK,EAAE;gBACV,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAC1E,MAAM,IAAI,KAAK,CACb,yEAAyE,YAAY,EAAE,CACxF,CAAC;aACH;SACF;QAED,OAAO,IAAI,CAAC,SAAS,CAAC,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED;;;;;OAKG;IACI,UAAU,CACf,OAA8E;QAE9E,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE;YACxE,OAAO,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;SAC3D;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA9CD,uCA8CC"}
|
|
@@ -1,30 +1,50 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PaymentNetworkFactory, PaymentNetworkOptions } from '@requestnetwork/payment-detection';
|
|
2
|
+
import { CurrencyTypes, DataAccessTypes, DecryptionProviderTypes, EncryptionTypes, IdentityTypes, RequestLogicTypes, SignatureProviderTypes } from '@requestnetwork/types';
|
|
2
3
|
import * as Types from '../types';
|
|
3
4
|
import Request from './request';
|
|
4
5
|
/**
|
|
5
6
|
* Entry point of the request-client.js library. Create requests, get requests, manipulate requests.
|
|
6
7
|
*/
|
|
7
8
|
export default class RequestNetwork {
|
|
8
|
-
|
|
9
|
+
paymentNetworkFactory: PaymentNetworkFactory;
|
|
9
10
|
supportedIdentities: IdentityTypes.TYPE[];
|
|
10
11
|
private requestLogic;
|
|
11
12
|
private transaction;
|
|
12
13
|
private advancedLogic;
|
|
14
|
+
private dataAccess;
|
|
13
15
|
private contentData;
|
|
16
|
+
private currencyManager;
|
|
14
17
|
/**
|
|
15
18
|
* @param dataAccess instance of data-access layer
|
|
16
19
|
* @param signatureProvider module in charge of the signatures
|
|
17
20
|
* @param decryptionProvider module in charge of the decryption
|
|
18
|
-
* @param
|
|
21
|
+
* @param paymentOptions options for payment detection
|
|
19
22
|
*/
|
|
20
|
-
constructor(dataAccess
|
|
23
|
+
constructor({ dataAccess, signatureProvider, decryptionProvider, currencyManager, paymentOptions, }: {
|
|
24
|
+
dataAccess: DataAccessTypes.IDataAccess;
|
|
25
|
+
signatureProvider?: SignatureProviderTypes.ISignatureProvider;
|
|
26
|
+
decryptionProvider?: DecryptionProviderTypes.IDecryptionProvider;
|
|
27
|
+
currencyManager?: CurrencyTypes.ICurrencyManager;
|
|
28
|
+
paymentOptions?: Partial<PaymentNetworkOptions>;
|
|
29
|
+
});
|
|
21
30
|
/**
|
|
22
31
|
* Creates a request.
|
|
23
32
|
*
|
|
24
33
|
* @param requestParameters Parameters to create a request
|
|
25
34
|
* @returns The created request
|
|
26
35
|
*/
|
|
27
|
-
createRequest(parameters: Types.ICreateRequestParameters): Promise<Request>;
|
|
36
|
+
createRequest(parameters: Types.ICreateRequestParameters, options?: Types.ICreateRequestOptions): Promise<Request>;
|
|
37
|
+
/**
|
|
38
|
+
* Persists an in-memory request to the data-access layer.
|
|
39
|
+
*
|
|
40
|
+
* This method is used to persist requests that were initially created with skipPersistence enabled.
|
|
41
|
+
*
|
|
42
|
+
* @param request The Request object to persist. This must be a request that was created with skipPersistence enabled.
|
|
43
|
+
* @returns A promise that resolves to the result of the persist transaction operation.
|
|
44
|
+
* @throws {Error} If the request's `inMemoryInfo` is not provided, indicating it wasn't created with skipPersistence.
|
|
45
|
+
* @throws {Error} If the current data access instance does not support persistence (e.g., NoPersistHttpDataAccess).
|
|
46
|
+
*/
|
|
47
|
+
persistRequest(request: Request): Promise<DataAccessTypes.IReturnPersistTransaction>;
|
|
28
48
|
/**
|
|
29
49
|
* Creates an encrypted request.
|
|
30
50
|
*
|
|
@@ -32,7 +52,7 @@ export default class RequestNetwork {
|
|
|
32
52
|
* @param encryptionParams Request encryption parameters
|
|
33
53
|
* @returns The created encrypted request
|
|
34
54
|
*/
|
|
35
|
-
_createEncryptedRequest(parameters: Types.ICreateRequestParameters, encryptionParams: EncryptionTypes.IEncryptionParameters[]): Promise<Request>;
|
|
55
|
+
_createEncryptedRequest(parameters: Types.ICreateRequestParameters, encryptionParams: EncryptionTypes.IEncryptionParameters[], options?: Types.ICreateRequestOptions): Promise<Request>;
|
|
36
56
|
/**
|
|
37
57
|
* Gets the ID of a request without creating it.
|
|
38
58
|
*
|
|
@@ -48,57 +68,72 @@ export default class RequestNetwork {
|
|
|
48
68
|
* @returns the Request
|
|
49
69
|
*/
|
|
50
70
|
fromRequestId(requestId: RequestLogicTypes.RequestId, options?: {
|
|
51
|
-
disablePaymentDetection
|
|
71
|
+
disablePaymentDetection?: boolean;
|
|
72
|
+
disableEvents?: boolean;
|
|
52
73
|
}): Promise<Request>;
|
|
53
74
|
/**
|
|
54
75
|
* Create an array of request instances from an identity
|
|
55
76
|
*
|
|
56
|
-
* @param identity
|
|
57
77
|
* @param updatedBetween filter the requests with time boundaries
|
|
58
78
|
* @param options options
|
|
59
79
|
* @returns the Requests
|
|
60
80
|
*/
|
|
61
81
|
fromIdentity(identity: IdentityTypes.IIdentity, updatedBetween?: Types.ITimestampBoundaries, options?: {
|
|
62
|
-
disablePaymentDetection
|
|
82
|
+
disablePaymentDetection?: boolean;
|
|
83
|
+
disableEvents?: boolean;
|
|
63
84
|
}): Promise<Request[]>;
|
|
64
85
|
/**
|
|
65
86
|
* Create an array of request instances from multiple identities
|
|
66
87
|
*
|
|
67
|
-
* @param identities
|
|
68
88
|
* @param updatedBetween filter the requests with time boundaries
|
|
69
89
|
* @param disablePaymentDetection if true, skip the payment detection
|
|
70
90
|
* @returns the requests
|
|
71
91
|
*/
|
|
72
92
|
fromMultipleIdentities(identities: IdentityTypes.IIdentity[], updatedBetween?: Types.ITimestampBoundaries, options?: {
|
|
73
|
-
disablePaymentDetection
|
|
93
|
+
disablePaymentDetection?: boolean;
|
|
94
|
+
disableEvents?: boolean;
|
|
74
95
|
}): Promise<Request[]>;
|
|
75
96
|
/**
|
|
76
97
|
* Create an array of request instances from a topic
|
|
77
98
|
*
|
|
78
|
-
* @param topic
|
|
79
99
|
* @param updatedBetween filter the requests with time boundaries
|
|
80
100
|
* @param options options
|
|
81
101
|
* @returns the Requests
|
|
82
102
|
*/
|
|
83
103
|
fromTopic(topic: any, updatedBetween?: Types.ITimestampBoundaries, options?: {
|
|
84
|
-
disablePaymentDetection
|
|
104
|
+
disablePaymentDetection?: boolean;
|
|
105
|
+
disableEvents?: boolean;
|
|
85
106
|
}): Promise<Request[]>;
|
|
86
107
|
/**
|
|
87
108
|
* Create an array of request instances from a multiple topics
|
|
88
109
|
*
|
|
89
|
-
* @param topics
|
|
90
110
|
* @param updatedBetween filter the requests with time boundaries
|
|
91
111
|
* @param options options
|
|
92
112
|
* @returns the Requests
|
|
93
113
|
*/
|
|
94
114
|
fromMultipleTopics(topics: any[], updatedBetween?: Types.ITimestampBoundaries, options?: {
|
|
95
|
-
disablePaymentDetection
|
|
115
|
+
disablePaymentDetection?: boolean;
|
|
116
|
+
disableEvents?: boolean;
|
|
96
117
|
}): Promise<Request[]>;
|
|
118
|
+
private getCurrency;
|
|
97
119
|
/**
|
|
98
120
|
* A helper to validate and prepare the parameters of a request.
|
|
99
121
|
* @param parameters Parameters to create a request
|
|
100
122
|
* @returns the parameters, ready for request creation, the topics, and the paymentNetwork
|
|
101
123
|
*/
|
|
102
124
|
private prepareRequestParameters;
|
|
125
|
+
/**
|
|
126
|
+
* Prepares a payment request structure from transaction data.
|
|
127
|
+
*
|
|
128
|
+
* This method is used to create a request structure similar to a persisted request,
|
|
129
|
+
* allowing users to pay before the request is persisted. This is useful in scenarios
|
|
130
|
+
* where a request is created, paid, and then persisted, as opposed to the normal flow
|
|
131
|
+
* of creating, persisting, and then paying the request.
|
|
132
|
+
*
|
|
133
|
+
* @param transactionData The transaction data containing the request information
|
|
134
|
+
* @param requestId The ID of the request
|
|
135
|
+
* @returns The prepared payment request structure or undefined if transaction data is missing
|
|
136
|
+
*/
|
|
137
|
+
private prepareRequestDataForPayment;
|
|
103
138
|
}
|
|
104
139
|
//# sourceMappingURL=request-network.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-network.d.ts","sourceRoot":"","sources":["../../src/api/request-network.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request-network.d.ts","sourceRoot":"","sources":["../../src/api/request-network.ts"],"names":[],"mappings":"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"}
|