@metamask-previews/transaction-controller 37.3.0-preview-8518e617 → 37.3.0-preview-5b0b6ae7

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 (37) hide show
  1. package/dist/TransactionController.cjs +19 -75
  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 +21 -77
  6. package/dist/TransactionController.mjs.map +1 -1
  7. package/dist/types.cjs +1 -2
  8. package/dist/types.cjs.map +1 -1
  9. package/dist/types.d.cts +0 -3
  10. package/dist/types.d.cts.map +1 -1
  11. package/dist/types.d.mts +0 -3
  12. package/dist/types.d.mts.map +1 -1
  13. package/dist/types.mjs +0 -1
  14. package/dist/types.mjs.map +1 -1
  15. package/dist/utils/simulation-api.cjs.map +1 -1
  16. package/dist/utils/simulation-api.d.cts +0 -3
  17. package/dist/utils/simulation-api.d.cts.map +1 -1
  18. package/dist/utils/simulation-api.d.mts +0 -3
  19. package/dist/utils/simulation-api.d.mts.map +1 -1
  20. package/dist/utils/simulation-api.mjs.map +1 -1
  21. package/dist/utils/simulation.cjs +1 -10
  22. package/dist/utils/simulation.cjs.map +1 -1
  23. package/dist/utils/simulation.d.cts +1 -5
  24. package/dist/utils/simulation.d.cts.map +1 -1
  25. package/dist/utils/simulation.d.mts +1 -5
  26. package/dist/utils/simulation.d.mts.map +1 -1
  27. package/dist/utils/simulation.mjs +1 -10
  28. package/dist/utils/simulation.mjs.map +1 -1
  29. package/dist/utils/utils.cjs +1 -25
  30. package/dist/utils/utils.cjs.map +1 -1
  31. package/dist/utils/utils.d.cts +0 -10
  32. package/dist/utils/utils.d.cts.map +1 -1
  33. package/dist/utils/utils.d.mts +0 -10
  34. package/dist/utils/utils.d.mts.map +1 -1
  35. package/dist/utils/utils.mjs +0 -20
  36. package/dist/utils/utils.mjs.map +1 -1
  37. package/package.json +3 -4
@@ -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_shouldReSimulateDueToThreshold, _TransactionController_shouldReSimulateDueToSecurityAlert, _TransactionController_isSecurityAlertUpdated, _TransactionController_isSimulationUpdated, _TransactionController_shouldReSimulateDueToTxParamUpdate, _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_checkIfTransactionParamsUpdated, _TransactionController_onTransactionParamsUpdated, _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");
@@ -1932,9 +1932,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1932
1932
  }, _TransactionController_getLayer1GasFeeFlows = function _TransactionController_getLayer1GasFeeFlows() {
1933
1933
  return [new OptimismLayer1GasFeeFlow_1.OptimismLayer1GasFeeFlow(), new ScrollLayer1GasFeeFlow_1.ScrollLayer1GasFeeFlow()];
1934
1934
  }, _TransactionController_updateTransactionInternal = function _TransactionController_updateTransactionInternal({ transactionId, note, skipHistory, skipValidation, }, callback) {
1935
- let isReSimulateNeedDueToTxParamsUpdated = false;
1936
- let isReSimulateNeedDueToSecurityAlert = false;
1937
- let isReSimulateNeedDueToThreshold = false;
1935
+ let updatedTransactionParams = [];
1938
1936
  this.update((state) => {
1939
1937
  const index = state.transactions.findIndex(({ id }) => id === transactionId);
1940
1938
  let transactionMeta = state.transactions[index];
@@ -1944,12 +1942,8 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1944
1942
  transactionMeta.txParams = (0, utils_2.normalizeTransactionParams)(transactionMeta.txParams);
1945
1943
  (0, validation_1.validateTxParams)(transactionMeta.txParams);
1946
1944
  }
1947
- isReSimulateNeedDueToTxParamsUpdated =
1948
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_shouldReSimulateDueToTxParamUpdate).call(this, transactionMeta);
1949
- isReSimulateNeedDueToSecurityAlert =
1950
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_shouldReSimulateDueToSecurityAlert).call(this, transactionMeta);
1951
- isReSimulateNeedDueToThreshold =
1952
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_shouldReSimulateDueToThreshold).call(this, transactionMeta);
1945
+ updatedTransactionParams =
1946
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_checkIfTransactionParamsUpdated).call(this, transactionMeta);
1953
1947
  const shouldSkipHistory = this.isHistoryDisabled || skipHistory;
1954
1948
  if (!shouldSkipHistory) {
1955
1949
  transactionMeta = (0, history_1.updateTransactionHistory)(transactionMeta, note ?? 'Transaction updated');
@@ -1957,73 +1951,31 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
1957
1951
  state.transactions[index] = transactionMeta;
1958
1952
  });
1959
1953
  const transactionMeta = this.getTransaction(transactionId);
1960
- if (isReSimulateNeedDueToTxParamsUpdated ||
1961
- isReSimulateNeedDueToSecurityAlert ||
1962
- isReSimulateNeedDueToThreshold) {
1963
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateSimulationData).call(this, transactionMeta, {
1964
- isReSimulatedDueToSecurityAlert: isReSimulateNeedDueToSecurityAlert,
1965
- isReSimulatedDueToThreshold: isReSimulateNeedDueToThreshold,
1966
- }).catch((error) => {
1967
- (0, logger_1.projectLogger)('Error updating simulation data', error);
1968
- throw error;
1969
- });
1954
+ if (updatedTransactionParams.length > 0) {
1955
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionParamsUpdated).call(this, transactionMeta, updatedTransactionParams);
1970
1956
  }
1971
1957
  return transactionMeta;
1972
- }, _TransactionController_shouldReSimulateDueToThreshold = function _TransactionController_shouldReSimulateDueToThreshold(transactionMeta) {
1973
- const isSimulationUpdated = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isSimulationUpdated).call(this, transactionMeta);
1974
- if (!isSimulationUpdated) {
1975
- return false;
1976
- }
1977
- const { simulationData, txParams: { value }, } = transactionMeta;
1978
- const isSimulationDataAvailable = Boolean(simulationData);
1979
- const simulationNativeBalanceDifference = simulationData?.nativeBalanceChange?.difference;
1980
- const isTxValueAndSimulationNativeBalanceDefined = value !== undefined && simulationNativeBalanceDifference !== undefined;
1981
- const isTxValueVsBalanceAbovePercentageThreshold = isTxValueAndSimulationNativeBalanceDefined &&
1982
- !(0, utils_2.isPercentageDifferenceWithinThreshold)(simulationNativeBalanceDifference, value, 5);
1983
- return (isSimulationDataAvailable && isTxValueVsBalanceAbovePercentageThreshold);
1984
- }, _TransactionController_shouldReSimulateDueToSecurityAlert = function _TransactionController_shouldReSimulateDueToSecurityAlert(transactionMeta) {
1985
- const isSecurityAlertUpdated = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_isSecurityAlertUpdated).call(this, transactionMeta);
1986
- if (!isSecurityAlertUpdated) {
1987
- return false;
1988
- }
1989
- const { securityAlertResponse } = transactionMeta;
1990
- const isMaliciousTransfer = securityAlertResponse?.result_type === types_1.BLOCKAID_RESULT_TYPE_MALICIOUS;
1991
- return isMaliciousTransfer;
1992
- }, _TransactionController_isSecurityAlertUpdated = function _TransactionController_isSecurityAlertUpdated(newTransactionMeta) {
1993
- const { id: transactionId, securityAlertResponse: newSecurityAlertResponse, } = (0, lodash_1.cloneDeep)(newTransactionMeta);
1994
- const { securityAlertResponse: originalSecurityAlertResponse } = (0, lodash_1.cloneDeep)(this.getTransaction(transactionId));
1995
- return !(0, lodash_1.isEqual)(originalSecurityAlertResponse, newSecurityAlertResponse);
1996
- }, _TransactionController_isSimulationUpdated = function _TransactionController_isSimulationUpdated(newTransactionMeta) {
1997
- const { id: transactionId, simulationData: newSimulationData } = (0, lodash_1.cloneDeep)(newTransactionMeta);
1998
- const newTransactionProps = {
1999
- simulationData: newSimulationData,
2000
- simulationNativeBalanceDifference: newSimulationData?.nativeBalanceChange?.difference,
2001
- };
2002
- const { simulationData: originalSimulationData } = (0, lodash_1.cloneDeep)(this.getTransaction(transactionId));
2003
- const originalTransactionProps = {
2004
- simulationData: originalSimulationData,
2005
- simulationNativeBalanceDifference: originalSimulationData?.nativeBalanceChange?.difference,
2006
- };
2007
- // Skip the case where simulationData fetch started
2008
- const shouldSkip = !newTransactionProps.simulationData;
2009
- if (shouldSkip) {
2010
- return false;
2011
- }
2012
- return !(0, lodash_1.isEqual)(originalTransactionProps, newTransactionProps);
2013
- }, _TransactionController_shouldReSimulateDueToTxParamUpdate = function _TransactionController_shouldReSimulateDueToTxParamUpdate(newTransactionMeta) {
1958
+ }, _TransactionController_checkIfTransactionParamsUpdated = function _TransactionController_checkIfTransactionParamsUpdated(newTransactionMeta) {
2014
1959
  const { id: transactionId, txParams: newParams } = newTransactionMeta;
2015
1960
  const originalParams = this.getTransaction(transactionId)?.txParams;
2016
1961
  if (!originalParams || (0, lodash_1.isEqual)(originalParams, newParams)) {
2017
- return false;
1962
+ return [];
2018
1963
  }
2019
1964
  const params = Object.keys(newParams);
2020
1965
  const updatedProperties = params.filter((param) => newParams[param] !== originalParams[param]);
2021
1966
  (0, logger_1.projectLogger)('Transaction parameters have been updated', transactionId, updatedProperties, originalParams, newParams);
2022
- return ['to', 'value', 'data'].some((param) => updatedProperties.includes(param));
2023
- }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { traceContext, isReSimulatedDueToSecurityAlert, isReSimulatedDueToThreshold, } = {}) {
2024
- const { id: transactionId, chainId, txParams, simulationData: prevSimulationData, } = transactionMeta;
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);
1973
+ throw error;
1974
+ });
1975
+ }
1976
+ }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { traceContext } = {}) {
1977
+ const { id: transactionId, chainId, txParams } = transactionMeta;
2025
1978
  const { from, to, value, data } = txParams;
2026
- const isReSimulatedDueToSecurity = Boolean(isReSimulatedDueToSecurityAlert || isReSimulatedDueToThreshold);
2027
1979
  let simulationData = {
2028
1980
  error: {
2029
1981
  code: types_1.SimulationErrorCode.Disabled,
@@ -2041,15 +1993,7 @@ _TransactionController_internalEvents = new WeakMap(), _TransactionController_in
2041
1993
  to: to,
2042
1994
  value: value,
2043
1995
  data: data,
2044
- }, {
2045
- isReSimulatedDueToSecurity,
2046
1996
  }));
2047
- if (prevSimulationData && !(0, lodash_1.isEqual)(simulationData, prevSimulationData)) {
2048
- simulationData = {
2049
- ...simulationData,
2050
- isReSimulatedDueToSecurity,
2051
- };
2052
- }
2053
1997
  }
2054
1998
  const finalTransactionMeta = this.getTransaction(transactionId);
2055
1999
  /* istanbul ignore if */