diff --git a/.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch b/.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch deleted file mode 100644 index 7868d27ae507..000000000000 --- a/.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch +++ /dev/null @@ -1,46 +0,0 @@ -diff --git a/dist/bridge-status-controller.cjs b/dist/bridge-status-controller.cjs -index 6aabde7229d9c6ce349b148a16b5e8857f9670be..52f87a160c701c8e38dabf74b5043b9781fad9f5 100644 ---- a/dist/bridge-status-controller.cjs -+++ b/dist/bridge-status-controller.cjs -@@ -334,6 +334,7 @@ class BridgeStatusController extends (0, polling_controller_1.StaticIntervalPoll - } - if (status.status === bridge_controller_1.StatusTypes.COMPLETE) { - __classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, bridge_controller_1.UnifiedSwapBridgeEventName.Completed, bridgeTxMetaId); -+ this.messagingSystem.publish('BridgeStatusController:destinationTransactionCompleted', historyItem.quote.destAsset.assetId); - } - if (status.status === bridge_controller_1.StatusTypes.FAILED) { - __classPrivateFieldGet(this, _BridgeStatusController_trackUnifiedSwapBridgeEvent, "f").call(this, bridge_controller_1.UnifiedSwapBridgeEventName.Failed, bridgeTxMetaId); -diff --git a/dist/types.d.cts b/dist/types.d.cts -index 047c064a382ba909ef1801aeb2b46fbbdc0991c0..287eb8459fa4e75744b7e575d2330547cf8c561a 100644 ---- a/dist/types.d.cts -+++ b/dist/types.d.cts -@@ -176,7 +176,15 @@ export type BridgeStatusControllerRestartPollingForFailedAttemptsAction = Bridge - export type BridgeStatusControllerGetBridgeHistoryItemByTxMetaIdAction = BridgeStatusControllerAction; - export type BridgeStatusControllerActions = BridgeStatusControllerStartPollingForBridgeTxStatusAction | BridgeStatusControllerWipeBridgeStatusAction | BridgeStatusControllerResetStateAction | BridgeStatusControllerGetStateAction | BridgeStatusControllerSubmitTxAction | BridgeStatusControllerRestartPollingForFailedAttemptsAction | BridgeStatusControllerGetBridgeHistoryItemByTxMetaIdAction; - export type BridgeStatusControllerStateChangeEvent = ControllerStateChangeEvent; --export type BridgeStatusControllerEvents = BridgeStatusControllerStateChangeEvent; -+/** -++ * This event is published when the destination bridge transaction is completed -++ * The payload is the asset received on the destination chain -++ */ -+export type BridgeStatusControllerDestinationTransactionCompletedEvent = { -+ type: 'BridgeStatusController:destinationTransactionCompleted'; -+ payload: [CaipAssetType]; -+}; -+export type BridgeStatusControllerEvents = BridgeStatusControllerStateChangeEvent | BridgeStatusControllerDestinationTransactionCompletedEvent; - /** - * The external actions available to the BridgeStatusController. - */ -diff --git a/dist/utils/swap-received-amount.cjs b/dist/utils/swap-received-amount.cjs -index 4c01024e3ebba952b0bbded0aa7bb7e2690629f1..4c41504ce0609d8b7be1f6b045d0ac3e66447646 100644 ---- a/dist/utils/swap-received-amount.cjs -+++ b/dist/utils/swap-received-amount.cjs -@@ -28,7 +28,7 @@ const getReceivedERC20Amount = (historyItem, txMeta) => { - const TOKEN_TRANSFER_LOG_TOPIC_HASH = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef'; - const tokenTransferLog = txReceipt.logs.find((txReceiptLog) => { - const isTokenTransfer = txReceiptLog.topics && -- txReceiptLog.topics[0].startsWith(TOKEN_TRANSFER_LOG_TOPIC_HASH); -+ txReceiptLog.topics[0]?.startsWith(TOKEN_TRANSFER_LOG_TOPIC_HASH); - const isTransferFromGivenToken = txReceiptLog.address?.toLowerCase() === - quote.destAsset.address?.toLowerCase(); - const isTransferFromGivenAddress = txReceiptLog.topics && diff --git a/app/components/UI/Bridge/Views/BridgeView/BridgeView.blockaid.test.tsx b/app/components/UI/Bridge/Views/BridgeView/BridgeView.blockaid.test.tsx index 630566553701..b052b66d0d09 100644 --- a/app/components/UI/Bridge/Views/BridgeView/BridgeView.blockaid.test.tsx +++ b/app/components/UI/Bridge/Views/BridgeView/BridgeView.blockaid.test.tsx @@ -1,6 +1,5 @@ import { act } from '@testing-library/react-hooks'; -import { QuoteResponse } from '../../types'; -import { QuoteMetadata } from '@metamask/bridge-controller'; +import { QuoteMetadata, QuoteResponse } from '@metamask/bridge-controller'; /** * Unit tests for the blockaid validation logic. diff --git a/app/components/UI/Bridge/types.ts b/app/components/UI/Bridge/types.ts index 783ea46b2d05..7e30490d4931 100644 --- a/app/components/UI/Bridge/types.ts +++ b/app/components/UI/Bridge/types.ts @@ -1,5 +1,4 @@ import { Asset } from '@metamask/assets-controllers'; -import { TxData, Quote } from '@metamask/bridge-controller'; import { Hex, CaipChainId } from '@metamask/utils'; // This is slightly different from the BridgeToken type in @metamask/bridge-controller @@ -20,14 +19,6 @@ export interface BridgeToken { accountType?: Asset['accountType']; } -// TODO: use type from @metamask/bridge-controller once "approval" is made optional -export interface QuoteResponse { - quote: Quote; - approval?: TxData | null; - trade: TxData; - estimatedProcessingTimeInSeconds: number; -} - export enum BridgeViewMode { Swap = 'Swap', Bridge = 'Bridge', diff --git a/app/components/Views/confirmations/hooks/transactions/useTransactionConfirm.ts b/app/components/Views/confirmations/hooks/transactions/useTransactionConfirm.ts index 0c41c5ac9a3a..df6c9ac07f53 100644 --- a/app/components/Views/confirmations/hooks/transactions/useTransactionConfirm.ts +++ b/app/components/Views/confirmations/hooks/transactions/useTransactionConfirm.ts @@ -24,6 +24,7 @@ import { TransactionBridgeQuote } from '../../utils/bridge'; import { Hex, createProjectLogger } from '@metamask/utils'; import { toHex } from '@metamask/controller-utils'; import { useSelectedGasFeeToken } from '../gas/useGasFeeToken'; +import { type TxData } from '@metamask/bridge-controller'; const log = createProjectLogger('transaction-confirm'); @@ -188,7 +189,7 @@ function getQuoteBatchTransactions( } result.push({ - ...getQuoteBatchTransaction(quote.trade), + ...getQuoteBatchTransaction(quote.trade as TxData), type: TransactionType.swap, }); @@ -196,9 +197,7 @@ function getQuoteBatchTransactions( }); } -function getQuoteBatchTransaction( - transaction: TransactionBridgeQuote['trade'], -): BatchTransaction { +function getQuoteBatchTransaction(transaction: TxData): BatchTransaction { const data = transaction.data as Hex; const gas = transaction.gasLimit ? toHex(transaction.gasLimit) : undefined; const to = transaction.to as Hex; diff --git a/app/util/bridge/hooks/useSubmitBridgeTx.test.tsx b/app/util/bridge/hooks/useSubmitBridgeTx.test.tsx index 560e632ab503..96d6fabebc4d 100644 --- a/app/util/bridge/hooks/useSubmitBridgeTx.test.tsx +++ b/app/util/bridge/hooks/useSubmitBridgeTx.test.tsx @@ -8,8 +8,7 @@ import { DummyQuotesNoApproval, DummyQuotesWithApproval, } from '../../../../e2e/api-mocking/mock-responses/bridge-api-quotes'; -import { QuoteResponse } from '../../../components/UI/Bridge/types'; -import { QuoteMetadata } from '@metamask/bridge-controller'; +import { QuoteMetadata, QuoteResponse } from '@metamask/bridge-controller'; import { backgroundState } from '../../test/initial-root-state'; import { TransactionMeta } from '@metamask/transaction-controller'; import { selectSourceWalletAddress } from '../../../selectors/bridge'; diff --git a/app/util/bridge/hooks/useSubmitBridgeTx.ts b/app/util/bridge/hooks/useSubmitBridgeTx.ts index dad9ddd4ffc0..c46062044154 100644 --- a/app/util/bridge/hooks/useSubmitBridgeTx.ts +++ b/app/util/bridge/hooks/useSubmitBridgeTx.ts @@ -1,6 +1,5 @@ -import { QuoteResponse } from '../../../components/UI/Bridge/types'; import Engine from '../../../core/Engine'; -import { QuoteMetadata } from '@metamask/bridge-controller'; +import { QuoteMetadata, QuoteResponse } from '@metamask/bridge-controller'; import { useSelector } from 'react-redux'; import { selectShouldUseSmartTransaction } from '../../../selectors/smartTransactionsController'; import { selectSourceWalletAddress } from '../../../selectors/bridge'; diff --git a/app/util/bridge/hooks/useValidateBridgeTx.ts b/app/util/bridge/hooks/useValidateBridgeTx.ts index 36b071cb50e0..e18fbd09c332 100644 --- a/app/util/bridge/hooks/useValidateBridgeTx.ts +++ b/app/util/bridge/hooks/useValidateBridgeTx.ts @@ -1,5 +1,4 @@ -import { QuoteResponse } from '../../../components/UI/Bridge/types'; -import { QuoteMetadata } from '@metamask/bridge-controller'; +import { QuoteMetadata, QuoteResponse } from '@metamask/bridge-controller'; import { useSelector } from 'react-redux'; import { SolMethod } from '@metamask/keyring-api'; import { selectSelectedInternalAccount } from '../../../selectors/accountsController'; diff --git a/package.json b/package.json index b4811fe248ad..23683e3e57cc 100644 --- a/package.json +++ b/package.json @@ -184,9 +184,7 @@ "@expo/fingerprint": "^0.15.0", "appwright@^0.1.45": "patch:appwright@npm%3A0.1.45#./.yarn/patches/appwright-npm-0.1.45-f282bc1c1b.patch", "@scure/bip32": "1.7.0", - "@metamask/snaps-sdk": "^10.0.0", - "@metamask/bridge-status-controller@^47.2.0": "patch:@metamask/bridge-status-controller@npm%3A47.2.0#./.yarn/patches/@metamask-bridge-status-controller-npm-47.2.0-1c8660e896.patch", - "@metamask/bridge-status-controller@^50.0.0": "patch:@metamask/bridge-status-controller@npm%3A50.1.0#./.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch" + "@metamask/snaps-sdk": "^10.0.0" }, "dependencies": { "@config-plugins/detox": "^9.0.0", @@ -210,8 +208,8 @@ "@metamask/assets-controllers": "^81.0.1", "@metamask/base-controller": "^8.3.0", "@metamask/bitcoin-wallet-snap": "^1.3.0", - "@metamask/bridge-controller": "^50.0.0", - "@metamask/bridge-status-controller": "^50.0.0", + "@metamask/bridge-controller": "^53.1.0", + "@metamask/bridge-status-controller": "^53.0.0", "@metamask/chain-agnostic-permission": "^1.1.0", "@metamask/composable-controller": "^11.0.0", "@metamask/controller-utils": "^11.11.0", diff --git a/yarn.lock b/yarn.lock index e0a15b847d85..442303216334 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7024,9 +7024,9 @@ __metadata: languageName: node linkType: hard -"@metamask/bridge-controller@npm:^50.0.0": - version: 50.0.0 - resolution: "@metamask/bridge-controller@npm:50.0.0" +"@metamask/bridge-controller@npm:^53.1.0": + version: 53.1.0 + resolution: "@metamask/bridge-controller@npm:53.1.0" dependencies: "@ethersproject/address": "npm:^5.7.0" "@ethersproject/bignumber": "npm:^5.7.0" @@ -7046,18 +7046,18 @@ __metadata: uuid: "npm:^8.3.2" peerDependencies: "@metamask/accounts-controller": ^33.0.0 - "@metamask/assets-controllers": ^80.0.0 + "@metamask/assets-controllers": ^81.0.0 "@metamask/network-controller": ^24.0.0 "@metamask/remote-feature-flag-controller": ^1.6.0 "@metamask/snaps-controllers": ^14.0.0 "@metamask/transaction-controller": ^60.0.0 - checksum: 10/3c3bae89d09ec7936a05c13472c68d3be796ef07d3bff597150f94bc9f8be0d3d7d7776145c3d97d5e7fa4e5cf77685c051be52843bae6ae54710f0f793b048f + checksum: 10/17ce073b19da5c7c58aaf177ca63d4fda615817612c88fb7d3c1e5ed2d14aee398e67cf808f5f9ecfe1af31c361684efddbf1cc51b73dd4964e1ffce15ff5316 languageName: node linkType: hard -"@metamask/bridge-status-controller@npm:50.1.0": - version: 50.1.0 - resolution: "@metamask/bridge-status-controller@npm:50.1.0" +"@metamask/bridge-status-controller@npm:^53.0.0": + version: 53.0.0 + resolution: "@metamask/bridge-status-controller@npm:53.0.0" dependencies: "@metamask/base-controller": "npm:^8.4.1" "@metamask/controller-utils": "npm:^11.14.1" @@ -7068,34 +7068,12 @@ __metadata: uuid: "npm:^8.3.2" peerDependencies: "@metamask/accounts-controller": ^33.0.0 - "@metamask/bridge-controller": ^51.0.0 + "@metamask/bridge-controller": ^53.0.0 "@metamask/gas-fee-controller": ^24.0.0 "@metamask/network-controller": ^24.0.0 "@metamask/snaps-controllers": ^14.0.0 "@metamask/transaction-controller": ^60.0.0 - checksum: 10/b50f890b3a4f8214df2a36a41946269f85bbbe3becc986f752fea5babfb023cc5222b8718912f18adab12a028cf5636a482a6c471dfdc83708b66859a86d8515 - languageName: node - linkType: hard - -"@metamask/bridge-status-controller@patch:@metamask/bridge-status-controller@npm%3A50.1.0#./.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch::locator=metamask%40workspace%3A.": - version: 50.1.0 - resolution: "@metamask/bridge-status-controller@patch:@metamask/bridge-status-controller@npm%3A50.1.0#./.yarn/patches/@metamask-bridge-status-controller-npm-50.1.0-308ed9262e.patch::version=50.1.0&hash=0c54ce&locator=metamask%40workspace%3A." - dependencies: - "@metamask/base-controller": "npm:^8.4.1" - "@metamask/controller-utils": "npm:^11.14.1" - "@metamask/polling-controller": "npm:^14.0.1" - "@metamask/superstruct": "npm:^3.1.0" - "@metamask/utils": "npm:^11.8.1" - bignumber.js: "npm:^9.1.2" - uuid: "npm:^8.3.2" - peerDependencies: - "@metamask/accounts-controller": ^33.0.0 - "@metamask/bridge-controller": ^51.0.0 - "@metamask/gas-fee-controller": ^24.0.0 - "@metamask/network-controller": ^24.0.0 - "@metamask/snaps-controllers": ^14.0.0 - "@metamask/transaction-controller": ^60.0.0 - checksum: 10/8f93ea1ad53d270cf69689528491db3b1a7f42afa7f225210e975cbefe8a0d161ccfcd935a2f0bb01a362bd8c5e90593f356a445d2130f2586a233b82f031b40 + checksum: 10/8f66cdbd2283c802702072d1d6057e832f027fbcc022b1d3edfabb60877fdb079091a4f031576f5453cc7bf11f73347c454d4d7e7bb78f2792a25b9197763072 languageName: node linkType: hard @@ -34085,8 +34063,8 @@ __metadata: "@metamask/assets-controllers": "npm:^81.0.1" "@metamask/base-controller": "npm:^8.3.0" "@metamask/bitcoin-wallet-snap": "npm:^1.3.0" - "@metamask/bridge-controller": "npm:^50.0.0" - "@metamask/bridge-status-controller": "npm:^50.0.0" + "@metamask/bridge-controller": "npm:^53.1.0" + "@metamask/bridge-status-controller": "npm:^53.0.0" "@metamask/browser-passworder": "npm:^5.0.0" "@metamask/build-utils": "npm:^3.0.0" "@metamask/chain-agnostic-permission": "npm:^1.1.0"