@metamask-previews/transaction-controller 56.3.0-preview-e9f8bc88 → 57.0.0-preview-39fa8d37

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 +13 -1
  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 +22 -5
  10. package/dist/api/simulation-api.d.cts.map +1 -1
  11. package/dist/api/simulation-api.d.mts +22 -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/types.cjs.map +1 -1
  15. package/dist/types.d.cts +2 -0
  16. package/dist/types.d.cts.map +1 -1
  17. package/dist/types.d.mts +2 -0
  18. package/dist/types.d.mts.map +1 -1
  19. package/dist/types.mjs.map +1 -1
  20. package/dist/utils/{simulation.cjs → balance-changes.cjs} +103 -112
  21. package/dist/utils/balance-changes.cjs.map +1 -0
  22. package/dist/utils/balance-changes.d.cts +30 -0
  23. package/dist/utils/balance-changes.d.cts.map +1 -0
  24. package/dist/utils/balance-changes.d.mts +30 -0
  25. package/dist/utils/balance-changes.d.mts.map +1 -0
  26. package/dist/utils/{simulation.mjs → balance-changes.mjs} +107 -111
  27. package/dist/utils/balance-changes.mjs.map +1 -0
  28. package/dist/utils/gas-fee-tokens.cjs +123 -0
  29. package/dist/utils/gas-fee-tokens.cjs.map +1 -0
  30. package/dist/utils/gas-fee-tokens.d.cts +22 -0
  31. package/dist/utils/gas-fee-tokens.d.cts.map +1 -0
  32. package/dist/utils/gas-fee-tokens.d.mts +22 -0
  33. package/dist/utils/gas-fee-tokens.d.mts.map +1 -0
  34. package/dist/utils/gas-fee-tokens.mjs +119 -0
  35. package/dist/utils/gas-fee-tokens.mjs.map +1 -0
  36. package/package.json +3 -3
  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,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [57.0.0]
11
+
12
+ ### Changed
13
+
14
+ - **BREAKING:** bump `@metamask/accounts-controller` peer dependency to `^30.0.0` ([#5888](https://github.com/MetaMask/core/pull/5888))
15
+
10
16
  ## [56.3.0]
11
17
 
12
18
  ### Added
@@ -18,6 +24,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
18
24
  - Add `transactionBatches` array to state.
19
25
  - Add `TransactionBatchMeta` type.
20
26
 
27
+ ### Changed
28
+
29
+ - Include gas limit and gas fees in simulation requests ([#5754](https://github.com/MetaMask/core/pull/5754))
30
+ - Add optional `fee` property to `GasFeeToken`.
31
+
21
32
  ### Fixed
22
33
 
23
34
  - Support leading zeroes in `authorizationList` properties ([#5830](https://github.com/MetaMask/core/pull/5830))
@@ -1628,7 +1639,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1628
1639
 
1629
1640
  All changes listed after this point were applied to this package following the monorepo conversion.
1630
1641
 
1631
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.3.0...HEAD
1642
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@57.0.0...HEAD
1643
+ [57.0.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.3.0...@metamask/transaction-controller@57.0.0
1632
1644
  [56.3.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.2.0...@metamask/transaction-controller@56.3.0
1633
1645
  [56.2.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.1.0...@metamask/transaction-controller@56.2.0
1634
1646
  [56.1.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@56.0.0...@metamask/transaction-controller@56.1.0
@@ -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");
@@ -2051,7 +2051,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2051
2051
  (0, logger_1.projectLogger)('Error fetching account address relationship, skipping first time interaction update', error);
2052
2052
  }
2053
2053
  }, _TransactionController_updateSimulationData = async function _TransactionController_updateSimulationData(transactionMeta, { blockTime, traceContext, } = {}) {
2054
- const { id: transactionId, simulationData: prevSimulationData } = transactionMeta;
2054
+ const { chainId, id: transactionId, nestedTransactions, networkClientId, simulationData: prevSimulationData, txParams, } = transactionMeta;
2055
2055
  let simulationData = {
2056
2056
  error: {
2057
2057
  code: types_1.SimulationErrorCode.Disabled,
@@ -2061,13 +2061,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2061
2061
  };
2062
2062
  let gasFeeTokens = [];
2063
2063
  if (__classPrivateFieldGet(this, _TransactionController_isSimulationEnabled, "f").call(this)) {
2064
- const result = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSimulationData).call(this, {
2064
+ simulationData = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, balance_changes_1.getBalanceChanges)({
2065
2065
  blockTime,
2066
- traceContext,
2067
- transactionMeta,
2068
- });
2069
- gasFeeTokens = result?.gasFeeTokens;
2070
- simulationData = result?.simulationData;
2066
+ chainId,
2067
+ ethQuery: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
2068
+ nestedTransactions,
2069
+ txParams,
2070
+ }));
2071
2071
  if (blockTime &&
2072
2072
  prevSimulationData &&
2073
2073
  (0, ResimulateHelper_1.hasSimulationDataChanged)(prevSimulationData, simulationData)) {
@@ -2076,6 +2076,13 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2076
2076
  isUpdatedAfterSecurityCheck: true,
2077
2077
  };
2078
2078
  }
2079
+ gasFeeTokens = await (0, gas_fee_tokens_1.getGasFeeTokens)({
2080
+ chainId,
2081
+ isEIP7702GasFeeTokensEnabled: __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f"),
2082
+ messenger: this.messagingSystem,
2083
+ publicKeyEIP7702: __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"),
2084
+ transactionMeta,
2085
+ });
2079
2086
  }
2080
2087
  const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransaction).call(this, transactionId);
2081
2088
  /* istanbul ignore if */
@@ -2196,50 +2203,5 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2196
2203
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, newTransactionMeta);
2197
2204
  this.messagingSystem.publish(`${controllerName}:transactionFinished`, newTransactionMeta);
2198
2205
  __classPrivateFieldGet(this, _TransactionController_internalEvents, "f").emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2199
- }, _TransactionController_getSimulationData = async function _TransactionController_getSimulationData({ blockTime, traceContext, transactionMeta, }) {
2200
- const { chainId, delegationAddress, txParams } = transactionMeta;
2201
- const { authorizationList: authorizationListRequest, data, from, to, value, } = txParams;
2202
- const authorizationAddress = authorizationListRequest?.[0]?.address;
2203
- const senderCode = authorizationAddress &&
2204
- (eip7702_1.DELEGATION_PREFIX + (0, utils_1.remove0x)(authorizationAddress));
2205
- const is7702GasFeeTokensEnabled = await __classPrivateFieldGet(this, _TransactionController_isEIP7702GasFeeTokensEnabled, "f").call(this, transactionMeta);
2206
- const use7702Fees = is7702GasFeeTokensEnabled &&
2207
- (0, eip7702_1.doesChainSupportEIP7702)(chainId, this.messagingSystem);
2208
- let authorizationList = authorizationListRequest?.map((authorization) => ({
2209
- address: authorization.address,
2210
- from: from,
2211
- }));
2212
- if (use7702Fees && !delegationAddress && !authorizationList) {
2213
- authorizationList = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getSimulationAuthorizationList).call(this, {
2214
- chainId,
2215
- from: from,
2216
- });
2217
- }
2218
- return await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Simulate', parentContext: traceContext }, () => (0, simulation_1.getSimulationData)({
2219
- authorizationList,
2220
- chainId,
2221
- data: data,
2222
- from: from,
2223
- to: to,
2224
- value: value,
2225
- }, {
2226
- blockTime,
2227
- senderCode,
2228
- use7702Fees,
2229
- }));
2230
- }, _TransactionController_getSimulationAuthorizationList = function _TransactionController_getSimulationAuthorizationList({ chainId, from, }) {
2231
- if (!__classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f")) {
2232
- throw rpc_errors_1.rpcErrors.internal(eip7702_1.ERROR_MESSGE_PUBLIC_KEY);
2233
- }
2234
- const upgradeAddress = (0, feature_flags_1.getEIP7702UpgradeContractAddress)(chainId, this.messagingSystem, __classPrivateFieldGet(this, _TransactionController_publicKeyEIP7702, "f"));
2235
- if (!upgradeAddress) {
2236
- throw rpc_errors_1.rpcErrors.internal(batch_1.ERROR_MESSAGE_NO_UPGRADE_CONTRACT);
2237
- }
2238
- return [
2239
- {
2240
- address: upgradeAddress,
2241
- from: from,
2242
- },
2243
- ];
2244
2206
  };
2245
2207
  //# sourceMappingURL=TransactionController.cjs.map