Skip to content
Draft
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
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -572,6 +572,7 @@ linkStyle default opacity:0.5
wallet --> controller_utils;
wallet --> keyring_controller;
wallet --> messenger;
wallet --> network_controller;
wallet --> storage_service;
```

Expand Down
1 change: 1 addition & 0 deletions packages/wallet/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,7 @@
"@metamask/controller-utils": "^12.1.0",
"@metamask/keyring-controller": "^26.0.0",
"@metamask/messenger": "^1.2.0",
"@metamask/network-controller": "^32.0.0",
"@metamask/scure-bip39": "^2.1.1",
"@metamask/storage-service": "^1.0.1",
"@metamask/utils": "^11.9.0"
Expand Down
12 changes: 12 additions & 0 deletions packages/wallet/src/Wallet.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ const TEST_PASSWORD = 'testpass';
async function setupWallet(): Promise<Wallet> {
const wallet = new Wallet({
instanceOptions: {
networkController: {
infuraProjectId: 'fake-infura-project-id',
},
storageService: {
storage: new InMemoryStorageAdapter(),
},
Expand Down Expand Up @@ -70,6 +73,9 @@ describe('Wallet', () => {
keyringController: {
encryptor: new MockEncryptor(),
},
networkController: {
infuraProjectId: 'fake-infura-project-id',
},
storageService: {
storage: new InMemoryStorageAdapter(),
},
Expand Down Expand Up @@ -112,6 +118,9 @@ describe('Wallet', () => {
},
],
instanceOptions: {
networkController: {
infuraProjectId: 'fake-infura-project-id',
},
storageService: {
storage: new InMemoryStorageAdapter(),
},
Expand Down Expand Up @@ -212,6 +221,9 @@ describe('Wallet', () => {
},
},
instanceOptions: {
networkController: {
infuraProjectId: 'fake-infura-project-id',
},
storageService: {
storage: new InMemoryStorageAdapter(),
},
Expand Down
1 change: 1 addition & 0 deletions packages/wallet/src/initialization/instances/index.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
export { approvalController } from './approval-controller/approval-controller';
export { keyringController } from './keyring-controller/keyring-controller';
export { networkController } from './network-controller/network-controller';
export { storageService } from './storage-service/storage-service';
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
import { Messenger } from '@metamask/messenger';
import {
NetworkController,
NetworkControllerMessenger,
} from '@metamask/network-controller';

import { InitializationConfiguration } from '../../types';

export const networkController: InitializationConfiguration<
NetworkController,
NetworkControllerMessenger
> = {
name: 'NetworkController',
init: ({ state, messenger, options }) =>
new NetworkController({
state,
messenger,
infuraProjectId: options.infuraProjectId,
}),
getMessenger: (parent) => {
const networkControllerMessenger: NetworkControllerMessenger =
new Messenger({
namespace: 'NetworkController',
parent,
});

parent.delegate({
messenger: networkControllerMessenger,
actions: ['ConnectivityController:getState'],
events: [],
});

return networkControllerMessenger;
},
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/**
* Per-instance options for the wallet's `NetworkController`.
*/
export type NetworkControllerInstanceOptions = {
infuraProjectId: string;
};
4 changes: 3 additions & 1 deletion packages/wallet/src/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import type {
} from './initialization/defaults';
import type { ApprovalControllerInstanceOptions } from './initialization/instances/approval-controller/types';
import type { KeyringControllerInstanceOptions } from './initialization/instances/keyring-controller/types';
import type { NetworkControllerInstanceOptions } from './initialization/instances/network-controller/types';
import type { StorageServiceInstanceOptions } from './initialization/instances/storage-service/types';
import { InitializationConfiguration } from './initialization/types';
import type { InitializationConfiguration } from './initialization/types';

export type WalletOptions = {
messenger?: RootMessenger<DefaultActions, DefaultEvents>;
Expand All @@ -23,5 +24,6 @@ export type WalletOptions = {
export type InstanceSpecificOptions = {
approvalController?: ApprovalControllerInstanceOptions;
keyringController?: KeyringControllerInstanceOptions;
networkController: NetworkControllerInstanceOptions;
storageService: StorageServiceInstanceOptions;
};
1 change: 1 addition & 0 deletions packages/wallet/tsconfig.build.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
{ "path": "../controller-utils/tsconfig.build.json" },
{ "path": "../keyring-controller/tsconfig.build.json" },
{ "path": "../messenger/tsconfig.build.json" },
{ "path": "../network-controller/tsconfig.build.json" },
{ "path": "../storage-service/tsconfig.build.json" }
],
"include": ["../../types", "./src"]
Expand Down
1 change: 1 addition & 0 deletions packages/wallet/tsconfig.json
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
{ "path": "../controller-utils/tsconfig.json" },
{ "path": "../keyring-controller/tsconfig.json" },
{ "path": "../messenger/tsconfig.json" },
{ "path": "../network-controller/tsconfig.json" },
{ "path": "../storage-service/tsconfig.json" }
],
"include": ["../../types", "./src"]
Expand Down
1 change: 1 addition & 0 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8828,6 +8828,7 @@ __metadata:
"@metamask/controller-utils": "npm:^12.1.0"
"@metamask/keyring-controller": "npm:^26.0.0"
"@metamask/messenger": "npm:^1.2.0"
"@metamask/network-controller": "npm:^32.0.0"
"@metamask/scure-bip39": "npm:^2.1.1"
"@metamask/storage-service": "npm:^1.0.1"
"@metamask/utils": "npm:^11.9.0"
Expand Down
Loading