@metamask/transaction-controller 49.0.0 → 51.0.0
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/CHANGELOG.md +33 -1
- package/dist/TransactionController.cjs +59 -47
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +3 -8
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +3 -8
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +60 -48
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +21 -12
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +21 -12
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/batch.cjs +32 -6
- package/dist/utils/batch.cjs.map +1 -1
- package/dist/utils/batch.d.cts +3 -1
- package/dist/utils/batch.d.cts.map +1 -1
- package/dist/utils/batch.d.mts +3 -1
- package/dist/utils/batch.d.mts.map +1 -1
- package/dist/utils/batch.mjs +33 -7
- package/dist/utils/batch.mjs.map +1 -1
- package/dist/utils/eip7702.cjs +21 -9
- package/dist/utils/eip7702.cjs.map +1 -1
- package/dist/utils/eip7702.d.cts +10 -1
- package/dist/utils/eip7702.d.cts.map +1 -1
- package/dist/utils/eip7702.d.mts +10 -1
- package/dist/utils/eip7702.d.mts.map +1 -1
- package/dist/utils/eip7702.mjs +19 -8
- package/dist/utils/eip7702.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +26 -5
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +27 -7
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +27 -7
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +24 -4
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/signature.cjs +26 -0
- package/dist/utils/signature.cjs.map +1 -0
- package/dist/utils/signature.d.cts +11 -0
- package/dist/utils/signature.d.cts.map +1 -0
- package/dist/utils/signature.d.mts +11 -0
- package/dist/utils/signature.d.mts.map +1 -0
- package/dist/utils/signature.mjs +22 -0
- package/dist/utils/signature.mjs.map +1 -0
- package/dist/utils/validation.cjs +5 -1
- package/dist/utils/validation.cjs.map +1 -1
- package/dist/utils/validation.d.cts +3 -1
- package/dist/utils/validation.d.cts.map +1 -1
- package/dist/utils/validation.d.mts +3 -1
- package/dist/utils/validation.d.mts.map +1 -1
- package/dist/utils/validation.mjs +5 -1
- package/dist/utils/validation.mjs.map +1 -1
- package/package.json +8 -7
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,36 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [51.0.0]
|
|
11
|
+
|
|
12
|
+
### Changed
|
|
13
|
+
|
|
14
|
+
- **BREAKING:** Bump peer dependency `@metamask/accounts-controller` to `^27.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
|
|
15
|
+
- **BREAKING:** Bump peer dependency `@metamask/gas-fee-controller` to `^23.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
|
|
16
|
+
- **BREAKING:** Bump peer dependency `@metamask/network-controller` to `^23.0.0` ([#5507](https://github.com/MetaMask/core/pull/5507))
|
|
17
|
+
|
|
18
|
+
## [50.0.0]
|
|
19
|
+
|
|
20
|
+
### Added
|
|
21
|
+
|
|
22
|
+
- Add additional metadata for batch metrics ([#5488](https://github.com/MetaMask/core/pull/5488))
|
|
23
|
+
- Add `delegationAddress` to `TransactionMetadata`.
|
|
24
|
+
- Add `NestedTransactionMetadata` type containing `BatchTransactionParams` and `type`.
|
|
25
|
+
- Add optional `type` to `TransactionBatchSingleRequest`.
|
|
26
|
+
- Verify EIP-7702 contract address using signatures ([#5472](https://github.com/MetaMask/core/pull/5472))
|
|
27
|
+
- Add optional `publicKeyEIP7702` property to constructor.
|
|
28
|
+
- Add dependency on `^5.7.0` of `@ethersproject/wallet`.
|
|
29
|
+
|
|
30
|
+
### Changed
|
|
31
|
+
|
|
32
|
+
- **BREAKING:** Bump `@metamask/accounts-controller` peer dependency to `^26.1.0` ([#5481](https://github.com/MetaMask/core/pull/5481))
|
|
33
|
+
- **BREAKING:** Add additional metadata for batch metrics ([#5488](https://github.com/MetaMask/core/pull/5488))
|
|
34
|
+
- Change `error` in `TransactionMetadata` to optional for all statuses.
|
|
35
|
+
- Change `nestedTransactions` in `TransactionMetadata` to array of `NestedTransactionMetadata`.
|
|
36
|
+
- Throw if `addTransactionBatch` called with external origin and size limit exceeded ([#5489](https://github.com/MetaMask/core/pull/5489))
|
|
37
|
+
- Verify EIP-7702 contract address using signatures ([#5472](https://github.com/MetaMask/core/pull/5472))
|
|
38
|
+
- Use new `contracts` property from feature flags instead of `contractAddresses`.
|
|
39
|
+
|
|
10
40
|
## [49.0.0]
|
|
11
41
|
|
|
12
42
|
### Added
|
|
@@ -1358,7 +1388,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
1358
1388
|
|
|
1359
1389
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
1360
1390
|
|
|
1361
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@
|
|
1391
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@51.0.0...HEAD
|
|
1392
|
+
[51.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@50.0.0...@metamask/transaction-controller@51.0.0
|
|
1393
|
+
[50.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@49.0.0...@metamask/transaction-controller@50.0.0
|
|
1362
1394
|
[49.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.2.0...@metamask/transaction-controller@49.0.0
|
|
1363
1395
|
[48.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.1.0...@metamask/transaction-controller@48.2.0
|
|
1364
1396
|
[48.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@48.0.0...@metamask/transaction-controller@48.1.0
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
|
|
|
13
13
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
14
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
15
|
};
|
|
16
|
-
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate;
|
|
16
|
+
var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_methodDataHelper, _TransactionController_incomingTransactionChainIds, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_rejectTransaction, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow;
|
|
17
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
18
|
exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
|
|
19
19
|
const base_controller_1 = require("@metamask/base-controller");
|
|
@@ -156,7 +156,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
156
156
|
* @param options - The controller options.
|
|
157
157
|
*/
|
|
158
158
|
constructor(options) {
|
|
159
|
-
const { disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, } = options;
|
|
159
|
+
const { disableHistory, disableSendFlowHistory, disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, incomingTransactions = {}, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, publicKeyEIP7702, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, hooks, } = options;
|
|
160
160
|
super({
|
|
161
161
|
name: controllerName,
|
|
162
162
|
metadata,
|
|
@@ -175,6 +175,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
175
175
|
_TransactionController_incomingTransactionHelper.set(this, void 0);
|
|
176
176
|
_TransactionController_incomingTransactionOptions.set(this, void 0);
|
|
177
177
|
_TransactionController_pendingTransactionOptions.set(this, void 0);
|
|
178
|
+
_TransactionController_publicKeyEIP7702.set(this, void 0);
|
|
178
179
|
this.signAbortCallbacks = new Map();
|
|
179
180
|
_TransactionController_trace.set(this, void 0);
|
|
180
181
|
_TransactionController_transactionHistoryLimit.set(this, void 0);
|
|
@@ -205,6 +206,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
205
206
|
this.securityProviderRequest = securityProviderRequest;
|
|
206
207
|
__classPrivateFieldSet(this, _TransactionController_incomingTransactionOptions, incomingTransactions, "f");
|
|
207
208
|
__classPrivateFieldSet(this, _TransactionController_pendingTransactionOptions, pendingTransactions, "f");
|
|
209
|
+
__classPrivateFieldSet(this, _TransactionController_publicKeyEIP7702, publicKeyEIP7702, "f");
|
|
208
210
|
__classPrivateFieldSet(this, _TransactionController_transactionHistoryLimit, transactionHistoryLimit, "f");
|
|
209
211
|
this.sign = sign;
|
|
210
212
|
__classPrivateFieldSet(this, _TransactionController_testGasFeeFlows, testGasFeeFlows === true, "f");
|
|
@@ -320,6 +322,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
320
322
|
getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
|
|
321
323
|
getInternalAccounts: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getInternalAccounts).bind(this),
|
|
322
324
|
messenger: this.messagingSystem,
|
|
325
|
+
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
323
326
|
request,
|
|
324
327
|
});
|
|
325
328
|
}
|
|
@@ -334,6 +337,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
334
337
|
address,
|
|
335
338
|
getEthQuery: (chainId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { chainId }),
|
|
336
339
|
messenger: this.messagingSystem,
|
|
340
|
+
publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
|
|
337
341
|
});
|
|
338
342
|
}
|
|
339
343
|
/**
|
|
@@ -367,6 +371,10 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
367
371
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
368
372
|
throw new Error(`Network client not found - ${networkClientId}`);
|
|
369
373
|
}
|
|
374
|
+
const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
|
|
375
|
+
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
376
|
+
networkClientId,
|
|
377
|
+
});
|
|
370
378
|
const permittedAddresses = origin === undefined
|
|
371
379
|
? undefined
|
|
372
380
|
: await this.getPermittedAccounts?.(origin);
|
|
@@ -382,6 +390,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
382
390
|
txParams,
|
|
383
391
|
type,
|
|
384
392
|
});
|
|
393
|
+
const delegationAddressPromise = (0, eip7702_1.getDelegationAddress)(txParams.from, ethQuery).catch(() => undefined);
|
|
385
394
|
const isEIP1559Compatible = await this.getEIP1559Compatibility(networkClientId);
|
|
386
395
|
(0, validation_1.validateTxParams)(txParams, isEIP1559Compatible);
|
|
387
396
|
const isDuplicateBatchId = batchId?.length &&
|
|
@@ -390,11 +399,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
390
399
|
throw rpc_errors_1.rpcErrors.invalidInput('Batch ID already exists');
|
|
391
400
|
}
|
|
392
401
|
const dappSuggestedGasFees = this.generateDappSuggestedGasFees(txParams, origin);
|
|
393
|
-
const chainId = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).call(this, networkClientId);
|
|
394
|
-
const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, {
|
|
395
|
-
networkClientId,
|
|
396
|
-
});
|
|
397
402
|
const transactionType = type ?? (await (0, transaction_type_1.determineTransactionType)(txParams, ethQuery)).type;
|
|
403
|
+
const delegationAddress = await delegationAddressPromise;
|
|
398
404
|
const existingTransactionMeta = this.getTransactionWithActionId(actionId);
|
|
399
405
|
// If a request to add a transaction with the same actionId is submitted again, a new transaction will not be created for it.
|
|
400
406
|
let addedTransactionMeta = existingTransactionMeta
|
|
@@ -405,6 +411,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
405
411
|
batchId,
|
|
406
412
|
chainId,
|
|
407
413
|
dappSuggestedGasFees,
|
|
414
|
+
delegationAddress,
|
|
408
415
|
deviceConfirmedOn,
|
|
409
416
|
id: (0, uuid_1.v1)(),
|
|
410
417
|
isFirstTimeInteraction: undefined,
|
|
@@ -439,7 +446,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
439
446
|
}
|
|
440
447
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
441
448
|
isSwapsDisabled: this.isSwapsDisabled,
|
|
442
|
-
cancelTransaction: this.
|
|
449
|
+
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
443
450
|
messenger: this.messagingSystem,
|
|
444
451
|
});
|
|
445
452
|
this.addMetadata(addedTransactionMeta);
|
|
@@ -1239,18 +1246,13 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1239
1246
|
actionId,
|
|
1240
1247
|
});
|
|
1241
1248
|
}
|
|
1242
|
-
// TODO: Replace `any` with type
|
|
1243
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1244
1249
|
}
|
|
1245
|
-
catch (
|
|
1250
|
+
catch (rawError) {
|
|
1251
|
+
const error = rawError;
|
|
1246
1252
|
const { isCompleted: isTxCompleted } = this.isTransactionCompleted(transactionId);
|
|
1247
1253
|
if (!isTxCompleted) {
|
|
1248
|
-
if (
|
|
1249
|
-
this.
|
|
1250
|
-
throw rpc_errors_1.providerErrors.userRejectedRequest({
|
|
1251
|
-
message: 'MetaMask Tx Signature: User denied transaction signature.',
|
|
1252
|
-
data: error?.data,
|
|
1253
|
-
});
|
|
1254
|
+
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isRejectError).call(this, error)) {
|
|
1255
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransactionAndThrow).call(this, transactionId, actionId, error);
|
|
1254
1256
|
}
|
|
1255
1257
|
else {
|
|
1256
1258
|
this.failTransaction(meta, error, actionId);
|
|
@@ -1261,8 +1263,9 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1261
1263
|
const finalMeta = await finishedPromise;
|
|
1262
1264
|
switch (finalMeta?.status) {
|
|
1263
1265
|
case types_1.TransactionStatus.failed:
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
+
const error = finalMeta.error;
|
|
1267
|
+
resultCallbacks?.error(error);
|
|
1268
|
+
throw rpc_errors_1.rpcErrors.internal(error.message);
|
|
1266
1269
|
case types_1.TransactionStatus.submitted:
|
|
1267
1270
|
resultCallbacks?.success();
|
|
1268
1271
|
return finalMeta.hash;
|
|
@@ -1389,34 +1392,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1389
1392
|
}
|
|
1390
1393
|
return transactionHash;
|
|
1391
1394
|
}
|
|
1392
|
-
/**
|
|
1393
|
-
* Cancels a transaction based on its ID by setting its status to "rejected"
|
|
1394
|
-
* and emitting a `<tx.id>:finished` hub event.
|
|
1395
|
-
*
|
|
1396
|
-
* @param transactionId - The ID of the transaction to cancel.
|
|
1397
|
-
* @param actionId - The actionId passed from UI
|
|
1398
|
-
*/
|
|
1399
|
-
cancelTransaction(transactionId, actionId) {
|
|
1400
|
-
const transactionMeta = this.state.transactions.find(({ id }) => id === transactionId);
|
|
1401
|
-
if (!transactionMeta) {
|
|
1402
|
-
return;
|
|
1403
|
-
}
|
|
1404
|
-
this.update((state) => {
|
|
1405
|
-
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
1406
|
-
state.transactions = this.trimTransactionsForState(transactions);
|
|
1407
|
-
});
|
|
1408
|
-
const updatedTransactionMeta = {
|
|
1409
|
-
...transactionMeta,
|
|
1410
|
-
status: types_1.TransactionStatus.rejected,
|
|
1411
|
-
};
|
|
1412
|
-
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1413
|
-
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1414
|
-
this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
|
|
1415
|
-
transactionMeta: updatedTransactionMeta,
|
|
1416
|
-
actionId,
|
|
1417
|
-
});
|
|
1418
|
-
this.onTransactionStatusChange(updatedTransactionMeta);
|
|
1419
|
-
}
|
|
1420
1395
|
/**
|
|
1421
1396
|
* Trim the amount of transactions that are set on the state. Checks
|
|
1422
1397
|
* if the length of the tx history is longer then desired persistence
|
|
@@ -1794,7 +1769,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1794
1769
|
}
|
|
1795
1770
|
}
|
|
1796
1771
|
exports.TransactionController = TransactionController;
|
|
1797
|
-
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
|
|
1772
|
+
_TransactionController_internalEvents = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_incomingTransactionChainIds = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_checkForPendingTransactionAndStartPolling = new WeakMap(), _TransactionController_instances = new WeakSet(), _TransactionController_retryTransaction = async function _TransactionController_retryTransaction({ actionId, afterSubmit, estimatedBaseFee, gasValues, label, prepareTransactionParams, rate, transactionId, transactionType, }) {
|
|
1798
1773
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1799
1774
|
if (this.getTransactionWithActionId(actionId)) {
|
|
1800
1775
|
return;
|
|
@@ -1859,6 +1834,24 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
1859
1834
|
actionId,
|
|
1860
1835
|
});
|
|
1861
1836
|
afterSubmit?.(newTransactionMeta);
|
|
1837
|
+
}, _TransactionController_rejectTransaction = function _TransactionController_rejectTransaction(transactionId, actionId, error) {
|
|
1838
|
+
const transactionMeta = this.getTransaction(transactionId);
|
|
1839
|
+
if (!transactionMeta) {
|
|
1840
|
+
return;
|
|
1841
|
+
}
|
|
1842
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_deleteTransaction).call(this, transactionId);
|
|
1843
|
+
const updatedTransactionMeta = {
|
|
1844
|
+
...transactionMeta,
|
|
1845
|
+
status: types_1.TransactionStatus.rejected,
|
|
1846
|
+
error: (0, utils_2.normalizeTxError)(error ?? rpc_errors_1.providerErrors.userRejectedRequest()),
|
|
1847
|
+
};
|
|
1848
|
+
this.messagingSystem.publish(`${controllerName}:transactionFinished`, updatedTransactionMeta);
|
|
1849
|
+
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, updatedTransactionMeta);
|
|
1850
|
+
this.messagingSystem.publish(`${controllerName}:transactionRejected`, {
|
|
1851
|
+
transactionMeta: updatedTransactionMeta,
|
|
1852
|
+
actionId,
|
|
1853
|
+
});
|
|
1854
|
+
this.onTransactionStatusChange(updatedTransactionMeta);
|
|
1862
1855
|
}, _TransactionController_getChainId = function _TransactionController_getChainId(networkClientId) {
|
|
1863
1856
|
return __classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").getNetworkClient({ networkClientId })
|
|
1864
1857
|
.configuration.chainId;
|
|
@@ -2106,5 +2099,24 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_me
|
|
|
2106
2099
|
isCustomNetwork,
|
|
2107
2100
|
txMeta: transactionMeta,
|
|
2108
2101
|
});
|
|
2102
|
+
}, _TransactionController_deleteTransaction = function _TransactionController_deleteTransaction(transactionId) {
|
|
2103
|
+
this.update((state) => {
|
|
2104
|
+
const transactions = state.transactions.filter(({ id }) => id !== transactionId);
|
|
2105
|
+
state.transactions = this.trimTransactionsForState(transactions);
|
|
2106
|
+
});
|
|
2107
|
+
}, _TransactionController_isRejectError = function _TransactionController_isRejectError(error) {
|
|
2108
|
+
return [
|
|
2109
|
+
rpc_errors_1.errorCodes.provider.userRejectedRequest,
|
|
2110
|
+
rpc_errors_1.errorCodes.rpc.methodNotSupported,
|
|
2111
|
+
].includes(error.code);
|
|
2112
|
+
}, _TransactionController_rejectTransactionAndThrow = function _TransactionController_rejectTransactionAndThrow(transactionId, actionId, error) {
|
|
2113
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).call(this, transactionId, actionId, error);
|
|
2114
|
+
if (error.code === rpc_errors_1.errorCodes.provider.userRejectedRequest) {
|
|
2115
|
+
throw rpc_errors_1.providerErrors.userRejectedRequest({
|
|
2116
|
+
message: 'MetaMask Tx Signature: User denied transaction signature.',
|
|
2117
|
+
data: error?.data,
|
|
2118
|
+
});
|
|
2119
|
+
}
|
|
2120
|
+
throw error;
|
|
2109
2121
|
};
|
|
2110
2122
|
//# sourceMappingURL=TransactionController.cjs.map
|