@aztec/key-store 0.16.6 → 0.16.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,16 @@
1
1
  import { GrumpkinPrivateKey } from '@aztec/circuits.js';
2
2
  import { Grumpkin } from '@aztec/circuits.js/barretenberg';
3
+ import { AztecKVStore } from '@aztec/kv-store';
3
4
  import { KeyStore, PublicKey } from '@aztec/types';
4
5
  /**
5
6
  * TestKeyStore is an implementation of the KeyStore interface, used for managing key pairs in a testing environment.
6
7
  * It should be utilized in testing scenarios where secure key management is not required, and ease-of-use is prioritized.
7
8
  */
8
9
  export declare class TestKeyStore implements KeyStore {
10
+ #private;
9
11
  private curve;
10
- private accounts;
11
- constructor(curve: Grumpkin);
12
- addAccount(privKey: GrumpkinPrivateKey): PublicKey;
12
+ constructor(curve: Grumpkin, database: AztecKVStore);
13
+ addAccount(privKey: GrumpkinPrivateKey): Promise<PublicKey>;
13
14
  createAccount(): Promise<PublicKey>;
14
15
  getAccounts(): Promise<PublicKey[]>;
15
16
  getAccountPrivateKey(pubKey: PublicKey): Promise<GrumpkinPrivateKey>;
@@ -1 +1 @@
1
- {"version":3,"file":"test_key_store.d.ts","sourceRoot":"","sources":["../src/test_key_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAW,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5D;;;GAGG;AACH,qBAAa,YAAa,YAAW,QAAQ;IAE/B,OAAO,CAAC,KAAK;IADzB,OAAO,CAAC,QAAQ,CAAiB;gBACb,KAAK,EAAE,QAAQ;IAE5B,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,SAAS;IAalD,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC;IAMnC,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAInC,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3E;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;CASnB"}
1
+ {"version":3,"file":"test_key_store.d.ts","sourceRoot":"","sources":["../src/test_key_store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAyB,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAY,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAW,QAAQ,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAI5D;;;GAGG;AACH,qBAAa,YAAa,YAAW,QAAQ;;IAG/B,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY;IAI9C,UAAU,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,CAAC;IAM3D,aAAa,IAAI,OAAO,CAAC,SAAS,CAAC;IAMzC,WAAW,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKnC,oBAAoB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAK3E;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU;CASnB"}
@@ -1,30 +1,30 @@
1
+ var _TestKeyStore_keys;
2
+ import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
+ import { GrumpkinScalar, Point } from '@aztec/circuits.js';
1
4
  import { ConstantKeyPair } from './key_pair.js';
2
5
  /**
3
6
  * TestKeyStore is an implementation of the KeyStore interface, used for managing key pairs in a testing environment.
4
7
  * It should be utilized in testing scenarios where secure key management is not required, and ease-of-use is prioritized.
5
8
  */
6
9
  export class TestKeyStore {
7
- constructor(curve) {
10
+ constructor(curve, database) {
8
11
  this.curve = curve;
9
- this.accounts = [];
12
+ _TestKeyStore_keys.set(this, void 0);
13
+ __classPrivateFieldSet(this, _TestKeyStore_keys, database.createMap('key_store'), "f");
10
14
  }
11
- addAccount(privKey) {
15
+ async addAccount(privKey) {
12
16
  const keyPair = ConstantKeyPair.fromPrivateKey(this.curve, privKey);
13
- // check if private key has already been used
14
- const account = this.accounts.find(a => a.getPublicKey().equals(keyPair.getPublicKey()));
15
- if (account) {
16
- return account.getPublicKey();
17
- }
18
- this.accounts.push(keyPair);
17
+ await __classPrivateFieldGet(this, _TestKeyStore_keys, "f").setIfNotExists(keyPair.getPublicKey().toString(), keyPair.getPrivateKey().toBuffer());
19
18
  return keyPair.getPublicKey();
20
19
  }
21
- createAccount() {
20
+ async createAccount() {
22
21
  const keyPair = ConstantKeyPair.random(this.curve);
23
- this.accounts.push(keyPair);
24
- return Promise.resolve(keyPair.getPublicKey());
22
+ await __classPrivateFieldGet(this, _TestKeyStore_keys, "f").set(keyPair.getPublicKey().toString(), keyPair.getPrivateKey().toBuffer());
23
+ return keyPair.getPublicKey();
25
24
  }
26
25
  getAccounts() {
27
- return Promise.resolve(this.accounts.map(a => a.getPublicKey()));
26
+ const range = Array.from(__classPrivateFieldGet(this, _TestKeyStore_keys, "f").keys());
27
+ return Promise.resolve(range.map(key => Point.fromString(key)));
28
28
  }
29
29
  getAccountPrivateKey(pubKey) {
30
30
  const account = this.getAccount(pubKey);
@@ -39,11 +39,12 @@ export class TestKeyStore {
39
39
  * @returns The KeyPair object associated with the provided key.
40
40
  */
41
41
  getAccount(pubKey) {
42
- const account = this.accounts.find(a => a.getPublicKey().equals(pubKey));
43
- if (!account) {
42
+ const privKey = __classPrivateFieldGet(this, _TestKeyStore_keys, "f").get(pubKey.toString());
43
+ if (!privKey) {
44
44
  throw new Error('Unknown account.\nSee docs for context: https://docs.aztec.network/dev_docs/contracts/common_errors#unknown-contract-error');
45
45
  }
46
- return account;
46
+ return ConstantKeyPair.fromPrivateKey(this.curve, GrumpkinScalar.fromBuffer(privKey));
47
47
  }
48
48
  }
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9rZXlfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVzdF9rZXlfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVoRDs7O0dBR0c7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUV2QixZQUFvQixLQUFlO1FBQWYsVUFBSyxHQUFMLEtBQUssQ0FBVTtRQUQzQixhQUFRLEdBQWMsRUFBRSxDQUFDO0lBQ0ssQ0FBQztJQUVoQyxVQUFVLENBQUMsT0FBMkI7UUFDM0MsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXBFLDZDQUE2QztRQUM3QyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN6RixJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQy9CO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLGFBQWE7UUFDbEIsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUIsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFTSxXQUFXO1FBQ2hCLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWlCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssVUFBVSxDQUFDLE1BQWlCO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDWixNQUFNLElBQUksS0FBSyxDQUNiLDRIQUE0SCxDQUM3SCxDQUFDO1NBQ0g7UUFDRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YifQ==
49
+ _TestKeyStore_keys = new WeakMap();
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVzdF9rZXlfc3RvcmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdGVzdF9rZXlfc3RvcmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQXNCLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUsvRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWhEOzs7R0FHRztBQUNILE1BQU0sT0FBTyxZQUFZO0lBR3ZCLFlBQW9CLEtBQWUsRUFBRSxRQUFzQjtRQUF2QyxVQUFLLEdBQUwsS0FBSyxDQUFVO1FBRm5DLHFDQUFnQztRQUc5Qix1QkFBQSxJQUFJLHNCQUFTLFFBQVEsQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLE1BQUEsQ0FBQztJQUMvQyxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUEyQjtRQUNqRCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDcEUsTUFBTSx1QkFBQSxJQUFJLDBCQUFNLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RyxPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sS0FBSyxDQUFDLGFBQWE7UUFDeEIsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDbkQsTUFBTSx1QkFBQSxJQUFJLDBCQUFNLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUM1RixPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRU0sV0FBVztRQUNoQixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLHVCQUFBLElBQUksMEJBQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVNLG9CQUFvQixDQUFDLE1BQWlCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssVUFBVSxDQUFDLE1BQWlCO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLHVCQUFBLElBQUksMEJBQU0sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNaLE1BQU0sSUFBSSxLQUFLLENBQ2IsNEhBQTRILENBQzdILENBQUM7U0FDSDtRQUNELE9BQU8sZUFBZSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0NBQ0YifQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aztec/key-store",
3
- "version": "0.16.6",
3
+ "version": "0.16.8",
4
4
  "type": "module",
5
5
  "exports": "./dest/index.js",
6
6
  "typedocOptions": {
@@ -30,9 +30,10 @@
30
30
  "rootDir": "./src"
31
31
  },
32
32
  "dependencies": {
33
- "@aztec/circuits.js": "0.16.6",
34
- "@aztec/foundation": "0.16.6",
35
- "@aztec/types": "0.16.6",
33
+ "@aztec/circuits.js": "0.16.8",
34
+ "@aztec/foundation": "0.16.8",
35
+ "@aztec/kv-store": "0.16.8",
36
+ "@aztec/types": "0.16.8",
36
37
  "tslib": "^2.4.0"
37
38
  },
38
39
  "devDependencies": {