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
5 changes: 1 addition & 4 deletions eslint-suppressions.json
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
},
"packages/address-book-controller/src/AddressBookController.ts": {
"@typescript-eslint/explicit-function-return-type": {
"count": 4
"count": 3
},
"@typescript-eslint/naming-convention": {
"count": 3
Expand All @@ -125,9 +125,6 @@
},
"@typescript-eslint/prefer-nullish-coalescing": {
"count": 6
},
"no-restricted-syntax": {
"count": 1
}
},
"packages/assets-controllers/jest.environment.js": {
Expand Down
7 changes: 7 additions & 0 deletions packages/address-book-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- Expose missing public `AddressBookController` method through its messenger ([#8183](https://github.com/MetaMask/core/pull/8183))
- The following action is now available:
- `AddressBookController:clear`
- Corresponding action type (`AddressBookControllerClearAction`) is available as well.

### Changed

- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511))
Expand Down
2 changes: 2 additions & 0 deletions packages/address-book-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"build:docs": "typedoc",
"changelog:update": "../../scripts/update-changelog.sh @metamask/address-book-controller",
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/address-book-controller",
"generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts",
"since-latest-release": "../../scripts/since-latest-release.sh",
"test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
"test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
Expand All @@ -59,6 +60,7 @@
"deepmerge": "^4.2.2",
"jest": "^29.7.0",
"ts-jest": "^29.2.5",
"tsx": "^4.20.5",
"typedoc": "^0.25.13",
"typedoc-plugin-missing-exports": "^2.0.0",
"typescript": "~5.3.3"
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
/**
* This file is auto generated by `scripts/generate-method-action-types.ts`.
* Do not edit manually.
*/

import type { AddressBookController } from './AddressBookController';

/**
* Returns all address book entries as an array.
*
* @returns Array of all address book entries.
*/
export type AddressBookControllerListAction = {
type: `AddressBookController:list`;
handler: AddressBookController['list'];
};

/**
* Remove all contract entries.
*/
export type AddressBookControllerClearAction = {
type: `AddressBookController:clear`;
handler: AddressBookController['clear'];
};

/**
* Remove a contract entry by address.
*
* @param chainId - Chain id identifies the current chain.
* @param address - Recipient address to delete.
* @returns Whether the entry was deleted.
*/
export type AddressBookControllerDeleteAction = {
type: `AddressBookController:delete`;
handler: AddressBookController['delete'];
};

/**
* Add or update a contact entry by address.
*
* @param address - Recipient address to add or update.
* @param name - Nickname to associate with this address.
* @param chainId - Chain id identifies the current chain.
* @param memo - User's note about address.
* @param addressType - Contact's address type.
* @returns Boolean indicating if the address was successfully set.
*/
export type AddressBookControllerSetAction = {
type: `AddressBookController:set`;
handler: AddressBookController['set'];
};

/**
* Union of all AddressBookController action types.
*/
export type AddressBookControllerMethodActions =
| AddressBookControllerListAction
| AddressBookControllerClearAction
| AddressBookControllerDeleteAction
| AddressBookControllerSetAction;
55 changes: 9 additions & 46 deletions packages/address-book-controller/src/AddressBookController.ts
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@ import {
import type { Messenger } from '@metamask/messenger';
import type { Hex } from '@metamask/utils';

import type { AddressBookControllerMethodActions } from './AddressBookController-method-action-types';

/**
* ContactEntry representation
*/
Expand Down Expand Up @@ -73,6 +75,8 @@ export const controllerName = 'AddressBookController';
*/
const WALLET_ACCOUNTS_CHAIN_ID = '*';

const MESSENGER_EXPOSED_METHODS = ['list', 'set', 'delete', 'clear'] as const;

/**
* The action that can be performed to get the state of the {@link AddressBookController}.
*/
Expand All @@ -81,30 +85,6 @@ export type AddressBookControllerGetStateAction = ControllerGetStateAction<
AddressBookControllerState
>;

/**
* The action that can be performed to list contacts from the {@link AddressBookController}.
*/
export type AddressBookControllerListAction = {
type: `${typeof controllerName}:list`;
handler: AddressBookController['list'];
};

/**
* The action that can be performed to set a contact in the {@link AddressBookController}.
*/
export type AddressBookControllerSetAction = {
type: `${typeof controllerName}:set`;
handler: AddressBookController['set'];
};

/**
* The action that can be performed to delete a contact from the {@link AddressBookController}.
*/
export type AddressBookControllerDeleteAction = {
type: `${typeof controllerName}:delete`;
handler: AddressBookController['delete'];
};

/**
* Event emitted when a contact is added or updated
*/
Expand All @@ -126,9 +106,7 @@ export type AddressBookControllerContactDeletedEvent = {
*/
export type AddressBookControllerActions =
| AddressBookControllerGetStateAction
| AddressBookControllerListAction
| AddressBookControllerSetAction
| AddressBookControllerDeleteAction;
| AddressBookControllerMethodActions;

/**
* The event that {@link AddressBookController} can emit.
Expand Down Expand Up @@ -206,7 +184,10 @@ export class AddressBookController extends BaseController<
state: mergedState,
});

this.#registerMessageHandlers();
this.messenger.registerMethodActionHandlers(
this,
MESSENGER_EXPOSED_METHODS,
);
}

/**
Expand Down Expand Up @@ -337,24 +318,6 @@ export class AddressBookController extends BaseController<

return true;
}

/**
* Registers message handlers for the AddressBookController.
*/
#registerMessageHandlers() {
this.messenger.registerActionHandler(
`${controllerName}:list`,
this.list.bind(this),
);
this.messenger.registerActionHandler(
`${controllerName}:set`,
this.set.bind(this),
);
this.messenger.registerActionHandler(
`${controllerName}:delete`,
this.delete.bind(this),
);
}
}

export default AddressBookController;
10 changes: 7 additions & 3 deletions packages/address-book-controller/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,6 @@ export type {
AddressBookEntry,
AddressBookControllerState,
AddressBookControllerGetStateAction,
AddressBookControllerListAction,
AddressBookControllerSetAction,
AddressBookControllerDeleteAction,
AddressBookControllerActions,
AddressBookControllerStateChangeEvent,
AddressBookControllerContactUpdatedEvent,
Expand All @@ -18,3 +15,10 @@ export {
getDefaultAddressBookControllerState,
AddressBookController,
} from './AddressBookController';

export type {
AddressBookControllerListAction,
AddressBookControllerSetAction,
AddressBookControllerDeleteAction,
AddressBookControllerClearAction,
} from './AddressBookController-method-action-types';
16 changes: 16 additions & 0 deletions packages/approval-controller/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,24 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Added

- New `addRequest()` public method ([#8183](https://github.com/MetaMask/core/pull/8183))
- Expose missing public `ApprovalController` methods through its messenger ([#8183](https://github.com/MetaMask/core/pull/8183))
- The following actions are now available:
- `ApprovalController:add`
- `ApprovalController:addAndShowApprovalRequest`
- `ApprovalController:get`
- `ApprovalController:getApprovalCount`
- `ApprovalController:getTotalApprovalCount`
- Corresponding action types (e.g. `ApprovalControllerAddAction`) are available as well.

### Changed

- **BREAKING:** Standardize names of `ApprovalController` methods ([#8183](https://github.com/MetaMask/core/pull/8183))
- All existing methods for handling requests have been renamed so they include `Request` (e.g. `clear()` -> `clearRequest()`). You will need to update usage appropriately.
- The error handling method `error()` has been renamed to include `show` (`error()` -> `showError()`). You will need to update usage appropriately.
- **BREAKING:** Rename get-state action type: `GetApprovalsState` → `ApprovalControllerGetStateAction` ([#8183](https://github.com/MetaMask/core/pull/8183))
- Upgrade `@metamask/utils` from `^11.8.1` to `^11.9.0` ([#7511](https://github.com/MetaMask/core/pull/7511))

## [8.0.0]
Expand Down
2 changes: 2 additions & 0 deletions packages/approval-controller/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
"build:docs": "typedoc",
"changelog:update": "../../scripts/update-changelog.sh @metamask/approval-controller",
"changelog:validate": "../../scripts/validate-changelog.sh @metamask/approval-controller",
"generate-method-action-types": "tsx ../../scripts/generate-method-action-types.ts",
"since-latest-release": "../../scripts/since-latest-release.sh",
"test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
"test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
Expand All @@ -60,6 +61,7 @@
"deepmerge": "^4.2.2",
"jest": "^29.7.0",
"ts-jest": "^29.2.5",
"tsx": "^4.20.5",
"typedoc": "^0.25.13",
"typedoc-plugin-missing-exports": "^2.0.0",
"typescript": "~5.3.3"
Expand Down
Loading
Loading