Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
cancel-in-progress: ${{ !contains(github.ref, 'refs/heads/main') }}

jobs:
check-workflows:
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@metamask/core-monorepo",
"version": "377.0.0",
"version": "378.0.0",
"private": true,
"description": "Monorepo for packages shared between MetaMask clients",
"repository": {
Expand Down
10 changes: 8 additions & 2 deletions packages/assets-controllers/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [60.0.0]

### Added

- Add support for 'Sonic Mainnet' chainId in the list of SUPPORTED_CHAIN_IDS. ([#5711](https://github.com/MetaMask/core/pull/5711))

### Changed

- Refactor `TokensController` to remove reliance on a single selected network ([#5659](https://github.com/MetaMask/core/pull/5659))
Expand All @@ -23,7 +29,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

### Added

- Add support for 'Sonic Mainnet' chainId in the list of SUPPORTED_CHAIN_IDS. ([#5711](https://github.com/MetaMask/core/pull/5711))
- Add `SEI` network support ([#5610](https://github.com/MetaMask/core/pull/5610))
- Add token detection support
- Add NFT detection support
Expand Down Expand Up @@ -1589,7 +1594,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Use Ethers for AssetsContractController ([#845](https://github.com/MetaMask/core/pull/845))

[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@59.0.0...HEAD
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@60.0.0...HEAD
[60.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@59.0.0...@metamask/assets-controllers@60.0.0
[59.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@58.0.0...@metamask/assets-controllers@59.0.0
[58.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@57.0.0...@metamask/assets-controllers@58.0.0
[57.0.0]: https://github.com/MetaMask/core/compare/@metamask/assets-controllers@56.0.0...@metamask/assets-controllers@57.0.0
Expand Down
2 changes: 1 addition & 1 deletion packages/assets-controllers/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@metamask/assets-controllers",
"version": "59.0.0",
"version": "60.0.0",
"description": "Controllers which manage interactions involving ERC-20, ERC-721, and ERC-1155 tokens (including NFTs)",
"keywords": [
"MetaMask",
Expand Down
9 changes: 8 additions & 1 deletion packages/bridge-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [19.0.0]

### Changed

- **BREAKING:** Bump `@metamask/assets-controllers` peer dependency to `^60.0.0` ([#5717](https://github.com/MetaMask/core/pull/5717))

## [18.0.0]

### Changed
Expand Down Expand Up @@ -176,7 +182,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))

[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@18.0.0...HEAD
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@19.0.0...HEAD
[19.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@18.0.0...@metamask/bridge-controller@19.0.0
[18.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@17.0.0...@metamask/bridge-controller@18.0.0
[17.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@16.0.0...@metamask/bridge-controller@17.0.0
[16.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-controller@15.0.0...@metamask/bridge-controller@16.0.0
Expand Down
6 changes: 3 additions & 3 deletions packages/bridge-controller/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@metamask/bridge-controller",
"version": "18.0.0",
"version": "19.0.0",
"description": "Manages bridge-related quote fetching functionality for MetaMask",
"keywords": [
"MetaMask",
Expand Down Expand Up @@ -65,7 +65,7 @@
},
"devDependencies": {
"@metamask/accounts-controller": "^27.0.0",
"@metamask/assets-controllers": "^59.0.0",
"@metamask/assets-controllers": "^60.0.0",
"@metamask/auto-changelog": "^3.4.4",
"@metamask/eth-json-rpc-provider": "^4.1.8",
"@metamask/network-controller": "^23.2.0",
Expand All @@ -85,7 +85,7 @@
},
"peerDependencies": {
"@metamask/accounts-controller": "^27.0.0",
"@metamask/assets-controllers": "^59.0.0",
"@metamask/assets-controllers": "^60.0.0",
"@metamask/network-controller": "^23.0.0",
"@metamask/snaps-controllers": "^11.0.0",
"@metamask/transaction-controller": "^54.0.0"
Expand Down
14 changes: 13 additions & 1 deletion packages/bridge-status-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [16.0.0]

### Changed

- **BREAKING:** Bump `@metamask/bridge-controller` peer dependency to `^19.0.0` ([#5717](https://github.com/MetaMask/core/pull/5717))
- Remove `@metamask/assets-controllers` peer dependency ([#5716](https://github.com/MetaMask/core/pull/5716))

### Fixed

- Fixes transaction polling failures caused by adding tokens with the incorrect account address to the TokensControler ([#5716](https://github.com/MetaMask/core/pull/5716))

## [15.0.0]

### Changed
Expand Down Expand Up @@ -161,7 +172,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

- Initial release ([#5317](https://github.com/MetaMask/core/pull/5317))

[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@15.0.0...HEAD
[Unreleased]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@16.0.0...HEAD
[16.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@15.0.0...@metamask/bridge-status-controller@16.0.0
[15.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@14.0.0...@metamask/bridge-status-controller@15.0.0
[14.0.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@13.1.0...@metamask/bridge-status-controller@14.0.0
[13.1.0]: https://github.com/MetaMask/core/compare/@metamask/bridge-status-controller@13.0.0...@metamask/bridge-status-controller@13.1.0
Expand Down
8 changes: 3 additions & 5 deletions packages/bridge-status-controller/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@metamask/bridge-status-controller",
"version": "15.0.0",
"version": "16.0.0",
"description": "Manages bridge-related status fetching functionality for MetaMask",
"keywords": [
"MetaMask",
Expand Down Expand Up @@ -59,9 +59,8 @@
},
"devDependencies": {
"@metamask/accounts-controller": "^27.0.0",
"@metamask/assets-controllers": "^59.0.0",
"@metamask/auto-changelog": "^3.4.4",
"@metamask/bridge-controller": "^18.0.0",
"@metamask/bridge-controller": "^19.0.0",
"@metamask/gas-fee-controller": "^23.0.0",
"@metamask/network-controller": "^23.2.0",
"@metamask/snaps-controllers": "^11.2.1",
Expand All @@ -79,8 +78,7 @@
},
"peerDependencies": {
"@metamask/accounts-controller": "^27.0.0",
"@metamask/assets-controllers": "^59.0.0",
"@metamask/bridge-controller": "^18.0.0",
"@metamask/bridge-controller": "^19.0.0",
"@metamask/gas-fee-controller": "^23.0.0",
"@metamask/network-controller": "^23.0.0",
"@metamask/snaps-controllers": "^11.0.0",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1781,25 +1781,6 @@ Array [
"usd_quoted_return": 0,
},
],
Array [
"AccountsController:getSelectedMultichainAccount",
],
Array [
"TokensController:addDetectedTokens",
Array [
Object {
"address": "0x0000000000000000000000000000000000000032",
"decimals": 18,
"image": undefined,
"name": "WETH",
"symbol": "WETH",
},
],
Object {
"chainId": "0xa",
"selectedAddress": "",
},
],
]
`;

Expand Down Expand Up @@ -1968,25 +1949,6 @@ Array [
"usd_quoted_return": 1000,
},
],
Array [
"AccountsController:getSelectedMultichainAccount",
],
Array [
"TokensController:addDetectedTokens",
Array [
Object {
"address": "0x...",
"decimals": 18,
"image": undefined,
"name": "Ethereum",
"symbol": "ETH",
},
],
Object {
"chainId": "0x1",
"selectedAddress": "",
},
],
]
`;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1571,7 +1571,7 @@ describe('BridgeStatusController', () => {
});
};

const setupBridgeMocks = (shouldAddDetectedTokensResolve = true) => {
const setupBridgeMocks = () => {
mockMessengerCall.mockReturnValueOnce(mockSelectedAccount);
mockMessengerCall.mockReturnValueOnce('arbitrum');
mockMessengerCall.mockReturnValueOnce({
Expand All @@ -1588,13 +1588,6 @@ describe('BridgeStatusController', () => {

mockMessengerCall.mockReturnValueOnce(mockSelectedAccount);
mockMessengerCall.mockReturnValueOnce(mockSelectedAccount);

// addDetectedTokens
if (shouldAddDetectedTokensResolve) {
mockMessengerCall.mockReturnValueOnce(true);
} else {
mockMessengerCall.mockRejectedValueOnce(shouldAddDetectedTokensResolve);
}
};

it('should successfully submit an EVM bridge transaction with approval', async () => {
Expand Down Expand Up @@ -1623,7 +1616,7 @@ describe('BridgeStatusController', () => {
});

it('should successfully submit an EVM bridge transaction with no approval', async () => {
setupBridgeMocks(true);
setupBridgeMocks();

const { controller, startPollingForBridgeTxStatusSpy } =
getController(mockMessengerCall);
Expand Down
37 changes: 0 additions & 37 deletions packages/bridge-status-controller/src/bridge-status-controller.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import type { StateMetadata } from '@metamask/base-controller';
import type {
BridgeAsset,
QuoteMetadata,
RequiredEventContextFromClient,
TxData,
Expand All @@ -10,7 +9,6 @@ import {
formatChainIdToHex,
getEthUsdtResetData,
isEthUsdt,
isNativeAddress,
isSolanaChainId,
StatusTypes,
UnifiedSwapBridgeEventName,
Expand Down Expand Up @@ -662,43 +660,12 @@ export class BridgeStatusController extends StaticIntervalPollingController<Brid
return await this.#waitForHashAndReturnFinalTxMeta(result);
}

// TODO why is this needed?
// Note that updateTransaction doesn't actually error if you add fields that don't conform the to the txMeta type
// they will be there at runtime, but you just don't get any type safety checks on them
// const fieldsToAddToTxMeta = getTxMetaFields(quoteResponse, approvalTxId);
// dispatch(updateTransaction(completeTxMeta);

return {
...getTxMetaFields(quoteResponse, approvalTxId),
...transactionMeta,
};
};

// Only adds tokens if the source or dest chain is an EVM chain bc non-evm tokens
// are detected by the multichain asset controllers
readonly #addTokens = (asset: BridgeAsset) => {
if (isNativeAddress(asset.address) || isSolanaChainId(asset.chainId)) {
return;
}
// eslint-disable-next-line @typescript-eslint/no-floating-promises
this.messagingSystem.call(
'TokensController:addDetectedTokens',
[
{
address: asset.address,
decimals: asset.decimals,
image: asset.iconUrl,
name: asset.name,
symbol: asset.symbol,
},
],
{
chainId: formatChainIdToHex(asset.chainId),
selectedAddress: this.#getMultichainSelectedAccountAddress(),
},
);
};

readonly #handleUSDTAllowanceReset = async (
quoteResponse: QuoteResponse<TxData | string> & QuoteMetadata,
) => {
Expand Down Expand Up @@ -827,10 +794,6 @@ export class BridgeStatusController extends StaticIntervalPollingController<Brid
UnifiedSwapBridgeEventName.Submitted,
txMeta.id,
);

// Add tokens to the token list
this.#addTokens(quoteResponse.quote.srcAsset);
this.#addTokens(quoteResponse.quote.destAsset);
} catch {
// Ignore errors here, we don't want to crash the app if this fails and tx submission succeeds
}
Expand Down
4 changes: 1 addition & 3 deletions packages/bridge-status-controller/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ import type {
AccountsControllerGetAccountByAddressAction,
AccountsControllerGetSelectedMultichainAccountAction,
} from '@metamask/accounts-controller';
import type { TokensControllerAddDetectedTokensAction } from '@metamask/assets-controllers';
import type {
ControllerGetStateAction,
ControllerStateChangeEvent,
Expand Down Expand Up @@ -345,8 +344,7 @@ type AllowedActions =
| BridgeControllerAction<BridgeBackgroundAction.GET_BRIDGE_ERC20_ALLOWANCE>
| BridgeControllerAction<BridgeBackgroundAction.TRACK_METAMETRICS_EVENT>
| GetGasFeeState
| AccountsControllerGetAccountByAddressAction
| TokensControllerAddDetectedTokensAction;
| AccountsControllerGetAccountByAddressAction;

/**
* The external events available to the BridgeStatusController.
Expand Down
1 change: 0 additions & 1 deletion packages/bridge-status-controller/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
{ "path": "../base-controller/tsconfig.build.json" },
{ "path": "../bridge-controller/tsconfig.build.json" },
{ "path": "../controller-utils/tsconfig.build.json" },
{ "path": "../assets-controllers/tsconfig.build.json" },
{ "path": "../network-controller/tsconfig.build.json" },
{ "path": "../gas-fee-controller/tsconfig.build.json" },
{ "path": "../polling-controller/tsconfig.build.json" },
Expand Down
1 change: 0 additions & 1 deletion packages/bridge-status-controller/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
{ "path": "../controller-utils" },
{ "path": "../network-controller" },
{ "path": "../polling-controller" },
{ "path": "../assets-controllers" },
{ "path": "../transaction-controller" },
{ "path": "../gas-fee-controller" },
{ "path": "../user-operation-controller" }
Expand Down
Loading
Loading