@metamask-previews/transaction-controller 62.7.0-preview-d24ded2 → 62.7.0-preview-749d0638
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 +6 -0
- package/dist/TransactionController.cjs +62 -73
- 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 +62 -73
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +3 -1
- 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 +3 -1
- 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 +5 -4
- package/dist/types.d.cts.map +1 -1
- package/dist/types.d.mts +5 -4
- package/dist/types.d.mts.map +1 -1
- package/dist/types.mjs.map +1 -1
- package/package.json +3 -3
- 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,9 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
### Added
|
|
11
|
+
|
|
12
|
+
- Add intent based transaction support ([#6547](https://github.com/MetaMask/core/pull/6547))
|
|
10
13
|
### Changed
|
|
11
14
|
|
|
15
|
+
- Deprecate `history` and `sendFlowHistory` properties from `TransactionMeta` and `TransactionController` options ([#7326](https://github.com/MetaMask/core/pull/7326))
|
|
12
16
|
- Bump `@metamask/remote-feature-flag-controller` from `^3.0.0` to `^3.1.0` ([#7519](https://github.com/MetaMask/core/pull/7519))
|
|
17
|
+
- Bump `@metamask/network-controller` from `^27.0.0` to `^27.1.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
|
|
18
|
+
- Bump `@metamask/controller-utils` from `^11.16.0` to `^11.17.0` ([#7534](https://github.com/MetaMask/core/pull/7534))
|
|
13
19
|
|
|
14
20
|
### Fixed
|
|
15
21
|
|
|
@@ -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, 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)) {
|
|
@@ -467,19 +462,32 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
467
462
|
addedTransactionMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(addedTransactionMeta.txParams);
|
|
468
463
|
updateTransaction(addedTransactionMeta);
|
|
469
464
|
}
|
|
470
|
-
// eslint-disable-next-line no-negated-condition
|
|
471
465
|
if (!skipInitialGasEstimate) {
|
|
472
466
|
await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Estimate Gas Properties', parentContext: traceContext }, (context) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, addedTransactionMeta, {
|
|
473
467
|
traceContext: context,
|
|
474
468
|
}));
|
|
475
469
|
}
|
|
470
|
+
else if (isEIP1559Compatible &&
|
|
471
|
+
addedTransactionMeta.txParams.gasPrice &&
|
|
472
|
+
!addedTransactionMeta.txParams.maxFeePerGas) {
|
|
473
|
+
// Convert legacy gasPrice to EIP-1559 fees for intent transactions on EIP-1559 networks
|
|
474
|
+
addedTransactionMeta.txParams.maxFeePerGas =
|
|
475
|
+
addedTransactionMeta.txParams.gasPrice;
|
|
476
|
+
addedTransactionMeta.txParams.maxPriorityFeePerGas =
|
|
477
|
+
addedTransactionMeta.txParams.gasPrice;
|
|
478
|
+
addedTransactionMeta.txParams.type = types_1.TransactionEnvelopeType.feeMarket;
|
|
479
|
+
delete addedTransactionMeta.txParams.gasPrice; // Remove legacy gas price
|
|
480
|
+
}
|
|
481
|
+
else if (!isEIP1559Compatible && addedTransactionMeta.txParams.gasPrice) {
|
|
482
|
+
// Ensure legacy type for non-EIP-1559 networks
|
|
483
|
+
addedTransactionMeta.txParams.type = types_1.TransactionEnvelopeType.legacy;
|
|
484
|
+
}
|
|
476
485
|
else {
|
|
477
486
|
const newTransactionMeta = (0, lodash_1.cloneDeep)(addedTransactionMeta);
|
|
478
487
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, newTransactionMeta)
|
|
479
488
|
.then(() => {
|
|
480
489
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
481
490
|
transactionId: newTransactionMeta.id,
|
|
482
|
-
skipHistory: true,
|
|
483
491
|
skipResimulateCheck: true,
|
|
484
492
|
skipValidation: true,
|
|
485
493
|
}, (tx) => {
|
|
@@ -503,14 +511,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
503
511
|
addedTransactionMeta.securityProviderResponse =
|
|
504
512
|
securityProviderResponse;
|
|
505
513
|
}
|
|
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
514
|
addedTransactionMeta = (0, swaps_1.updateSwapsTransaction)(addedTransactionMeta, transactionType, swaps, {
|
|
515
515
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
516
516
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -521,7 +521,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
521
521
|
.then((delegationAddress) => {
|
|
522
522
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
523
523
|
transactionId: addedTransactionMeta.id,
|
|
524
|
-
skipHistory: true,
|
|
525
524
|
skipResimulateCheck: true,
|
|
526
525
|
skipValidation: true,
|
|
527
526
|
}, (tx) => {
|
|
@@ -711,13 +710,14 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
711
710
|
* Updates an existing transaction in state.
|
|
712
711
|
*
|
|
713
712
|
* @param transactionMeta - The new transaction to store in state.
|
|
714
|
-
* @param note - A note or update reason to
|
|
713
|
+
* @param note - A note or update reason to be logged.
|
|
715
714
|
*/
|
|
716
715
|
updateTransaction(transactionMeta, note) {
|
|
717
716
|
const { id: transactionId } = transactionMeta;
|
|
718
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
717
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
|
|
719
718
|
...transactionMeta,
|
|
720
719
|
}));
|
|
720
|
+
(0, logger_1.projectLogger)('Transaction updated', { transactionId, note });
|
|
721
721
|
}
|
|
722
722
|
/**
|
|
723
723
|
* Update the security alert response for a transaction.
|
|
@@ -768,6 +768,17 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
768
768
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
|
|
769
769
|
});
|
|
770
770
|
}
|
|
771
|
+
/**
|
|
772
|
+
* @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
|
|
773
|
+
* @param transactionID - The ID of the transaction to update.
|
|
774
|
+
* @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
|
|
775
|
+
* @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
|
|
776
|
+
* @returns The transactionMeta.
|
|
777
|
+
*/
|
|
778
|
+
updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
|
|
779
|
+
// Return the transaction unchanged
|
|
780
|
+
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
|
|
781
|
+
}
|
|
771
782
|
/**
|
|
772
783
|
* Adds external provided transaction to state as confirmed transaction.
|
|
773
784
|
*
|
|
@@ -806,33 +817,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
806
817
|
console.error('Failed to confirm external transaction', error);
|
|
807
818
|
}
|
|
808
819
|
}
|
|
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
820
|
/**
|
|
837
821
|
* Update the gas values of a transaction.
|
|
838
822
|
*
|
|
@@ -902,7 +886,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
902
886
|
const filteredTransactionGasFees = (0, lodash_1.pickBy)(transactionGasFees);
|
|
903
887
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
904
888
|
transactionId,
|
|
905
|
-
note: `${controllerName}:updateTransactionGasFees - gas values updated`,
|
|
906
889
|
skipResimulateCheck: true,
|
|
907
890
|
}, (draftTxMeta) => {
|
|
908
891
|
const { txParams, ...otherProps } = filteredTransactionGasFees;
|
|
@@ -1017,8 +1000,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1017
1000
|
}
|
|
1018
1001
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1019
1002
|
transactionId,
|
|
1020
|
-
note: 'TransactionController#setTransactionActive - Transaction isActive updated',
|
|
1021
|
-
skipHistory: true,
|
|
1022
1003
|
skipValidation: true,
|
|
1023
1004
|
skipResimulateCheck: true,
|
|
1024
1005
|
}, (updatedTransactionMeta) => {
|
|
@@ -1302,7 +1283,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1302
1283
|
});
|
|
1303
1284
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1304
1285
|
transactionId,
|
|
1305
|
-
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1306
1286
|
}, (transactionMeta) => {
|
|
1307
1287
|
const { nestedTransactions, txParams } = transactionMeta;
|
|
1308
1288
|
const from = txParams.from;
|
|
@@ -1325,7 +1305,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1325
1305
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
|
|
1326
1306
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1327
1307
|
transactionId,
|
|
1328
|
-
note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
|
|
1329
1308
|
}, (transactionMeta) => {
|
|
1330
1309
|
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1331
1310
|
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
@@ -1345,7 +1324,6 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1345
1324
|
(0, logger_1.projectLogger)('Updating batch transactions', { transactionId, batchTransactions });
|
|
1346
1325
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1347
1326
|
transactionId,
|
|
1348
|
-
note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
|
|
1349
1327
|
}, (transactionMeta) => {
|
|
1350
1328
|
transactionMeta.batchTransactions = batchTransactions;
|
|
1351
1329
|
});
|
|
@@ -1428,7 +1406,7 @@ class TransactionController extends base_controller_1.BaseController {
|
|
|
1428
1406
|
}
|
|
1429
1407
|
}
|
|
1430
1408
|
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(),
|
|
1409
|
+
_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
1410
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1433
1411
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1434
1412
|
return;
|
|
@@ -1587,6 +1565,30 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1587
1565
|
this.updateTransaction(updatedTransaction, 'TransactionController#processApproval - Updated with approval data');
|
|
1588
1566
|
}
|
|
1589
1567
|
}
|
|
1568
|
+
// For intent-based transactions (e.g., CoW intents) that are not meant to be
|
|
1569
|
+
// published on-chain by the TransactionController, skip the approve/publish flow.
|
|
1570
|
+
// These are tracked externally and should not be signed or sent.
|
|
1571
|
+
const isIntentTransaction = Boolean(
|
|
1572
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1573
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId)?.swapMetaData
|
|
1574
|
+
?.isIntentTx === true);
|
|
1575
|
+
if (requireApproval === false && isIntentTransaction) {
|
|
1576
|
+
const submittedTxMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1577
|
+
transactionId,
|
|
1578
|
+
skipValidation: true,
|
|
1579
|
+
}, (draftTxMeta) => {
|
|
1580
|
+
draftTxMeta.status = types_1.TransactionStatus.submitted;
|
|
1581
|
+
draftTxMeta.submittedTime = new Date().getTime();
|
|
1582
|
+
});
|
|
1583
|
+
this.messenger.publish(`${controllerName}:transactionSubmitted`, {
|
|
1584
|
+
transactionMeta: submittedTxMeta,
|
|
1585
|
+
});
|
|
1586
|
+
this.messenger.publish(`${controllerName}:transactionFinished`, submittedTxMeta);
|
|
1587
|
+
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, submittedTxMeta);
|
|
1588
|
+
// Short-circuit normal flow; result callbacks will be handled by the
|
|
1589
|
+
// finished promise below.
|
|
1590
|
+
return ApprovalState.Approved;
|
|
1591
|
+
}
|
|
1590
1592
|
const { isCompleted: isTxCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
|
|
1591
1593
|
if (!isTxCompleted) {
|
|
1592
1594
|
const approvalResult = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_approveTransaction).call(this, transactionId, traceContext, publishHook);
|
|
@@ -1674,7 +1676,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1674
1676
|
// eslint-disable-next-line require-atomic-updates
|
|
1675
1677
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1676
1678
|
transactionId,
|
|
1677
|
-
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
1678
1679
|
}, (draftTxMeta) => {
|
|
1679
1680
|
const { chainId, txParams } = draftTxMeta;
|
|
1680
1681
|
const { gas, type } = txParams;
|
|
@@ -1727,7 +1728,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1727
1728
|
// eslint-disable-next-line require-atomic-updates
|
|
1728
1729
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1729
1730
|
transactionId,
|
|
1730
|
-
note: 'TransactionController#approveTransaction - Transaction submitted',
|
|
1731
1731
|
}, (draftTxMeta) => {
|
|
1732
1732
|
draftTxMeta.hash = hash;
|
|
1733
1733
|
draftTxMeta.status = types_1.TransactionStatus.submitted;
|
|
@@ -1936,17 +1936,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1936
1936
|
const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.confirmed);
|
|
1937
1937
|
const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === types_1.TransactionStatus.submitted);
|
|
1938
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;
|
|
1943
1939
|
this.update((state) => {
|
|
1944
1940
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
|
|
1945
1941
|
...state.transactions,
|
|
1946
|
-
|
|
1942
|
+
transactionMeta,
|
|
1947
1943
|
]);
|
|
1948
1944
|
});
|
|
1949
|
-
return
|
|
1945
|
+
return transactionMeta;
|
|
1950
1946
|
}, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
|
|
1951
1947
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1952
1948
|
if (!transactionMeta) {
|
|
@@ -2017,7 +2013,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2017
2013
|
(0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
|
|
2018
2014
|
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
2019
2015
|
if (updateTransaction) {
|
|
2020
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true
|
|
2016
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
|
|
2021
2017
|
(0, logger_1.projectLogger)('Updated transaction after before sign hook');
|
|
2022
2018
|
}
|
|
2023
2019
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
@@ -2196,7 +2192,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2196
2192
|
];
|
|
2197
2193
|
}, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
|
|
2198
2194
|
return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
|
|
2199
|
-
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId,
|
|
2195
|
+
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
|
|
2200
2196
|
let resimulateResponse;
|
|
2201
2197
|
this.update((state) => {
|
|
2202
2198
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
@@ -2213,10 +2209,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2213
2209
|
if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
|
|
2214
2210
|
resimulateResponse = (0, ResimulateHelper_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
|
|
2215
2211
|
}
|
|
2216
|
-
const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
|
|
2217
|
-
if (!shouldSkipHistory) {
|
|
2218
|
-
transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
|
|
2219
|
-
}
|
|
2220
2212
|
state.transactions[index] = transactionMeta;
|
|
2221
2213
|
});
|
|
2222
2214
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
@@ -2278,7 +2270,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2278
2270
|
}
|
|
2279
2271
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2280
2272
|
transactionId,
|
|
2281
|
-
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2282
2273
|
skipResimulateCheck: Boolean(blockTime),
|
|
2283
2274
|
}, (txMeta) => {
|
|
2284
2275
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
@@ -2291,7 +2282,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2291
2282
|
(0, logger_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2292
2283
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2293
2284
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2294
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
2285
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2295
2286
|
(0, GasFeePoller_1.updateTransactionGasProperties)({
|
|
2296
2287
|
txMeta,
|
|
2297
2288
|
gasFeeEstimates,
|
|
@@ -2397,7 +2388,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2397
2388
|
try {
|
|
2398
2389
|
newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2399
2390
|
transactionId: transactionMeta.id,
|
|
2400
|
-
note: 'TransactionController#failTransaction - Add error message and set status to failed',
|
|
2401
2391
|
skipValidation: true,
|
|
2402
2392
|
}, (draftTransactionMeta) => {
|
|
2403
2393
|
draftTransactionMeta.status = types_1.TransactionStatus.failed;
|
|
@@ -2439,7 +2429,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2439
2429
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2440
2430
|
transactionId,
|
|
2441
2431
|
skipResimulateCheck: true,
|
|
2442
|
-
note: 'afterSimulate Hook',
|
|
2443
2432
|
}, (txMeta) => {
|
|
2444
2433
|
txMeta.txParamsOriginal = (0, lodash_1.cloneDeep)(txMeta.txParams);
|
|
2445
2434
|
updateTransaction(txMeta);
|