diff --git a/packages/keyring-controller/src/KeyringController.test.ts b/packages/keyring-controller/src/KeyringController.test.ts index 278d1ce26d2..df2f2af97d6 100644 --- a/packages/keyring-controller/src/KeyringController.test.ts +++ b/packages/keyring-controller/src/KeyringController.test.ts @@ -172,11 +172,14 @@ describe('KeyringController', () => { await withController( { cacheEncryptionKey }, async ({ controller, initialState }) => { + const initialVault = controller.state.vault; const currentState = await controller.createNewVaultAndRestore( password, uint8ArraySeed, ); expect(initialState).not.toBe(currentState); + expect(controller.state.vault).toBeDefined(); + expect(controller.state.vault).toStrictEqual(initialVault); }, ); }); @@ -269,6 +272,7 @@ describe('KeyringController', () => { expect( isValidHexAddress(currentState.keyrings[0].accounts[0]), ).toBe(true); + expect(controller.state.vault).toBeDefined(); }, ); }); @@ -280,6 +284,7 @@ describe('KeyringController', () => { expect(keyring.accounts).not.toStrictEqual([]); expect(keyring.index).toStrictEqual(0); expect(keyring.type).toStrictEqual('HD Key Tree'); + expect(controller.state.vault).toBeDefined(); }); }); }); @@ -292,6 +297,7 @@ describe('KeyringController', () => { const initialSeedWord = await controller.exportSeedPhrase( password, ); + const initialVault = controller.state.vault; const currentState = await controller.createNewVaultAndKeychain( password, ); @@ -302,6 +308,7 @@ describe('KeyringController', () => { expect(initialState).toBe(currentState); expect(currentSeedWord).toBeDefined(); expect(initialSeedWord).toBe(currentSeedWord); + expect(initialVault).toStrictEqual(controller.state.vault); }, ); }); diff --git a/packages/keyring-controller/src/KeyringController.ts b/packages/keyring-controller/src/KeyringController.ts index f600f70b0d9..9fbb49097b5 100644 --- a/packages/keyring-controller/src/KeyringController.ts +++ b/packages/keyring-controller/src/KeyringController.ts @@ -194,6 +194,9 @@ export class KeyringController extends BaseController< this.#keyring = new EthKeyringController( Object.assign({ initState: state }, config), ); + this.#keyring.store.subscribe(() => { + this.update({ vault: this.#keyring.store.getState().vault }); + }); this.defaultState = { ...this.#keyring.store.getState(),