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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed

- **BREAKING:** Use new `Messenger` from `@metamask/messenger` ([#421](https://github.com/MetaMask/swaps-controller/pull/421))
- Previously, `SwapsController` accepted a `RestrictedMessenger` instance from `@metamask/base-controller`.
- **BREAKING:** Metadata property `anonymous` renamed to `includeInDebugSnapshot` ([#421](https://github.com/MetaMask/swaps-controller/pull/421))
- **BREAKING:** Bump peer dependency `@metamask/gas-fee-controller` from `^24.0.0` to `^25.0.0` ([#421](https://github.com/MetaMask/swaps-controller/pull/421))
- **BREAKING:** Bump peer dependency `@metamask/network-controller` from `^24.0.0` to `^25.0.0` ([#421](https://github.com/MetaMask/swaps-controller/pull/421))
- Bump `@metamask/base-controller` from `^8.0.3` to `^9.0.0`(([#421](https://github.com/MetaMask/swaps-controller/pull/421))

## [14.0.0]

### Added
Expand Down
11 changes: 6 additions & 5 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,8 @@
"prepack": "./scripts/prepack.sh"
},
"peerDependencies": {
"@metamask/gas-fee-controller": "^24.0.0",
"@metamask/network-controller": "^24.0.0"
"@metamask/gas-fee-controller": "^25.0.0",
"@metamask/network-controller": "^25.0.0"
},
"devDependencies": {
"@babel/runtime": "^7.0.0",
Expand All @@ -46,9 +46,9 @@
"@metamask/eslint-config-nodejs": "^12.1.0",
"@metamask/eslint-config-typescript": "^12.1.0",
"@metamask/eth-json-rpc-provider": "^4.1.6",
"@metamask/gas-fee-controller": "^24.0.0",
"@metamask/gas-fee-controller": "^25.0.0",
"@metamask/json-rpc-engine": "^10.0.1",
"@metamask/network-controller": "^24.1.0",
"@metamask/network-controller": "^25.0.0",
"@types/jest": "^29.5.14",
"@types/node": "^20.10.4",
"@typescript-eslint/eslint-plugin": "^5.42.1",
Expand All @@ -73,9 +73,10 @@
"dependencies": {
"@ethersproject/contracts": "^5.7.0",
"@ethersproject/providers": "^5.7.0",
"@metamask/base-controller": "^8.0.3",
"@metamask/base-controller": "^9.0.0",
"@metamask/controller-utils": "^11.3.0",
"@metamask/eth-query": "^4.0.0",
"@metamask/messenger": "^0.3.0",
"@metamask/utils": "^10.0.0",
"async-mutex": "^0.5.0",
"bignumber.js": "^9.0.1",
Expand Down
95 changes: 64 additions & 31 deletions src/SwapsController.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,29 @@ import {
SwapsControllerState,
} from './types';
import * as swapsUtil from './swapsUtil';
import {
NetworkClientId,
NetworkControllerGetNetworkClientByIdAction,
NetworkControllerNetworkDidChangeEvent,
} from '@metamask/network-controller';
import { NetworkClientId } from '@metamask/network-controller';
import { FakeProvider } from './fake-provider.test';
import { Hex } from '@metamask/utils';
import { deriveStateFromMetadata, Messenger } from '@metamask/base-controller';
import { deriveStateFromMetadata } from '@metamask/base-controller';
import * as ethQueryModule from '@metamask/eth-query';
import {
Messenger,
MessengerActions,
MessengerEvents,
MOCK_ANY_NAMESPACE,
MockAnyNamespace,
} from '@metamask/messenger';
import * as ethersContracts from '@ethersproject/contracts';
import * as ethersProviders from '@ethersproject/providers';
import { Interface } from '@ethersproject/abi';
import abiERC20 from 'human-standard-token-abi';

type AllActions = MessengerActions<SwapsControllerMessenger>;

type AllEvents = MessengerEvents<SwapsControllerMessenger>;

type RootMessenger = Messenger<MockAnyNamespace, AllActions, AllEvents>;

// Override this module so that its members can be spied on
jest.mock('@metamask/eth-query', () => {
return {
Expand Down Expand Up @@ -524,10 +533,9 @@ describe('SwapsController', () => {
topAssetsLastFetched: 2,
tokensLastFetched: 3,
};
const rootMessenger = new Messenger<
NetworkControllerGetNetworkClientByIdAction,
NetworkControllerNetworkDidChangeEvent
>();
const rootMessenger: RootMessenger = new Messenger({
namespace: MOCK_ANY_NAMESPACE,
});
rootMessenger.registerActionHandler(
'NetworkController:getNetworkClientById',
// @ts-expect-error Intentionally not providing a full
Expand All @@ -545,10 +553,19 @@ describe('SwapsController', () => {
);
},
);
const swapsControllerMessenger = rootMessenger.getRestricted({
name: 'SwapsController',
allowedActions: ['NetworkController:getNetworkClientById'],
allowedEvents: ['NetworkController:networkDidChange'],
const swapsControllerMessenger = new Messenger<
'SwapsController',
AllActions,
AllEvents,
RootMessenger
>({
namespace: 'SwapsController',
parent: rootMessenger,
});
rootMessenger.delegate({
messenger: swapsControllerMessenger,
actions: ['NetworkController:getNetworkClientById'],
events: ['NetworkController:networkDidChange'],
});
const controller = getSwapsController({
options: {
Expand All @@ -575,10 +592,9 @@ describe('SwapsController', () => {
it('clears the main part of state and initializes the cached data for the new chain ID if none previously existed', async () => {
const networkClientId = 'AAAA-BBBB-CCCC-DDDD';
const chainId = BSC_CHAIN_ID;
const rootMessenger = new Messenger<
NetworkControllerGetNetworkClientByIdAction,
NetworkControllerNetworkDidChangeEvent
>();
const rootMessenger: RootMessenger = new Messenger({
namespace: MOCK_ANY_NAMESPACE,
});
rootMessenger.registerActionHandler(
'NetworkController:getNetworkClientById',
// @ts-expect-error Intentionally not providing a full
Expand All @@ -596,10 +612,19 @@ describe('SwapsController', () => {
);
},
);
const swapsControllerMessenger = rootMessenger.getRestricted({
name: 'SwapsController',
allowedActions: ['NetworkController:getNetworkClientById'],
allowedEvents: ['NetworkController:networkDidChange'],
const swapsControllerMessenger = new Messenger<
'SwapsController',
AllActions,
AllEvents,
RootMessenger
>({
namespace: 'SwapsController',
parent: rootMessenger,
});
rootMessenger.delegate({
messenger: swapsControllerMessenger,
actions: ['NetworkController:getNetworkClientById'],
events: ['NetworkController:networkDidChange'],
});
const controller = getSwapsController({
options: {
Expand Down Expand Up @@ -637,10 +662,9 @@ describe('SwapsController', () => {
it('does not change state if the new chain ID is not among the list of supported chain IDs', async () => {
const networkClientId = 'AAAA-BBBB-CCCC-DDDD';
const chainId = '0x99999999';
const rootMessenger = new Messenger<
NetworkControllerGetNetworkClientByIdAction,
NetworkControllerNetworkDidChangeEvent
>();
const rootMessenger: RootMessenger = new Messenger({
namespace: MOCK_ANY_NAMESPACE,
});
rootMessenger.registerActionHandler(
'NetworkController:getNetworkClientById',
// @ts-expect-error Intentionally not providing a full
Expand All @@ -658,10 +682,19 @@ describe('SwapsController', () => {
);
},
);
const swapsControllerMessenger = rootMessenger.getRestricted({
name: 'SwapsController',
allowedActions: ['NetworkController:getNetworkClientById'],
allowedEvents: ['NetworkController:networkDidChange'],
const swapsControllerMessenger = new Messenger<
'SwapsController',
AllActions,
AllEvents,
RootMessenger
>({
namespace: 'SwapsController',
parent: rootMessenger,
});
rootMessenger.delegate({
messenger: swapsControllerMessenger,
actions: ['NetworkController:getNetworkClientById'],
events: ['NetworkController:networkDidChange'],
});
const controller = getSwapsController({
options: {
Expand Down Expand Up @@ -5307,7 +5340,7 @@ describe('SwapsController', () => {
deriveStateFromMetadata(
controller.state,
controller.metadata,
'anonymous',
'includeInDebugSnapshot',
),
).toMatchInlineSnapshot(`
{
Expand Down
Loading