@aztec/foundation 2.1.0-rc.9 → 3.0.0-devnet.2

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.
Files changed (87) hide show
  1. package/dest/config/env_var.d.ts +1 -1
  2. package/dest/config/env_var.d.ts.map +1 -1
  3. package/dest/config/network_name.d.ts +1 -1
  4. package/dest/config/network_name.d.ts.map +1 -1
  5. package/dest/config/network_name.js +6 -2
  6. package/dest/crypto/aes128/index.d.ts.map +1 -1
  7. package/dest/crypto/aes128/index.js +23 -6
  8. package/dest/crypto/ecdsa/index.d.ts.map +1 -1
  9. package/dest/crypto/ecdsa/index.js +66 -48
  10. package/dest/crypto/grumpkin/index.d.ts.map +1 -1
  11. package/dest/crypto/grumpkin/index.js +64 -43
  12. package/dest/crypto/keys/index.js +9 -4
  13. package/dest/crypto/pedersen/pedersen.wasm.d.ts.map +1 -1
  14. package/dest/crypto/pedersen/pedersen.wasm.js +29 -13
  15. package/dest/crypto/poseidon/index.d.ts.map +1 -1
  16. package/dest/crypto/poseidon/index.js +42 -17
  17. package/dest/crypto/schnorr/index.d.ts.map +1 -1
  18. package/dest/crypto/schnorr/index.js +35 -37
  19. package/dest/crypto/secp256k1/index.d.ts.map +1 -1
  20. package/dest/crypto/secp256k1/index.js +29 -18
  21. package/dest/crypto/secp256k1-signer/utils.d.ts +8 -0
  22. package/dest/crypto/secp256k1-signer/utils.d.ts.map +1 -1
  23. package/dest/crypto/secp256k1-signer/utils.js +14 -0
  24. package/dest/crypto/sync/index.js +3 -1
  25. package/dest/crypto/sync/pedersen/index.d.ts.map +1 -1
  26. package/dest/crypto/sync/pedersen/index.js +17 -10
  27. package/dest/crypto/sync/poseidon/index.d.ts.map +1 -1
  28. package/dest/crypto/sync/poseidon/index.js +27 -12
  29. package/dest/fields/bls12_point.d.ts +7 -7
  30. package/dest/fields/bls12_point.js +7 -7
  31. package/dest/fields/fields.d.ts.map +1 -1
  32. package/dest/fields/fields.js +9 -10
  33. package/dest/index.d.ts +1 -0
  34. package/dest/index.d.ts.map +1 -1
  35. package/dest/index.js +1 -0
  36. package/dest/json-rpc/client/safe_json_rpc_client.d.ts.map +1 -1
  37. package/dest/json-rpc/client/safe_json_rpc_client.js +9 -0
  38. package/dest/log/pino-logger.d.ts.map +1 -1
  39. package/dest/log/pino-logger.js +0 -1
  40. package/dest/profiler/index.d.ts +2 -0
  41. package/dest/profiler/index.d.ts.map +1 -0
  42. package/dest/profiler/index.js +1 -0
  43. package/dest/profiler/profiler.d.ts +8 -0
  44. package/dest/profiler/profiler.d.ts.map +1 -0
  45. package/dest/profiler/profiler.js +97 -0
  46. package/dest/testing/formatting.d.ts +4 -0
  47. package/dest/testing/formatting.d.ts.map +1 -0
  48. package/dest/testing/formatting.js +3 -0
  49. package/dest/testing/index.d.ts +1 -0
  50. package/dest/testing/index.d.ts.map +1 -1
  51. package/dest/testing/index.js +1 -0
  52. package/dest/trees/unbalanced_merkle_tree.d.ts +0 -1
  53. package/dest/trees/unbalanced_merkle_tree.d.ts.map +1 -1
  54. package/dest/trees/unbalanced_merkle_tree.js +1 -1
  55. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts +25 -22
  56. package/dest/trees/unbalanced_merkle_tree_calculator.d.ts.map +1 -1
  57. package/dest/trees/unbalanced_merkle_tree_calculator.js +124 -94
  58. package/dest/trees/unbalanced_tree_store.d.ts +1 -0
  59. package/dest/trees/unbalanced_tree_store.d.ts.map +1 -1
  60. package/dest/trees/unbalanced_tree_store.js +6 -0
  61. package/package.json +4 -3
  62. package/src/config/env_var.ts +2 -1
  63. package/src/config/network_name.ts +14 -3
  64. package/src/crypto/aes128/index.ts +19 -10
  65. package/src/crypto/ecdsa/index.ts +40 -37
  66. package/src/crypto/grumpkin/index.ts +29 -31
  67. package/src/crypto/keys/index.ts +5 -5
  68. package/src/crypto/pedersen/pedersen.wasm.ts +22 -18
  69. package/src/crypto/poseidon/index.ts +32 -24
  70. package/src/crypto/schnorr/index.ts +20 -17
  71. package/src/crypto/secp256k1/index.ts +15 -11
  72. package/src/crypto/secp256k1-signer/utils.ts +16 -0
  73. package/src/crypto/sync/index.ts +1 -1
  74. package/src/crypto/sync/pedersen/index.ts +16 -15
  75. package/src/crypto/sync/poseidon/index.ts +27 -22
  76. package/src/fields/bls12_point.ts +7 -7
  77. package/src/fields/fields.ts +5 -6
  78. package/src/index.ts +1 -0
  79. package/src/json-rpc/client/safe_json_rpc_client.ts +9 -0
  80. package/src/log/pino-logger.ts +0 -1
  81. package/src/profiler/index.ts +1 -0
  82. package/src/profiler/profiler.ts +125 -0
  83. package/src/testing/formatting.ts +3 -0
  84. package/src/testing/index.ts +1 -0
  85. package/src/trees/unbalanced_merkle_tree.ts +1 -1
  86. package/src/trees/unbalanced_merkle_tree_calculator.ts +140 -92
  87. package/src/trees/unbalanced_tree_store.ts +5 -1
@@ -1,4 +1,4 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } from '@aztec/bb.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Fr } from '../../fields/fields.js';
3
3
  import { serializeToFields } from '../../serialize/serialize.js';
4
4
  /**
@@ -7,9 +7,14 @@ import { serializeToFields } from '../../serialize/serialize.js';
7
7
  * @returns The poseidon hash.
8
8
  */ export async function poseidon2Hash(input) {
9
9
  const inputFields = serializeToFields(input);
10
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
11
- const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
12
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
10
+ await BarretenbergSync.initSingleton({
11
+ wasmPath: process.env.BB_WASM_PATH
12
+ });
13
+ const api = BarretenbergSync.getSingleton();
14
+ const response = api.poseidon2Hash({
15
+ inputs: inputFields.map((i)=>i.toBuffer())
16
+ });
17
+ return Fr.fromBuffer(Buffer.from(response.hash));
13
18
  }
14
19
  /**
15
20
  * Create a poseidon hash (field) from an array of input fields and a domain separator.
@@ -19,15 +24,25 @@ import { serializeToFields } from '../../serialize/serialize.js';
19
24
  */ export async function poseidon2HashWithSeparator(input, separator) {
20
25
  const inputFields = serializeToFields(input);
21
26
  inputFields.unshift(new Fr(separator));
22
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
23
- const hash = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
24
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
27
+ await BarretenbergSync.initSingleton({
28
+ wasmPath: process.env.BB_WASM_PATH
29
+ });
30
+ const api = BarretenbergSync.getSingleton();
31
+ const response = api.poseidon2Hash({
32
+ inputs: inputFields.map((i)=>i.toBuffer())
33
+ });
34
+ return Fr.fromBuffer(Buffer.from(response.hash));
25
35
  }
26
36
  export async function poseidon2HashAccumulate(input) {
27
37
  const inputFields = serializeToFields(input);
28
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
29
- const result = api.poseidon2HashAccumulate(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
30
- return Fr.fromBuffer(Buffer.from(result.toBuffer()));
38
+ await BarretenbergSync.initSingleton({
39
+ wasmPath: process.env.BB_WASM_PATH
40
+ });
41
+ const api = BarretenbergSync.getSingleton();
42
+ const response = api.poseidon2HashAccumulate({
43
+ inputs: inputFields.map((i)=>i.toBuffer())
44
+ });
45
+ return Fr.fromBuffer(Buffer.from(response.hash));
31
46
  }
32
47
  /**
33
48
  * Runs a Poseidon2 permutation.
@@ -37,11 +52,16 @@ export async function poseidon2HashAccumulate(input) {
37
52
  const inputFields = serializeToFields(input);
38
53
  // We'd like this assertion but it's not possible to use it in the browser.
39
54
  // assert(input.length === 4, 'Input state must be of size 4');
40
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
41
- const res = api.poseidon2Permutation(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
55
+ await BarretenbergSync.initSingleton({
56
+ wasmPath: process.env.BB_WASM_PATH
57
+ });
58
+ const api = BarretenbergSync.getSingleton();
59
+ const response = api.poseidon2Permutation({
60
+ inputs: inputFields.map((i)=>i.toBuffer())
61
+ });
42
62
  // We'd like this assertion but it's not possible to use it in the browser.
43
- // assert(res.length === 4, 'Output state must be of size 4');
44
- return res.map((o)=>Fr.fromBuffer(Buffer.from(o.toBuffer())));
63
+ // assert(response.outputs.length === 4, 'Output state must be of size 4');
64
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
45
65
  }
46
66
  export async function poseidon2HashBytes(input) {
47
67
  const inputFields = [];
@@ -52,7 +72,12 @@ export async function poseidon2HashBytes(input) {
52
72
  fieldBytes.reverse();
53
73
  inputFields.push(Fr.fromBuffer(fieldBytes));
54
74
  }
55
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
56
- const res = api.poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
57
- return Fr.fromBuffer(Buffer.from(res.toBuffer()));
75
+ await BarretenbergSync.initSingleton({
76
+ wasmPath: process.env.BB_WASM_PATH
77
+ });
78
+ const api = BarretenbergSync.getSingleton();
79
+ const response = api.poseidon2Hash({
80
+ inputs: inputFields.map((i)=>i.toBuffer())
81
+ });
82
+ return Fr.fromBuffer(Buffer.from(response.hash));
58
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAItE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAMzE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc;IAS3E;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB;CAQnF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/schnorr/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAEtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,cAAc,gBAAgB,CAAC;AAE/B;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;OAIG;IACU,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC;IAOzE;;;;;OAKG;IACU,kBAAkB,CAAC,GAAG,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc;IAU3E;;;;;;OAMG;IACU,eAAe,CAAC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,gBAAgB;CAWnF"}
@@ -1,7 +1,5 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Point } from '@aztec/foundation/fields';
3
- import { numToInt32BE } from '@aztec/foundation/serialize';
4
- import { concatenateUint8Arrays } from '../serialize.js';
5
3
  import { SchnorrSignature } from './signature.js';
6
4
  export * from './signature.js';
7
5
  /**
@@ -12,13 +10,17 @@ export * from './signature.js';
12
10
  * @param privateKey - The private key.
13
11
  * @returns A grumpkin public key.
14
12
  */ async computePublicKey(privateKey) {
15
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
16
- const [result] = api.getWasm().callWasmExport('schnorr_compute_public_key', [
17
- privateKey.toBuffer()
18
- ], [
19
- 64
20
- ]);
21
- return Point.fromBuffer(Buffer.from(result));
13
+ await BarretenbergSync.initSingleton({
14
+ wasmPath: process.env.BB_WASM_PATH
15
+ });
16
+ const api = BarretenbergSync.getSingleton();
17
+ const response = api.schnorrComputePublicKey({
18
+ privateKey: privateKey.toBuffer()
19
+ });
20
+ return Point.fromBuffer(Buffer.concat([
21
+ Buffer.from(response.publicKey.x),
22
+ Buffer.from(response.publicKey.y)
23
+ ]));
22
24
  }
23
25
  /**
24
26
  * Constructs a Schnorr signature given a msg and a private key.
@@ -26,21 +28,17 @@ export * from './signature.js';
26
28
  * @param privateKey - The private key of the signer.
27
29
  * @returns A Schnorr signature of the form (s, e).
28
30
  */ async constructSignature(msg, privateKey) {
29
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
30
- const messageArray = concatenateUint8Arrays([
31
- numToInt32BE(msg.length),
32
- msg
33
- ]);
34
- const [s, e] = api.getWasm().callWasmExport('schnorr_construct_signature', [
35
- messageArray,
36
- privateKey.toBuffer()
37
- ], [
38
- 32,
39
- 32
40
- ]);
31
+ await BarretenbergSync.initSingleton({
32
+ wasmPath: process.env.BB_WASM_PATH
33
+ });
34
+ const api = BarretenbergSync.getSingleton();
35
+ const response = api.schnorrConstructSignature({
36
+ message: msg,
37
+ privateKey: privateKey.toBuffer()
38
+ });
41
39
  return new SchnorrSignature(Buffer.from([
42
- ...s,
43
- ...e
40
+ ...response.s,
41
+ ...response.e
44
42
  ]));
45
43
  }
46
44
  /**
@@ -50,19 +48,19 @@ export * from './signature.js';
50
48
  * @param sig - The Schnorr signature.
51
49
  * @returns True or false.
52
50
  */ async verifySignature(msg, pubKey, sig) {
53
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
54
- const messageArray = concatenateUint8Arrays([
55
- numToInt32BE(msg.length),
56
- msg
57
- ]);
58
- const [result] = api.getWasm().callWasmExport('schnorr_verify_signature', [
59
- messageArray,
60
- pubKey.toBuffer(),
61
- sig.s,
62
- sig.e
63
- ], [
64
- 1
65
- ]);
66
- return result[0] === 1;
51
+ await BarretenbergSync.initSingleton({
52
+ wasmPath: process.env.BB_WASM_PATH
53
+ });
54
+ const api = BarretenbergSync.getSingleton();
55
+ const response = api.schnorrVerifySignature({
56
+ message: msg,
57
+ publicKey: {
58
+ x: pubKey.x.toBuffer(),
59
+ y: pubKey.y.toBuffer()
60
+ },
61
+ s: sig.s,
62
+ e: sig.e
63
+ });
64
+ return response.verified;
67
65
  }
68
66
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,SAAS;IAEpB,MAAM,CAAC,SAAS,sBAKb;IAEH;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAMtD;;;OAGG;IACU,WAAW;IAMxB;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAOpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,qBAAa,SAAS;IAEpB,MAAM,CAAC,SAAS,sBAKb;IAEH;;;OAGG;IACI,SAAS,IAAI,MAAM;IAI1B;;;;;OAKG;IACU,GAAG,CAAC,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU;IAUtD;;;OAGG;IACU,WAAW;IAOxB;;;;OAIG;IACU,mBAAmB,CAAC,UAAU,EAAE,MAAM;CAMpD"}
@@ -81,36 +81,47 @@ import { BarretenbergSync } from '@aztec/bb.js';
81
81
  * @param scalar - Scalar to multiply by.
82
82
  * @returns Result of the multiplication.
83
83
  */ async mul(point, scalar) {
84
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
85
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__mul', [
86
- point,
84
+ await BarretenbergSync.initSingleton({
85
+ wasmPath: process.env.BB_WASM_PATH
86
+ });
87
+ const api = BarretenbergSync.getSingleton();
88
+ const response = api.secp256k1Mul({
89
+ point: {
90
+ x: point.subarray(0, 32),
91
+ y: point.subarray(32, 64)
92
+ },
87
93
  scalar
88
- ], [
89
- 64
94
+ });
95
+ return Buffer.concat([
96
+ Buffer.from(response.point.x),
97
+ Buffer.from(response.point.y)
90
98
  ]);
91
- return Buffer.from(result);
92
99
  }
93
100
  /**
94
101
  * Gets a random field element.
95
102
  * @returns Random field element.
96
103
  */ async getRandomFr() {
97
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
98
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__get_random_scalar_mod_circuit_modulus', [], [
99
- 32
100
- ]);
101
- return Buffer.from(result);
104
+ await BarretenbergSync.initSingleton({
105
+ wasmPath: process.env.BB_WASM_PATH
106
+ });
107
+ const api = BarretenbergSync.getSingleton();
108
+ const response = api.secp256k1GetRandomFr({
109
+ dummy: 0
110
+ });
111
+ return Buffer.from(response.value);
102
112
  }
103
113
  /**
104
114
  * Converts a 512 bits long buffer to a field.
105
115
  * @param uint512Buf - The buffer to convert.
106
116
  * @returns Buffer representation of the field element.
107
117
  */ async reduce512BufferToFr(uint512Buf) {
108
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
109
- const [result] = api.getWasm().callWasmExport('ecc_secp256k1__reduce512_buffer_mod_circuit_modulus', [
110
- uint512Buf
111
- ], [
112
- 32
113
- ]);
114
- return Buffer.from(result);
118
+ await BarretenbergSync.initSingleton({
119
+ wasmPath: process.env.BB_WASM_PATH
120
+ });
121
+ const api = BarretenbergSync.getSingleton();
122
+ const response = api.secp256k1Reduce512({
123
+ input: uint512Buf
124
+ });
125
+ return Buffer.from(response.value);
115
126
  }
116
127
  }
@@ -19,8 +19,16 @@ export declare function addressFromPrivateKey(privateKey: Buffer): EthAddress;
19
19
  * @param hash - The hash to recover the address from.
20
20
  * @param signature - The signature to recover the address from.
21
21
  * @returns The address.
22
+ * @throws Error if signature recovery fails.
22
23
  */
23
24
  export declare function recoverAddress(hash: Buffer32, signature: Signature): EthAddress;
25
+ /**
26
+ * Safely attempts to recover an address from a hash and a signature.
27
+ * @param hash - The hash to recover the address from.
28
+ * @param signature - The signature to recover the address from.
29
+ * @returns The address if recovery succeeds, undefined otherwise.
30
+ */
31
+ export declare function tryRecoverAddress(hash: Buffer32, signature: Signature): EthAddress | undefined;
24
32
  /**
25
33
  * @attribution - viem
26
34
  * Converts a yParityOrV value to a recovery bit.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAMjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,SAW/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAM7E"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/crypto/secp256k1-signer/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAC;AAMjE,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,QAAQ,GAAG,QAAQ,CAG7D;AAYD;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,CAGpE;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,CAS/E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAO9F;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,SAW/C;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,aAGhE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,GAAG,MAAM,CAM7E"}
@@ -40,6 +40,7 @@ export function makeEthSignDigest(message) {
40
40
  * @param hash - The hash to recover the address from.
41
41
  * @param signature - The signature to recover the address from.
42
42
  * @returns The address.
43
+ * @throws Error if signature recovery fails.
43
44
  */ export function recoverAddress(hash, signature) {
44
45
  try {
45
46
  const publicKey = recoverPublicKey(hash, signature);
@@ -48,6 +49,19 @@ export function makeEthSignDigest(message) {
48
49
  throw new Error(`Error recovering Ethereum address from hash ${hash.toString()} and signature ${signature.toString()}: ${err}`);
49
50
  }
50
51
  }
52
+ /**
53
+ * Safely attempts to recover an address from a hash and a signature.
54
+ * @param hash - The hash to recover the address from.
55
+ * @param signature - The signature to recover the address from.
56
+ * @returns The address if recovery succeeds, undefined otherwise.
57
+ */ export function tryRecoverAddress(hash, signature) {
58
+ try {
59
+ const publicKey = recoverPublicKey(hash, signature);
60
+ return publicKeyToAddress(publicKey);
61
+ } catch {
62
+ return undefined;
63
+ }
64
+ }
51
65
  /**
52
66
  * @attribution - viem
53
67
  * Converts a yParityOrV value to a recovery bit.
@@ -1,4 +1,6 @@
1
1
  import { BarretenbergSync } from '@aztec/bb.js';
2
2
  export * from './poseidon/index.js';
3
3
  export * from './pedersen/index.js';
4
- await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
4
+ await BarretenbergSync.initSingleton({
5
+ wasmPath: process.env.BB_WASM_PATH
6
+ });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/pedersen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,yBAYzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,uBAG1D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/pedersen/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;GAGG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,MAAM,SAAI,yBAUzD;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,KAAK,SAAI,GAAG,EAAE,CAO9D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,uBAM1D"}
@@ -1,4 +1,4 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } from '@aztec/bb.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Fr } from '../../../fields/fields.js';
3
3
  import { serializeToFields } from '../../../serialize/serialize.js';
4
4
  /**
@@ -12,12 +12,13 @@ import { serializeToFields } from '../../../serialize/serialize.js';
12
12
  Buffer.alloc(32 - i.length, 0),
13
13
  i
14
14
  ]) : i);
15
- const point = BarretenbergSync.getSingleton().pedersenCommit(input.map((i)=>new FrBarretenberg(i)), offset);
16
- // toBuffer returns Uint8Arrays (browser/worker-boundary friendly).
17
- // TODO: rename toTypedArray()?
15
+ const response = BarretenbergSync.getSingleton().pedersenCommit({
16
+ inputs: input,
17
+ hashIndex: offset
18
+ });
18
19
  return [
19
- Buffer.from(point.x.toBuffer()),
20
- Buffer.from(point.y.toBuffer())
20
+ Buffer.from(response.point.x),
21
+ Buffer.from(response.point.y)
21
22
  ];
22
23
  }
23
24
  /**
@@ -27,12 +28,18 @@ import { serializeToFields } from '../../../serialize/serialize.js';
27
28
  * @returns The pedersen hash.
28
29
  */ export function pedersenHash(input, index = 0) {
29
30
  const inputFields = serializeToFields(input);
30
- const hash = BarretenbergSync.getSingleton().pedersenHash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())), index);
31
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
31
+ const response = BarretenbergSync.getSingleton().pedersenHash({
32
+ inputs: inputFields.map((i)=>i.toBuffer()),
33
+ hashIndex: index
34
+ });
35
+ return Fr.fromBuffer(Buffer.from(response.hash));
32
36
  }
33
37
  /**
34
38
  * Create a pedersen hash from an arbitrary length buffer.
35
39
  */ export function pedersenHashBuffer(input, index = 0) {
36
- const result = BarretenbergSync.getSingleton().pedersenHashBuffer(input, index);
37
- return Buffer.from(result.toBuffer());
40
+ const response = BarretenbergSync.getSingleton().pedersenHashBuffer({
41
+ input,
42
+ hashIndex: index
43
+ });
44
+ return Buffer.from(response.hash);
38
45
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAMpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CAQpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAM9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAU7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAgBpD"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/crypto/sync/poseidon/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,2BAA2B,CAAC;AAC/C,OAAO,EAAE,KAAK,SAAS,EAAqB,MAAM,iCAAiC,CAAC;AAEpF;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAOpD;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,EAAE,CASpF;AAED,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,CAO9D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,EAAE,EAAE,CAW7D;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,EAAE,CAiBpD"}
@@ -1,4 +1,4 @@
1
- import { BarretenbergSync, Fr as FrBarretenberg } from '@aztec/bb.js';
1
+ import { BarretenbergSync } from '@aztec/bb.js';
2
2
  import { Fr } from '../../../fields/fields.js';
3
3
  import { serializeToFields } from '../../../serialize/serialize.js';
4
4
  /**
@@ -7,8 +7,11 @@ import { serializeToFields } from '../../../serialize/serialize.js';
7
7
  * @returns The poseidon hash.
8
8
  */ export function poseidon2Hash(input) {
9
9
  const inputFields = serializeToFields(input);
10
- const hash = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
11
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
10
+ const api = BarretenbergSync.getSingleton();
11
+ const response = api.poseidon2Hash({
12
+ inputs: inputFields.map((i)=>i.toBuffer())
13
+ });
14
+ return Fr.fromBuffer(Buffer.from(response.hash));
12
15
  }
13
16
  /**
14
17
  * Create a poseidon hash (field) from an array of input fields and a domain separator.
@@ -18,13 +21,19 @@ import { serializeToFields } from '../../../serialize/serialize.js';
18
21
  */ export function poseidon2HashWithSeparator(input, separator) {
19
22
  const inputFields = serializeToFields(input);
20
23
  inputFields.unshift(new Fr(separator));
21
- const hash = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
22
- return Fr.fromBuffer(Buffer.from(hash.toBuffer()));
24
+ const api = BarretenbergSync.getSingleton();
25
+ const response = api.poseidon2Hash({
26
+ inputs: inputFields.map((i)=>i.toBuffer())
27
+ });
28
+ return Fr.fromBuffer(Buffer.from(response.hash));
23
29
  }
24
30
  export function poseidon2HashAccumulate(input) {
25
31
  const inputFields = serializeToFields(input);
26
- const result = BarretenbergSync.getSingleton().poseidon2HashAccumulate(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
27
- return Fr.fromBuffer(Buffer.from(result.toBuffer()));
32
+ const api = BarretenbergSync.getSingleton();
33
+ const response = api.poseidon2HashAccumulate({
34
+ inputs: inputFields.map((i)=>i.toBuffer())
35
+ });
36
+ return Fr.fromBuffer(Buffer.from(response.hash));
28
37
  }
29
38
  /**
30
39
  * Runs a Poseidon2 permutation.
@@ -34,10 +43,13 @@ export function poseidon2HashAccumulate(input) {
34
43
  const inputFields = serializeToFields(input);
35
44
  // We'd like this assertion but it's not possible to use it in the browser.
36
45
  // assert(input.length === 4, 'Input state must be of size 4');
37
- const res = BarretenbergSync.getSingleton().poseidon2Permutation(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
46
+ const api = BarretenbergSync.getSingleton();
47
+ const response = api.poseidon2Permutation({
48
+ inputs: inputFields.map((i)=>i.toBuffer())
49
+ });
38
50
  // We'd like this assertion but it's not possible to use it in the browser.
39
- // assert(res.length === 4, 'Output state must be of size 4');
40
- return res.map((o)=>Fr.fromBuffer(Buffer.from(o.toBuffer())));
51
+ // assert(response.outputs.length === 4, 'Output state must be of size 4');
52
+ return response.outputs.map((o)=>Fr.fromBuffer(Buffer.from(o)));
41
53
  }
42
54
  export function poseidon2HashBytes(input) {
43
55
  const inputFields = [];
@@ -48,6 +60,9 @@ export function poseidon2HashBytes(input) {
48
60
  fieldBytes.reverse();
49
61
  inputFields.push(Fr.fromBuffer(fieldBytes));
50
62
  }
51
- const res = BarretenbergSync.getSingleton().poseidon2Hash(inputFields.map((i)=>new FrBarretenberg(i.toBuffer())));
52
- return Fr.fromBuffer(Buffer.from(res.toBuffer()));
63
+ const api = BarretenbergSync.getSingleton();
64
+ const response = api.poseidon2Hash({
65
+ inputs: inputFields.map((i)=>i.toBuffer())
66
+ });
67
+ return Fr.fromBuffer(Buffer.from(response.hash));
53
68
  }
@@ -89,13 +89,13 @@ export declare class BLS12Point {
89
89
  */
90
90
  static decompress(buffer: Buffer): BLS12Point;
91
91
  /**
92
- * Converts a Point to two BN254 Fr elements by storing its compressed form as:
93
- * +------------------+------------------+
94
- * | Field Element 1 | Field Element 2 |
95
- * | [bytes 0-31] | [bytes 32-47] |
96
- * +------------------+------------------+
97
- * | 32 bytes | 16 bytes |
98
- * +------------------+------------------+
92
+ * Converts a Point to two BN254 Fr elements by storing its compressed form (48 bytes) as:
93
+ * +-------------------+------------------------+
94
+ * | 31 bytes | 17 bytes |
95
+ * +-------------------+------------------------+
96
+ * | Field Element 1 | Field Element 2 |
97
+ * | [0][bytes 0-30] | [0...0][bytes 31-47] |
98
+ * +-------------------+------------------------+
99
99
  * Used in the rollup circuits to store blob commitments in the native field type. See blob.ts.
100
100
  * @param point - A BLS12Point instance.
101
101
  * @returns The point fields.
@@ -145,13 +145,13 @@ import { Fr } from './fields.js';
145
145
  }
146
146
  }
147
147
  /**
148
- * Converts a Point to two BN254 Fr elements by storing its compressed form as:
149
- * +------------------+------------------+
150
- * | Field Element 1 | Field Element 2 |
151
- * | [bytes 0-31] | [bytes 32-47] |
152
- * +------------------+------------------+
153
- * | 32 bytes | 16 bytes |
154
- * +------------------+------------------+
148
+ * Converts a Point to two BN254 Fr elements by storing its compressed form (48 bytes) as:
149
+ * +-------------------+------------------------+
150
+ * | 31 bytes | 17 bytes |
151
+ * +-------------------+------------------------+
152
+ * | Field Element 1 | Field Element 2 |
153
+ * | [0][bytes 0-30] | [0...0][bytes 31-47] |
154
+ * +-------------------+------------------------+
155
155
  * Used in the rollup circuits to store blob commitments in the native field type. See blob.ts.
156
156
  * @param point - A BLS12Point instance.
157
157
  * @returns The point fields.
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/fields/fields.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK/B,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAO7D;;GAEG;AACH,KAAK,YAAY,CAAC,CAAC,SAAS,SAAS,IAAI;IACvC,KAAK,KAAK,EAAE,GAAG,GAAG,CAAC,CAAC;IACpB;;OAEG;IACH,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;;;;GAKG;AACH,uBAAe,SAAS;IACtB,MAAM,CAAC,aAAa,SAAM;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,CAAS;IAE1B;;;SAGK;IACL,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,iCAAiC;IACjC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,SAAS,aAAa,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM;IAwB3E,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,MAAM;IAEpC;;OAEG;IACH,QAAQ,IAAI,MAAM;IAOlB,QAAQ,IAAI,KAAK,MAAM,EAAE;IAIzB,QAAQ,IAAI,MAAM;IAUlB,MAAM,IAAI,OAAO;IAIjB;;;OAGG;IACH,QAAQ,IAAI,MAAM;IAQlB;;;OAGG;IACH,cAAc,IAAI,MAAM;IAKxB,aAAa,IAAI,MAAM;IAKvB,MAAM,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAI/B,EAAE,CAAC,GAAG,EAAE,SAAS,GAAG,OAAO;IAI3B,GAAG,CAAC,GAAG,EAAE,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;IAM/B,MAAM,IAAI,OAAO;IAIjB,OAAO,IAAI,OAAO;IAIlB,cAAc,IAAI,MAAM;IAIxB,OAAO;CAGR;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,YAAY,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,KAGhG;AAiCD,+DAA+D;AAC/D,MAAM,WAAW,EAAE;IACjB,aAAa;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,EAAG,SAAQ,SAAS;IAC/B,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,GAAG,KAAc;IACxB,MAAM,CAAC,OAAO,SAAuE;IACrF,MAAM,CAAC,eAAe,KAA6B;gBAEvC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM;IAI1D,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,SAAS,CAAC,OAAO;IAIjB,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,IAAI;IAIX,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE;IAIvB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAI/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAW7B;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAIhC,iBAAiB;IAEjB,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX,MAAM;IAIN,MAAM;IAIN,GAAG,CAAC,GAAG,EAAE,EAAE;IAKX,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX,GAAG,CAAC,GAAG,EAAE,EAAE;IAUX,IAAI,CAAC,GAAG,EAAE,EAAE;IAQZ;;;OAGG;IACG,IAAI,IAAI,OAAO,CAAC,EAAE,GAAG,IAAI,CAAC;IAWhC,MAAM;IAIN,MAAM,KAAK,MAAM,2CAEhB;CACF;AAKD;;GAEG;AACH,MAAM,WAAW,EAAE;IACjB,aAAa;IACb,SAAS,EAAE,IAAI,CAAC;CACjB;AAED;;;;GAIG;AACH,qBAAa,EAAG,SAAQ,SAAS;IAC/B,MAAM,CAAC,IAAI,KAAc;IACzB,MAAM,CAAC,OAAO,SAAuE;IACrF,OAAO,CAAC,MAAM,CAAC,UAAU,CAA6C;IACtE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA8B;IAErD,CAAC,OAAO,CAAC,MAAM,CAAC;IAIhB,IAAI,EAAE,IAAI,EAAE,CAEX;IAED,IAAI,EAAE,IAAI,EAAE,CAEX;gBAEW,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,EAAE,GAAG,MAAM;IAI1D,SAAS,CAAC,OAAO;IAIjB,MAAM,CAAC,MAAM;IAIb,MAAM,CAAC,IAAI;IAIX,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAI/C,MAAM,CAAC,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAItC;;;;;;;OAOG;IACH,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM;IAW7B;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,GAAG,EAAE,MAAM;IAIhC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE;IAIzC,GAAG,CAAC,GAAG,EAAE,EAAE;IAIX,MAAM;IAIN,QAAQ;IAOR,MAAM,KAAK,MAAM,2CAEhB;CACF;AAgCD;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,EAAE,CAAC;AAChC,eAAO,MAAM,cAAc,WAAK,CAAC;AAEjC,6GAA6G;AAC7G,wBAAgB,QAAQ,CAAC,MAAM,EAAE,MAAM,SAAS,SAAS,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAAE,KAAK,EAAE,YAAY,CAAC,MAAM,CAAC,IAC3G,OAAO,MAAM,YACtB"}
@@ -235,19 +235,18 @@ const ZERO_BUFFER = Buffer.alloc(32);
235
235
  * Computes a square root of the field element.
236
236
  * @returns A square root of the field element (null if it does not exist).
237
237
  */ async sqrt() {
238
- const api = await BarretenbergSync.initSingleton(process.env.BB_WASM_PATH);
239
- const wasm = api.getWasm();
240
- const [buf] = wasm.callWasmExport('bn254_fr_sqrt', [
241
- this.toBuffer()
242
- ], [
243
- Fr.SIZE_IN_BYTES + 1
244
- ]);
245
- const isSqrt = buf[0] === 1;
246
- if (!isSqrt) {
238
+ await BarretenbergSync.initSingleton({
239
+ wasmPath: process.env.BB_WASM_PATH
240
+ });
241
+ const api = BarretenbergSync.getSingleton();
242
+ const response = api.bn254FrSqrt({
243
+ input: this.toBuffer()
244
+ });
245
+ if (!response.isSquareRoot) {
247
246
  // Field element is not a quadratic residue mod p so it has no square root.
248
247
  return null;
249
248
  }
250
- return new Fr(Buffer.from(buf.slice(1)));
249
+ return Fr.fromBuffer(Buffer.from(response.value));
251
250
  }
252
251
  toJSON() {
253
252
  return this.toString();
package/dest/index.d.ts CHANGED
@@ -23,6 +23,7 @@ export * as trees from './trees/index.js';
23
23
  export * as types from './types/index.js';
24
24
  export * as url from './url/index.js';
25
25
  export * as testing from './testing/index.js';
26
+ export * as profiler from './profiler/index.js';
26
27
  export * as config from './config/index.js';
27
28
  export * as buffer from './buffer/index.js';
28
29
  export * as ethSignature from './eth-signature/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,QAAQ,MAAM,sBAAsB,CAAC;AACjD,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC;AACzD,OAAO,KAAK,UAAU,MAAM,uBAAuB,CAAC;AACpD,OAAO,KAAK,WAAW,MAAM,wBAAwB,CAAC;AACtD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,IAAI,MAAM,kBAAkB,CAAC;AACzC,OAAO,KAAK,EAAE,MAAM,eAAe,CAAC;AACpC,OAAO,KAAK,OAAO,MAAM,qBAAqB,CAAC;AAC/C,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,cAAc,MAAM,4BAA4B,CAAC;AAC7D,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,sBAAsB,CAAC;AAClD,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,KAAK,MAAM,kBAAkB,CAAC;AAC1C,OAAO,KAAK,GAAG,MAAM,gBAAgB,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAC9C,OAAO,KAAK,QAAQ,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,MAAM,MAAM,mBAAmB,CAAC;AAC5C,OAAO,KAAK,YAAY,MAAM,0BAA0B,CAAC"}
package/dest/index.js CHANGED
@@ -24,6 +24,7 @@ export * as trees from './trees/index.js';
24
24
  export * as types from './types/index.js';
25
25
  export * as url from './url/index.js';
26
26
  export * as testing from './testing/index.js';
27
+ export * as profiler from './profiler/index.js';
27
28
  export * as config from './config/index.js';
28
29
  export * as buffer from './buffer/index.js';
29
30
  export * as ethSignature from './eth-signature/index.js';
@@ -1 +1 @@
1
- {"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CA0KH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}
1
+ {"version":3,"file":"safe_json_rpc_client.d.ts","sourceRoot":"","sources":["../../../src/json-rpc/client/safe_json_rpc_client.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,0BAA0B,CAAC;AAErE,OAAO,EAAkB,KAAK,YAAY,EAAmB,MAAM,sBAAsB,CAAC;AAE1F,OAAO,EAAE,KAAK,YAAY,EAAgB,MAAM,YAAY,CAAC;AAa7D,MAAM,MAAM,wBAAwB,GAAG;IACrC,gBAAgB,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC;IAClC,KAAK,CAAC,EAAE,YAAY,CAAC;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE;QACjB,QAAQ,EAAE,GAAG,CAAC;QACd,OAAO,EAAE;YAAE,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;SAAE,CAAC;KACjE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACrB,CAAC;AA6BF;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EACtD,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,EACvB,MAAM,GAAE,wBAA6B,GACpC,CAAC,CAmLH;AAED;;GAEG;AACH,wBAAsB,KAAK,CAAC,CAAC,SAAS,SAAS,OAAO,EAAE,EACtD,MAAM,EAAE,CAAC,GACR,OAAO,CAAC;IAAE,CAAC,UAAU,CAAC,IAAI,MAAM,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC,CAuBtD"}
@@ -112,6 +112,15 @@ const clients = new Map();
112
112
  }
113
113
  }
114
114
  } catch (err) {
115
+ // Re-throw ComponentsVersionsError immediately without converting to JSON-RPC error
116
+ // This ensures version mismatch errors are surfaced to the user instead of being hidden
117
+ if (err && typeof err === 'object' && 'name' in err && err.name === 'ComponentsVersionsError') {
118
+ // Reject all pending requests with the version error
119
+ for(let i = 0; i < rpcCalls.length; i++){
120
+ rpcCalls[i].deferred.reject(err);
121
+ }
122
+ return; // Return early, the promises are already rejected
123
+ }
115
124
  log.warn(`Failed to fetch from the remote server`, err);
116
125
  for(let i = 0; i < rpcCalls.length; i++){
117
126
  const { request, deferred } = rpcCalls[i];
@@ -1 +1 @@
1
- {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCnD;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAQD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,QAK3D;AAED,iGAAiG;AACjG,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjG;AAWD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAAoD,CAAC;AA2CvF,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AAoDF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC"}
1
+ {"version":3,"file":"pino-logger.d.ts","sourceRoot":"","sources":["../../src/log/pino-logger.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAOvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAElD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAmCnD;AAID,KAAK,cAAc,GAAG,CAAC,IAAI,EAAE,OAAO,KAAK,OAAO,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAQD,KAAK,cAAc,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAGjD,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAE/D;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,cAAc,QAK3D;AAED,iGAAiG;AACjG,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMjG;AAWD,eAAO,MAAO,QAAQ,kFAAE,UAAU,uCAAoD,CAAC;AA0CvF,eAAO,MAAM,MAAM;;;;;CAGlB,CAAC;AAMF,eAAO,MAAM,cAAc;;;;;;;;;;CAU1B,CAAC;AAoDF,eAAO,MAAM,MAAM,2CAAe,CAAC;AAanC;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAE7D;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAe5D;AAED,oDAAoD;AACpD,KAAK,UAAU,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,MAAM,GAAG;KAAG,CAAC,IAAI,QAAQ,GAAG,KAAK;CAAE,GAAG;IAA4B,KAAK,EAAE,UAAU,CAAA;CAAE,GAAG;IAClG,KAAK,EAAE,QAAQ,CAAC;IAChB,cAAc,EAAE,CAAC,KAAK,EAAE,QAAQ,KAAK,OAAO,CAAC;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C,CAAC"}
@@ -77,7 +77,6 @@ const redactedPaths = [
77
77
  // bot keys
78
78
  'l1PrivateKey',
79
79
  'senderPrivateKey',
80
- 'recipientEncryptionSecret',
81
80
  // blob sink
82
81
  'l1ConsensusHostApiKeys',
83
82
  // sensitive options used in the CLI