@metamask-previews/transaction-controller 56.1.0-preview-0c874fe4 → 56.1.0-preview-4ec8b2d

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 (42) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/TransactionController.cjs +17 -55
  3. package/dist/TransactionController.cjs.map +1 -1
  4. package/dist/TransactionController.d.cts.map +1 -1
  5. package/dist/TransactionController.d.mts.map +1 -1
  6. package/dist/TransactionController.mjs +20 -58
  7. package/dist/TransactionController.mjs.map +1 -1
  8. package/dist/api/simulation-api.cjs.map +1 -1
  9. package/dist/api/simulation-api.d.cts +15 -5
  10. package/dist/api/simulation-api.d.cts.map +1 -1
  11. package/dist/api/simulation-api.d.mts +15 -5
  12. package/dist/api/simulation-api.d.mts.map +1 -1
  13. package/dist/api/simulation-api.mjs.map +1 -1
  14. package/dist/utils/{simulation.cjs → balance-changes.cjs} +96 -108
  15. package/dist/utils/balance-changes.cjs.map +1 -0
  16. package/dist/utils/balance-changes.d.cts +30 -0
  17. package/dist/utils/balance-changes.d.cts.map +1 -0
  18. package/dist/utils/balance-changes.d.mts +30 -0
  19. package/dist/utils/balance-changes.d.mts.map +1 -0
  20. package/dist/utils/{simulation.mjs → balance-changes.mjs} +100 -107
  21. package/dist/utils/balance-changes.mjs.map +1 -0
  22. package/dist/utils/gas-fee-tokens.cjs +122 -0
  23. package/dist/utils/gas-fee-tokens.cjs.map +1 -0
  24. package/dist/utils/gas-fee-tokens.d.cts +22 -0
  25. package/dist/utils/gas-fee-tokens.d.cts.map +1 -0
  26. package/dist/utils/gas-fee-tokens.d.mts +22 -0
  27. package/dist/utils/gas-fee-tokens.d.mts.map +1 -0
  28. package/dist/utils/gas-fee-tokens.mjs +118 -0
  29. package/dist/utils/gas-fee-tokens.mjs.map +1 -0
  30. package/dist/utils/transaction-type.cjs +4 -1
  31. package/dist/utils/transaction-type.cjs.map +1 -1
  32. package/dist/utils/transaction-type.d.cts.map +1 -1
  33. package/dist/utils/transaction-type.d.mts.map +1 -1
  34. package/dist/utils/transaction-type.mjs +4 -1
  35. package/dist/utils/transaction-type.mjs.map +1 -1
  36. package/package.json +1 -1
  37. package/dist/utils/simulation.cjs.map +0 -1
  38. package/dist/utils/simulation.d.cts +0 -60
  39. package/dist/utils/simulation.d.cts.map +0 -1
  40. package/dist/utils/simulation.d.mts +0 -60
  41. package/dist/utils/simulation.d.mts.map +0 -1
  42. package/dist/utils/simulation.mjs.map +0 -1
package/CHANGELOG.md CHANGED
@@ -7,6 +7,14 @@ 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
+ - Include gas limit and gas fees in simulation requests ([#5754](https://github.com/MetaMask/core/pull/5754))
13
+
14
+ ### Fixed
15
+
16
+ - Fix `addTransaction` function to correctly identify a transaction as a `simpleSend` type when the recipient is a smart account ([#5822](https://github.com/MetaMask/core/pull/5822))
17
+
10
18
  ## [56.1.0]
11
19
 
12
20
  ### Added
@@ -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_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _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_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_getSimulationData, _TransactionController_getSimulationAuthorizationList;
16
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_incomingTransactionHelper, _TransactionController_incomingTransactionOptions, _TransactionController_internalEvents, _TransactionController_isAutomaticGasFeeUpdateEnabled, _TransactionController_isEIP7702GasFeeTokensEnabled, _TransactionController_isFirstTimeInteractionEnabled, _TransactionController_isHistoryDisabled, _TransactionController_isSendFlowHistoryDisabled, _TransactionController_isSimulationEnabled, _TransactionController_isSwapsDisabled, _TransactionController_layer1GasFeeFlows, _TransactionController_methodDataHelper, _TransactionController_multichainTrackingHelper, _TransactionController_pendingTransactionOptions, _TransactionController_publicKeyEIP7702, _TransactionController_publish, _TransactionController_publishBatchHook, _TransactionController_securityProviderRequest, _TransactionController_sign, _TransactionController_signAbortCallbacks, _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_updateFirstTimeInteraction, _TransactionController_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction;
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");
@@ -45,11 +45,12 @@ const ResimulateHelper_1 = require("./helpers/ResimulateHelper.cjs");
45
45
  const ExtraTransactionsPublishHook_1 = require("./hooks/ExtraTransactionsPublishHook.cjs");
46
46
  const logger_1 = require("./logger.cjs");
47
47
  const types_1 = require("./types.cjs");
48
+ const balance_changes_1 = require("./utils/balance-changes.cjs");
48
49
  const batch_1 = require("./utils/batch.cjs");
49
50
  const eip7702_1 = require("./utils/eip7702.cjs");
50
51
  const external_transactions_1 = require("./utils/external-transactions.cjs");
51
- const feature_flags_1 = require("./utils/feature-flags.cjs");
52
52
  const gas_1 = require("./utils/gas.cjs");
53
+ const gas_fee_tokens_1 = require("./utils/gas-fee-tokens.cjs");
53
54
  const gas_fees_1 = require("./utils/gas-fees.cjs");
54
55
  const gas_flow_1 = require("./utils/gas-flow.cjs");
55
56
  const history_1 = require("./utils/history.cjs");
@@ -57,7 +58,6 @@ const layer1_gas_fee_flow_1 = require("./utils/layer1-gas-fee-flow.cjs");
57
58
  const nonce_1 = require("./utils/nonce.cjs");
58
59
  const prepare_1 = require("./utils/prepare.cjs");
59
60
  const retry_1 = require("./utils/retry.cjs");
60
- const simulation_1 = require("./utils/simulation.cjs");
61
61
  const swaps_1 = require("./utils/swaps.cjs");
62
62
  const transaction_type_1 = require("./utils/transaction-type.cjs");
63
63
  const utils_2 = require("./utils/utils.cjs");
@@ -2037,7 +2037,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2037
2037
  (0, logger_1.projectLogger)('Error fetching account address relationship, skipping first time interaction update', error);
2038
2038
  }
2039
2039
  }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
2040
- const { id: transactionId, simulationData: prevSimulationData } = transactionMeta;
2040
+ const { chainId, id: transactionId, nestedTransactions, networkClientId, simulationData: prevSimulationData, txParams, } = transactionMeta;
2041
2041
  let simulationData = {
2042
2042
  error: {
2043
2043
  code: types_1.SimulationErrorCode.Disabled,
@@ -2047,13 +2047,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2047
2047
  };
2048
2048
  let gasFeeTokens = [];
2049
2049
  if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
2050
- const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSimulationData).call(this, {
2050
+ simulationData = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
2051
2051
  blockTime,
2052
- traceContext,
2053
- transactionMeta,
2054
- });
2055
- gasFeeTokens = result?.gasFeeTokens;
2056
- simulationData = result?.simulationData;
2052
+ chainId,
2053
+ ethQuery: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
2054
+ nestedTransactions,
2055
+ txParams,
2056
+ }));
2057
2057
  if (blockTime &&
2058
2058
  prevSimulationData &&
2059
2059
  (0, ResimulateHelper_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
@@ -2062,6 +2062,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2062
2062
  isUpdatedAfterSecurityCheck: true,
2063
2063
  };
2064
2064
  }
2065
+ gasFeeTokens = await (0, gas_fee_tokens_1.getGasFeeTokens)({
2066
+ chainId,
2067
+ isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2068
+ messenger: this.messagingSystem,
2069
+ publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2070
+ transactionMeta,
2071
+ });
2065
2072
  }
2066
2073
  const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
2067
2074
  /* istanbul ignore if */
@@ -2182,50 +2189,5 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2182
2189
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
2183
2190
  this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2184
2191
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2185
- }, _TransactionController_getSimulationData = async function _TransactionController_getSimulationData({ blockTime, traceContext, transactionMeta, }) {
2186
- const { chainId, delegationAddress, txParams } = transactionMeta;
2187
- const { authorizationList: authorizationListRequest, data, from, to, value, } = txParams;
2188
- const authorizationAddress = authorizationListRequest?.[0]?.address;
2189
- const senderCode = authorizationAddress &&
2190
- (eip7702_1.DELEGATION_PREFIX + (0, utils_1.remove0x)(authorizationAddress));
2191
- const is7702GasFeeTokensEnabled = await __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f").call(this, transactionMeta);
2192
- const use7702Fees = is7702GasFeeTokensEnabled &&
2193
- (0, eip7702_1.doesChainSupportEIP7702)(chainId, this.messagingSystem);
2194
- let authorizationList = authorizationListRequest?.map((authorization) => ({
2195
- address: authorization.address,
2196
- from: from,
2197
- }));
2198
- if (use7702Fees && !delegationAddress && !authorizationList) {
2199
- authorizationList = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSimulationAuthorizationList).call(this, {
2200
- chainId,
2201
- from: from,
2202
- });
2203
- }
2204
- return await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, simulation_1.getSimulationData)({
2205
- authorizationList,
2206
- chainId,
2207
- data: data,
2208
- from: from,
2209
- to: to,
2210
- value: value,
2211
- }, {
2212
- blockTime,
2213
- senderCode,
2214
- use7702Fees,
2215
- }));
2216
- }, _TransactionController_getSimulationAuthorizationList = function _TransactionController_getSimulationAuthorizationList({ chainId, from, }) {
2217
- if (!__classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f")) {
2218
- throw rpc_errors_1.rpcErrors.internal(eip7702_1.ERROR_MESSGE_PUBLIC_KEY);
2219
- }
2220
- const upgradeAddress = (0, feature_flags_1.getEIP7702UpgradeContractAddress)(chainId, this.messagingSystem, __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"));
2221
- if (!upgradeAddress) {
2222
- throw rpc_errors_1.rpcErrors.internal(batch_1.ERROR_MESSAGE_NO_UPGRADE_CONTRACT);
2223
- }
2224
- return [
2225
- {
2226
- address: upgradeAddress,
2227
- from: from,
2228
- },
2229
- ];
2230
2192
  };
2231
2193
  //# sourceMappingURL=TransactionController.cjs.map