@requestnetwork/transaction-manager 0.27.1-next.1882 → 0.27.1-next.1884

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 CHANGED
@@ -17,7 +17,7 @@ npm install @requestnetwork/transaction-manager
17
17
  In order to decrypt encrypted transactions, you must provide a decryption provider.
18
18
  You can see the specification of decryption provider [here](./specs/decryption-provider.md).
19
19
 
20
- An example of implementation of a decryption provider is available in the package: [epk-decryption](../../epk-decryption)
20
+ An example of implementation of a decryption provider is available in the package: [epk-decryption](../epk-decryption/)
21
21
 
22
22
  ```javascript
23
23
  import EthereumPrivateKeyDecryptionProvider from '@requestnetwork/epk-decryption';
@@ -20,11 +20,11 @@ export default class ChannelParser {
20
20
  /**
21
21
  * Get channel type and channel key from a list of transactions (if applicable)
22
22
  *
23
- * @param channelId the channelId of the channel
23
+ * @param _channelId the channelId of the channel
24
24
  * @param transactions the transactions of the channel to decrypt and clean
25
25
  * @returns Promise resolving the channel type and the channel key (if applicable)
26
26
  */
27
- getChannelTypeAndChannelKey(channelId: string, transactions: TransactionTypes.ITimestampedTransaction[]): Promise<{
27
+ getChannelTypeAndChannelKey(_channelId: string, transactions: TransactionTypes.ITimestampedTransaction[]): Promise<{
28
28
  channelType: TransactionTypes.ChannelType;
29
29
  channelKey: EncryptionTypes.IDecryptionParameters | undefined;
30
30
  encryptionMethod: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"channel-parser.d.ts","sourceRoot":"","sources":["../src/channel-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAInG;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,iBAAiB,CAAqB;gBAE3B,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAGnF;;;;;;OAMG;IACU,sBAAsB,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,GACvD,OAAO,CAAC;QACT,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;QACrE,mBAAmB,EAAE,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;KACzE,CAAC;IA+GF;;;;;;OAMG;IACU,2BAA2B,CACtC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,GACvD,OAAO,CAAC;QACT,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;QAC1C,UAAU,EAAE,eAAe,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAC9D,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;KACtC,CAAC;CAwEH"}
1
+ {"version":3,"file":"channel-parser.d.ts","sourceRoot":"","sources":["../src/channel-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAInG;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,OAAO,CAAC,iBAAiB,CAAqB;gBAE3B,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAGnF;;;;;;OAMG;IACU,sBAAsB,CACjC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,GACvD,OAAO,CAAC;QACT,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;QACrC,YAAY,EAAE,KAAK,CAAC,gBAAgB,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAC;QACrE,mBAAmB,EAAE,KAAK,CAAC,gBAAgB,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC;KACzE,CAAC;IA8GF;;;;;;OAMG;IACU,2BAA2B,CAEtC,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,gBAAgB,CAAC,uBAAuB,EAAE,GACvD,OAAO,CAAC;QACT,WAAW,EAAE,gBAAgB,CAAC,WAAW,CAAC;QAC1C,UAAU,EAAE,eAAe,CAAC,qBAAqB,GAAG,SAAS,CAAC;QAC9D,gBAAgB,EAAE,MAAM,GAAG,SAAS,CAAC;KACtC,CAAC;CA8EH"}
@@ -20,15 +20,16 @@ class ChannelParser {
20
20
  decryptAndCleanChannel(channelId, transactions) {
21
21
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
22
22
  let channelType = types_1.TransactionTypes.ChannelType.UNKNOWN;
23
- let channelKey;
24
23
  let encryptionMethod;
24
+ // Search for channel key
25
+ const { channelKey } = yield this.getChannelTypeAndChannelKey(channelId, transactions);
25
26
  // use of .reduce instead of .map to keep a sequential execution
26
27
  const validAndIgnoredTransactions = yield transactions.reduce((accumulatorPromise, timestampedTransaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
27
28
  const result = yield accumulatorPromise;
28
29
  let parsedData;
29
30
  try {
30
31
  // Parse the transaction from data-access to get a transaction object and the channel key if encrypted
31
- parsedData = yield this.transactionParser.parsePersistedTransaction(timestampedTransaction.transaction, channelType, channelKey);
32
+ parsedData = yield this.transactionParser.parsePersistedTransaction(timestampedTransaction.transaction, channelType, channelKey, encryptionMethod);
32
33
  }
33
34
  catch (error) {
34
35
  return result.concat([
@@ -74,8 +75,6 @@ class ChannelParser {
74
75
  ? types_1.TransactionTypes.ChannelType.ENCRYPTED
75
76
  : types_1.TransactionTypes.ChannelType.CLEAR;
76
77
  encryptionMethod = parsedData.encryptionMethod;
77
- // we keep the channelKey for this channel
78
- channelKey = parsedData.channelKey;
79
78
  }
80
79
  const data = yield transaction.getData();
81
80
  // add the decrypted transaction as valid
@@ -103,25 +102,33 @@ class ChannelParser {
103
102
  /**
104
103
  * Get channel type and channel key from a list of transactions (if applicable)
105
104
  *
106
- * @param channelId the channelId of the channel
105
+ * @param _channelId the channelId of the channel
107
106
  * @param transactions the transactions of the channel to decrypt and clean
108
107
  * @returns Promise resolving the channel type and the channel key (if applicable)
109
108
  */
110
- getChannelTypeAndChannelKey(channelId, transactions) {
109
+ getChannelTypeAndChannelKey(
110
+ // TODO: Consider removing channelId argument
111
+ _channelId, transactions) {
111
112
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
112
113
  // use of .reduce instead of .map to keep a sequential execution
113
114
  const channelTypeAndKey = yield transactions.reduce((accumulatorPromise, timestampedTransaction) => tslib_1.__awaiter(this, void 0, void 0, function* () {
114
115
  const result = yield accumulatorPromise;
115
- // if we know the channel type, we skip the remaining transactions
116
- if (result.channelType !== types_1.TransactionTypes.ChannelType.UNKNOWN) {
116
+ // Skip remaining transactions if channel is CLEAR or after channelKey is found
117
+ if (result.channelType === types_1.TransactionTypes.ChannelType.CLEAR || result.channelKey) {
117
118
  return result;
118
119
  }
119
120
  let parsedData;
120
121
  try {
121
122
  // Parse the transaction from data-access to get a transaction object and the channel key if encrypted
122
- parsedData = yield this.transactionParser.parsePersistedTransaction(timestampedTransaction.transaction, types_1.TransactionTypes.ChannelType.UNKNOWN);
123
+ parsedData = yield this.transactionParser.parsePersistedTransaction(timestampedTransaction.transaction, result.channelType, result.channelKey, result.encryptionMethod);
123
124
  }
124
125
  catch (error) {
126
+ // If the transaction is encrypted but the channel key is not found, save channelType and encryptionMethod
127
+ if (error.message.startsWith('Impossible to decrypt the channel key from this transaction') &&
128
+ result.channelType === types_1.TransactionTypes.ChannelType.UNKNOWN) {
129
+ result.channelType = types_1.TransactionTypes.ChannelType.ENCRYPTED;
130
+ result.encryptionMethod = timestampedTransaction.transaction.encryptionMethod;
131
+ }
125
132
  // Error during the parsing, we just ignore this transaction
126
133
  return result;
127
134
  }
@@ -132,12 +139,6 @@ class ChannelParser {
132
139
  // Error in the transaction, we just ignore it
133
140
  return result;
134
141
  }
135
- // check if the data hash matches the channel id
136
- const hash = yield transaction.getHash();
137
- if (hash !== channelId) {
138
- // we just ignored it
139
- return result;
140
- }
141
142
  // We can deduce the type of the channel
142
143
  result.channelType = parsedData.channelKey
143
144
  ? types_1.TransactionTypes.ChannelType.ENCRYPTED
@@ -1 +1 @@
1
- {"version":3,"file":"channel-parser.js","sourceRoot":"","sources":["../src/channel-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"channel-parser.js","sourceRoot":"","sources":["../src/channel-parser.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAQ/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,gBAAgB,CAAC,mBAAmB;IACrF,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,aAAa,CAAgB;gBAGnC,UAAU,EAAE,eAAe,CAAC,WAAW,EACvC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAMlE;;;;;;;;;OASG;IACU,kBAAkB,CAC7B,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,EAClD,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAM,EAAO,EACrB,gBAAgB,GAAE,eAAe,CAAC,qBAAqB,EAAO,GAC7D,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;IAgGtD;;;;;;;;OAQG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GAC1D,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;IA4BnD;;;;;;OAMG;IACU,kBAAkB,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GACrD,OAAO,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;IAM7D;;;;;;OAMG;IACU,2BAA2B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GACrD,OAAO,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;IAM7D;;;;;OAKG;YACW,qBAAqB;CA6BpC"}
1
+ {"version":3,"file":"transaction-manager.d.ts","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,eAAe,EACf,uBAAuB,EACvB,eAAe,EACf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAQ/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,YAAW,gBAAgB,CAAC,mBAAmB;IACrF,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,aAAa,CAAgB;gBAGnC,UAAU,EAAE,eAAe,CAAC,WAAW,EACvC,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAMlE;;;;;;;;;OASG;IACU,kBAAkB,CAC7B,eAAe,EAAE,gBAAgB,CAAC,gBAAgB,EAClD,SAAS,EAAE,MAAM,EACjB,MAAM,GAAE,MAAM,EAAO,EACrB,gBAAgB,GAAE,eAAe,CAAC,qBAAqB,EAAO,GAC7D,OAAO,CAAC,gBAAgB,CAAC,yBAAyB,CAAC;IA4FtD;;;;;;;;OAQG;IACU,0BAA0B,CACrC,SAAS,EAAE,MAAM,EACjB,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GAC1D,OAAO,CAAC,gBAAgB,CAAC,sBAAsB,CAAC;IA4BnD;;;;;;OAMG;IACU,kBAAkB,CAC7B,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GACrD,OAAO,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;IAM7D;;;;;;OAMG;IACU,2BAA2B,CACtC,MAAM,EAAE,MAAM,EAAE,EAChB,cAAc,CAAC,EAAE,gBAAgB,CAAC,oBAAoB,GACrD,OAAO,CAAC,gBAAgB,CAAC,gCAAgC,CAAC;IAM7D;;;;;OAKG;YACW,qBAAqB;CA6BpC"}
@@ -55,14 +55,10 @@ class TransactionManager {
55
55
  transaction = yield transactions_factory_1.default.createClearTransaction(transactionData);
56
56
  }
57
57
  if (channelType === types_1.TransactionTypes.ChannelType.ENCRYPTED) {
58
- // we cannot add new stakeholders to an existing channel
59
- if (encryptionParams.length !== 0) {
60
- throw new Error('Impossible to add new stakeholder to an existing channel');
61
- }
62
58
  if (!channelKey) {
63
59
  throw new Error(`Impossible to decrypt the channel key of: ${channelId}`);
64
60
  }
65
- transaction = yield transactions_factory_1.default.createEncryptedTransaction(transactionData, channelKey);
61
+ transaction = yield transactions_factory_1.default.createEncryptedTransaction(transactionData, channelKey, encryptionParams);
66
62
  channelEncryptionMethod = encryptionMethod;
67
63
  }
68
64
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction-manager.js","sourceRoot":"","sources":["../src/transaction-manager.ts"],"names":[],"mappings":"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"}
@@ -23,8 +23,10 @@ export default class TransactionsFactory {
23
23
  *
24
24
  * @param data The data to create the transaction with
25
25
  * @param channelKey Channel key use to encrypt the transaction
26
+ * @param encryptionParams Array of additional encryption parameters to encrypt the key with
27
+
26
28
  * @returns the encrypted transaction
27
29
  */
28
- static createEncryptedTransaction(data: TransactionTypes.ITransactionData, channelKey: EncryptionTypes.IEncryptionParameters): Promise<TransactionTypes.IPersistedTransaction>;
30
+ static createEncryptedTransaction(data: TransactionTypes.ITransactionData, channelKey: EncryptionTypes.IEncryptionParameters, encryptionParams?: EncryptionTypes.IEncryptionParameters[]): Promise<TransactionTypes.IPersistedTransaction>;
29
31
  }
30
32
  //# sourceMappingURL=transactions-factory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"transactions-factory.d.ts","sourceRoot":"","sources":["../src/transactions-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAO1E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;;;OAKG;WACiB,sBAAsB,CACxC,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,GACtC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;IAUlD;;;;;;OAMG;WACiB,sCAAsC,CACxD,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,EACvC,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,EAAE,GACxD,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;IAuElD;;;;;;OAMG;WACiB,0BAA0B,CAC5C,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,EACvC,UAAU,EAAE,eAAe,CAAC,qBAAqB,GAChD,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;CAmBnD"}
1
+ {"version":3,"file":"transactions-factory.d.ts","sourceRoot":"","sources":["../src/transactions-factory.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAO1E;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;;;OAKG;WACiB,sBAAsB,CACxC,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,GACtC,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;IAUlD;;;;;;OAMG;WACiB,sCAAsC,CACxD,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,EACvC,gBAAgB,EAAE,eAAe,CAAC,qBAAqB,EAAE,GACxD,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;IAuElD;;;;;;;;OAQG;WACiB,0BAA0B,CAC5C,IAAI,EAAE,gBAAgB,CAAC,gBAAgB,EACvC,UAAU,EAAE,eAAe,CAAC,qBAAqB,EACjD,gBAAgB,GAAE,eAAe,CAAC,qBAAqB,EAAO,GAC7D,OAAO,CAAC,gBAAgB,CAAC,qBAAqB,CAAC;CAyEnD"}
@@ -76,9 +76,11 @@ class TransactionsFactory {
76
76
  *
77
77
  * @param data The data to create the transaction with
78
78
  * @param channelKey Channel key use to encrypt the transaction
79
+ * @param encryptionParams Array of additional encryption parameters to encrypt the key with
80
+
79
81
  * @returns the encrypted transaction
80
82
  */
81
- static createEncryptedTransaction(data, channelKey) {
83
+ static createEncryptedTransaction(data, channelKey, encryptionParams = []) {
82
84
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
83
85
  // check if the encryption method is the good one
84
86
  if (channelKey.method !== types_1.EncryptionTypes.METHOD.AES256_GCM) {
@@ -93,7 +95,31 @@ class TransactionsFactory {
93
95
  throw new Error('Data not parsable');
94
96
  }
95
97
  const encryptedDataSerialized = multi_format_1.default.serialize(encryptedData);
96
- return { encryptedData: encryptedDataSerialized };
98
+ if (encryptionParams.length === 0) {
99
+ return { encryptedData: encryptedDataSerialized };
100
+ }
101
+ else {
102
+ // FIXME: Refactor, duplicated from createEncryptedTransactionInNewChannel
103
+ // Check that all the encryption parameters given are ECIES (the only encryption method supported for now)
104
+ if (!encryptionParams.every((encryptionParam) => encryptionParam.method === types_1.EncryptionTypes.METHOD.ECIES)) {
105
+ throw new Error(`encryptionParams method must be all: ${types_1.EncryptionTypes.METHOD.ECIES}`);
106
+ }
107
+ // Compute key encryption and identity hash for every encryption parameters given
108
+ const encryptedKeyAndIdentityHashesPromises = encryptionParams.map((encryptionParam) => tslib_1.__awaiter(this, void 0, void 0, function* () {
109
+ const encryptedKey = yield (0, utils_1.encrypt)(channelKey.key, encryptionParam);
110
+ const identityEncryption = (0, utils_1.getIdentityFromEncryptionParams)(encryptionParam);
111
+ const multiFormattedIdentity = multi_format_1.default.serialize(identityEncryption);
112
+ return { encryptedKey, multiFormattedIdentity };
113
+ }));
114
+ const encryptedKeyAndIdentityHashes = yield Promise.all(encryptedKeyAndIdentityHashesPromises);
115
+ // Create the encrypted keys object - Encrypted keys indexed by identity multi-format
116
+ const keys = encryptedKeyAndIdentityHashes.reduce((allKeys, keyAndHash) => {
117
+ const encryptedKeySerialized = multi_format_1.default.serialize(keyAndHash.encryptedKey);
118
+ allKeys[keyAndHash.multiFormattedIdentity] = encryptedKeySerialized;
119
+ return allKeys;
120
+ }, {});
121
+ return { encryptedData: encryptedDataSerialized, keys };
122
+ }
97
123
  });
98
124
  }
99
125
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactions-factory.js","sourceRoot":"","sources":["../src/transactions-factory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions-factory.js","sourceRoot":"","sources":["../src/transactions-factory.ts"],"names":[],"mappings":"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"}
@@ -11,9 +11,10 @@ export default class TransactionsParser {
11
11
  * @param persistedTransaction the persisted transaction to parse
12
12
  * @param channelType The channel type (unknown, clear or encrypted)
13
13
  * @param channelKey the channel key to decrypt the transaction if needed
14
+ * @param encryptionMethod the channel encryption method to decrypt the transaction if needed
14
15
  * @returns the transaction object and the channel key (if applicable)
15
16
  */
16
- parsePersistedTransaction(persistedTransaction: TransactionTypes.IPersistedTransaction, channelType: TransactionTypes.ChannelType, channelKey?: EncryptionTypes.IDecryptionParameters): Promise<{
17
+ parsePersistedTransaction(persistedTransaction: TransactionTypes.IPersistedTransaction, channelType: TransactionTypes.ChannelType, channelKey?: EncryptionTypes.IDecryptionParameters, encryptionMethod?: string): Promise<{
17
18
  transaction: TransactionTypes.ITransaction;
18
19
  channelKey?: EncryptionTypes.IDecryptionParameters;
19
20
  encryptionMethod?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"transactions-parser.d.ts","sourceRoot":"","sources":["../src/transactions-parser.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,eAAe,EAEf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAK/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC,OAAO,CAAC,kBAAkB,CAA0D;gBAExE,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAI5E;;;;;;;OAOG;IACU,yBAAyB,CACpC,oBAAoB,EAAE,gBAAgB,CAAC,qBAAqB,EAC5D,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,UAAU,CAAC,EAAE,eAAe,CAAC,qBAAqB,GACjD,OAAO,CAAC;QACT,WAAW,EAAE,gBAAgB,CAAC,YAAY,CAAC;QAC3C,UAAU,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;QACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IAmDF;;;;;;OAMG;YACW,iBAAiB;CAkEhC"}
1
+ {"version":3,"file":"transactions-parser.d.ts","sourceRoot":"","sources":["../src/transactions-parser.ts"],"names":[],"mappings":"AACA,OAAO,EACL,uBAAuB,EACvB,eAAe,EAEf,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAK/B;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACrC,OAAO,CAAC,kBAAkB,CAA0D;gBAExE,kBAAkB,CAAC,EAAE,uBAAuB,CAAC,mBAAmB;IAI5E;;;;;;;;OAQG;IACU,yBAAyB,CACpC,oBAAoB,EAAE,gBAAgB,CAAC,qBAAqB,EAC5D,WAAW,EAAE,gBAAgB,CAAC,WAAW,EACzC,UAAU,CAAC,EAAE,eAAe,CAAC,qBAAqB,EAClD,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;QACT,WAAW,EAAE,gBAAgB,CAAC,YAAY,CAAC;QAC3C,UAAU,CAAC,EAAE,eAAe,CAAC,qBAAqB,CAAC;QACnD,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IA4EF;;;;;;OAMG;YACW,iBAAiB;CAkEhC"}
@@ -18,9 +18,10 @@ class TransactionsParser {
18
18
  * @param persistedTransaction the persisted transaction to parse
19
19
  * @param channelType The channel type (unknown, clear or encrypted)
20
20
  * @param channelKey the channel key to decrypt the transaction if needed
21
+ * @param encryptionMethod the channel encryption method to decrypt the transaction if needed
21
22
  * @returns the transaction object and the channel key (if applicable)
22
23
  */
23
- parsePersistedTransaction(persistedTransaction, channelType, channelKey) {
24
+ parsePersistedTransaction(persistedTransaction, channelType, channelKey, encryptionMethod) {
24
25
  return tslib_1.__awaiter(this, void 0, void 0, function* () {
25
26
  // looks like a clear transaction
26
27
  if (persistedTransaction.data) {
@@ -39,21 +40,46 @@ class TransactionsParser {
39
40
  if (channelType === types_1.TransactionTypes.ChannelType.CLEAR) {
40
41
  throw new Error('Encrypted transactions are not allowed in clear channel');
41
42
  }
42
- // if we don't have the channel key we need to decrypt it
43
+ // no channel key, try to decrypt it and validate encryption method
43
44
  if (!channelKey) {
44
- if (!persistedTransaction.encryptionMethod || !persistedTransaction.keys) {
45
- throw new Error('the properties "encryptionMethod" and "keys" are needed to compute the channel key');
45
+ // no encryptionMethod, this is first tx, must contain encryptionMethod
46
+ if (!encryptionMethod) {
47
+ if (!persistedTransaction.encryptionMethod || !persistedTransaction.keys) {
48
+ throw new Error('the properties "encryptionMethod" and "keys" are needed to compute the channel key');
49
+ }
50
+ encryptionMethod = persistedTransaction.encryptionMethod;
51
+ channelKey = yield this.decryptChannelKey(persistedTransaction.keys, encryptionMethod);
52
+ }
53
+ // given encryptionMethod, this not first tx, must not contain encryptionMethod
54
+ else {
55
+ if (persistedTransaction.encryptionMethod) {
56
+ throw new Error('the "encryptionMethod" property has been already given for this channel');
57
+ }
58
+ if (!persistedTransaction.keys) {
59
+ throw new Error('the "keys" property is needed to compute the channel key');
60
+ }
61
+ channelKey = yield this.decryptChannelKey(persistedTransaction.keys, encryptionMethod);
46
62
  }
47
- channelKey = yield this.decryptChannelKey(persistedTransaction.keys, persistedTransaction.encryptionMethod);
48
63
  }
64
+ // given channel key, validate encryption method
49
65
  else {
50
- if (persistedTransaction.encryptionMethod || persistedTransaction.keys) {
51
- throw new Error('the properties "encryptionMethod" and "keys" have been already given for this channel');
66
+ // no encryptionMethod, this is first tx, must contain encryptionMethod
67
+ if (!encryptionMethod) {
68
+ if (!persistedTransaction.encryptionMethod) {
69
+ throw new Error('the "encryptionMethod" property is needed to use the channel key');
70
+ }
71
+ encryptionMethod = persistedTransaction.encryptionMethod;
72
+ }
73
+ // given encryptionMethod, this not first tx, must not contain encryptionMethod
74
+ else {
75
+ if (persistedTransaction.encryptionMethod) {
76
+ throw new Error('the "encryptionMethod" property has been already given for this channel');
77
+ }
52
78
  }
53
79
  }
54
80
  return {
55
81
  channelKey,
56
- encryptionMethod: persistedTransaction.encryptionMethod,
82
+ encryptionMethod,
57
83
  transaction: new encrypted_transaction_1.default(persistedTransaction.encryptedData, channelKey),
58
84
  };
59
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"transactions-parser.js","sourceRoot":"","sources":["../src/transactions-parser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transactions-parser.js","sourceRoot":"","sources":["../src/transactions-parser.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@requestnetwork/transaction-manager",
3
- "version": "0.27.1-next.1882+6121282d",
3
+ "version": "0.27.1-next.1884+5e000689",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -39,9 +39,9 @@
39
39
  "test:watch": "yarn test --watch"
40
40
  },
41
41
  "dependencies": {
42
- "@requestnetwork/multi-format": "0.15.11-next.1882+6121282d",
43
- "@requestnetwork/types": "0.36.1-next.1882+6121282d",
44
- "@requestnetwork/utils": "0.36.1-next.1882+6121282d",
42
+ "@requestnetwork/multi-format": "0.15.11-next.1884+5e000689",
43
+ "@requestnetwork/types": "0.36.1-next.1884+5e000689",
44
+ "@requestnetwork/utils": "0.36.1-next.1884+5e000689",
45
45
  "tslib": "2.5.0"
46
46
  },
47
47
  "devDependencies": {
@@ -54,5 +54,5 @@
54
54
  "ts-node": "10.9.1",
55
55
  "typescript": "4.9.5"
56
56
  },
57
- "gitHead": "6121282d081463d971f1001be3d83379008ea523"
57
+ "gitHead": "5e000689d25581ec93a0489be6e728dbe9e913c9"
58
58
  }