diff --git a/yarn-project/key-store/src/new_test_key_store.test.ts b/yarn-project/key-store/src/new_test_key_store.test.ts index 045527ebc69..c67347242a8 100644 --- a/yarn-project/key-store/src/new_test_key_store.test.ts +++ b/yarn-project/key-store/src/new_test_key_store.test.ts @@ -65,7 +65,7 @@ describe('NewTestKeyStore', () => { // Manages to find master nullifer secret key for pub key const masterNullifierSecretKey = await keyStore.getMasterNullifierSecretKeyForPublicKey(masterNullifierPublicKey); expect(masterNullifierSecretKey.toString()).toMatchInlineSnapshot( - `"0x2ef5d15dd65d29546680ab72846fb071f41cb9f2a0212215e6c560e29df4ff65"`, + `"0x0fde74d5e504c73b58aad420dd72590fc6004571411e7f77c45378714195a52b"`, ); }); }); diff --git a/yarn-project/key-store/src/new_test_key_store.ts b/yarn-project/key-store/src/new_test_key_store.ts index 787040798f2..23d2028c495 100644 --- a/yarn-project/key-store/src/new_test_key_store.ts +++ b/yarn-project/key-store/src/new_test_key_store.ts @@ -226,15 +226,20 @@ export class NewTestKeyStore implements NewKeyStore { * @dev Used when feeding the master nullifier secret key to the kernel circuit for nullifier keys verification. */ public getMasterNullifierSecretKeyForPublicKey(masterNullifierPublicKey: PublicKey): Promise { - const allMapValues = Array.from(this.#keys.values()); - const masterNullifierSecretKeyBuffer = allMapValues.find(value => - value.equals(masterNullifierPublicKey.toBuffer()), - ); - if (!masterNullifierSecretKeyBuffer) { - throw new Error( - `Could not find master nullifier secret key for public key ${masterNullifierPublicKey.toString()}`, - ); + // We iterate over the map keys to find the account address that corresponds to the provided public key + for (const [key, value] of this.#keys.entries()) { + if (value.equals(masterNullifierPublicKey.toBuffer())) { + // We extract the account address from the map key + const accountAddress = key.split('-')[0]; + // We fetch the secret key and return it + const masterNullifierSecretKeyBuffer = this.#keys.get(`${accountAddress.toString()}-nsk_m`); + if (!masterNullifierSecretKeyBuffer) { + throw new Error(`Could not find master nullifier secret key for account ${accountAddress.toString()}`); + } + return Promise.resolve(GrumpkinScalar.fromBuffer(masterNullifierSecretKeyBuffer)); + } } - return Promise.resolve(GrumpkinScalar.fromBuffer(masterNullifierSecretKeyBuffer)); + + throw new Error(`Could not find master nullifier secret key for public key ${masterNullifierPublicKey.toString()}`); } }