@metamask-previews/transaction-controller 72.2.1-preview-c5fdaa9c8 → 72.2.1-preview-625bad5

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,6 +7,31 @@ 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
+ - A failed gas fee token simulation leaves the previous value unchanged.
19
+ - Add optional `isGasFeeSponsored` to `PublishHookResult` and the `onPublish` callback of existing batch transactions ([#10575](https://github.com/MetaMask/core/pull/10575))
20
+
21
+ ### Changed
22
+
23
+ - **BREAKING:** Gas fee sponsorship no longer controls signing or publication ([#10575](https://github.com/MetaMask/core/pull/10575))
24
+ - `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.
25
+ - Replace `isGasFeeSponsored` in `addTransaction` and `addTransactionBatch` options with `forceIsGasFeeSponsored`, and decide sponsorship in client hooks.
26
+ - 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.
27
+ - **BREAKING:** `hooks` is now optional in `TransactionControllerOptions` and `hooks.publish` uses the `PublishHook` type ([#10575](https://github.com/MetaMask/core/pull/10575))
28
+ - `getGasFeeTokens` now sets `isGasFeeTokenIgnoredIfBalance` on the transaction passed to `isEIP7702GasFeeTokensEnabled`, so clients can include EIP-7702 gas fee tokens for gas fee token estimates ([#10575](https://github.com/MetaMask/core/pull/10575))
29
+
30
+ ### Removed
31
+
32
+ - **BREAKING:** Remove `isExternalSign` from `TransactionMeta` ([#10575](https://github.com/MetaMask/core/pull/10575))
33
+ - Use the `shouldSign` hook to skip local signing.
34
+
10
35
  ## [72.2.1]
11
36
 
12
37
  ### Changed
@@ -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
  /**
@@ -128,7 +128,7 @@ export type TransactionControllerOptions = {
128
128
  testGasFeeFlows?: boolean;
129
129
  trace?: TraceCallback;
130
130
  /** The controller hooks. */
131
- hooks: {
131
+ hooks?: {
132
132
  /** Additional logic to execute after adding a transaction. */
133
133
  afterAdd?: AfterAddHook;
134
134
  /**
@@ -142,14 +142,21 @@ export type TransactionControllerOptions = {
142
142
  */
143
143
  beforePublish?: (transactionMeta: TransactionMeta) => Promise<boolean>;
144
144
  /**
145
- * Additional logic to execute before signing a transaction.
145
+ * Preparation logic to execute before deciding whether to sign locally.
146
+ * Runs even when `shouldSign` returns false.
146
147
  */
147
148
  beforeSign?: BeforeSignHook;
148
- /** Alternate logic to publish a transaction. */
149
- publish?: (transactionMeta: TransactionMeta) => Promise<{
150
- transactionHash: string;
151
- }>;
149
+ /**
150
+ * Alternate logic to publish a transaction.
151
+ * Required when `shouldSign` returns false.
152
+ */
153
+ publish?: PublishHook;
152
154
  publishBatch?: PublishBatchHook;
155
+ /**
156
+ * Policy logic to determine whether to reserve a nonce and sign locally.
157
+ * Use `beforeSign` for transaction preparation instead.
158
+ */
159
+ shouldSign?: ShouldSignHook;
153
160
  };
154
161
  };
155
162
  /**
@@ -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;
@@ -183,6 +184,7 @@ export class TransactionController extends BaseController {
183
184
  #multichainTrackingHelper;
184
185
  #publicKeyEIP7702;
185
186
  #publish;
187
+ #publishHookProvided;
186
188
  #publishBatchHook;
187
189
  #signAbortCallbacks = new Map();
188
190
  #skipSimulationTransactionIds = new Set();
@@ -212,6 +214,9 @@ export class TransactionController extends BaseController {
212
214
  /* istanbul ignore next */
213
215
  hooks?.beforeCheckPendingTransaction ??
214
216
  (() => Promise.resolve(true));
217
+ this.#shouldSign =
218
+ hooks?.shouldSign ??
219
+ (() => Promise.resolve({ shouldSign: true }));
215
220
  this.#beforePublish =
216
221
  hooks?.beforePublish ?? (() => Promise.resolve(true));
217
222
  this.#beforeSign =
@@ -237,6 +242,7 @@ export class TransactionController extends BaseController {
237
242
  this.#isSwapsDisabled = disableSwaps ?? false;
238
243
  this.#isTimeoutEnabled = isTimeoutEnabled ?? (() => true);
239
244
  this.#publicKeyEIP7702 = publicKeyEIP7702;
245
+ this.#publishHookProvided = hooks?.publish !== undefined;
240
246
  this.#publish =
241
247
  hooks?.publish ??
242
248
  (() => Promise.resolve({ transactionHash: undefined }));
@@ -383,7 +389,7 @@ export class TransactionController extends BaseController {
383
389
  */
384
390
  async addTransaction(txParams, options) {
385
391
  log('Adding transaction', txParams, options);
386
- 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;
392
+ 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;
387
393
  // eslint-disable-next-line no-param-reassign
388
394
  txParams = normalizeTransactionParams(txParams);
389
395
  if (!this.#multichainTrackingHelper.has(networkClientId)) {
@@ -439,9 +445,10 @@ export class TransactionController extends BaseController {
439
445
  id: random(),
440
446
  isGasFeeTokenIgnoredIfBalance,
441
447
  isGasFeeIncluded,
442
- isGasFeeSponsored,
443
- ...(isGasFeeSponsored ? { isExternalSign: true } : {}),
444
448
  // To avoid the property to be set as undefined.
449
+ ...(forceIsGasFeeSponsored === undefined
450
+ ? {}
451
+ : { forceIsGasFeeSponsored }),
445
452
  ...(excludeNativeTokenForFee === undefined
446
453
  ? {}
447
454
  : { excludeNativeTokenForFee }),
@@ -1671,10 +1678,6 @@ export class TransactionController extends BaseController {
1671
1678
  }
1672
1679
  this.#approvingTransactionIds.add(transactionId);
1673
1680
  clearApprovingTransactionId = () => this.#approvingTransactionIds.delete(transactionId);
1674
- const { networkClientId } = transactionMeta;
1675
- const [nonce, releaseNonce] = await getNextNonce(transactionMeta, (address) => this.#multichainTrackingHelper.getNonceLock(address, transactionMeta.networkClientId));
1676
- clearNonceLock = releaseNonce;
1677
- // eslint-disable-next-line require-atomic-updates
1678
1681
  transactionMeta = this.#updateTransactionInternal({
1679
1682
  transactionId,
1680
1683
  }, (draftTxMeta) => {
@@ -1683,23 +1686,45 @@ export class TransactionController extends BaseController {
1683
1686
  draftTxMeta.status = TransactionStatus.approved;
1684
1687
  draftTxMeta.txParams.chainId = chainId;
1685
1688
  draftTxMeta.txParams.gasLimit = gas;
1686
- draftTxMeta.txParams.nonce = nonce;
1687
1689
  if (!type && isEIP1559Transaction(txParams)) {
1688
1690
  draftTxMeta.txParams.type = TransactionEnvelopeType.feeMarket;
1689
1691
  }
1690
1692
  });
1691
- this.#onTransactionStatusChange(transactionMeta);
1692
- const rawTx = await this.#trace({ name: 'Sign', parentContext: traceContext }, () => this.#signTransaction(transactionMeta));
1693
1693
  // eslint-disable-next-line require-atomic-updates
1694
- transactionMeta = this.#getTransactionOrThrow(transactionId);
1694
+ transactionMeta = await this.#applyBeforeSignHook(transactionMeta);
1695
+ // eslint-disable-next-line require-atomic-updates
1696
+ transactionMeta =
1697
+ await this.#prepareTransactionBeforeApproval(transactionMeta);
1698
+ const { networkClientId } = transactionMeta;
1699
+ const { shouldSign } = await this.#shouldSign({ transactionMeta });
1700
+ let rawTx;
1701
+ if (shouldSign) {
1702
+ const [nonce, releaseNonce] = await getNextNonce(transactionMeta, (address) => this.#multichainTrackingHelper.getNonceLock(address, transactionMeta.networkClientId));
1703
+ clearNonceLock = releaseNonce;
1704
+ // eslint-disable-next-line require-atomic-updates
1705
+ transactionMeta = this.#updateTransactionInternal({
1706
+ transactionId,
1707
+ }, (draftTxMeta) => {
1708
+ draftTxMeta.txParams.nonce = nonce;
1709
+ });
1710
+ }
1711
+ this.#onTransactionStatusChange(transactionMeta);
1712
+ if (shouldSign) {
1713
+ rawTx = await this.#trace({ name: 'Sign', parentContext: traceContext }, () => this.#signTransaction(transactionMeta));
1714
+ // eslint-disable-next-line require-atomic-updates
1715
+ transactionMeta = this.#getTransactionOrThrow(transactionId);
1716
+ }
1695
1717
  if (!(await this.#beforePublish(transactionMeta))) {
1696
1718
  log('Skipping publishing transaction based on hook');
1697
1719
  this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
1698
1720
  return ApprovalState.SkippedViaBeforePublishHook;
1699
1721
  }
1700
- if (!rawTx && !transactionMeta.isExternalSign) {
1722
+ if (!rawTx && shouldSign) {
1701
1723
  return ApprovalState.NotApproved;
1702
1724
  }
1725
+ if (!shouldSign && !publishHookOverride && !this.#publishHookProvided) {
1726
+ throw new Error('Cannot publish a transaction when there is no local signing and no publish hook');
1727
+ }
1703
1728
  let preTxBalance;
1704
1729
  const shouldUpdatePreTxBalance = transactionMeta.type === TransactionType.swap;
1705
1730
  if (shouldUpdatePreTxBalance) {
@@ -1728,12 +1753,13 @@ export class TransactionController extends BaseController {
1728
1753
  });
1729
1754
  publishHook = extraTransactionsPublishHook.getHook();
1730
1755
  }
1731
- const { transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1756
+ const { isGasFeeSponsored, transactionHash: hash } = await publishHook(transactionMeta, rawTx ?? '0x');
1732
1757
  // eslint-disable-next-line require-atomic-updates
1733
1758
  transactionMeta = this.#updateTransactionInternal({
1734
1759
  transactionId,
1735
1760
  }, (draftTxMeta) => {
1736
1761
  draftTxMeta.hash = hash;
1762
+ draftTxMeta.isGasFeeSponsored = Boolean(isGasFeeSponsored);
1737
1763
  draftTxMeta.status = TransactionStatus.submitted;
1738
1764
  draftTxMeta.submittedTime ??= new Date().getTime();
1739
1765
  if (shouldUpdatePreTxBalance) {
@@ -2042,8 +2068,7 @@ export class TransactionController extends BaseController {
2042
2068
  async #getEIP1559Compatibility(networkClientId) {
2043
2069
  return ((await this.messenger.call('NetworkController:getEIP1559Compatibility', networkClientId)) ?? false);
2044
2070
  }
2045
- async #signTransaction(originalTransactionMeta) {
2046
- let transactionMeta = originalTransactionMeta;
2071
+ async #applyBeforeSignHook(transactionMeta) {
2047
2072
  const { id: transactionId } = transactionMeta;
2048
2073
  log('Calling before sign hook', transactionMeta);
2049
2074
  const { updateTransaction } = (await this.#beforeSign({ transactionMeta })) ?? {};
@@ -2051,21 +2076,42 @@ export class TransactionController extends BaseController {
2051
2076
  this.#updateTransactionInternal({ transactionId, skipResimulateCheck: true }, updateTransaction);
2052
2077
  log('Updated transaction after before sign hook');
2053
2078
  }
2054
- transactionMeta = this.#getTransactionOrThrow(transactionId);
2055
- const { networkClientId } = transactionMeta;
2079
+ return this.#getTransactionOrThrow(transactionId);
2080
+ }
2081
+ async #prepareTransactionBeforeApproval(transactionMeta) {
2082
+ const { id: transactionId, networkClientId } = transactionMeta;
2083
+ let preparedTransactionMeta = transactionMeta;
2084
+ let gasFeeTokens = transactionMeta.gasFeeTokens ?? [];
2085
+ const shouldRefreshGasFeeTokens = this.#isSimulationEnabled(transactionMeta) ||
2086
+ (Boolean(transactionMeta.selectedGasFeeToken) &&
2087
+ (transactionMeta.isGasFeeTokenIgnoredIfBalance === true ||
2088
+ transactionMeta.excludeNativeTokenForFee === true));
2089
+ if (shouldRefreshGasFeeTokens) {
2090
+ this.#simulationRequestTokens.delete(transactionId);
2091
+ const { gasFeeTokens: refreshedGasFeeTokens, isGasFeeSponsoredAvailable, } = await this.#getGasFeeTokens(transactionMeta);
2092
+ gasFeeTokens = refreshedGasFeeTokens;
2093
+ // A failed refresh keeps the stored gas fee tokens and sponsorship
2094
+ // availability. A selected gas fee token still fails the check below.
2095
+ if (isGasFeeSponsoredAvailable !== undefined) {
2096
+ preparedTransactionMeta = this.#updateTransactionInternal({ transactionId }, (draftTxMeta) => {
2097
+ draftTxMeta.gasFeeTokens = gasFeeTokens;
2098
+ draftTxMeta.isGasFeeSponsoredAvailable = isGasFeeSponsoredAvailable;
2099
+ });
2100
+ }
2101
+ }
2056
2102
  await checkGasFeeTokenBeforePublish({
2057
2103
  messenger: this.messenger,
2058
2104
  networkClientId,
2059
- fetchGasFeeTokens: async (tx) => (await this.#getGasFeeTokens(tx)).gasFeeTokens,
2060
- transaction: transactionMeta,
2105
+ fetchGasFeeTokens: async () => gasFeeTokens,
2106
+ transaction: preparedTransactionMeta,
2061
2107
  updateTransaction: (txId, fn) => this.#updateTransactionInternal({ transactionId: txId }, fn),
2062
2108
  });
2063
- transactionMeta = this.#getTransactionOrThrow(transactionId);
2064
- const { chainId, isExternalSign, txParams } = transactionMeta;
2065
- if (isExternalSign) {
2066
- log('Skipping sign as signed externally');
2067
- return undefined;
2068
- }
2109
+ return this.#getTransactionOrThrow(transactionId);
2110
+ }
2111
+ async #signTransaction(originalTransactionMeta) {
2112
+ let transactionMeta = originalTransactionMeta;
2113
+ const { id: transactionId } = transactionMeta;
2114
+ const { chainId, txParams } = transactionMeta;
2069
2115
  const { authorizationList, from } = txParams;
2070
2116
  const signedAuthorizationList = await signAuthorizationList({
2071
2117
  authorizationList,
@@ -2291,7 +2337,7 @@ export class TransactionController extends BaseController {
2291
2337
  };
2292
2338
  let gasUsed;
2293
2339
  let gasFeeTokens = [];
2294
- let isGasFeeSponsored = false;
2340
+ let isGasFeeSponsoredAvailable;
2295
2341
  let simulationRevert;
2296
2342
  const simulationRequestToken = Symbol(transactionId);
2297
2343
  this.#simulationRequestTokens.set(transactionId, simulationRequestToken);
@@ -2326,9 +2372,8 @@ export class TransactionController extends BaseController {
2326
2372
  }
2327
2373
  }
2328
2374
  if (isSimulationEnabled) {
2329
- const gasFeeTokensResponse = await this.#getGasFeeTokens(transactionMeta);
2330
- gasFeeTokens = gasFeeTokensResponse?.gasFeeTokens ?? [];
2331
- isGasFeeSponsored = gasFeeTokensResponse?.isGasFeeSponsored ?? false;
2375
+ ({ gasFeeTokens, isGasFeeSponsoredAvailable } =
2376
+ await this.#getGasFeeTokens(transactionMeta));
2332
2377
  }
2333
2378
  if (this.#simulationRequestTokens.get(transactionId) !==
2334
2379
  simulationRequestToken) {
@@ -2346,10 +2391,8 @@ export class TransactionController extends BaseController {
2346
2391
  skipResimulateCheck: Boolean(blockTime),
2347
2392
  }, (txMeta) => {
2348
2393
  txMeta.gasFeeTokens = gasFeeTokens;
2349
- txMeta.isGasFeeSponsored =
2350
- txMeta.isGasFeeSponsored ?? isGasFeeSponsored;
2351
- if (txMeta.isGasFeeSponsored) {
2352
- txMeta.isExternalSign = true;
2394
+ if (isGasFeeSponsoredAvailable !== undefined) {
2395
+ txMeta.isGasFeeSponsoredAvailable = isGasFeeSponsoredAvailable;
2353
2396
  }
2354
2397
  if (!this.#isBalanceChangesSkipped(txMeta)) {
2355
2398
  txMeta.gasUsed = gasUsed;
@@ -2514,19 +2557,22 @@ export class TransactionController extends BaseController {
2514
2557
  this.#internalEvents.emit(`${transactionMeta.id}:finished`, newTransactionMeta);
2515
2558
  }
2516
2559
  async #defaultPublishHook({ networkClientId, publishHookOverride, traceContext, }, transactionMeta, signedTx) {
2560
+ let isGasFeeSponsored;
2517
2561
  let transactionHash;
2518
2562
  await this.#trace({ name: 'Publish', parentContext: traceContext }, async () => {
2519
2563
  const publishHook = publishHookOverride ?? this.#publish;
2520
- ({ transactionHash } = await publishHook(transactionMeta, signedTx));
2521
- // eslint-disable-next-line require-atomic-updates
2522
- transactionHash ??= await this.#publishTransaction({
2523
- ...transactionMeta,
2524
- networkClientId,
2525
- rawTx: signedTx,
2526
- });
2564
+ ({ isGasFeeSponsored, transactionHash } = await publishHook(transactionMeta, signedTx));
2565
+ if (signedTx !== '0x') {
2566
+ // eslint-disable-next-line require-atomic-updates
2567
+ transactionHash ??= await this.#publishTransaction({
2568
+ ...transactionMeta,
2569
+ networkClientId,
2570
+ rawTx: signedTx,
2571
+ });
2572
+ }
2527
2573
  });
2528
2574
  log('Publish successful', transactionHash);
2529
- return { transactionHash };
2575
+ return { isGasFeeSponsored, transactionHash };
2530
2576
  }
2531
2577
  async #getGasFeeTokens(transaction) {
2532
2578
  const { chainId } = transaction;
@@ -2552,10 +2598,12 @@ export class TransactionController extends BaseController {
2552
2598
  chainId,
2553
2599
  });
2554
2600
  const delegationAddress = await getDelegationAddress(from, this.messenger, networkClientId);
2601
+ // Gas fee token estimates always intend to pay with a token, so clients
2602
+ // can include EIP-7702 gas fee tokens.
2555
2603
  const transaction = {
2556
2604
  chainId,
2557
2605
  delegationAddress,
2558
- isExternalSign: true,
2606
+ isGasFeeTokenIgnoredIfBalance: true,
2559
2607
  txParams: {
2560
2608
  data,
2561
2609
  from,
@@ -2563,8 +2611,7 @@ export class TransactionController extends BaseController {
2563
2611
  value,
2564
2612
  },
2565
2613
  };
2566
- const result = await this.#getGasFeeTokens(transaction);
2567
- return result.gasFeeTokens;
2614
+ return (await this.#getGasFeeTokens(transaction)).gasFeeTokens;
2568
2615
  }
2569
2616
  }
2570
2617
  //# sourceMappingURL=TransactionController.js.map