@metamask-previews/transaction-controller 61.3.0-preview-dabf9bd8 → 61.3.0-preview-89bb4b56

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,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ### Fixed
11
+
12
+ - Always run `beforeSign` hook even if using `gasFeeToken` and `isGasFeeTokenIgnoredIfBalance` ([#7172](https://github.com/MetaMask/core/pull/7172))
13
+
10
14
  ## [61.3.0]
11
15
 
12
16
  ### Added
@@ -1604,6 +1604,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1604
1604
  });
1605
1605
  __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_onTransactionStatusChange).call(this, transactionMeta);
1606
1606
  const rawTx = await __classPrivateFieldGet(this, _TransactionController_trace, "f").call(this, { name: 'Sign', parentContext: traceContext }, () => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_signTransaction).call(this, transactionMeta));
1607
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1607
1608
  if (!(await __classPrivateFieldGet(this, _TransactionController_beforePublish, "f").call(this, transactionMeta))) {
1608
1609
  (0, logger_1.projectLogger)('Skipping publishing transaction based on hook');
1609
1610
  this.messenger.publish(`${controllerName}:transactionPublishingSkipped`, transactionMeta);
@@ -1916,8 +1917,26 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1916
1917
  const currentNetworkIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentNetworkEIP1559Compatibility, "f").call(this, networkClientId);
1917
1918
  const currentAccountIsEIP1559Compatible = await __classPrivateFieldGet(this, _TransactionController_getCurrentAccountEIP1559Compatibility, "f").call(this);
1918
1919
  return (currentNetworkIsEIP1559Compatible && currentAccountIsEIP1559Compatible);
1919
- }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(transactionMeta) {
1920
- const { chainId, id: transactionId, isExternalSign, txParams, } = transactionMeta;
1920
+ }, _TransactionController_signTransaction = async function _TransactionController_signTransaction(originalTransactionMeta) {
1921
+ let transactionMeta = originalTransactionMeta;
1922
+ const { id: transactionId } = transactionMeta;
1923
+ (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1924
+ const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1925
+ if (updateTransaction) {
1926
+ __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1927
+ (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1928
+ }
1929
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1930
+ const { networkClientId } = transactionMeta;
1931
+ const ethQuery = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getEthQuery).call(this, { networkClientId });
1932
+ await (0, gas_fee_tokens_1.checkGasFeeTokenBeforePublish)({
1933
+ ethQuery,
1934
+ fetchGasFeeTokens: async (tx) => (await __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getGasFeeTokens).call(this, tx)).gasFeeTokens,
1935
+ transaction: transactionMeta,
1936
+ updateTransaction: (txId, fn) => __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId: txId }, fn),
1937
+ });
1938
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1939
+ const { chainId, isExternalSign, txParams } = transactionMeta;
1921
1940
  if (isExternalSign) {
1922
1941
  (0, logger_1.projectLogger)('Skipping sign as signed externally');
1923
1942
  return undefined;
@@ -1933,12 +1952,7 @@ async function _TransactionController_approveTransaction(transactionId, traceCon
1933
1952
  txMeta.txParams.authorizationList = signedAuthorizationList;
1934
1953
  });
1935
1954
  }
1936
- (0, logger_1.projectLogger)('Calling before sign hook', transactionMeta);
1937
- const { updateTransaction } = (await __classPrivateFieldGet(this, _TransactionController_beforeSign, "f").call(this, { transactionMeta })) ?? {};
1938
- if (updateTransaction) {
1939
- __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_updateTransactionInternal).call(this, { transactionId, skipResimulateCheck: true, note: 'beforeSign Hook' }, updateTransaction);
1940
- (0, logger_1.projectLogger)('Updated transaction after before sign hook');
1941
- }
1955
+ transactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1942
1956
  const finalTransactionMeta = __classPrivateFieldGet(this, _TransactionController_instances, "m", _TransactionController_getTransactionOrThrow).call(this, transactionId);
1943
1957
  const { txParams: finalTxParams } = finalTransactionMeta;
1944
1958
  const unsignedEthTx = (0, prepare_1.prepareTransaction)(chainId, finalTxParams);