@metamask-previews/transaction-controller 69.4.0-preview-60e0d4cd3 → 69.4.0-preview-b5147cfe0

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 CHANGED
@@ -7,14 +7,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
- ### Changed
11
-
12
- - Bump `@metamask/network-controller` from `^35.0.0` to `^35.0.1` ([#9758](https://github.com/MetaMask/core/pull/9758))
13
-
14
- ### Fixed
15
-
16
- - Refresh gas fee token quotes independently of balance changes for enforced-simulation transactions, and prevent stale simulation responses from overwriting newer transaction state. ([#9757](https://github.com/MetaMask/core/pull/9757))
17
-
18
10
  ## [69.4.0]
19
11
 
20
12
  ### Added
@@ -10,7 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  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");
11
11
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
12
12
  };
13
- var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_simulationRequestTokens, _TransactionController_testGasFeeFlows, _TransactionController_trace, _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_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _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_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_isBalanceChangesSkipped, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
13
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_isTimeoutEnabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_signAbortCallbacks, _TransactionController_skipSimulationTransactionIds, _TransactionController_testGasFeeFlows, _TransactionController_trace, _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_generateDappSuggestedGasFees, _TransactionController_addExternalTransaction, _TransactionController_markNonceDuplicatesDropped, _TransactionController_setTransactionStatusDropped, _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_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_publishTransactionForRetry, _TransactionController_isTransactionAlreadyConfirmedError, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_isBalanceChangesSkipped, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_defaultPublishHook, _TransactionController_getGasFeeTokens;
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = void 0;
16
16
  const base_controller_1 = require("@metamask/base-controller");
@@ -210,7 +210,6 @@ class TransactionController extends base_controller_1.BaseController {
210
210
  _TransactionController_publishBatchHook.set(this, void 0);
211
211
  _TransactionController_signAbortCallbacks.set(this, new Map());
212
212
  _TransactionController_skipSimulationTransactionIds.set(this, new Set());
213
- _TransactionController_simulationRequestTokens.set(this, new Map());
214
213
  _TransactionController_testGasFeeFlows.set(this, void 0);
215
214
  _TransactionController_trace.set(this, void 0);
216
215
  _TransactionController_checkForPendingTransactionAndStartPolling.set(this, () => {
@@ -1463,7 +1462,7 @@ class TransactionController extends base_controller_1.BaseController {
1463
1462
  }
1464
1463
  }
1465
1464
  exports.TransactionController = TransactionController;
1466
- _TransactionController_afterAdd = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = 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_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_simulationRequestTokens = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = 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, }) {
1465
+ _TransactionController_afterAdd = new WeakMap(), _TransactionController_approvingTransactionIds = new WeakMap(), _TransactionController_beforeCheckPendingTransaction = new WeakMap(), _TransactionController_beforePublish = new WeakMap(), _TransactionController_beforeSign = new WeakMap(), _TransactionController_gasFeeFlows = new WeakMap(), _TransactionController_getPermittedAccounts = new WeakMap(), _TransactionController_getSavedGasFees = new WeakMap(), _TransactionController_getSimulationConfig = 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_publicKeyEIP7702 = new WeakMap(), _TransactionController_publish = new WeakMap(), _TransactionController_publishBatchHook = new WeakMap(), _TransactionController_signAbortCallbacks = new WeakMap(), _TransactionController_skipSimulationTransactionIds = new WeakMap(), _TransactionController_testGasFeeFlows = new WeakMap(), _TransactionController_trace = 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, }) {
1467
1466
  if (gasValues) {
1468
1467
  // Not good practice to reassign a parameter but temporarily avoiding a larger refactor.
1469
1468
  // eslint-disable-next-line no-param-reassign
@@ -2208,83 +2207,65 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2208
2207
  let gasFeeTokens = [];
2209
2208
  let isGasFeeSponsored = false;
2210
2209
  let simulationRevert;
2211
- const simulationRequestToken = Symbol(transactionId);
2212
- __classPrivateFieldGet(this, _TransactionController_simulationRequestTokens, "f").set(transactionId, simulationRequestToken);
2213
- try {
2214
- const isSimulationEnabled = __classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this);
2215
- const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, transactionMeta);
2216
- if (isSimulationEnabled && !isBalanceChangesSkipped) {
2217
- const balanceChangesResult = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_js_1.getBalanceChanges)({
2218
- blockTime,
2219
- chainId,
2220
- messenger: this.messenger,
2221
- networkClientId,
2222
- getSimulationConfig: (url, opts) => {
2223
- return __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").call(this, url, {
2224
- txMeta: transactionMeta,
2225
- ...opts,
2226
- });
2227
- },
2228
- nestedTransactions,
2229
- txParams,
2230
- }));
2231
- simulationData = balanceChangesResult.simulationData;
2232
- gasUsed = balanceChangesResult.gasUsed;
2233
- simulationRevert = balanceChangesResult.simulationRevert;
2234
- if (blockTime &&
2235
- prevSimulationData &&
2236
- (0, ResimulateHelper_js_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
2237
- simulationData = {
2238
- ...simulationData,
2239
- isUpdatedAfterSecurityCheck: true,
2240
- };
2241
- }
2242
- }
2243
- if (isSimulationEnabled) {
2244
- const gasFeeTokensResponse = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transactionMeta);
2245
- gasFeeTokens = gasFeeTokensResponse?.gasFeeTokens ?? [];
2246
- isGasFeeSponsored = gasFeeTokensResponse?.isGasFeeSponsored ?? false;
2247
- }
2248
- if (__classPrivateFieldGet(this, _TransactionController_simulationRequestTokens, "f").get(transactionId) !==
2249
- simulationRequestToken) {
2250
- (0, logger_js_1.projectLogger)('Ignoring stale simulation data', transactionId);
2251
- return;
2252
- }
2253
- const latestTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
2254
- /* istanbul ignore if */
2255
- if (!latestTransactionMeta) {
2256
- (0, logger_js_1.projectLogger)('Cannot update simulation data as transaction not found', transactionId, simulationData);
2257
- return;
2210
+ const isBalanceChangesSkipped = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, transactionMeta);
2211
+ if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this) && !isBalanceChangesSkipped) {
2212
+ const balanceChangesResult = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_js_1.getBalanceChanges)({
2213
+ blockTime,
2214
+ chainId,
2215
+ messenger: this.messenger,
2216
+ networkClientId,
2217
+ getSimulationConfig: (url, opts) => {
2218
+ return __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").call(this, url, {
2219
+ txMeta: transactionMeta,
2220
+ ...opts,
2221
+ });
2222
+ },
2223
+ nestedTransactions,
2224
+ txParams,
2225
+ }));
2226
+ simulationData = balanceChangesResult.simulationData;
2227
+ gasUsed = balanceChangesResult.gasUsed;
2228
+ simulationRevert = balanceChangesResult.simulationRevert;
2229
+ if (blockTime &&
2230
+ prevSimulationData &&
2231
+ (0, ResimulateHelper_js_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
2232
+ simulationData = {
2233
+ ...simulationData,
2234
+ isUpdatedAfterSecurityCheck: true,
2235
+ };
2258
2236
  }
2259
- const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2260
- transactionId,
2261
- skipResimulateCheck: Boolean(blockTime),
2262
- }, (txMeta) => {
2263
- txMeta.gasFeeTokens = gasFeeTokens;
2264
- txMeta.isGasFeeSponsored =
2265
- txMeta.isGasFeeSponsored ?? isGasFeeSponsored;
2266
- if (txMeta.isGasFeeSponsored) {
2267
- txMeta.isExternalSign = true;
2268
- }
2269
- if (!__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, txMeta)) {
2270
- txMeta.gasUsed = gasUsed;
2271
- txMeta.simulationData = simulationData;
2272
- if (simulationRevert) {
2273
- txMeta.revert = {
2274
- ...txMeta.revert,
2275
- simulation: simulationRevert,
2276
- };
2277
- }
2278
- }
2279
- });
2280
- (0, logger_js_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
2237
+ const gasFeeTokensResponse = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, transactionMeta);
2238
+ gasFeeTokens = gasFeeTokensResponse?.gasFeeTokens ?? [];
2239
+ isGasFeeSponsored = gasFeeTokensResponse?.isGasFeeSponsored ?? false;
2281
2240
  }
2282
- finally {
2283
- if (__classPrivateFieldGet(this, _TransactionController_simulationRequestTokens, "f").get(transactionId) ===
2284
- simulationRequestToken) {
2285
- __classPrivateFieldGet(this, _TransactionController_simulationRequestTokens, "f").delete(transactionId);
2286
- }
2241
+ const latestTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
2242
+ /* istanbul ignore if */
2243
+ if (!latestTransactionMeta) {
2244
+ (0, logger_js_1.projectLogger)('Cannot update simulation data as transaction not found', transactionId, simulationData);
2245
+ return;
2287
2246
  }
2247
+ const updatedTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
2248
+ transactionId,
2249
+ skipResimulateCheck: Boolean(blockTime),
2250
+ }, (txMeta) => {
2251
+ txMeta.gasFeeTokens = gasFeeTokens;
2252
+ txMeta.isGasFeeSponsored =
2253
+ txMeta.isGasFeeSponsored ?? isGasFeeSponsored;
2254
+ if (txMeta.isGasFeeSponsored) {
2255
+ txMeta.isExternalSign = true;
2256
+ }
2257
+ txMeta.gasUsed = gasUsed;
2258
+ if (!__classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isBalanceChangesSkipped).call(this, txMeta)) {
2259
+ txMeta.simulationData = simulationData;
2260
+ if (simulationRevert) {
2261
+ txMeta.revert = {
2262
+ ...txMeta.revert,
2263
+ simulation: simulationRevert,
2264
+ };
2265
+ }
2266
+ }
2267
+ });
2268
+ (0, logger_js_1.projectLogger)('Updated simulation data', transactionId, updatedTransactionMeta);
2288
2269
  }, _TransactionController_onGasFeePollerTransactionUpdate = function _TransactionController_onGasFeePollerTransactionUpdate({ transactionId, gasFeeEstimates, gasFeeEstimatesLoaded, layer1GasFee, }) {
2289
2270
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId }, (txMeta) => {
2290
2271
  (0, GasFeePoller_js_1.updateTransactionGasProperties)({