@metamask-previews/transaction-controller 37.3.0-preview-b4526f73 → 37.3.0-preview-d823fc29

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.
Files changed (43) hide show
  1. package/dist/TransactionController.cjs +25 -25
  2. package/dist/TransactionController.cjs.map +1 -1
  3. package/dist/TransactionController.d.cts.map +1 -1
  4. package/dist/TransactionController.d.mts.map +1 -1
  5. package/dist/TransactionController.mjs +25 -25
  6. package/dist/TransactionController.mjs.map +1 -1
  7. package/dist/types.cjs.map +1 -1
  8. package/dist/types.d.cts +2 -0
  9. package/dist/types.d.cts.map +1 -1
  10. package/dist/types.d.mts +2 -0
  11. package/dist/types.d.mts.map +1 -1
  12. package/dist/types.mjs.map +1 -1
  13. package/dist/utils/resimulate.cjs +103 -0
  14. package/dist/utils/resimulate.cjs.map +1 -0
  15. package/dist/utils/resimulate.d.cts +20 -0
  16. package/dist/utils/resimulate.d.cts.map +1 -0
  17. package/dist/utils/resimulate.d.mts +20 -0
  18. package/dist/utils/resimulate.d.mts.map +1 -0
  19. package/dist/utils/resimulate.mjs +100 -0
  20. package/dist/utils/resimulate.mjs.map +1 -0
  21. package/dist/utils/simulation-api.cjs.map +1 -1
  22. package/dist/utils/simulation-api.d.cts +3 -0
  23. package/dist/utils/simulation-api.d.cts.map +1 -1
  24. package/dist/utils/simulation-api.d.mts +3 -0
  25. package/dist/utils/simulation-api.d.mts.map +1 -1
  26. package/dist/utils/simulation-api.mjs.map +1 -1
  27. package/dist/utils/simulation.cjs +19 -3
  28. package/dist/utils/simulation.cjs.map +1 -1
  29. package/dist/utils/simulation.d.cts +7 -2
  30. package/dist/utils/simulation.d.cts.map +1 -1
  31. package/dist/utils/simulation.d.mts +7 -2
  32. package/dist/utils/simulation.d.mts.map +1 -1
  33. package/dist/utils/simulation.mjs +19 -3
  34. package/dist/utils/simulation.mjs.map +1 -1
  35. package/dist/utils/utils.cjs +25 -1
  36. package/dist/utils/utils.cjs.map +1 -1
  37. package/dist/utils/utils.d.cts +10 -0
  38. package/dist/utils/utils.d.cts.map +1 -1
  39. package/dist/utils/utils.d.mts +10 -0
  40. package/dist/utils/utils.d.mts.map +1 -1
  41. package/dist/utils/utils.mjs +20 -0
  42. package/dist/utils/utils.mjs.map +1 -1
  43. package/package.json +4 -3
@@ -13,7 +13,7 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || 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_internalEvents, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_createNonceTracker, _TransactionController_createIncomingTransactionHelper, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_removeIncomingTransactionHelperListeners, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_checkIfTransactionParamsUpdated, _TransactionController_onTransactionParamsUpdated, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getNetworkClientId, _TransactionController_getGlobalNetworkClientId, _TransactionController_getGlobalChainId, _TransactionController_isCustomNetwork, _TransactionController_getSelectedAccount, _TransactionController_updateSubmitHistory;
16
+ var _TransactionController_instances, _TransactionController_internalEvents, _TransactionController_incomingTransactionOptions, _TransactionController_pendingTransactionOptions, _TransactionController_trace, _TransactionController_transactionHistoryLimit, _TransactionController_isSimulationEnabled, _TransactionController_testGasFeeFlows, _TransactionController_multichainTrackingHelper, _TransactionController_retryTransaction, _TransactionController_createNonceTracker, _TransactionController_createIncomingTransactionHelper, _TransactionController_createPendingTransactionTracker, _TransactionController_checkForPendingTransactionAndStartPolling, _TransactionController_stopAllTracking, _TransactionController_removeIncomingTransactionHelperListeners, _TransactionController_addIncomingTransactionHelperListeners, _TransactionController_removePendingTransactionTrackerListeners, _TransactionController_addPendingTransactionTrackerListeners, _TransactionController_getNonceTrackerPendingTransactions, _TransactionController_getGasFeeFlows, _TransactionController_getLayer1GasFeeFlows, _TransactionController_updateTransactionInternal, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getNetworkClientId, _TransactionController_getGlobalNetworkClientId, _TransactionController_getGlobalChainId, _TransactionController_isCustomNetwork, _TransactionController_getSelectedAccount, _TransactionController_updateSubmitHistory;
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.TransactionController = exports.ApprovalState = exports.SPEED_UP_RATE = exports.CANCEL_RATE = exports.HARDFORK = void 0;
19
19
  const common_1 = require("@ethereumjs/common");
@@ -50,6 +50,7 @@ const gas_flow_1 = require("./utils/gas-flow.cjs");
50
50
  const history_1 = require("./utils/history.cjs");
51
51
  const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
52
52
  const nonce_1 = require("./utils/nonce.cjs");
53
+ const resimulate_1 = require("./utils/resimulate.cjs");
53
54
  const retry_1 = require("./utils/retry.cjs");
54
55
  const simulation_1 = require("./utils/simulation.cjs");
55
56
  const swaps_1 = require("./utils/swaps.cjs");
@@ -1932,18 +1933,20 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1932
1933
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
1933
1934
  return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
1934
1935
  }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, }, callback) {
1935
- let updatedTransactionParams = [];
1936
+ let resimulateResponse;
1936
1937
  this.update((state) => {
1937
1938
  const index = state.transactions.findIndex(({ id }) => id === transactionId);
1938
1939
  let transactionMeta = state.transactions[index];
1940
+ const originalTransactionMeta = (0, lodash_1.cloneDeep)(transactionMeta);
1939
1941
  // eslint-disable-next-line n/callback-return
1940
1942
  transactionMeta = callback(transactionMeta) ?? transactionMeta;
1941
1943
  if (skipValidation !== true) {
1942
1944
  transactionMeta.txParams = (0, utils_2.normalizeTransactionParams)(transactionMeta.txParams);
1943
1945
  (0, validation_1.validateTxParams)(transactionMeta.txParams);
1944
1946
  }
1945
- updatedTransactionParams =
1946
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_checkIfTransactionParamsUpdated).call(this, transactionMeta);
1947
+ if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
1948
+ resimulateResponse = (0, resimulate_1.shouldResimulate)(originalTransactionMeta, transactionMeta);
1949
+ }
1947
1950
  const shouldSkipHistory = this.isHistoryDisabled || skipHistory;
1948
1951
  if (!shouldSkipHistory) {
1949
1952
  transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
@@ -1951,30 +1954,17 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1951
1954
  state.transactions[index] = transactionMeta;
1952
1955
  });
1953
1956
  const transactionMeta = this.getTransaction(transactionId);
1954
- if (updatedTransactionParams.length > 0) {
1955
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionParamsUpdated).call(this, transactionMeta, updatedTransactionParams);
1956
- }
1957
- return transactionMeta;
1958
- }, _TransactionController_checkIfTransactionParamsUpdated = function _TransactionController_checkIfTransactionParamsUpdated(newTransactionMeta) {
1959
- const { id: transactionId, txParams: newParams } = newTransactionMeta;
1960
- const originalParams = this.getTransaction(transactionId)?.txParams;
1961
- if (!originalParams || (0, lodash_1.isEqual)(originalParams, newParams)) {
1962
- return [];
1963
- }
1964
- const params = Object.keys(newParams);
1965
- const updatedProperties = params.filter((param) => newParams[param] !== originalParams[param]);
1966
- (0, logger_1.projectLogger)('Transaction parameters have been updated', transactionId, updatedProperties, originalParams, newParams);
1967
- return updatedProperties;
1968
- }, _TransactionController_onTransactionParamsUpdated = function _TransactionController_onTransactionParamsUpdated(transactionMeta, updatedParams) {
1969
- if (['to', 'value', 'data'].some((param) => updatedParams.includes(param))) {
1970
- (0, logger_1.projectLogger)('Updating simulation data due to transaction parameter update');
1971
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, transactionMeta).catch((error) => {
1972
- (0, logger_1.projectLogger)('Error updating simulation data', error);
1957
+ if (resimulateResponse?.resimulate) {
1958
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, transactionMeta, {
1959
+ blockTime: resimulateResponse.blockTime,
1960
+ }).catch((error) => {
1961
+ (0, logger_1.projectLogger)('Error during re-simulation', error);
1973
1962
  throw error;
1974
1963
  });
1975
1964
  }
1976
- }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { traceContext } = {}) {
1977
- const { id: transactionId, chainId, txParams } = transactionMeta;
1965
+ return transactionMeta;
1966
+ }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
1967
+ const { id: transactionId, chainId, txParams, simulationData: prevSimulationData, } = transactionMeta;
1978
1968
  const { from, to, value, data } = txParams;
1979
1969
  let simulationData = {
1980
1970
  error: {
@@ -1993,7 +1983,17 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1993
1983
  to: to,
1994
1984
  value: value,
1995
1985
  data: data,
1986
+ }, {
1987
+ blockTime,
1996
1988
  }));
1989
+ if (blockTime &&
1990
+ prevSimulationData &&
1991
+ !(0, lodash_1.isEqual)(simulationData, prevSimulationData)) {
1992
+ simulationData = {
1993
+ ...simulationData,
1994
+ isUpdatedAfterSecurityCheck: true,
1995
+ };
1996
+ }
1997
1997
  }
1998
1998
  const finalTransactionMeta = this.getTransaction(transactionId);
1999
1999
  /* istanbul ignore if */