@metamask-previews/transaction-controller 72.0.1-preview-3556501b4 → 72.0.1-preview-5d795901a

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.
package/CHANGELOG.md CHANGED
@@ -7,8 +7,29 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Added
11
+
12
+ - Add optional `shouldSign` hook to decide whether a transaction reserves a nonce and is signed locally ([#10575](https://github.com/MetaMask/core/pull/10575))
13
+ - Defaults to signing locally when omitted.
14
+ - `beforeSign` runs before `shouldSign`, including when local signing is skipped.
15
+ - A `publish` hook is required when `shouldSign` returns `false`; the controller no longer falls back to `eth_sendRawTransaction` with an unsigned payload.
16
+ - Add `forceIsGasFeeSponsored` to `AddTransactionOptions`, `TransactionBatchRequest`, and `TransactionMeta` so transaction creators can require gas fee sponsorship from client hooks ([#10575](https://github.com/MetaMask/core/pull/10575))
17
+ - Add `isGasFeeSponsoredAvailable` to `TransactionMeta`, set from simulation and refreshed on approval when simulation is enabled ([#10575](https://github.com/MetaMask/core/pull/10575))
18
+ - Add optional `isGasFeeSponsored` to `PublishHookResult` and the `onPublish` callback of existing batch transactions ([#10575](https://github.com/MetaMask/core/pull/10575))
19
+
10
20
  ### Changed
11
21
 
22
+ - **BREAKING:** Gas fee sponsorship no longer controls signing or publication ([#10575](https://github.com/MetaMask/core/pull/10575))
23
+ - `TransactionMeta.isGasFeeSponsored` is now set once when the transaction is published, from the `isGasFeeSponsored` value returned by the publish hook. Simulation no longer sets it.
24
+ - Replace `isGasFeeSponsored` in `addTransaction` and `addTransactionBatch` options with `forceIsGasFeeSponsored`, and decide sponsorship in client hooks.
25
+ - Nonce reservation now happens after `beforeSign` and the gas fee token check, and only when signing locally. Existing nonces are kept when local signing is skipped.
26
+ - **BREAKING:** `hooks` is now optional in `TransactionControllerOptions` and `hooks.publish` uses the `PublishHook` type ([#10575](https://github.com/MetaMask/core/pull/10575))
27
+
28
+ ### Removed
29
+
30
+ - **BREAKING:** Remove `isExternalSign` from `TransactionMeta` ([#10575](https://github.com/MetaMask/core/pull/10575))
31
+ - Use the `shouldSign` hook to skip local signing.
32
+
12
33
  - Bump `ethereum-cryptography` from `^2.1.2` to `^2.2.1` ([#10485](https://github.com/MetaMask/core/pull/10485))
13
34
  - Bump `lodash-es` from `^4.17.21` to `^4.18.1` ([#10447](https://github.com/MetaMask/core/pull/10447))
14
35
  - Bump `@ethersproject/wallet` from `^5.7.0` to `^5.8.0` ([#10484](https://github.com/MetaMask/core/pull/10484))
@@ -12,7 +12,7 @@ import type { NonceLock } from '@metamask/nonce-tracker';
12
12
  import type { RemoteFeatureFlagControllerGetStateAction } from '@metamask/remote-feature-flag-controller';
13
13
  import type { Hex } from '@metamask/utils';
14
14
  import type { TransactionControllerMethodActions } from './TransactionController-method-action-types.js';
15
- import type { SavedGasFees, SendFlowHistoryEntry, TransactionParams, TransactionMeta, TransactionReceipt, SecurityAlertResponse, GasFeeFlowResponse, GasPriceValue, FeeMarketEIP1559Values, SubmitHistoryEntry, TransactionBatchRequest, TransactionBatchResult, BatchTransactionParams, UpdateCustodialTransactionRequest, PublishBatchHook, GasFeeToken, IsAtomicBatchSupportedResult, IsAtomicBatchSupportedRequest, AfterAddHook, TransactionBatchMeta, BeforeSignHook, GetSimulationConfig, AddTransactionOptions, GetGasFeeTokensRequest } from './types.js';
15
+ import type { SavedGasFees, SendFlowHistoryEntry, TransactionParams, TransactionMeta, TransactionReceipt, SecurityAlertResponse, GasFeeFlowResponse, GasPriceValue, FeeMarketEIP1559Values, SubmitHistoryEntry, TransactionBatchRequest, TransactionBatchResult, BatchTransactionParams, UpdateCustodialTransactionRequest, PublishHook, PublishBatchHook, GasFeeToken, IsAtomicBatchSupportedResult, IsAtomicBatchSupportedRequest, AfterAddHook, TransactionBatchMeta, ShouldSignHook, BeforeSignHook, GetSimulationConfig, AddTransactionOptions, GetGasFeeTokensRequest } from './types.js';
16
16
  import { TransactionContainerType } from './types.js';
17
17
  import type { EstimateGasBatchResult } from './utils/gas.js';
18
18
  /**
@@ -126,7 +126,7 @@ export type TransactionControllerOptions = {
126
126
  testGasFeeFlows?: boolean;
127
127
  trace?: TraceCallback;
128
128
  /** The controller hooks. */
129
- hooks: {
129
+ hooks?: {
130
130
  /** Additional logic to execute after adding a transaction. */
131
131
  afterAdd?: AfterAddHook;
132
132
  /**
@@ -140,14 +140,21 @@ export type TransactionControllerOptions = {
140
140
  */
141
141
  beforePublish?: (transactionMeta: TransactionMeta) => Promise<boolean>;
142
142
  /**
143
- * Additional logic to execute before signing a transaction.
143
+ * Preparation logic to execute before deciding whether to sign locally.
144
+ * Runs even when `shouldSign` returns false.
144
145
  */
145
146
  beforeSign?: BeforeSignHook;
146
- /** Alternate logic to publish a transaction. */
147
- publish?: (transactionMeta: TransactionMeta) => Promise<{
148
- transactionHash: string;
149
- }>;
147
+ /**
148
+ * Alternate logic to publish a transaction.
149
+ * Required when `shouldSign` returns false.
150
+ */
151
+ publish?: PublishHook;
150
152
  publishBatch?: PublishBatchHook;
153
+ /**
154
+ * Policy logic to determine whether to reserve a nonce and sign locally.
155
+ * Use `beforeSign` for transaction preparation instead.
156
+ */
157
+ shouldSign?: ShouldSignHook;
151
158
  };
152
159
  };
153
160
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"TransactionController.d.ts","sourceRoot":"","sources":["../src/TransactionController.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TransactionController.d.ts","sourceRoot":"","sources":["../src/TransactionController.ts"],"names":[],"mappings":"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"}
@@ -164,6 +164,7 @@ export class TransactionController extends BaseController {
164
164
  #afterAdd;
165
165
  #approvingTransactionIds = new Set();
166
166
  #beforeCheckPendingTransaction;
167
+ #shouldSign;
167
168
  #beforePublish;
168
169
  #beforeSign;
169
170
  #gasFeeFlows;
@@ -182,6 +183,7 @@ export class TransactionController extends BaseController {
182
183
  #multichainTrackingHelper;
183
184
  #publicKeyEIP7702;
184
185
  #publish;
186
+ #publishHookProvided;
185
187
  #publishBatchHook;
186
188
  #signAbortCallbacks = new Map();
187
189
  #skipSimulationTransactionIds = new Set();
@@ -211,6 +213,9 @@ export class TransactionController extends BaseController {
211
213
  /* istanbul ignore next */
212
214
  hooks?.beforeCheckPendingTransaction ??
213
215
  (() => Promise.resolve(true));
216
+ this.#shouldSign =
217
+ hooks?.shouldSign ??
218
+ (() => Promise.resolve({ shouldSign: true }));
214
219
  this.#beforePublish =
215
220
  hooks?.beforePublish ?? (() => Promise.resolve(true));
216
221
  this.#beforeSign =
@@ -235,6 +240,7 @@ export class TransactionController extends BaseController {
235
240
  this.#isSwapsDisabled = disableSwaps ?? false;
236
241
  this.#isTimeoutEnabled = isTimeoutEnabled ?? (() => true);
237
242
  this.#publicKeyEIP7702 = publicKeyEIP7702;
243
+ this.#publishHookProvided = hooks?.publish !== undefined;
238
244
  this.#publish =
239
245
  hooks?.publish ??
240
246
  (() => Promise.resolve({ transactionHash: undefined }));
@@ -381,7 +387,7 @@ export class TransactionController extends BaseController {
381
387
  */
382
388
  async addTransaction(txParams, options) {
383
389
  log('Adding transaction', txParams, options);
384
- const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, isGasFeeIncluded, isGasFeeSponsored, isInternal = false, isStateOnly, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
390
+ const { actionId, assetsFiatValues, batchId, deviceConfirmedOn, disableGasBuffer, gasFeeToken, excludeNativeTokenForFee, forceIsGasFeeSponsored, isGasFeeIncluded, isInternal = false, isStateOnly, nestedTransactions, networkClientId, origin, publishHook, requestId, requiredAssets, requireApproval, securityAlertResponse, skipInitialGasEstimate, swaps = {}, traceContext, type, } = options;
385
391
  // eslint-disable-next-line no-param-reassign
386
392
  txParams = normalizeTransactionParams(txParams);
387
393
  if (!this.#multichainTrackingHelper.has(networkClientId)) {
@@ -437,9 +443,10 @@ export class TransactionController extends BaseController {
437
443
  id: random(),
438
444
  isGasFeeTokenIgnoredIfBalance,
439
445
  isGasFeeIncluded,
440
- isGasFeeSponsored,
441
- ...(isGasFeeSponsored ? { isExternalSign: true } : {}),
442
446
  // To avoid the property to be set as undefined.
447
+ ...(forceIsGasFeeSponsored === undefined
448
+ ? {}
449
+ : { forceIsGasFeeSponsored }),
443
450
  ...(excludeNativeTokenForFee === undefined
444
451
  ? {}
445
452
  : { excludeNativeTokenForFee }),
@@ -1669,10 +1676,6 @@ export class TransactionController extends BaseController {
1669
1676
  }
1670
1677
  this.#approvingTransactionIds.add(transactionId);
1671
1678
  clearApprovingTransactionId = () => this.#approvingTransactionIds.delete(transactionId);
1672
- const { networkClientId } = transactionMeta;
1673
- const [nonce, releaseNonce] = await getNextNonce(transactionMeta, (address) => this.#multichainTrackingHelper.getNonceLock(address, transactionMeta.networkClientId));
1674
- clearNonceLock = releaseNonce;
1675
- // eslint-disable-next-line require-atomic-updates
1676
1679
  transactionMeta = this.#updateTransactionInternal({
1677
1680
  transactionId,
1678
1681
  }, (draftTxMeta) => {
@@ -1681,23 +1684,45 @@ export class TransactionController extends BaseController {
1681
1684
  draftTxMeta.status = TransactionStatus.approved;
1682
1685
  draftTxMeta.txParams.chainId = chainId;
1683
1686
  draftTxMeta.txParams.gasLimit = gas;
1684
- draftTxMeta.txParams.nonce = nonce;
1685
1687
  if (!type && isEIP1559Transaction(txParams)) {
1686
1688
  draftTxMeta.txParams.type = TransactionEnvelopeType.feeMarket;
1687
1689
  }
1688
1690
  });
1689
- this.#onTransactionStatusChange(transactionMeta);
1690
- const rawTx = await this.#trace({ name: 'Sign', parentContext: traceContext }, () => this.#signTransaction(transactionMeta));
1691
1691
  // eslint-disable-next-line require-atomic-updates
1692
- transactionMeta = this.#getTransactionOrThrow(transactionId);
1692
+ transactionMeta = await this.#applyBeforeSignHook(transactionMeta);
1693
+ // eslint-disable-next-line require-atomic-updates
1694
+ transactionMeta =
1695
+ await this.#prepareTransactionBeforeApproval(transactionMeta);
1696
+ const { networkClientId } = transactionMeta;
1697
+ const { shouldSign } = await this.#shouldSign({ transactionMeta });
1698
+ let rawTx;
1699
+ if (shouldSign) {
1700
+ const [nonce, releaseNonce] = await getNextNonce(transactionMeta, (address) => this.#multichainTrackingHelper.getNonceLock(address, transactionMeta.networkClientId));
1701
+ clearNonceLock = releaseNonce;
1702
+ // eslint-disable-next-line require-atomic-updates
1703
+ transactionMeta = this.#updateTransactionInternal({
1704
+ transactionId,
1705
+ }, (draftTxMeta) => {
1706
+ draftTxMeta.txParams.nonce = nonce;
1707
+ });
1708
+ }
1709
+ this.#onTransactionStatusChange(transactionMeta);
1710
+ if (shouldSign) {
1711
+ rawTx = await this.#trace({ name: 'Sign', parentContext: traceContext }, () => this.#signTransaction(transactionMeta));
1712
+ // eslint-disable-next-line require-atomic-updates
1713
+ transactionMeta = this.#getTransactionOrThrow(transactionId);
1714
+ }
1693
1715
  if (!(await this.#beforePublish(transactionMeta))) {
1694
1716
  log('Skipping publishing transaction based on hook');
1695
1717
  this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1696
1718
  return ApprovalState.SkippedViaBeforePublishHook;
1697
1719
  }
1698
- if (!rawTx && !transactionMeta.isExternalSign) {
1720
+ if (!rawTx && shouldSign) {
1699
1721
  return ApprovalState.NotApproved;
1700
1722
  }
1723
+ if (!shouldSign && !publishHookOverride && !this.#publishHookProvided) {
1724
+ throw new Error('Cannot publish a transaction when there is no local signing and no publish hook');
1725
+ }
1701
1726
  let preTxBalance;
1702
1727
  const shouldUpdatePreTxBalance = transactionMeta.type === TransactionType.swap;
1703
1728
  if (shouldUpdatePreTxBalance) {
@@ -1726,12 +1751,13 @@ export class TransactionController extends BaseController {
1726
1751
  });
1727
1752
  publishHook = extraTransactionsPublishHook.getHook();
1728
1753
  }
1729
- const { transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1754
+ const { isGasFeeSponsored, transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1730
1755
  // eslint-disable-next-line require-atomic-updates
1731
1756
  transactionMeta = this.#updateTransactionInternal({
1732
1757
  transactionId,
1733
1758
  }, (draftTxMeta) => {
1734
1759
  draftTxMeta.hash = hash;
1760
+ draftTxMeta.isGasFeeSponsored = Boolean(isGasFeeSponsored);
1735
1761
  draftTxMeta.status = TransactionStatus.submitted;
1736
1762
  draftTxMeta.submittedTime ??= new Date().getTime();
1737
1763
  if (shouldUpdatePreTxBalance) {
@@ -2040,8 +2066,7 @@ export class TransactionController extends BaseController {
2040
2066
  async #getEIP1559Compatibility(networkClientId) {
2041
2067
  return ((await this.messenger.call('NetworkController:getEIP1559Compatibility', networkClientId)) ?? false);
2042
2068
  }
2043
- async #signTransaction(originalTransactionMeta) {
2044
- let transactionMeta = originalTransactionMeta;
2069
+ async #applyBeforeSignHook(transactionMeta) {
2045
2070
  const { id: transactionId } = transactionMeta;
2046
2071
  log('Calling before sign hook', transactionMeta);
2047
2072
  const { updateTransaction } = (await this.#beforeSign({ transactionMeta })) ?? {};
@@ -2049,21 +2074,39 @@ export class TransactionController extends BaseController {
2049
2074
  this.#updateTransactionInternal({ transactionId, skipResimulateCheck: true }, updateTransaction);
2050
2075
  log('Updated transaction after before sign hook');
2051
2076
  }
2052
- transactionMeta = this.#getTransactionOrThrow(transactionId);
2053
- const { networkClientId } = transactionMeta;
2077
+ return this.#getTransactionOrThrow(transactionId);
2078
+ }
2079
+ async #prepareTransactionBeforeApproval(transactionMeta) {
2080
+ const { id: transactionId, networkClientId } = transactionMeta;
2081
+ let preparedTransactionMeta = transactionMeta;
2082
+ let gasFeeTokens = transactionMeta.gasFeeTokens ?? [];
2083
+ const shouldRefreshGasFeeTokens = this.#isSimulationEnabled(transactionMeta) ||
2084
+ (Boolean(transactionMeta.selectedGasFeeToken) &&
2085
+ (transactionMeta.isGasFeeTokenIgnoredIfBalance === true ||
2086
+ transactionMeta.excludeNativeTokenForFee === true));
2087
+ if (shouldRefreshGasFeeTokens) {
2088
+ this.#simulationRequestTokens.delete(transactionId);
2089
+ const gasFeeTokensResult = await this.#getGasFeeTokens(transactionMeta);
2090
+ gasFeeTokens = gasFeeTokensResult.gasFeeTokens;
2091
+ preparedTransactionMeta = this.#updateTransactionInternal({ transactionId }, (draftTxMeta) => {
2092
+ draftTxMeta.gasFeeTokens = gasFeeTokens;
2093
+ draftTxMeta.isGasFeeSponsoredAvailable =
2094
+ gasFeeTokensResult.isGasFeeSponsoredAvailable;
2095
+ });
2096
+ }
2054
2097
  await checkGasFeeTokenBeforePublish({
2055
2098
  messenger: this.messenger,
2056
2099
  networkClientId,
2057
- fetchGasFeeTokens: async (tx) => (await this.#getGasFeeTokens(tx)).gasFeeTokens,
2058
- transaction: transactionMeta,
2100
+ fetchGasFeeTokens: async () => gasFeeTokens,
2101
+ transaction: preparedTransactionMeta,
2059
2102
  updateTransaction: (txId, fn) => this.#updateTransactionInternal({ transactionId: txId }, fn),
2060
2103
  });
2061
- transactionMeta = this.#getTransactionOrThrow(transactionId);
2062
- const { chainId, isExternalSign, txParams } = transactionMeta;
2063
- if (isExternalSign) {
2064
- log('Skipping sign as signed externally');
2065
- return undefined;
2066
- }
2104
+ return this.#getTransactionOrThrow(transactionId);
2105
+ }
2106
+ async #signTransaction(originalTransactionMeta) {
2107
+ let transactionMeta = originalTransactionMeta;
2108
+ const { id: transactionId } = transactionMeta;
2109
+ const { chainId, txParams } = transactionMeta;
2067
2110
  const { authorizationList, from } = txParams;
2068
2111
  const signedAuthorizationList = await signAuthorizationList({
2069
2112
  authorizationList,
@@ -2286,7 +2329,7 @@ export class TransactionController extends BaseController {
2286
2329
  };
2287
2330
  let gasUsed;
2288
2331
  let gasFeeTokens = [];
2289
- let isGasFeeSponsored = false;
2332
+ let isGasFeeSponsoredAvailable;
2290
2333
  let simulationRevert;
2291
2334
  const simulationRequestToken = Symbol(transactionId);
2292
2335
  this.#simulationRequestTokens.set(transactionId, simulationRequestToken);
@@ -2321,9 +2364,8 @@ export class TransactionController extends BaseController {
2321
2364
  }
2322
2365
  }
2323
2366
  if (isSimulationEnabled) {
2324
- const gasFeeTokensResponse = await this.#getGasFeeTokens(transactionMeta);
2325
- gasFeeTokens = gasFeeTokensResponse?.gasFeeTokens ?? [];
2326
- isGasFeeSponsored = gasFeeTokensResponse?.isGasFeeSponsored ?? false;
2367
+ ({ gasFeeTokens, isGasFeeSponsoredAvailable } =
2368
+ await this.#getGasFeeTokens(transactionMeta));
2327
2369
  }
2328
2370
  if (this.#simulationRequestTokens.get(transactionId) !==
2329
2371
  simulationRequestToken) {
@@ -2341,10 +2383,8 @@ export class TransactionController extends BaseController {
2341
2383
  skipResimulateCheck: Boolean(blockTime),
2342
2384
  }, (txMeta) => {
2343
2385
  txMeta.gasFeeTokens = gasFeeTokens;
2344
- txMeta.isGasFeeSponsored =
2345
- txMeta.isGasFeeSponsored ?? isGasFeeSponsored;
2346
- if (txMeta.isGasFeeSponsored) {
2347
- txMeta.isExternalSign = true;
2386
+ if (isGasFeeSponsoredAvailable !== undefined) {
2387
+ txMeta.isGasFeeSponsoredAvailable = isGasFeeSponsoredAvailable;
2348
2388
  }
2349
2389
  if (!this.#isBalanceChangesSkipped(txMeta)) {
2350
2390
  txMeta.gasUsed = gasUsed;
@@ -2509,19 +2549,22 @@ export class TransactionController extends BaseController {
2509
2549
  this.#internalEvents.emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2510
2550
  }
2511
2551
  async #defaultPublishHook({ networkClientId, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
2552
+ let isGasFeeSponsored;
2512
2553
  let transactionHash;
2513
2554
  await this.#trace({ name: 'Publish', parentContext: traceContext }, async () => {
2514
2555
  const publishHook = publishHookOverride ?? this.#publish;
2515
- ({ transactionHash } = await publishHook(transactionMeta, signedTx));
2516
- // eslint-disable-next-line require-atomic-updates
2517
- transactionHash ??= await this.#publishTransaction({
2518
- ...transactionMeta,
2519
- networkClientId,
2520
- rawTx: signedTx,
2521
- });
2556
+ ({ isGasFeeSponsored, transactionHash } = await publishHook(transactionMeta, signedTx));
2557
+ if (signedTx !== '0x') {
2558
+ // eslint-disable-next-line require-atomic-updates
2559
+ transactionHash ??= await this.#publishTransaction({
2560
+ ...transactionMeta,
2561
+ networkClientId,
2562
+ rawTx: signedTx,
2563
+ });
2564
+ }
2522
2565
  });
2523
2566
  log('Publish successful', transactionHash);
2524
- return { transactionHash };
2567
+ return { isGasFeeSponsored, transactionHash };
2525
2568
  }
2526
2569
  async #getGasFeeTokens(transaction) {
2527
2570
  const { chainId } = transaction;
@@ -2550,7 +2593,6 @@ export class TransactionController extends BaseController {
2550
2593
  const transaction = {
2551
2594
  chainId,
2552
2595
  delegationAddress,
2553
- isExternalSign: true,
2554
2596
  txParams: {
2555
2597
  data,
2556
2598
  from,
@@ -2558,8 +2600,7 @@ export class TransactionController extends BaseController {
2558
2600
  value,
2559
2601
  },
2560
2602
  };
2561
- const result = await this.#getGasFeeTokens(transaction);
2562
- return result.gasFeeTokens;
2603
+ return (await this.#getGasFeeTokens(transaction)).gasFeeTokens;
2563
2604
  }
2564
2605
  }
2565
2606
  //# sourceMappingURL=TransactionController.js.map