@metamask-previews/transaction-controller 62.7.0-preview-8a0c757a → 62.7.0-preview-e776a73
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 +7 -2
- package/dist/TransactionController.cjs +24 -112
- 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 +24 -112
- package/dist/TransactionController.mjs.map +1 -1
- package/dist/helpers/PendingTransactionTracker.cjs +37 -27
- 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 +38 -28
- 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/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/package.json +4 -4
- 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
|
@@ -9,7 +9,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
9
9
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
10
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
11
|
};
|
|
12
|
-
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,
|
|
12
|
+
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;
|
|
13
13
|
function $importDefault(module) {
|
|
14
14
|
if (module?.__esModule) {
|
|
15
15
|
return module.default;
|
|
@@ -55,7 +55,6 @@ import { addGasBuffer, estimateGas, estimateGasBatch, updateGas } from "./utils/
|
|
|
55
55
|
import { checkGasFeeTokenBeforePublish, getGasFeeTokens } from "./utils/gas-fee-tokens.mjs";
|
|
56
56
|
import { updateGasFees } from "./utils/gas-fees.mjs";
|
|
57
57
|
import { getGasFeeFlow } from "./utils/gas-flow.mjs";
|
|
58
|
-
import { addInitialHistorySnapshot, updateTransactionHistory } from "./utils/history.mjs";
|
|
59
58
|
import { getTransactionLayer1GasFee, updateTransactionLayer1GasFee } from "./utils/layer1-gas-fee-flow.mjs";
|
|
60
59
|
import { getAndFormatTransactionsForNonceTracker, getNextNonce } from "./utils/nonce.mjs";
|
|
61
60
|
import { prepareTransaction, serializeTransaction } from "./utils/prepare.mjs";
|
|
@@ -146,7 +145,7 @@ export class TransactionController extends BaseController {
|
|
|
146
145
|
* @param options - The controller options.
|
|
147
146
|
*/
|
|
148
147
|
constructor(options) {
|
|
149
|
-
const {
|
|
148
|
+
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;
|
|
150
149
|
super({
|
|
151
150
|
name: controllerName,
|
|
152
151
|
metadata,
|
|
@@ -180,8 +179,6 @@ export class TransactionController extends BaseController {
|
|
|
180
179
|
_TransactionController_isAutomaticGasFeeUpdateEnabled.set(this, void 0);
|
|
181
180
|
_TransactionController_isEIP7702GasFeeTokensEnabled.set(this, void 0);
|
|
182
181
|
_TransactionController_isFirstTimeInteractionEnabled.set(this, void 0);
|
|
183
|
-
_TransactionController_isHistoryDisabled.set(this, void 0);
|
|
184
|
-
_TransactionController_isSendFlowHistoryDisabled.set(this, void 0);
|
|
185
182
|
_TransactionController_isSimulationEnabled.set(this, void 0);
|
|
186
183
|
_TransactionController_isSwapsDisabled.set(this, void 0);
|
|
187
184
|
_TransactionController_isTimeoutEnabled.set(this, void 0);
|
|
@@ -233,8 +230,6 @@ export class TransactionController extends BaseController {
|
|
|
233
230
|
__classPrivateFieldSet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, isEIP7702GasFeeTokensEnabled ??
|
|
234
231
|
(() => Promise.resolve(false)), "f");
|
|
235
232
|
__classPrivateFieldSet(this, _TransactionController_isFirstTimeInteractionEnabled, isFirstTimeInteractionEnabled ?? (() => true), "f");
|
|
236
|
-
__classPrivateFieldSet(this, _TransactionController_isHistoryDisabled, disableHistory ?? false, "f");
|
|
237
|
-
__classPrivateFieldSet(this, _TransactionController_isSendFlowHistoryDisabled, disableSendFlowHistory ?? false, "f");
|
|
238
233
|
__classPrivateFieldSet(this, _TransactionController_isSimulationEnabled, isSimulationEnabled ?? (() => true), "f");
|
|
239
234
|
__classPrivateFieldSet(this, _TransactionController_isSwapsDisabled, disableSwaps ?? false, "f");
|
|
240
235
|
__classPrivateFieldSet(this, _TransactionController_isTimeoutEnabled, hooks?.isTimeoutEnabled ?? (() => true), "f");
|
|
@@ -393,7 +388,7 @@ export class TransactionController extends BaseController {
|
|
|
393
388
|
*/
|
|
394
389
|
async addTransaction(txParams, options) {
|
|
395
390
|
log('Adding transaction', txParams, options);
|
|
396
|
-
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse,
|
|
391
|
+
const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, isGasFeeIncluded, isGasFeeSponsored, method, nestedTransactions, networkClientId, origin, publishHook, requestId, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
|
|
397
392
|
// eslint-disable-next-line no-param-reassign
|
|
398
393
|
txParams = normalizeTransactionParams(txParams);
|
|
399
394
|
if (!__classPrivateFieldGet(this, _TransactionController_multichainTrackingHelper, "f").has(networkClientId)) {
|
|
@@ -469,33 +464,18 @@ export class TransactionController extends BaseController {
|
|
|
469
464
|
addedTransactionMeta.txParamsOriginal = cloneDeep(addedTransactionMeta.txParams);
|
|
470
465
|
updateTransaction(addedTransactionMeta);
|
|
471
466
|
}
|
|
467
|
+
// eslint-disable-next-line no-negated-condition
|
|
472
468
|
if (!skipInitialGasEstimate) {
|
|
473
469
|
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, {
|
|
474
470
|
traceContext: context,
|
|
475
471
|
}));
|
|
476
472
|
}
|
|
477
|
-
else if (isEIP1559Compatible &&
|
|
478
|
-
addedTransactionMeta.txParams.gasPrice &&
|
|
479
|
-
!addedTransactionMeta.txParams.maxFeePerGas) {
|
|
480
|
-
// Convert legacy gasPrice to EIP-1559 fees for intent transactions on EIP-1559 networks
|
|
481
|
-
addedTransactionMeta.txParams.maxFeePerGas =
|
|
482
|
-
addedTransactionMeta.txParams.gasPrice;
|
|
483
|
-
addedTransactionMeta.txParams.maxPriorityFeePerGas =
|
|
484
|
-
addedTransactionMeta.txParams.gasPrice;
|
|
485
|
-
addedTransactionMeta.txParams.type = TransactionEnvelopeType.feeMarket;
|
|
486
|
-
delete addedTransactionMeta.txParams.gasPrice; // Remove legacy gas price
|
|
487
|
-
}
|
|
488
|
-
else if (!isEIP1559Compatible && addedTransactionMeta.txParams.gasPrice) {
|
|
489
|
-
// Ensure legacy type for non-EIP-1559 networks
|
|
490
|
-
addedTransactionMeta.txParams.type = TransactionEnvelopeType.legacy;
|
|
491
|
-
}
|
|
492
473
|
else {
|
|
493
474
|
const newTransactionMeta = cloneDeep(addedTransactionMeta);
|
|
494
475
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasProperties).call(this, newTransactionMeta)
|
|
495
476
|
.then(() => {
|
|
496
477
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
497
478
|
transactionId: newTransactionMeta.id,
|
|
498
|
-
skipHistory: true,
|
|
499
479
|
skipResimulateCheck: true,
|
|
500
480
|
skipValidation: true,
|
|
501
481
|
}, (tx) => {
|
|
@@ -519,14 +499,6 @@ export class TransactionController extends BaseController {
|
|
|
519
499
|
addedTransactionMeta.securityProviderResponse =
|
|
520
500
|
securityProviderResponse;
|
|
521
501
|
}
|
|
522
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
|
|
523
|
-
// eslint-disable-next-line require-atomic-updates
|
|
524
|
-
addedTransactionMeta.sendFlowHistory = sendFlowHistory ?? [];
|
|
525
|
-
}
|
|
526
|
-
// Initial history push
|
|
527
|
-
if (!__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")) {
|
|
528
|
-
addedTransactionMeta = addInitialHistorySnapshot(addedTransactionMeta);
|
|
529
|
-
}
|
|
530
502
|
addedTransactionMeta = updateSwapsTransaction(addedTransactionMeta, transactionType, swaps, {
|
|
531
503
|
isSwapsDisabled: __classPrivateFieldGet(this, _TransactionController_isSwapsDisabled, "f"),
|
|
532
504
|
cancelTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_rejectTransaction).bind(this),
|
|
@@ -537,7 +509,6 @@ export class TransactionController extends BaseController {
|
|
|
537
509
|
.then((delegationAddress) => {
|
|
538
510
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
539
511
|
transactionId: addedTransactionMeta.id,
|
|
540
|
-
skipHistory: true,
|
|
541
512
|
skipResimulateCheck: true,
|
|
542
513
|
skipValidation: true,
|
|
543
514
|
}, (tx) => {
|
|
@@ -727,13 +698,14 @@ export class TransactionController extends BaseController {
|
|
|
727
698
|
* Updates an existing transaction in state.
|
|
728
699
|
*
|
|
729
700
|
* @param transactionMeta - The new transaction to store in state.
|
|
730
|
-
* @param note - A note or update reason to
|
|
701
|
+
* @param note - A note or update reason to be logged.
|
|
731
702
|
*/
|
|
732
703
|
updateTransaction(transactionMeta, note) {
|
|
733
704
|
const { id: transactionId } = transactionMeta;
|
|
734
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
705
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, () => ({
|
|
735
706
|
...transactionMeta,
|
|
736
707
|
}));
|
|
708
|
+
log('Transaction updated', { transactionId, note });
|
|
737
709
|
}
|
|
738
710
|
/**
|
|
739
711
|
* Update the security alert response for a transaction.
|
|
@@ -784,6 +756,17 @@ export class TransactionController extends BaseController {
|
|
|
784
756
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, newTransactions);
|
|
785
757
|
});
|
|
786
758
|
}
|
|
759
|
+
/**
|
|
760
|
+
* @deprecated No longer used. Kept only to avoid breaking changes. It now performs no operations.
|
|
761
|
+
* @param transactionID - The ID of the transaction to update.
|
|
762
|
+
* @param _currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
|
|
763
|
+
* @param _sendFlowHistoryToAdd - The sendFlowHistory entries to add.
|
|
764
|
+
* @returns The transactionMeta.
|
|
765
|
+
*/
|
|
766
|
+
updateTransactionSendFlowHistory(transactionID, _currentSendFlowHistoryLength, _sendFlowHistoryToAdd) {
|
|
767
|
+
// Return the transaction unchanged
|
|
768
|
+
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionID);
|
|
769
|
+
}
|
|
787
770
|
/**
|
|
788
771
|
* Adds external provided transaction to state as confirmed transaction.
|
|
789
772
|
*
|
|
@@ -822,33 +805,6 @@ export class TransactionController extends BaseController {
|
|
|
822
805
|
console.error('Failed to confirm external transaction', error);
|
|
823
806
|
}
|
|
824
807
|
}
|
|
825
|
-
/**
|
|
826
|
-
* Append new send flow history to a transaction.
|
|
827
|
-
*
|
|
828
|
-
* @param transactionID - The ID of the transaction to update.
|
|
829
|
-
* @param currentSendFlowHistoryLength - The length of the current sendFlowHistory array.
|
|
830
|
-
* @param sendFlowHistoryToAdd - The sendFlowHistory entries to add.
|
|
831
|
-
* @returns The updated transactionMeta.
|
|
832
|
-
*/
|
|
833
|
-
updateTransactionSendFlowHistory(transactionID, currentSendFlowHistoryLength, sendFlowHistoryToAdd) {
|
|
834
|
-
if (__classPrivateFieldGet(this, _TransactionController_isSendFlowHistoryDisabled, "f")) {
|
|
835
|
-
throw new Error('Send flow history is disabled for the current transaction controller');
|
|
836
|
-
}
|
|
837
|
-
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
|
|
838
|
-
if (!transactionMeta) {
|
|
839
|
-
throw new Error(`Cannot update send flow history as no transaction metadata found`);
|
|
840
|
-
}
|
|
841
|
-
validateIfTransactionUnapproved(transactionMeta, 'updateTransactionSendFlowHistory');
|
|
842
|
-
const sendFlowHistory = transactionMeta.sendFlowHistory ?? [];
|
|
843
|
-
if (currentSendFlowHistoryLength === sendFlowHistory.length) {
|
|
844
|
-
const updatedTransactionMeta = {
|
|
845
|
-
...transactionMeta,
|
|
846
|
-
sendFlowHistory: [...sendFlowHistory, ...sendFlowHistoryToAdd],
|
|
847
|
-
};
|
|
848
|
-
this.updateTransaction(updatedTransactionMeta, `${controllerName}:updateTransactionSendFlowHistory - sendFlowHistory updated`);
|
|
849
|
-
}
|
|
850
|
-
return __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionID);
|
|
851
|
-
}
|
|
852
808
|
/**
|
|
853
809
|
* Update the gas values of a transaction.
|
|
854
810
|
*
|
|
@@ -918,7 +874,6 @@ export class TransactionController extends BaseController {
|
|
|
918
874
|
const filteredTransactionGasFees = pickBy(transactionGasFees);
|
|
919
875
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
920
876
|
transactionId,
|
|
921
|
-
note: `${controllerName}:updateTransactionGasFees - gas values updated`,
|
|
922
877
|
skipResimulateCheck: true,
|
|
923
878
|
}, (draftTxMeta) => {
|
|
924
879
|
const { txParams, ...otherProps } = filteredTransactionGasFees;
|
|
@@ -1033,8 +988,6 @@ export class TransactionController extends BaseController {
|
|
|
1033
988
|
}
|
|
1034
989
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1035
990
|
transactionId,
|
|
1036
|
-
note: 'TransactionController#setTransactionActive - Transaction isActive updated',
|
|
1037
|
-
skipHistory: true,
|
|
1038
991
|
skipValidation: true,
|
|
1039
992
|
skipResimulateCheck: true,
|
|
1040
993
|
}, (updatedTransactionMeta) => {
|
|
@@ -1318,7 +1271,6 @@ export class TransactionController extends BaseController {
|
|
|
1318
1271
|
});
|
|
1319
1272
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1320
1273
|
transactionId,
|
|
1321
|
-
note: 'TransactionController#updateAtomicBatchData - Atomic batch data updated',
|
|
1322
1274
|
}, (transactionMeta) => {
|
|
1323
1275
|
const { nestedTransactions, txParams } = transactionMeta;
|
|
1324
1276
|
const from = txParams.from;
|
|
@@ -1341,7 +1293,6 @@ export class TransactionController extends BaseController {
|
|
|
1341
1293
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateGasEstimate).call(this, draftTransaction);
|
|
1342
1294
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1343
1295
|
transactionId,
|
|
1344
|
-
note: 'TransactionController#updateAtomicBatchData - Gas estimate updated',
|
|
1345
1296
|
}, (transactionMeta) => {
|
|
1346
1297
|
transactionMeta.txParams.gas = draftTransaction.txParams.gas;
|
|
1347
1298
|
transactionMeta.simulationFails = draftTransaction.simulationFails;
|
|
@@ -1361,7 +1312,6 @@ export class TransactionController extends BaseController {
|
|
|
1361
1312
|
log('Updating batch transactions', { transactionId, batchTransactions });
|
|
1362
1313
|
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1363
1314
|
transactionId,
|
|
1364
|
-
note: 'TransactionController#updateBatchTransactions - Batch transactions updated',
|
|
1365
1315
|
}, (transactionMeta) => {
|
|
1366
1316
|
transactionMeta.batchTransactions = batchTransactions;
|
|
1367
1317
|
});
|
|
@@ -1443,7 +1393,7 @@ export class TransactionController extends BaseController {
|
|
|
1443
1393
|
});
|
|
1444
1394
|
}
|
|
1445
1395
|
}
|
|
1446
|
-
_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(),
|
|
1396
|
+
_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, }) {
|
|
1447
1397
|
// If transaction is found for same action id, do not create a new transaction.
|
|
1448
1398
|
if (__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionWithActionId).call(this, actionId)) {
|
|
1449
1399
|
return;
|
|
@@ -1602,31 +1552,6 @@ _TransactionController_afterAdd = new WeakMap(), _TransactionController_afterSig
|
|
|
1602
1552
|
this.updateTransaction(updatedTransaction, 'TransactionController#processApproval - Updated with approval data');
|
|
1603
1553
|
}
|
|
1604
1554
|
}
|
|
1605
|
-
// For intent-based transactions (e.g., CoW intents) that are not meant to be
|
|
1606
|
-
// published on-chain by the TransactionController, skip the approve/publish flow.
|
|
1607
|
-
// These are tracked externally and should not be signed or sent.
|
|
1608
|
-
const isIntentTransaction = Boolean(
|
|
1609
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1610
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId)?.swapMetaData
|
|
1611
|
-
?.isIntentTx === true);
|
|
1612
|
-
if (requireApproval === false && isIntentTransaction) {
|
|
1613
|
-
const submittedTxMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1614
|
-
transactionId,
|
|
1615
|
-
note: 'TransactionController#processApproval - Intent transaction auto-submitted',
|
|
1616
|
-
skipValidation: true,
|
|
1617
|
-
}, (draftTxMeta) => {
|
|
1618
|
-
draftTxMeta.status = TransactionStatus.submitted;
|
|
1619
|
-
draftTxMeta.submittedTime = new Date().getTime();
|
|
1620
|
-
});
|
|
1621
|
-
this.messenger.publish(`${controllerName}:transactionSubmitted`, {
|
|
1622
|
-
transactionMeta: submittedTxMeta,
|
|
1623
|
-
});
|
|
1624
|
-
this.messenger.publish(`${controllerName}:transactionFinished`, submittedTxMeta);
|
|
1625
|
-
__classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionId}:finished`, submittedTxMeta);
|
|
1626
|
-
// Short-circuit normal flow; result callbacks will be handled by the
|
|
1627
|
-
// finished promise below.
|
|
1628
|
-
return ApprovalState.Approved;
|
|
1629
|
-
}
|
|
1630
1555
|
const { isCompleted: isTxCompleted } = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isTransactionCompleted).call(this, transactionId);
|
|
1631
1556
|
if (!isTxCompleted) {
|
|
1632
1557
|
const approvalResult = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_approveTransaction).call(this, transactionId, traceContext, publishHook);
|
|
@@ -1714,7 +1639,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1714
1639
|
// eslint-disable-next-line require-atomic-updates
|
|
1715
1640
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1716
1641
|
transactionId,
|
|
1717
|
-
note: 'TransactionController#approveTransaction - Transaction approved',
|
|
1718
1642
|
}, (draftTxMeta) => {
|
|
1719
1643
|
const { chainId, txParams } = draftTxMeta;
|
|
1720
1644
|
const { gas, type } = txParams;
|
|
@@ -1767,7 +1691,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1767
1691
|
// eslint-disable-next-line require-atomic-updates
|
|
1768
1692
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
1769
1693
|
transactionId,
|
|
1770
|
-
note: 'TransactionController#approveTransaction - Transaction submitted',
|
|
1771
1694
|
}, (draftTxMeta) => {
|
|
1772
1695
|
draftTxMeta.hash = hash;
|
|
1773
1696
|
draftTxMeta.status = TransactionStatus.submitted;
|
|
@@ -1976,17 +1899,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
1976
1899
|
const confirmedTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === TransactionStatus.confirmed);
|
|
1977
1900
|
const pendingTxs = sameFromAndNetworkTransactions.filter((transaction) => transaction.status === TransactionStatus.submitted);
|
|
1978
1901
|
validateConfirmedExternalTransaction(transactionMeta, confirmedTxs, pendingTxs);
|
|
1979
|
-
// Make sure provided external transaction has non empty history array
|
|
1980
|
-
const newTransactionMeta = (transactionMeta.history ?? []).length === 0 && !__classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f")
|
|
1981
|
-
? addInitialHistorySnapshot(transactionMeta)
|
|
1982
|
-
: transactionMeta;
|
|
1983
1902
|
this.update((state) => {
|
|
1984
1903
|
state.transactions = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_trimTransactionsForState).call(this, [
|
|
1985
1904
|
...state.transactions,
|
|
1986
|
-
|
|
1905
|
+
transactionMeta,
|
|
1987
1906
|
]);
|
|
1988
1907
|
});
|
|
1989
|
-
return
|
|
1908
|
+
return transactionMeta;
|
|
1990
1909
|
}, _TransactionController_markNonceDuplicatesDropped = function _TransactionController_markNonceDuplicatesDropped(transactionId) {
|
|
1991
1910
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
1992
1911
|
if (!transactionMeta) {
|
|
@@ -2057,7 +1976,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2057
1976
|
log('Calling before sign hook', transactionMeta);
|
|
2058
1977
|
const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
|
|
2059
1978
|
if (updateTransaction) {
|
|
2060
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true
|
|
1979
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true }, updateTransaction);
|
|
2061
1980
|
log('Updated transaction after before sign hook');
|
|
2062
1981
|
}
|
|
2063
1982
|
transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
|
|
@@ -2236,7 +2155,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2236
2155
|
];
|
|
2237
2156
|
}, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
|
|
2238
2157
|
return [new OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow()];
|
|
2239
|
-
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId,
|
|
2158
|
+
}, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, skipValidation, skipResimulateCheck, }, callback) {
|
|
2240
2159
|
let resimulateResponse;
|
|
2241
2160
|
this.update((state) => {
|
|
2242
2161
|
const index = state.transactions.findIndex(({ id }) => id === transactionId);
|
|
@@ -2253,10 +2172,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2253
2172
|
if (!skipResimulateCheck && __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
|
|
2254
2173
|
resimulateResponse = shouldResimulate(originalTransactionMeta, transactionMeta);
|
|
2255
2174
|
}
|
|
2256
|
-
const shouldSkipHistory = __classPrivateFieldGet(this, _TransactionController_isHistoryDisabled, "f") || skipHistory;
|
|
2257
|
-
if (!shouldSkipHistory) {
|
|
2258
|
-
transactionMeta = updateTransactionHistory(transactionMeta, note ?? 'Transaction updated');
|
|
2259
|
-
}
|
|
2260
2175
|
state.transactions[index] = transactionMeta;
|
|
2261
2176
|
});
|
|
2262
2177
|
const transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
|
|
@@ -2318,7 +2233,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2318
2233
|
}
|
|
2319
2234
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2320
2235
|
transactionId,
|
|
2321
|
-
note: 'TransactionController#updateSimulationData - Update simulation data',
|
|
2322
2236
|
skipResimulateCheck: Boolean(blockTime),
|
|
2323
2237
|
}, (txMeta) => {
|
|
2324
2238
|
txMeta.gasFeeTokens = gasFeeTokens;
|
|
@@ -2331,7 +2245,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2331
2245
|
log('Updated simulation data', transactionId, updatedTransactionMeta);
|
|
2332
2246
|
await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_runAfterSimulateHook).call(this, updatedTransactionMeta);
|
|
2333
2247
|
}, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
|
|
2334
|
-
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId
|
|
2248
|
+
__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
|
|
2335
2249
|
updateTransactionGasProperties({
|
|
2336
2250
|
txMeta,
|
|
2337
2251
|
gasFeeEstimates,
|
|
@@ -2437,7 +2351,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2437
2351
|
try {
|
|
2438
2352
|
newTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2439
2353
|
transactionId: transactionMeta.id,
|
|
2440
|
-
note: 'TransactionController#failTransaction - Add error message and set status to failed',
|
|
2441
2354
|
skipValidation: true,
|
|
2442
2355
|
}, (draftTransactionMeta) => {
|
|
2443
2356
|
draftTransactionMeta.status = TransactionStatus.failed;
|
|
@@ -2479,7 +2392,6 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
|
|
|
2479
2392
|
const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
|
|
2480
2393
|
transactionId,
|
|
2481
2394
|
skipResimulateCheck: true,
|
|
2482
|
-
note: 'afterSimulate Hook',
|
|
2483
2395
|
}, (txMeta) => {
|
|
2484
2396
|
txMeta.txParamsOriginal = cloneDeep(txMeta.txParams);
|
|
2485
2397
|
updateTransaction(txMeta);
|