@metamask/transaction-controller 60.6.1 → 60.8.0

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 (58) hide show
  1. package/CHANGELOG.md +24 -1
  2. package/dist/TransactionController.cjs +31 -15
  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 +31 -15
  7. package/dist/TransactionController.mjs.map +1 -1
  8. package/dist/api/accounts-api.cjs +2 -1
  9. package/dist/api/accounts-api.cjs.map +1 -1
  10. package/dist/api/accounts-api.d.cts.map +1 -1
  11. package/dist/api/accounts-api.d.mts.map +1 -1
  12. package/dist/api/accounts-api.mjs +2 -1
  13. package/dist/api/accounts-api.mjs.map +1 -1
  14. package/dist/constants.cjs +1 -0
  15. package/dist/constants.cjs.map +1 -1
  16. package/dist/constants.d.cts +1 -0
  17. package/dist/constants.d.cts.map +1 -1
  18. package/dist/constants.d.mts +1 -0
  19. package/dist/constants.d.mts.map +1 -1
  20. package/dist/constants.mjs +1 -0
  21. package/dist/constants.mjs.map +1 -1
  22. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs +1 -0
  23. package/dist/helpers/AccountsApiRemoteTransactionSource.cjs.map +1 -1
  24. package/dist/helpers/AccountsApiRemoteTransactionSource.d.cts.map +1 -1
  25. package/dist/helpers/AccountsApiRemoteTransactionSource.d.mts.map +1 -1
  26. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs +1 -0
  27. package/dist/helpers/AccountsApiRemoteTransactionSource.mjs.map +1 -1
  28. package/dist/hooks/ExtraTransactionsPublishHook.cjs +21 -6
  29. package/dist/hooks/ExtraTransactionsPublishHook.cjs.map +1 -1
  30. package/dist/hooks/ExtraTransactionsPublishHook.d.cts +4 -2
  31. package/dist/hooks/ExtraTransactionsPublishHook.d.cts.map +1 -1
  32. package/dist/hooks/ExtraTransactionsPublishHook.d.mts +4 -2
  33. package/dist/hooks/ExtraTransactionsPublishHook.d.mts.map +1 -1
  34. package/dist/hooks/ExtraTransactionsPublishHook.mjs +21 -6
  35. package/dist/hooks/ExtraTransactionsPublishHook.mjs.map +1 -1
  36. package/dist/types.cjs.map +1 -1
  37. package/dist/types.d.cts +5 -1
  38. package/dist/types.d.cts.map +1 -1
  39. package/dist/types.d.mts +5 -1
  40. package/dist/types.d.mts.map +1 -1
  41. package/dist/types.mjs.map +1 -1
  42. package/dist/utils/batch.cjs +89 -22
  43. package/dist/utils/batch.cjs.map +1 -1
  44. package/dist/utils/batch.d.cts +1 -0
  45. package/dist/utils/batch.d.cts.map +1 -1
  46. package/dist/utils/batch.d.mts +1 -0
  47. package/dist/utils/batch.d.mts.map +1 -1
  48. package/dist/utils/batch.mjs +89 -22
  49. package/dist/utils/batch.mjs.map +1 -1
  50. package/dist/utils/swaps.cjs +6 -0
  51. package/dist/utils/swaps.cjs.map +1 -1
  52. package/dist/utils/swaps.d.cts +1 -0
  53. package/dist/utils/swaps.d.cts.map +1 -1
  54. package/dist/utils/swaps.d.mts +1 -0
  55. package/dist/utils/swaps.d.mts.map +1 -1
  56. package/dist/utils/swaps.mjs +6 -0
  57. package/dist/utils/swaps.mjs.map +1 -1
  58. package/package.json +5 -4
package/CHANGELOG.md CHANGED
@@ -7,6 +7,27 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [60.8.0]
11
+
12
+ ### Added
13
+
14
+ - Convert existing transaction to EIP-7702 on publish if `batchTransactions` are set ([#6844](https://github.com/MetaMask/core/pull/6844))
15
+ - Add optional `newSignature` to `onPublish` callback in `TransactionBatchSingleRequest`.
16
+ - Add `MONAD` network support ([#6827](https://github.com/MetaMask/core/pull/6827))
17
+ - Add account address relationship API support
18
+ - Add incoming transactions API support
19
+
20
+ ### Changed
21
+
22
+ - Bump `@metamask/eth-block-tracker` from `^13.0.0` to `^14.0.0` ([#6883](https://github.com/MetaMask/core/pull/6883))
23
+ - Update dependencies that indirectly use v4 of `eth-json-rpc-provider` ([#6811](https://github.com/MetaMask/core/pull/6811))
24
+
25
+ ## [60.7.0]
26
+
27
+ ### Added
28
+
29
+ - Add `txMeta` property to `GetSimulationConfig` callback ([#6833](https://github.com/MetaMask/core/pull/6833))
30
+
10
31
  ## [60.6.1]
11
32
 
12
33
  ### Changed
@@ -1850,7 +1871,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1850
1871
 
1851
1872
  All changes listed after this point were applied to this package following the monorepo conversion.
1852
1873
 
1853
- [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.1...HEAD
1874
+ [Unreleased]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.8.0...HEAD
1875
+ [60.8.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.7.0...@metamask/transaction-controller@60.8.0
1876
+ [60.7.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.1...@metamask/transaction-controller@60.7.0
1854
1877
  [60.6.1]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.6.0...@metamask/transaction-controller@60.6.1
1855
1878
  [60.6.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.5.0...@metamask/transaction-controller@60.6.0
1856
1879
  [60.5.0]: https://github.com/MetaMask/core/compare/@metamask/transaction-controller@60.4.0...@metamask/transaction-controller@60.5.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_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _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_skipSimulationTransactionIds, _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_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook;
16
+ var _TransactionController_instances, _TransactionController_afterAdd, _TransactionController_afterSign, _TransactionController_afterSimulate, _TransactionController_approvingTransactionIds, _TransactionController_beforeCheckPendingTransaction, _TransactionController_beforePublish, _TransactionController_beforeSign, _TransactionController_gasFeeFlows, _TransactionController_getAdditionalSignArguments, _TransactionController_getCurrentAccountEIP1559Compatibility, _TransactionController_getCurrentNetworkEIP1559Compatibility, _TransactionController_getExternalPendingTransactions, _TransactionController_getGasFeeEstimates, _TransactionController_getNetworkState, _TransactionController_getPermittedAccounts, _TransactionController_getSavedGasFees, _TransactionController_getSimulationConfig, _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_skipSimulationTransactionIds, _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_updateSimulationData, _TransactionController_onGasFeePollerTransactionUpdate, _TransactionController_onGasFeePollerTransactionBatchUpdate, _TransactionController_updateTransactionBatch, _TransactionController_getSelectedAccount, _TransactionController_getInternalAccounts, _TransactionController_updateSubmitHistory, _TransactionController_updateGasEstimate, _TransactionController_registerActionHandlers, _TransactionController_deleteTransaction, _TransactionController_isRejectError, _TransactionController_rejectTransactionAndThrow, _TransactionController_failTransaction, _TransactionController_runAfterSimulateHook, _TransactionController_defaultPublishHook;
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");
@@ -329,6 +329,7 @@ class TransactionController extends base_controller_1.BaseController {
329
329
  const { blockTracker } = this.messagingSystem.call(`NetworkController:getNetworkClientById`, request.networkClientId);
330
330
  return await (0, batch_1.addTransactionBatch)({
331
331
  addTransaction: this.addTransaction.bind(this),
332
+ estimateGas: this.estimateGas.bind(this),
332
333
  getChainId: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getChainId).bind(this),
333
334
  getEthQuery: (networkClientId) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
334
335
  getGasFeeEstimates: __classPrivateFieldGet(this, _TransactionController_getGasFeeEstimates, "f"),
@@ -1566,27 +1567,23 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1566
1567
  ]);
1567
1568
  }
1568
1569
  (0, logger_1.projectLogger)('Publishing transaction', transactionMeta.txParams);
1569
- let hash;
1570
1570
  clearNonceLock?.();
1571
1571
  clearNonceLock = undefined;
1572
+ let publishHook = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_defaultPublishHook).bind(this, {
1573
+ ethQuery,
1574
+ publishHookOverride,
1575
+ traceContext,
1576
+ });
1572
1577
  if (transactionMeta.batchTransactions?.length) {
1573
1578
  (0, logger_1.projectLogger)('Found batch transactions', transactionMeta.batchTransactions);
1574
1579
  const extraTransactionsPublishHook = new ExtraTransactionsPublishHook_1.ExtraTransactionsPublishHook({
1575
1580
  addTransactionBatch: this.addTransactionBatch.bind(this),
1581
+ getTransaction: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).bind(this),
1582
+ originalPublishHook: publishHook,
1576
1583
  });
1577
- publishHookOverride = extraTransactionsPublishHook.getHook();
1584
+ publishHook = extraTransactionsPublishHook.getHook();
1578
1585
  }
1579
- await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
1580
- const publishHook = publishHookOverride ?? __classPrivateFieldGet(this, _TransactionController_publish, "f");
1581
- ({ transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x'));
1582
- if (hash === undefined) {
1583
- hash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
1584
- ...transactionMeta,
1585
- rawTx,
1586
- });
1587
- }
1588
- });
1589
- (0, logger_1.projectLogger)('Publish successful', hash);
1586
+ const { transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1590
1587
  transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, {
1591
1588
  transactionId,
1592
1589
  note: 'TransactionController#approveTransaction - Transaction submitted',
@@ -2087,7 +2084,12 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2087
2084
  blockTime,
2088
2085
  chainId,
2089
2086
  ethQuery: __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId }),
2090
- getSimulationConfig: __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f"),
2087
+ getSimulationConfig: (url, opts) => {
2088
+ return __classPrivateFieldGet(this, _TransactionController_getSimulationConfig, "f").call(this, url, {
2089
+ txMeta: transactionMeta,
2090
+ ...opts,
2091
+ });
2092
+ },
2091
2093
  nestedTransactions,
2092
2094
  txParams,
2093
2095
  }));
@@ -2283,5 +2285,19 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
2283
2285
  updateTransaction(txMeta);
2284
2286
  });
2285
2287
  (0, logger_1.projectLogger)('Updated transaction with afterSimulate data', updatedTransactionMeta);
2288
+ }, _TransactionController_defaultPublishHook = async function _TransactionController_defaultPublishHook({ ethQuery, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
2289
+ let transactionHash;
2290
+ await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Publish', parentContext: traceContext }, async () => {
2291
+ const publishHook = publishHookOverride ?? __classPrivateFieldGet(this, _TransactionController_publish, "f");
2292
+ ({ transactionHash } = await publishHook(transactionMeta, signedTx));
2293
+ if (transactionHash === undefined) {
2294
+ transactionHash = await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_publishTransaction).call(this, ethQuery, {
2295
+ ...transactionMeta,
2296
+ rawTx: signedTx,
2297
+ });
2298
+ }
2299
+ });
2300
+ (0, logger_1.projectLogger)('Publish successful', transactionHash);
2301
+ return { transactionHash };
2286
2302
  };
2287
2303
  //# sourceMappingURL=TransactionController.cjs.map