Skip to content

Commit 2be48c1

Browse files
mikespositoGudahtt
authored andcommitted
chore: bump @metamask/smart-transactions-controller to ^19.2.0 (#20152)
<!-- Please submit this PR as a draft initially. Do not mark it as "Ready for review" until the template has been completely filled out, and PR status checks have passed at least once. --> ## **Description** <!-- Write a short description of the changes included in this pull request, also include relevant motivation and context. Have in mind the following questions: 1. What is the reason for the change? 2. What is the improvement/solution? --> Bumping `@metamask/smart-transactions-controller`: ```markdown ## [19.2.0] ### Added - Add missing constants and helpers exports ([#538](MetaMask/smart-transactions-controller#538)) - `MetaMetricsEventCategory` - `MetaMetricsEventName` - `getSmartTransactionMetricsProperties` - `getSmartTransactionMetricsSensitiveProperties` ## [19.1.0] ### Added - Add missing exports for types ([#537](MetaMask/smart-transactions-controller#537)) - `Fee` - `Fees` - `IndividualTxFees` - `FeatureFlags` - `SmartTransactionMinedTx` - `SmartTransaction` - `SmartTransactionCancellationReason` - `SmartTransactionStatuses` - `ClientId` ## [19.0.0] ### Added - This package can now be used in ESM environments as well as CommonJS ([#469](MetaMask/smart-transactions-controller#469)) - Add two new controller state metadata properties: `includeInStateLogs` and `usedInUi` ([#531](MetaMask/smart-transactions-controller#531)) ### Changed - **BREAKING:** Disallow subpath exports ([#469](MetaMask/smart-transactions-controller#469)) - **BREAKING:** Upgrade peer dependency `@metamask/transaction-controller` from `^58.0.0` to `^60.4.0` ([#532](MetaMask/smart-transactions-controller#532), [#534](MetaMask/smart-transactions-controller#534)) - **BREAKING:** Remove `getNonceLock`, `confirmExternalTransaction`, `getTransactions`, and `updateTransaction` constructor option in favor of messenger actions ([#534](MetaMask/smart-transactions-controller#534)) - The messenger is now used to access TransactionController; you must add these actions to the SmartTransactionController messenger allowlist: - `TransactionController:getNonceLock` - `TransactionController:confirmExternalTransaction` - `TransactionController:getTransactions` - `TransactionController:updateTransaction` - Upgrade `@metamask/base-controller` from `^7.0.1` to `^8.3.0` ([#529](MetaMask/smart-transactions-controller#529)) - Upgrade `@metamask/polling-controller` from `^12.0.0` to `^14.0.0` ([#529](MetaMask/smart-transactions-controller#529)) ### Removed - **BREAKING:** Remove default export ([#535](MetaMask/smart-transactions-controller#535)) - Use `import { SmartTransactionsController } from '@metamask/smart-transactions-controller'` instead. ``` ## **Changelog** <!-- If this PR is not End-User-Facing and should not show up in the CHANGELOG, you can choose to either: 1. Write `CHANGELOG entry: null` 2. Label with `no-changelog` If this PR is End-User-Facing, please write a short User-Facing description in the past tense like: `CHANGELOG entry: Added a new tab for users to see their NFTs` `CHANGELOG entry: Fixed a bug that was causing some NFTs to flicker` (This helps the Release Engineer do their job more quickly and accurately) --> CHANGELOG entry: null ## **Related issues** Fixes: ## **Manual testing steps** ```gherkin Feature: my feature name Scenario: user [verb for user action] Given [describe expected initial app state] When user [verb for user action] Then [describe expected outcome] ``` ## **Screenshots/Recordings** <!-- If applicable, add screenshots and/or recordings to visualize the before and after of your change. --> ### **Before** <!-- [screenshots/recordings] --> ### **After** <!-- [screenshots/recordings] --> ## **Pre-merge author checklist** - [ ] I’ve followed [MetaMask Contributor Docs](https://github.com/MetaMask/contributor-docs) and [MetaMask Mobile Coding Standards](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/CODING_GUIDELINES.md). - [ ] I've completed the PR template to the best of my ability - [ ] I’ve included tests if applicable - [ ] I’ve documented my code using [JSDoc](https://jsdoc.app/) format if applicable - [ ] I’ve applied the right labels on the PR (see [labeling guidelines](https://github.com/MetaMask/metamask-mobile/blob/main/.github/guidelines/LABELING_GUIDELINES.md)). Not required for external contributors. ## **Pre-merge reviewer checklist** - [ ] I've manually tested the PR (e.g. pull and build branch, run the app, test code being changed). - [ ] I confirm that this PR addresses all acceptance criteria described in the ticket it closes and includes the necessary testing evidence such as recordings and or screenshots. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > Upgrades Smart Transactions to ^19.2.1 and Transaction Controller to ^60.4.0, replaces subpath/type imports, migrates Engine/messaging integration, and updates related hooks, views, selectors, and tests. > > - **Dependencies**: > - Bump `@metamask/smart-transactions-controller` to `^19.2.1` and `@metamask/transaction-controller` to `^60.4.0` (lockfile updated). > - **Engine/Controllers**: > - Switch to named exports from `@metamask/smart-transactions-controller`; remove default export usage. > - Migrate STX controller constructor to use messenger actions (`TransactionController:getNonceLock`, `confirmExternalTransaction`, `getTransactions`, `updateTransaction`) instead of direct callbacks; add MetaMetrics constants/util imports from root. > - Transaction Controller init: use `SmartTransactionStatuses` from root; wire STX hooks (single/batch) and metrics/notification handlers; keep pending resubmit disabled. > - **App code updates**: > - Replace all `@metamask/smart-transactions-controller/dist/...` imports with root package exports (types, enums like `SmartTransaction`, `SmartTransactionStatuses`, `Fee/Fees`). > - Update Swaps (QuotesView, useSwapsSmartTransaction), UnifiedTransactionsView, SmartTransactionStatus components/tests, NotificationsManager, selectors, migrations, and smart-transactions utils/hooks to new exports. > - **Tests**: > - Adapt tests to new controller exports and messenger permissions for STX hooks; minor Hex import fixes. > > <sup>Written by [Cursor Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit 3c62faf. This will update automatically on new commits. Configure [here](https://cursor.com/dashboard?tab=bugbot).</sup> <!-- /CURSOR_SUMMARY --> --------- Co-authored-by: Mark Stacey <markjstacey@gmail.com>
1 parent b6a61e2 commit 2be48c1

File tree

24 files changed

+83
-98
lines changed

24 files changed

+83
-98
lines changed

app/components/UI/Earn/components/Earnings/EarningsHistory/EarningsHistory.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
import React from 'react';
2+
import { Hex } from '@metamask/utils';
23
import { fireEvent } from '@testing-library/react-native';
34
import StakingEarningsHistory from './EarningsHistory';
45
import useEarningsHistory from '../../../hooks/useEarningsHistory';
56

67
import renderWithProvider from '../../../../../../util/test/renderWithProvider';
78
import { MOCK_ACCOUNTS_CONTROLLER_STATE } from '../../../../../../util/test/accountsControllerTestUtils';
89
import { backgroundState } from '../../../../../../util/test/initial-root-state';
9-
import { Hex } from '@metamask/smart-transactions-controller/dist/types';
1010
import { TokenI } from '../../../../Tokens/types';
1111
import { MOCK_STAKED_ETH_MAINNET_ASSET } from '../../../../Stake/__mocks__/stakeMockData';
1212

app/components/UI/Swaps/QuotesView.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ import SmartTransactionsMigrationBanner from '../../Views/confirmations/legacy/c
129129
import { useSwapsSmartTransaction } from './utils/useSwapsSmartTransaction';
130130
import Routes from '../../../constants/navigation/Routes';
131131
import { ApprovalTypes } from '../../../core/RPCMethods/RPCMethodMiddleware';
132-
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller/dist/types';
132+
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller';
133133
import { getTradeTxTokenFee } from '../../../util/smart-transactions';
134134
import { useFiatConversionRates } from './utils/useFiatConversionRates';
135135
import { useGasTokenFiatAmount } from './utils/useGasTokenFiatAmount';

app/components/UI/Swaps/utils/useSwapsSmartTransaction.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { getGasFeeEstimatesForTransaction } from './gas';
1515
import { Hex } from '@metamask/utils';
1616
import { ORIGIN_METAMASK } from '@metamask/controller-utils';
1717
import Logger from '../../../../util/Logger';
18-
import { Fee } from '@metamask/smart-transactions-controller/dist/types';
18+
import { Fee } from '@metamask/smart-transactions-controller';
1919
import {
2020
getGasIncludedTransactionFees,
2121
type GasIncludedQuote,

app/components/Views/UnifiedTransactionsView/UnifiedTransactionsView.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Transaction as NonEvmTransaction } from '@metamask/keyring-api';
22
import { SupportedCaipChainId } from '@metamask/multichain-network-controller';
3-
import { SmartTransaction } from '@metamask/smart-transactions-controller/dist/types';
3+
import { SmartTransaction } from '@metamask/smart-transactions-controller';
44
import { CHAIN_IDS, TransactionMeta } from '@metamask/transaction-controller';
55
import { Hex } from '@metamask/utils';
66
import { NavigationProp, useNavigation } from '@react-navigation/native';

app/components/Views/transactions/SmartTransactionStatus/SmartTransactionStatus.test.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { backgroundState } from '../../../../util/test/initial-root-state';
88
import { strings } from '../../../../../locales/i18n';
99
import Routes from '../../../../constants/navigation/Routes';
1010
import { fireEvent } from '@testing-library/react-native';
11-
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller/dist/types';
11+
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller';
1212
import { merge } from 'lodash';
1313

1414
const initialState = {

app/components/Views/transactions/SmartTransactionStatus/SmartTransactionStatus.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { useMemo } from 'react';
22
import { View, Text, StyleSheet, TouchableOpacity } from 'react-native';
3+
import { Hex } from '@metamask/utils';
34
import { strings } from '../../../../../locales/i18n';
45
import Icon, {
56
IconColor,
@@ -9,10 +10,9 @@ import Icon, {
910
import ProgressBar from './ProgressBar';
1011
import { useTheme } from '../../../../util/theme';
1112
import {
12-
Hex,
1313
SmartTransaction,
1414
SmartTransactionStatuses,
15-
} from '@metamask/smart-transactions-controller/dist/types';
15+
} from '@metamask/smart-transactions-controller';
1616
import { useSelector } from 'react-redux';
1717
import { selectEvmChainId } from '../../../../selectors/networkController';
1818
import { useNavigation } from '@react-navigation/native';

app/core/Engine/Engine.ts

Lines changed: 12 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,17 @@ import {
9292
networkIdUpdated,
9393
networkIdWillUpdate,
9494
} from '../../core/redux/slices/inpageProvider';
95-
import SmartTransactionsController from '@metamask/smart-transactions-controller';
95+
import {
96+
SmartTransactionsController,
97+
ClientId,
98+
MetaMetricsEventName,
99+
MetaMetricsEventCategory,
100+
getSmartTransactionMetricsProperties as getSmartTransactionMetricsPropertiesType,
101+
getSmartTransactionMetricsSensitiveProperties as getSmartTransactionMetricsSensitivePropertiesType,
102+
} from '@metamask/smart-transactions-controller';
96103
import { getAllowedSmartTransactionsChainIds } from '../../../app/constants/smartTransactions';
97104
import { selectBasicFunctionalityEnabled } from '../../selectors/settings';
98105
import { selectSwapsChainFeatureFlags } from '../../reducers/swaps';
99-
import { ClientId } from '@metamask/smart-transactions-controller/dist/types';
100106
import { zeroAddress } from 'ethereumjs-util';
101107
import {
102108
type TraceCallback,
@@ -105,14 +111,6 @@ import {
105111
///: END:ONLY_INCLUDE_IF
106112
} from '@metamask/controller-utils';
107113
import { ExtendedControllerMessenger } from '../ExtendedControllerMessenger';
108-
import {
109-
MetaMetricsEventCategory,
110-
MetaMetricsEventName,
111-
} from '@metamask/smart-transactions-controller/dist/constants';
112-
import {
113-
getSmartTransactionMetricsProperties as getSmartTransactionMetricsPropertiesType,
114-
getSmartTransactionMetricsSensitiveProperties as getSmartTransactionMetricsSensitivePropertiesType,
115-
} from '@metamask/smart-transactions-controller/dist/utils';
116114
///: BEGIN:ONLY_INCLUDE_IF(keyring-snaps)
117115
import { removeAccountsFromPermissions } from '../Permissions';
118116
import { multichainBalancesControllerInit } from './controllers/multichain-balances-controller/multichain-balances-controller-init';
@@ -335,25 +333,20 @@ export class Engine {
335333
// @ts-expect-error TODO: resolve types
336334
supportedChainIds: getAllowedSmartTransactionsChainIds(),
337335
clientId: ClientId.Mobile,
338-
getNonceLock: (...args) =>
339-
this.transactionController.getNonceLock(...args),
340-
confirmExternalTransaction: (...args) =>
341-
this.transactionController.confirmExternalTransaction(...args),
342336
trackMetaMetricsEvent: smartTransactionsControllerTrackMetaMetricsEvent,
343337
state: initialState.SmartTransactionsController,
344-
// @ts-expect-error TODO: Resolve mismatch between base-controller versions.
345338
messenger: this.controllerMessenger.getRestricted({
346339
name: 'SmartTransactionsController',
347340
allowedActions: [
348341
'NetworkController:getNetworkClientById',
349342
'NetworkController:getState',
343+
'TransactionController:getNonceLock',
344+
`TransactionController:confirmExternalTransaction`,
345+
`TransactionController:getTransactions`,
346+
`TransactionController:updateTransaction`,
350347
],
351348
allowedEvents: ['NetworkController:stateChange'],
352349
}),
353-
getTransactions: (...args) =>
354-
this.transactionController.getTransactions(...args),
355-
updateTransaction: (...args) =>
356-
this.transactionController.updateTransaction(...args),
357350
getFeatureFlags: () => selectSwapsChainFeatureFlags(store.getState()),
358351
getMetaMetricsProps: () => Promise.resolve({}), // Return MetaMetrics props once we enable HW wallets for smart transactions.
359352
trace: trace as TraceCallback,

app/core/Engine/controllers/transaction-controller/transaction-controller-init.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
TransactionType,
88
type PublishBatchHookTransaction,
99
} from '@metamask/transaction-controller';
10-
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller/dist/types';
10+
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller';
1111
import { NetworkController } from '@metamask/network-controller';
1212

1313
import { selectSwapsChainFeatureFlags } from '../../../../reducers/swaps';

app/core/Engine/controllers/transaction-controller/transaction-controller-init.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,13 @@ import {
77
type PublishBatchHookTransaction,
88
type PublishBatchHookResult,
99
} from '@metamask/transaction-controller';
10-
import { SmartTransactionStatuses } from '@metamask/smart-transactions-controller/dist/types';
1110
import { Hex } from '@metamask/utils';
1211
import { ApprovalController } from '@metamask/approval-controller';
1312
import { PreferencesController } from '@metamask/preferences-controller';
14-
import SmartTransactionsController from '@metamask/smart-transactions-controller';
13+
import {
14+
SmartTransactionsController,
15+
SmartTransactionStatuses,
16+
} from '@metamask/smart-transactions-controller';
1517

1618
import { REDESIGNED_TRANSACTION_TYPES } from '../../../../components/Views/confirmations/constants/confirmations';
1719
import { selectSwapsChainFeatureFlags } from '../../../../reducers/swaps';

app/core/Engine/controllers/transaction-controller/types.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { JsonMap } from '../../../Analytics/MetaMetrics.types';
2-
import SmartTransactionsController from '@metamask/smart-transactions-controller';
2+
import { SmartTransactionsController } from '@metamask/smart-transactions-controller';
33
import type { RootState } from '../../../../reducers';
44
import { TransactionControllerInitMessenger } from '../../messengers/transaction-controller-messenger';
55
import { TransactionMeta } from '@metamask/transaction-controller';

0 commit comments

Comments
 (0)