@metamask/transaction-controller 62.7.0 → 62.8.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 +26 -1
- package/dist/TransactionController.cjs +33 -75
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +12 -13
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +12 -13
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +33 -75
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +39 -26
- package/dist/helpers/PendingTransactionTracker.cjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.cts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.d.mts.map +1 -1
- package/dist/helpers/PendingTransactionTracker.mjs +40 -27
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs +1 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -1
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +0 -1
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +0 -1
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +20 -5
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +20 -5
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +4 -1
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +5 -0
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +5 -0
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +4 -1
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/nonce.cjs +10 -6
- package/dist/utils/nonce.cjs.map +1 -1
- package/dist/utils/nonce.d.cts.map +1 -1
- package/dist/utils/nonce.d.mts.map +1 -1
- package/dist/utils/nonce.mjs +10 -6
- package/dist/utils/nonce.mjs.map +1 -1
- package/package.json +5 -5
- package/dist/utils/history.cjs +0 -164
- package/dist/utils/history.cjs.map +0 -1
- package/dist/utils/history.d.cts +0 -29
- package/dist/utils/history.d.cts.map +0 -1
- package/dist/utils/history.d.mts +0 -29
- package/dist/utils/history.d.mts.map +0 -1
- package/dist/utils/history.mjs +0 -164
- package/dist/utils/history.mjs.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,30 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [62.8.0]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
|
|
14
|
+
- Add optional `isStateOnly` property to `TransactionMeta` and `AddTransactionOptions` ([#7591](https://github.com/MetaMask/core/pull/7591))
|
|
15
|
+
- Transactions with `isStateOnly` set to `true` have no lifecycle and are not signed or published.
|
|
16
|
+
- Transactions are also excluded from confirmation polling.
|
|
17
|
+
|
|
18
|
+
### Changed
|
|
19
|
+
|
|
20
|
+
- Bump `@metamask/remote-feature-flag-controller` from `^3.1.0` to `^4.0.0` ([#7546](https://github.com/MetaMask/core/pull/7546))
|
|
21
|
+
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511))
|
|
22
|
+
- Update transaction timeout to check time since submission or when transaction was last seen on network ([#7464](https://github.com/MetaMask/core/pull/7464))
|
|
23
|
+
- Uses `blockTime` from `acceleratedPolling` feature flag.
|
|
24
|
+
- Deprecate `history` and `sendFlowHistory` properties from `TransactionMeta` and `TransactionController` options ([#7326](https://github.com/MetaMask/core/pull/7326))
|
|
25
|
+
- Bump `@metamask/remote-feature-flag-controller` from `^3.0.0` to `^3.1.0` ([#7519](https://github.com/MetaMask/core/pull/7519))
|
|
26
|
+
- Bump `@metamask/network-controller` from `^27.0.0` to `^27.2.0` ([#7534](https://github.com/MetaMask/core/pull/7534), [#7583](https://github.com/MetaMask/core/pull/7583))
|
|
27
|
+
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.18.0` ([#7534](https://github.com/MetaMask/core/pull/7534), [#7583](https://github.com/MetaMask/core/pull/7583))
|
|
28
|
+
- Update error message for failed on-chain transactions in `PendingTransactionTracker` ([#7552](https://github.com/MetaMask/core/pull/7552))
|
|
29
|
+
|
|
30
|
+
### Fixed
|
|
31
|
+
|
|
32
|
+
- Include pending authorizations in nonce calculation ([#7446](https://github.com/MetaMask/core/pull/7446))
|
|
33
|
+
|
|
10
34
|
## [62.7.0]
|
|
11
35
|
|
|
12
36
|
### Added
|
|
@@ -2035,7 +2059,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
2035
2059
|
|
|
2036
2060
|
All changes listed after this point were applied to this package following the monorepo conversion.
|
|
2037
2061
|
|
|
2038
|
-
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.
|
|
2062
|
+
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.8.0...HEAD
|
|
2063
|
+
[62.8.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.7.0...@metamask/transaction-controller@62.8.0
|
|
2039
2064
|
[62.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.6.0...@metamask/transaction-controller@62.7.0
|
|
2040
2065
|
[62.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.5.0...@metamask/transaction-controller@62.6.0
|
|
2041
2066
|
[62.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@62.4.0...@metamask/transaction-controller@62.5.0
|
|
@@ -13,7 +13,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || 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_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled,
|
|
16
|
+
var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_retryTransaction, _TransactionController_signExternalTransaction, _TransactionController_addMetadata, _TransactionController_updateGasProperties, _TransactionController_onBootCleanup, _TransactionController_failIncompleteTransactions, _TransactionController_processApproval, _TransactionController_approveTransaction, _TransactionController_publishTransaction, _TransactionController_rejectTransaction, _TransactionController_trimTransactionsForState, _TransactionController_isFinalState, _TransactionController_isLocalFinalState, _TransactionController_requestApproval, _TransactionController_getTransaction, _TransactionController_getTransactionOrThrow, _TransactionController_getApprovalId, _TransactionController_isTransactionCompleted, _TransactionController_getChainId, _TransactionController_getNetworkClientId, _TransactionController_getEthQuery, _TransactionController_getProvider, _TransactionController_onIncomingTransactions, _TransactionController_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _TransactionController_getTransactionWithActionId, _TransactionController_waitForTransactionFinished, _TransactionController_updateTransactionMetaRSV, _TransactionController_getEIP1559Compatibility, _TransactionController_signTransaction, _TransactionController_onTransactionStatusChange, _TransactionController_getNonceTrackerTransactions, _TransactionController_onConfirmedTransaction, _TransactionController_updatePostBalance, _TransactionController_createNonceTracker, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens, _TransactionController_getGasFeeTokensAction;
|
|
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");
|
|
@@ -53,7 +53,6 @@ const gas_1 = require("./utils/gas.cjs");
|
|
|
53
53
|
const gas_fee_tokens_1 = require("./utils/gas-fee-tokens.cjs");
|
|
54
54
|
const gas_fees_1 = require("./utils/gas-fees.cjs");
|
|
55
55
|
const gas_flow_1 = require("./utils/gas-flow.cjs");
|
|
56
|
-
const history_1 = require("./utils/history.cjs");
|
|
57
56
|
const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
|
|
58
57
|
const nonce_1 = require("./utils/nonce.cjs");
|
|
59
58
|
const prepare_1 = require("./utils/prepare.cjs");
|
|
@@ -144,7 +143,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
144
143
|
* @param options - The controller options.
|
|
145
144
|
*/
|
|
146
145
|
constructor(options) {
|
|
147
|
-
const {
|
|
146
|
+
const { disableSwaps, getCurrentAccountEIP1559Compatibility, getCurrentNetworkEIP1559Compatibility, getExternalPendingTransactions, getGasFeeEstimates, getNetworkClientRegistry, getNetworkState, getPermittedAccounts, getSavedGasFees, getSimulationConfig, hooks, incomingTransactions = {}, isAutomaticGasFeeUpdateEnabled, isEIP7702GasFeeTokensEnabled, isFirstTimeInteractionEnabled, isSimulationEnabled, messenger, pendingTransactions = {}, publicKeyEIP7702, securityProviderRequest, sign, state, testGasFeeFlows, trace, transactionHistoryLimit = 40, } = options;
|
|
148
147
|
super({
|
|
149
148
|
name: controllerName,
|
|
150
149
|
metadata,
|
|
@@ -178,8 +177,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
178
177
|
_TransactionController_isAutomaticGasFeeUpdateEnabled.set(this, void 0);
|
|
179
178
|
_TransactionController_isEIP7702GasFeeTokensEnabled.set(this, void 0);
|
|
180
179
|
_TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
|
|
181
|
-
_TransactionController_isHistoryDisabled.set(this, void 0);
|
|
182
|
-
_TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
|
|
183
180
|
_TransactionController_isSimulationEnabled.set(this, void 0);
|
|
184
181
|
_TransactionController_isSwapsDisabled.set(this, void 0);
|
|
185
182
|
_TransactionController_isTimeoutEnabled.set(this, void 0);
|
|
@@ -231,8 +228,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
231
228
|
__classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
|
|
232
229
|
(() => Promise.resolve(false)), "f");
|
|
233
230
|
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
234
|
-
__classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
|
|
235
|
-
__classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
|
|
236
231
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
237
232
|
__classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
|
|
238
233
|
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
|
|
@@ -391,7 +386,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
391
386
|
*/
|
|
392
387
|
async addTransaction(txParams, options) {
|
|
393
388
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
394
|
-
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse,
|
|
389
|
+
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, isStateOnly, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
395
390
|
// eslint-disable-next-line no-param-reassign
|
|
396
391
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
397
392
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
@@ -446,6 +441,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
446
441
|
isGasFeeIncluded,
|
|
447
442
|
isGasFeeSponsored,
|
|
448
443
|
isFirstTimeInteraction: undefined,
|
|
444
|
+
isStateOnly,
|
|
449
445
|
nestedTransactions,
|
|
450
446
|
networkClientId,
|
|
451
447
|
origin,
|
|
@@ -479,7 +475,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
479
475
|
.then(() => {
|
|
480
476
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
481
477
|
transactionId: newTransactionMeta.id,
|
|
482
|
-
skipHistory: true,
|
|
483
478
|
skipResimulateCheck: true,
|
|
484
479
|
skipValidation: true,
|
|
485
480
|
}, (tx) => {
|
|
@@ -503,14 +498,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
503
498
|
addedTransactionMeta.securityProviderResponse =
|
|
504
499
|
securityProviderResponse;
|
|
505
500
|
}
|
|
506
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
|
|
507
|
-
// eslint-disable-next-line require-atomic-updates
|
|
508
|
-
addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
|
|
509
|
-
}
|
|
510
|
-
// Initial history push
|
|
511
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")) {
|
|
512
|
-
addedTransactionMeta = (0, history_1.addInitialHistorySnapshot)(addedTransactionMeta);
|
|
513
|
-
}
|
|
514
501
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
515
502
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
516
503
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -521,7 +508,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
521
508
|
.then((delegationAddress) => {
|
|
522
509
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
523
510
|
transactionId: addedTransactionMeta.id,
|
|
524
|
-
skipHistory: true,
|
|
525
511
|
skipResimulateCheck: true,
|
|
526
512
|
skipValidation: true,
|
|
527
513
|
}, (tx) => {
|
|
@@ -530,8 +516,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
530
516
|
return undefined;
|
|
531
517
|
})
|
|
532
518
|
.catch(lodash_1.noop);
|
|
533
|
-
|
|
534
|
-
if (requireApproval !== false) {
|
|
519
|
+
if (requireApproval !== false && !isStateOnly) {
|
|
535
520
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, addedTransactionMeta, {
|
|
536
521
|
traceContext,
|
|
537
522
|
}).catch((error) => {
|
|
@@ -711,13 +696,14 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
711
696
|
* Updates an existing transaction in state.
|
|
712
697
|
*
|
|
713
698
|
* @param transactionMeta - The new transaction to store in state.
|
|
714
|
-
* @param note - A note or update reason to
|
|
699
|
+
* @param note - A note or update reason to be logged.
|
|
715
700
|
*/
|
|
716
701
|
updateTransaction(transactionMeta, note) {
|
|
717
702
|
const { id: transactionId } = transactionMeta;
|
|
718
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
703
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
|
|
719
704
|
...transactionMeta,
|
|
720
705
|
}));
|
|
706
|
+
(0, logger_1.projectLogger)('Transaction updated', { transactionId, note });
|
|
721
707
|
}
|
|
722
708
|
/**
|
|
723
709
|
* Update the security alert response for a transaction.
|
|
@@ -768,6 +754,17 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
768
754
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
|
|
769
755
|
});
|
|
770
756
|
}
|
|
757
|
+
/**
|
|
758
|
+
* @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
|
|
759
|
+
* @param transactionID - The ID of the transaction to update.
|
|
760
|
+
* @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
|
|
761
|
+
* @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
|
|
762
|
+
* @returns The transactionMeta.
|
|
763
|
+
*/
|
|
764
|
+
updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
|
|
765
|
+
// Return the transaction unchanged
|
|
766
|
+
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
|
|
767
|
+
}
|
|
771
768
|
/**
|
|
772
769
|
* Adds external provided transaction to state as confirmed transaction.
|
|
773
770
|
*
|
|
@@ -806,33 +803,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
806
803
|
console.error('Failed to confirm external transaction', error);
|
|
807
804
|
}
|
|
808
805
|
}
|
|
809
|
-
/**
|
|
810
|
-
* Append new send flow history to a transaction.
|
|
811
|
-
*
|
|
812
|
-
* @param transactionID - The ID of the transaction to update.
|
|
813
|
-
* @param currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
|
|
814
|
-
* @param sendFlowHistoryToAdd - The sendFlowHistory entries to add.
|
|
815
|
-
* @returns The updated transactionMeta.
|
|
816
|
-
*/
|
|
817
|
-
updateTransactionSendFlowHistory(transactionID, currentSendFlowHistoryLength, sendFlowHistoryToAdd) {
|
|
818
|
-
if (__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
|
|
819
|
-
throw new Error('Send flow history is disabled for the current transaction controller');
|
|
820
|
-
}
|
|
821
|
-
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
|
|
822
|
-
if (!transactionMeta) {
|
|
823
|
-
throw new Error(`Cannot update send flow history as no transaction metadata found`);
|
|
824
|
-
}
|
|
825
|
-
(0, utils_2.validateIfTransactionUnapproved)(transactionMeta, 'updateTransactionSendFlowHistory');
|
|
826
|
-
const sendFlowHistory = transactionMeta.sendFlowHistory ?? [];
|
|
827
|
-
if (currentSendFlowHistoryLength === sendFlowHistory.length) {
|
|
828
|
-
const updatedTransactionMeta = {
|
|
829
|
-
...transactionMeta,
|
|
830
|
-
sendFlowHistory: [...sendFlowHistory, ...sendFlowHistoryToAdd],
|
|
831
|
-
};
|
|
832
|
-
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateTransactionSendFlowHistory - sendFlowHistory updated`);
|
|
833
|
-
}
|
|
834
|
-
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
|
|
835
|
-
}
|
|
836
806
|
/**
|
|
837
807
|
* Update the gas values of a transaction.
|
|
838
808
|
*
|
|
@@ -902,7 +872,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
902
872
|
const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
|
|
903
873
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
904
874
|
transactionId,
|
|
905
|
-
note: `${controllerName}:updateTransactionGasFees - gas values updated`,
|
|
906
875
|
skipResimulateCheck: true,
|
|
907
876
|
}, (draftTxMeta) => {
|
|
908
877
|
const { txParams, ...otherProps } = filteredTransactionGasFees;
|
|
@@ -1017,8 +986,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1017
986
|
}
|
|
1018
987
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1019
988
|
transactionId,
|
|
1020
|
-
note: 'TransactionController#setTransactionActive - Transaction isActive updated',
|
|
1021
|
-
skipHistory: true,
|
|
1022
989
|
skipValidation: true,
|
|
1023
990
|
skipResimulateCheck: true,
|
|
1024
991
|
}, (updatedTransactionMeta) => {
|
|
@@ -1302,7 +1269,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1302
1269
|
});
|
|
1303
1270
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1304
1271
|
transactionId,
|
|
1305
|
-
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1306
1272
|
}, (transactionMeta) => {
|
|
1307
1273
|
const { nestedTransactions, txParams } = transactionMeta;
|
|
1308
1274
|
const from = txParams.from;
|
|
@@ -1325,7 +1291,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1325
1291
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
|
|
1326
1292
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1327
1293
|
transactionId,
|
|
1328
|
-
note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
|
|
1329
1294
|
}, (transactionMeta) => {
|
|
1330
1295
|
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1331
1296
|
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
@@ -1345,7 +1310,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1345
1310
|
(0, logger_1.projectLogger)('Updating batch transactions', { transactionId, batchTransactions });
|
|
1346
1311
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1347
1312
|
transactionId,
|
|
1348
|
-
note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
|
|
1349
1313
|
}, (transactionMeta) => {
|
|
1350
1314
|
transactionMeta.batchTransactions = batchTransactions;
|
|
1351
1315
|
});
|
|
@@ -1428,7 +1392,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1428
1392
|
}
|
|
1429
1393
|
}
|
|
1430
1394
|
exports.TransactionController = TransactionController;
|
|
1431
|
-
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(),
|
|
1395
|
+
_TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSign = new WeakMap(), _TransactionController_afterSimulate = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getAdditionalSignArguments = new WeakMap(), _TransactionController_getCurrentAccountEIP1559Compatibility = new WeakMap(), _TransactionController_getCurrentNetworkEIP1559Compatibility = new WeakMap(), _TransactionController_getExternalPendingTransactions = new WeakMap(), _TransactionController_getGasFeeEstimates = new WeakMap(), _TransactionController_getNetworkState = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = new WeakMap(), _TransactionController_incomingTransactionHelper = new WeakMap(), _TransactionController_incomingTransactionOptions = new WeakMap(), _TransactionController_internalEvents = new WeakMap(), _TransactionController_isAutomaticGasFeeUpdateEnabled = new WeakMap(), _TransactionController_isEIP7702GasFeeTokensEnabled = new WeakMap(), _TransactionController_isFirstTimeInteractionEnabled = new WeakMap(), _TransactionController_isSimulationEnabled = new WeakMap(), _TransactionController_isSwapsDisabled = new WeakMap(), _TransactionController_isTimeoutEnabled = new WeakMap(), _TransactionController_layer1GasFeeFlows = new WeakMap(), _TransactionController_methodDataHelper = new WeakMap(), _TransactionController_multichainTrackingHelper = new WeakMap(), _TransactionController_pendingTransactionOptions = new WeakMap(), _TransactionController_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_securityProviderRequest = new WeakMap(), _TransactionController_sign = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = new WeakMap(), _TransactionController_transactionHistoryLimit = 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, }) {
|
|
1432
1396
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1433
1397
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1434
1398
|
return;
|
|
@@ -1563,7 +1527,14 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1563
1527
|
}
|
|
1564
1528
|
}
|
|
1565
1529
|
}, _TransactionController_processApproval = async function _TransactionController_processApproval(transactionMeta, { actionId, isExisting = false, publishHook, requireApproval, shouldShowRequest = true, traceContext, }) {
|
|
1566
|
-
const transactionId = transactionMeta
|
|
1530
|
+
const { id: transactionId, isStateOnly } = transactionMeta;
|
|
1531
|
+
if (isStateOnly) {
|
|
1532
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipValidation: true }, (tx) => {
|
|
1533
|
+
tx.status = types_1.TransactionStatus.submitted;
|
|
1534
|
+
tx.submittedTime = new Date().getTime();
|
|
1535
|
+
});
|
|
1536
|
+
return '';
|
|
1537
|
+
}
|
|
1567
1538
|
let resultCallbacks;
|
|
1568
1539
|
const { meta, isCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
|
|
1569
1540
|
const finishedPromise = isCompleted
|
|
@@ -1674,7 +1645,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1674
1645
|
// eslint-disable-next-line require-atomic-updates
|
|
1675
1646
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1676
1647
|
transactionId,
|
|
1677
|
-
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
1678
1648
|
}, (draftTxMeta) => {
|
|
1679
1649
|
const { chainId, txParams } = draftTxMeta;
|
|
1680
1650
|
const { gas, type } = txParams;
|
|
@@ -1727,7 +1697,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1727
1697
|
// eslint-disable-next-line require-atomic-updates
|
|
1728
1698
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1729
1699
|
transactionId,
|
|
1730
|
-
note: 'TransactionController#approveTransaction - Transaction submitted',
|
|
1731
1700
|
}, (draftTxMeta) => {
|
|
1732
1701
|
draftTxMeta.hash = hash;
|
|
1733
1702
|
draftTxMeta.status = types_1.TransactionStatus.submitted;
|
|
@@ -1936,17 +1905,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1936
1905
|
const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.confirmed);
|
|
1937
1906
|
const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.submitted);
|
|
1938
1907
|
(0, external_transactions_1.validateConfirmedExternalTransaction)(transactionMeta, confirmedTxs, pendingTxs);
|
|
1939
|
-
// Make sure provided external transaction has non empty history array
|
|
1940
|
-
const newTransactionMeta = (transactionMeta.history ?? []).length === 0 && !__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")
|
|
1941
|
-
? (0, history_1.addInitialHistorySnapshot)(transactionMeta)
|
|
1942
|
-
: transactionMeta;
|
|
1943
1908
|
this.update((state) => {
|
|
1944
1909
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
|
|
1945
1910
|
...state.transactions,
|
|
1946
|
-
|
|
1911
|
+
transactionMeta,
|
|
1947
1912
|
]);
|
|
1948
1913
|
});
|
|
1949
|
-
return
|
|
1914
|
+
return transactionMeta;
|
|
1950
1915
|
}, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
|
|
1951
1916
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1952
1917
|
if (!transactionMeta) {
|
|
@@ -2017,7 +1982,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2017
1982
|
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
2018
1983
|
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
2019
1984
|
if (updateTransaction) {
|
|
2020
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true
|
|
1985
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
|
|
2021
1986
|
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
2022
1987
|
}
|
|
2023
1988
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
@@ -2196,7 +2161,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2196
2161
|
];
|
|
2197
2162
|
}, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
|
|
2198
2163
|
return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
|
|
2199
|
-
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId,
|
|
2164
|
+
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
|
|
2200
2165
|
let resimulateResponse;
|
|
2201
2166
|
this.update((state) => {
|
|
2202
2167
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
@@ -2213,10 +2178,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2213
2178
|
if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
|
|
2214
2179
|
resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
|
|
2215
2180
|
}
|
|
2216
|
-
const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
|
|
2217
|
-
if (!shouldSkipHistory) {
|
|
2218
|
-
transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
|
|
2219
|
-
}
|
|
2220
2181
|
state.transactions[index] = transactionMeta;
|
|
2221
2182
|
});
|
|
2222
2183
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
@@ -2278,7 +2239,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2278
2239
|
}
|
|
2279
2240
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2280
2241
|
transactionId,
|
|
2281
|
-
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2282
2242
|
skipResimulateCheck: Boolean(blockTime),
|
|
2283
2243
|
}, (txMeta) => {
|
|
2284
2244
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
@@ -2291,7 +2251,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2291
2251
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2292
2252
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2293
2253
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2294
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
2254
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2295
2255
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
2296
2256
|
txMeta,
|
|
2297
2257
|
gasFeeEstimates,
|
|
@@ -2397,7 +2357,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2397
2357
|
try {
|
|
2398
2358
|
newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2399
2359
|
transactionId: transactionMeta.id,
|
|
2400
|
-
note: 'TransactionController#failTransaction - Add error message and set status to failed',
|
|
2401
2360
|
skipValidation: true,
|
|
2402
2361
|
}, (draftTransactionMeta) => {
|
|
2403
2362
|
draftTransactionMeta.status = types_1.TransactionStatus.failed;
|
|
@@ -2439,7 +2398,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2439
2398
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2440
2399
|
transactionId,
|
|
2441
2400
|
skipResimulateCheck: true,
|
|
2442
|
-
note: 'afterSimulate Hook',
|
|
2443
2401
|
}, (txMeta) => {
|
|
2444
2402
|
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2445
2403
|
updateTransaction(txMeta);
|