@metamask-previews/transaction-controller 62.7.0-preview-e776a73 → 62.7.0-preview-42084fe4
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 +0 -3
- package/dist/TransactionController.cjs +72 -23
- package/dist/TransactionController.cjs.map +1 -1
- package/dist/TransactionController.d.cts +13 -12
- package/dist/TransactionController.d.cts.map +1 -1
- package/dist/TransactionController.d.mts +13 -12
- package/dist/TransactionController.d.mts.map +1 -1
- package/dist/TransactionController.mjs +72 -23
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +24 -36
- 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 +25 -37
- package/dist/helpers/PendingTransactionTracker.mjs.map +1 -1
- package/dist/index.cjs +4 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -0
- package/dist/index.d.cts.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.mts.map +1 -1
- package/dist/index.mjs +1 -0
- package/dist/index.mjs.map +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.d.cts +4 -5
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +4 -5
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/dist/utils/feature-flags.cjs +1 -4
- package/dist/utils/feature-flags.cjs.map +1 -1
- package/dist/utils/feature-flags.d.cts +0 -5
- package/dist/utils/feature-flags.d.cts.map +1 -1
- package/dist/utils/feature-flags.d.mts +0 -5
- package/dist/utils/feature-flags.d.mts.map +1 -1
- package/dist/utils/feature-flags.mjs +1 -4
- package/dist/utils/feature-flags.mjs.map +1 -1
- package/dist/utils/history.cjs +164 -0
- package/dist/utils/history.cjs.map +1 -0
- package/dist/utils/history.d.cts +29 -0
- package/dist/utils/history.d.cts.map +1 -0
- package/dist/utils/history.d.mts +29 -0
- package/dist/utils/history.d.mts.map +1 -0
- package/dist/utils/history.mjs +164 -0
- package/dist/utils/history.mjs.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -9,9 +9,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
9
9
|
|
|
10
10
|
### Changed
|
|
11
11
|
|
|
12
|
-
- Update transaction timeout to check time since submission or when transaction was last seen on network ([#7464](https://github.com/MetaMask/core/pull/7464))
|
|
13
|
-
- Uses `blockTime` from `acceleratedPolling` feature flag.
|
|
14
|
-
- Deprecate `history` and `sendFlowHistory` properties from `TransactionMeta` and `TransactionController` options ([#7326](https://github.com/MetaMask/core/pull/7326))
|
|
15
12
|
- Bump `@metamask/remote-feature-flag-controller` from `^3.0.0` to `^3.1.0` ([#7519](https://github.com/MetaMask/core/pull/7519))
|
|
16
13
|
- Bump `@metamask/network-controller` from `^27.0.0` to `^27.1.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
|
|
17
14
|
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.17.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
|
|
@@ -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, _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;
|
|
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_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _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,6 +53,7 @@ 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");
|
|
56
57
|
const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
|
|
57
58
|
const nonce_1 = require("./utils/nonce.cjs");
|
|
58
59
|
const prepare_1 = require("./utils/prepare.cjs");
|
|
@@ -143,7 +144,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
143
144
|
* @param options - The controller options.
|
|
144
145
|
*/
|
|
145
146
|
constructor(options) {
|
|
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;
|
|
147
|
+
const { disableHistory, disableSendFlowHistory, 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;
|
|
147
148
|
super({
|
|
148
149
|
name: controllerName,
|
|
149
150
|
metadata,
|
|
@@ -177,6 +178,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
177
178
|
_TransactionController_isAutomaticGasFeeUpdateEnabled.set(this, void 0);
|
|
178
179
|
_TransactionController_isEIP7702GasFeeTokensEnabled.set(this, void 0);
|
|
179
180
|
_TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
|
|
181
|
+
_TransactionController_isHistoryDisabled.set(this, void 0);
|
|
182
|
+
_TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
|
|
180
183
|
_TransactionController_isSimulationEnabled.set(this, void 0);
|
|
181
184
|
_TransactionController_isSwapsDisabled.set(this, void 0);
|
|
182
185
|
_TransactionController_isTimeoutEnabled.set(this, void 0);
|
|
@@ -228,6 +231,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
228
231
|
__classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
|
|
229
232
|
(() => Promise.resolve(false)), "f");
|
|
230
233
|
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
234
|
+
__classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
|
|
235
|
+
__classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
|
|
231
236
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
232
237
|
__classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
|
|
233
238
|
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
|
|
@@ -386,7 +391,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
386
391
|
*/
|
|
387
392
|
async addTransaction(txParams, options) {
|
|
388
393
|
(0, logger_1.projectLogger)('Adding transaction', txParams, options);
|
|
389
|
-
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
394
|
+
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, sendFlowHistory, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
390
395
|
// eslint-disable-next-line no-param-reassign
|
|
391
396
|
txParams = (0, utils_2.normalizeTransactionParams)(txParams);
|
|
392
397
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
@@ -474,6 +479,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
474
479
|
.then(() => {
|
|
475
480
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
476
481
|
transactionId: newTransactionMeta.id,
|
|
482
|
+
skipHistory: true,
|
|
477
483
|
skipResimulateCheck: true,
|
|
478
484
|
skipValidation: true,
|
|
479
485
|
}, (tx) => {
|
|
@@ -497,6 +503,14 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
497
503
|
addedTransactionMeta.securityProviderResponse =
|
|
498
504
|
securityProviderResponse;
|
|
499
505
|
}
|
|
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
|
+
}
|
|
500
514
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
501
515
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
502
516
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -507,6 +521,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
507
521
|
.then((delegationAddress) => {
|
|
508
522
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
509
523
|
transactionId: addedTransactionMeta.id,
|
|
524
|
+
skipHistory: true,
|
|
510
525
|
skipResimulateCheck: true,
|
|
511
526
|
skipValidation: true,
|
|
512
527
|
}, (tx) => {
|
|
@@ -696,14 +711,13 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
696
711
|
* Updates an existing transaction in state.
|
|
697
712
|
*
|
|
698
713
|
* @param transactionMeta - The new transaction to store in state.
|
|
699
|
-
* @param note - A note or update reason to
|
|
714
|
+
* @param note - A note or update reason to include in the transaction history.
|
|
700
715
|
*/
|
|
701
716
|
updateTransaction(transactionMeta, note) {
|
|
702
717
|
const { id: transactionId } = transactionMeta;
|
|
703
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
|
|
718
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, note }, () => ({
|
|
704
719
|
...transactionMeta,
|
|
705
720
|
}));
|
|
706
|
-
(0, logger_1.projectLogger)('Transaction updated', { transactionId, note });
|
|
707
721
|
}
|
|
708
722
|
/**
|
|
709
723
|
* Update the security alert response for a transaction.
|
|
@@ -754,17 +768,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
754
768
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
|
|
755
769
|
});
|
|
756
770
|
}
|
|
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
|
-
}
|
|
768
771
|
/**
|
|
769
772
|
* Adds external provided transaction to state as confirmed transaction.
|
|
770
773
|
*
|
|
@@ -803,6 +806,33 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
803
806
|
console.error('Failed to confirm external transaction', error);
|
|
804
807
|
}
|
|
805
808
|
}
|
|
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
|
+
}
|
|
806
836
|
/**
|
|
807
837
|
* Update the gas values of a transaction.
|
|
808
838
|
*
|
|
@@ -872,6 +902,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
872
902
|
const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
|
|
873
903
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
874
904
|
transactionId,
|
|
905
|
+
note: `${controllerName}:updateTransactionGasFees - gas values updated`,
|
|
875
906
|
skipResimulateCheck: true,
|
|
876
907
|
}, (draftTxMeta) => {
|
|
877
908
|
const { txParams, ...otherProps } = filteredTransactionGasFees;
|
|
@@ -986,6 +1017,8 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
986
1017
|
}
|
|
987
1018
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
988
1019
|
transactionId,
|
|
1020
|
+
note: 'TransactionController#setTransactionActive - Transaction isActive updated',
|
|
1021
|
+
skipHistory: true,
|
|
989
1022
|
skipValidation: true,
|
|
990
1023
|
skipResimulateCheck: true,
|
|
991
1024
|
}, (updatedTransactionMeta) => {
|
|
@@ -1269,6 +1302,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1269
1302
|
});
|
|
1270
1303
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1271
1304
|
transactionId,
|
|
1305
|
+
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1272
1306
|
}, (transactionMeta) => {
|
|
1273
1307
|
const { nestedTransactions, txParams } = transactionMeta;
|
|
1274
1308
|
const from = txParams.from;
|
|
@@ -1291,6 +1325,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1291
1325
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
|
|
1292
1326
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1293
1327
|
transactionId,
|
|
1328
|
+
note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
|
|
1294
1329
|
}, (transactionMeta) => {
|
|
1295
1330
|
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1296
1331
|
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
@@ -1310,6 +1345,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1310
1345
|
(0, logger_1.projectLogger)('Updating batch transactions', { transactionId, batchTransactions });
|
|
1311
1346
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1312
1347
|
transactionId,
|
|
1348
|
+
note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
|
|
1313
1349
|
}, (transactionMeta) => {
|
|
1314
1350
|
transactionMeta.batchTransactions = batchTransactions;
|
|
1315
1351
|
});
|
|
@@ -1392,7 +1428,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1392
1428
|
}
|
|
1393
1429
|
}
|
|
1394
1430
|
exports.TransactionController = TransactionController;
|
|
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, }) {
|
|
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(), _TransactionController_isHistoryDisabled = new WeakMap(), _TransactionController_isSendFlowHistoryDisabled = 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, }) {
|
|
1396
1432
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1397
1433
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1398
1434
|
return;
|
|
@@ -1638,6 +1674,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1638
1674
|
// eslint-disable-next-line require-atomic-updates
|
|
1639
1675
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1640
1676
|
transactionId,
|
|
1677
|
+
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
1641
1678
|
}, (draftTxMeta) => {
|
|
1642
1679
|
const { chainId, txParams } = draftTxMeta;
|
|
1643
1680
|
const { gas, type } = txParams;
|
|
@@ -1690,6 +1727,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1690
1727
|
// eslint-disable-next-line require-atomic-updates
|
|
1691
1728
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1692
1729
|
transactionId,
|
|
1730
|
+
note: 'TransactionController#approveTransaction - Transaction submitted',
|
|
1693
1731
|
}, (draftTxMeta) => {
|
|
1694
1732
|
draftTxMeta.hash = hash;
|
|
1695
1733
|
draftTxMeta.status = types_1.TransactionStatus.submitted;
|
|
@@ -1898,13 +1936,17 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1898
1936
|
const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.confirmed);
|
|
1899
1937
|
const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.submitted);
|
|
1900
1938
|
(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;
|
|
1901
1943
|
this.update((state) => {
|
|
1902
1944
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
|
|
1903
1945
|
...state.transactions,
|
|
1904
|
-
|
|
1946
|
+
newTransactionMeta,
|
|
1905
1947
|
]);
|
|
1906
1948
|
});
|
|
1907
|
-
return
|
|
1949
|
+
return newTransactionMeta;
|
|
1908
1950
|
}, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
|
|
1909
1951
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1910
1952
|
if (!transactionMeta) {
|
|
@@ -1975,7 +2017,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1975
2017
|
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
1976
2018
|
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
1977
2019
|
if (updateTransaction) {
|
|
1978
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
|
|
2020
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
|
|
1979
2021
|
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
1980
2022
|
}
|
|
1981
2023
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
@@ -2154,7 +2196,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2154
2196
|
];
|
|
2155
2197
|
}, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
|
|
2156
2198
|
return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
|
|
2157
|
-
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
|
|
2199
|
+
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, skipResimulateCheck, }, callback) {
|
|
2158
2200
|
let resimulateResponse;
|
|
2159
2201
|
this.update((state) => {
|
|
2160
2202
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
@@ -2171,6 +2213,10 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2171
2213
|
if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
|
|
2172
2214
|
resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
|
|
2173
2215
|
}
|
|
2216
|
+
const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
|
|
2217
|
+
if (!shouldSkipHistory) {
|
|
2218
|
+
transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
|
|
2219
|
+
}
|
|
2174
2220
|
state.transactions[index] = transactionMeta;
|
|
2175
2221
|
});
|
|
2176
2222
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
@@ -2232,6 +2278,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2232
2278
|
}
|
|
2233
2279
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2234
2280
|
transactionId,
|
|
2281
|
+
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2235
2282
|
skipResimulateCheck: Boolean(blockTime),
|
|
2236
2283
|
}, (txMeta) => {
|
|
2237
2284
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
@@ -2244,7 +2291,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2244
2291
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2245
2292
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2246
2293
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2247
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2294
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipHistory: true }, (txMeta) => {
|
|
2248
2295
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
2249
2296
|
txMeta,
|
|
2250
2297
|
gasFeeEstimates,
|
|
@@ -2350,6 +2397,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2350
2397
|
try {
|
|
2351
2398
|
newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2352
2399
|
transactionId: transactionMeta.id,
|
|
2400
|
+
note: 'TransactionController#failTransaction - Add error message and set status to failed',
|
|
2353
2401
|
skipValidation: true,
|
|
2354
2402
|
}, (draftTransactionMeta) => {
|
|
2355
2403
|
draftTransactionMeta.status = types_1.TransactionStatus.failed;
|
|
@@ -2391,6 +2439,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2391
2439
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2392
2440
|
transactionId,
|
|
2393
2441
|
skipResimulateCheck: true,
|
|
2442
|
+
note: 'afterSimulate Hook',
|
|
2394
2443
|
}, (txMeta) => {
|
|
2395
2444
|
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2396
2445
|
updateTransaction(txMeta);
|