@aztec/stdlib 5.0.0-nightly.20260522 → 5.0.0-nightly.20260524
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.
- package/dest/avm/message_pack.js +12 -3
- package/dest/keys/derivation.d.ts +3 -2
- package/dest/keys/derivation.d.ts.map +1 -1
- package/dest/keys/public_key.d.ts +17 -5
- package/dest/keys/public_key.d.ts.map +1 -1
- package/dest/keys/public_key.js +9 -1
- package/dest/keys/public_keys.d.ts +11 -17
- package/dest/keys/public_keys.d.ts.map +1 -1
- package/dest/keys/public_keys.js +18 -32
- package/dest/tests/factories.d.ts +1 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +3 -3
- package/package.json +8 -8
- package/src/avm/message_pack.ts +12 -3
- package/src/keys/derivation.ts +2 -2
- package/src/keys/public_key.ts +17 -5
- package/src/keys/public_keys.ts +19 -38
- package/src/tests/factories.ts +3 -3
package/dest/avm/message_pack.js
CHANGED
|
@@ -59,16 +59,25 @@ function setUpMessagePackExtensions() {
|
|
|
59
59
|
addExtension({
|
|
60
60
|
Class: Point,
|
|
61
61
|
write: (p)=>{
|
|
62
|
-
|
|
63
|
-
//
|
|
62
|
+
// TODO: Now that we use a 2 elt point representation, we should be able to handle infs here.
|
|
63
|
+
// However this opens possible bad paths with public keys and requires sanitised conversion between
|
|
64
|
+
// BB's inf representation (see below), and ours/Noir's (0, 0), and empty points from BB, when inf
|
|
65
|
+
// does not actually pass through.
|
|
66
|
+
assert(!p.isInfinite, 'Cannot serialize infinity');
|
|
64
67
|
return {
|
|
65
68
|
x: new Fq(p.x.toBigInt()),
|
|
66
69
|
y: new Fq(p.y.toBigInt())
|
|
67
70
|
};
|
|
68
71
|
},
|
|
69
72
|
read: (data)=>{
|
|
73
|
+
// Note: BB encodes infinity as x == y == Buffer of all ones.
|
|
74
|
+
// Infinity should never pass through here, but for correctness:
|
|
75
|
+
const ALL_ONES = (1n << 256n) - 1n;
|
|
76
|
+
if (data.x.toBigInt() === ALL_ONES && data.y.toBigInt() === ALL_ONES) {
|
|
77
|
+
return Point.INFINITY;
|
|
78
|
+
}
|
|
70
79
|
// Convert Fq back to Fr for Point constructor
|
|
71
|
-
return new Point(new Fr(data.x.toBigInt()), new Fr(data.y.toBigInt())
|
|
80
|
+
return new Point(new Fr(data.x.toBigInt()), new Fr(data.y.toBigInt()));
|
|
72
81
|
}
|
|
73
82
|
});
|
|
74
83
|
// EthAddress is a class that has a buffer in TS, but is itself just a field in C++.
|
|
@@ -2,6 +2,7 @@ import { Fq, Fr } from '@aztec/foundation/curves/bn254';
|
|
|
2
2
|
import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
3
3
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
4
4
|
import type { KeyPrefix } from './key_types.js';
|
|
5
|
+
import { PublicKey } from './public_key.js';
|
|
5
6
|
import { PublicKeys } from './public_keys.js';
|
|
6
7
|
export declare function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr>;
|
|
7
8
|
export declare function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr>;
|
|
@@ -13,7 +14,7 @@ export declare function deriveSigningKey(secretKey: Fr): GrumpkinScalar;
|
|
|
13
14
|
export declare function computePreaddress(publicKeysHash: Fr, partialAddress: Fr): Promise<Fr>;
|
|
14
15
|
export declare function computeAddress(publicKeys: PublicKeys, partialAddress: Fr): Promise<AztecAddress>;
|
|
15
16
|
export declare function computeAddressSecret(preaddress: Fr, ivsk: Fq): Promise<Fq>;
|
|
16
|
-
export declare function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<
|
|
17
|
+
export declare function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey>;
|
|
17
18
|
/**
|
|
18
19
|
* Computes secret and public keys and public keys hash from a secret key.
|
|
19
20
|
* @param secretKey - The secret key to derive keys from.
|
|
@@ -29,4 +30,4 @@ export declare function deriveKeys(secretKey: Fr): Promise<{
|
|
|
29
30
|
masterTaggingPublicKey: import("@aztec/foundation/curves/grumpkin").Point;
|
|
30
31
|
publicKeys: PublicKeys;
|
|
31
32
|
}>;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVyaXZhdGlvbi5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvZGVyaXZhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDekQsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFNBQVMsRUFBaUIsTUFBTSxpQkFBaUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUMsd0JBQWdCLDRCQUE0QixDQUFDLHdCQUF3QixFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFckg7QUFFRCx3QkFBZ0IsbUJBQW1CLENBQUMsR0FBRyxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUc3RztBQUVELHdCQUFzQixjQUFjLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLekY7QUFFRCx3QkFBZ0IsOEJBQThCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRTVFO0FBRUQsd0JBQWdCLG9DQUFvQyxDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsY0FBYyxDQUVsRjtBQUVELHdCQUFnQixvQ0FBb0MsQ0FBQyxTQUFTLEVBQUUsRUFBRSxHQUFHLGNBQWMsQ0FFbEY7QUFFRCx3QkFBZ0IsZ0JBQWdCLENBQUMsU0FBUyxFQUFFLEVBQUUsR0FBRyxjQUFjLENBRzlEO0FBRUQsd0JBQWdCLGlCQUFpQixDQUFDLGNBQWMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLEVBQUUsZUFFdkU7QUFFRCx3QkFBc0IsY0FBYyxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLENBWXRHO0FBRUQsd0JBQXNCLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsZUFvQmxFO0FBRUQsd0JBQWdCLDRCQUE0QixDQUFDLFNBQVMsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUU5RTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBc0IsVUFBVSxDQUFDLFNBQVMsRUFBRSxFQUFFOzs7Ozs7Ozs7R0FtQzdDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"derivation.d.ts","sourceRoot":"","sources":["../../src/keys/derivation.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,wBAAgB,4BAA4B,CAAC,wBAAwB,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAErH;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAG7G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAKzF;AAED,wBAAgB,8BAA8B,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAE5E;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,oCAAoC,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAElF;AAED,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,EAAE,GAAG,cAAc,CAG9D;AAED,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,eAEvE;AAED,wBAAsB,cAAc,CAAC,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC,CAYtG;AAED,wBAAsB,oBAAoB,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,eAoBlE;AAED,wBAAgB,4BAA4B,CAAC,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAE9E;AAED;;;;GAIG;AACH,wBAAsB,UAAU,CAAC,SAAS,EAAE,EAAE;;;;;;;;;GAmC7C"}
|
|
@@ -1,11 +1,23 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import
|
|
3
|
-
/** Represents a user public key. */
|
|
4
|
-
export type PublicKey = Point;
|
|
2
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
5
3
|
/**
|
|
6
|
-
* Hashes a public key
|
|
4
|
+
* Hashes a public key.
|
|
7
5
|
*
|
|
6
|
+
* Mirrors Noir's `hash_public_key` in `noir-protocol-circuits/crates/types/src/public_keys.nr`:
|
|
8
7
|
* `Poseidon2(DOM_SEP__SINGLE_PUBLIC_KEY_HASH, [pk.x, pk.y])`.
|
|
8
|
+
*
|
|
9
|
+
* This is distinct from Noir's generic `Hash` impl for `EmbeddedCurvePoint` (`noir_stdlib/src/embedded_curve_ops.nr`),
|
|
10
|
+
* which simply absorbs `x` then `y` into a `Hasher` state with no domain separator. That generic impl is unsuitable
|
|
11
|
+
* for hashing keys at the protocol boundary, where the domain separator is required to prevent collisions with hashes
|
|
12
|
+
* of other Grumpkin points (e.g. note commitments, nullifiers).
|
|
9
13
|
*/
|
|
10
14
|
export declare function hashPublicKey(pk: PublicKey): Promise<Fr>;
|
|
11
|
-
|
|
15
|
+
/**
|
|
16
|
+
* Represents a user public key.
|
|
17
|
+
*
|
|
18
|
+
* Structurally identical to a Grumpkin `Point`; exposed as a distinct name so call sites read as "public key" where
|
|
19
|
+
* that's the domain meaning.
|
|
20
|
+
*/
|
|
21
|
+
export type PublicKey = Point;
|
|
22
|
+
export declare const PublicKey: typeof Point;
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tleS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tleXMvcHVibGljX2tleS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRTFEOzs7Ozs7Ozs7O0dBVUc7QUFDSCx3QkFBZ0IsYUFBYSxDQUFDLEVBQUUsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUV4RDtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUM7QUFDOUIsZUFBTyxNQUFNLFNBQVMsY0FBUSxDQUFDIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_key.d.ts","sourceRoot":"","sources":["../../src/keys/public_key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"public_key.d.ts","sourceRoot":"","sources":["../../src/keys/public_key.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,mCAAmC,CAAC;AAE1D;;;;;;;;;;GAUG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,EAAE,CAAC,CAExD;AAED;;;;;GAKG;AACH,MAAM,MAAM,SAAS,GAAG,KAAK,CAAC;AAC9B,eAAO,MAAM,SAAS,cAAQ,CAAC"}
|
package/dest/keys/public_key.js
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
4
|
/**
|
|
4
|
-
* Hashes a public key
|
|
5
|
+
* Hashes a public key.
|
|
5
6
|
*
|
|
7
|
+
* Mirrors Noir's `hash_public_key` in `noir-protocol-circuits/crates/types/src/public_keys.nr`:
|
|
6
8
|
* `Poseidon2(DOM_SEP__SINGLE_PUBLIC_KEY_HASH, [pk.x, pk.y])`.
|
|
9
|
+
*
|
|
10
|
+
* This is distinct from Noir's generic `Hash` impl for `EmbeddedCurvePoint` (`noir_stdlib/src/embedded_curve_ops.nr`),
|
|
11
|
+
* which simply absorbs `x` then `y` into a `Hasher` state with no domain separator. That generic impl is unsuitable
|
|
12
|
+
* for hashing keys at the protocol boundary, where the domain separator is required to prevent collisions with hashes
|
|
13
|
+
* of other Grumpkin points (e.g. note commitments, nullifiers).
|
|
7
14
|
*/ export function hashPublicKey(pk) {
|
|
8
15
|
return poseidon2HashWithSeparator([
|
|
9
16
|
pk.x,
|
|
10
17
|
pk.y
|
|
11
18
|
], DomainSeparator.SINGLE_PUBLIC_KEY_HASH);
|
|
12
19
|
}
|
|
20
|
+
export const PublicKey = Point;
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
2
|
-
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
3
2
|
import { BufferReader, FieldReader } from '@aztec/foundation/serialize';
|
|
4
3
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
5
4
|
import { z } from 'zod';
|
|
6
|
-
import {
|
|
5
|
+
import { PublicKey } from './public_key.js';
|
|
7
6
|
/**
|
|
8
7
|
* A non-owner's view of an account's master public keys.
|
|
9
8
|
*
|
|
@@ -30,12 +29,12 @@ export declare class PublicKeys {
|
|
|
30
29
|
tpkMHash: Fr);
|
|
31
30
|
static get schema(): z.ZodPipe<z.ZodObject<{
|
|
32
31
|
npkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
33
|
-
ivpkM: z.ZodType<Point, string, z.core.$ZodTypeInternals<Point, string>>;
|
|
32
|
+
ivpkM: z.ZodType<import("@aztec/foundation/schemas").Point, string, z.core.$ZodTypeInternals<import("@aztec/foundation/schemas").Point, string>>;
|
|
34
33
|
ovpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
35
34
|
tpkMHash: z.ZodType<Fr, string, z.core.$ZodTypeInternals<Fr, string>>;
|
|
36
35
|
}, z.core.$strip>, z.ZodTransform<PublicKeys, {
|
|
37
36
|
npkMHash: Fr;
|
|
38
|
-
ivpkM: Point;
|
|
37
|
+
ivpkM: import("@aztec/foundation/schemas").Point;
|
|
39
38
|
ovpkMHash: Fr;
|
|
40
39
|
tpkMHash: Fr;
|
|
41
40
|
}>>;
|
|
@@ -50,6 +49,12 @@ export declare class PublicKeys {
|
|
|
50
49
|
static default(): PublicKeys;
|
|
51
50
|
static random(): Promise<PublicKeys>;
|
|
52
51
|
equals(other: PublicKeys): boolean;
|
|
52
|
+
/**
|
|
53
|
+
* Converts the PublicKeys instance into a Buffer.
|
|
54
|
+
* This method should be used when encoding the address for storage, transmission or serialization purposes.
|
|
55
|
+
*
|
|
56
|
+
* @returns A Buffer representation of the PublicKeys instance.
|
|
57
|
+
*/
|
|
53
58
|
toBuffer(): Buffer;
|
|
54
59
|
static fromBuffer(buffer: Buffer | BufferReader): PublicKeys;
|
|
55
60
|
toNoirStruct(): {
|
|
@@ -58,7 +63,6 @@ export declare class PublicKeys {
|
|
|
58
63
|
inner: {
|
|
59
64
|
x: Fr;
|
|
60
65
|
y: Fr;
|
|
61
|
-
is_infinite: boolean;
|
|
62
66
|
};
|
|
63
67
|
};
|
|
64
68
|
ovpk_m_hash: Fr;
|
|
@@ -66,17 +70,7 @@ export declare class PublicKeys {
|
|
|
66
70
|
};
|
|
67
71
|
/**
|
|
68
72
|
* Wire-format fields matching Noir's struct flattening of `PublicKeys`:
|
|
69
|
-
* `[npk_m_hash, ivpk_m.x, ivpk_m.y,
|
|
70
|
-
*
|
|
71
|
-
* The `is_infinite` slot is `0` for `ivpkM` produced by `deriveKeys` (fixed-base scalar
|
|
72
|
-
* multiplication on Grumpkin cannot reach infinity for a non-zero scalar, and Poseidon-derived
|
|
73
|
-
* scalars are non-zero with cryptographically negligible exception). External flows that
|
|
74
|
-
* import pre-derived keys are responsible for maintaining this invariant (see the AZIP-8
|
|
75
|
-
* migration note "Security note (PXE side)"). The slot stays on the wire because the Noir
|
|
76
|
-
* struct's `Point` still carries the flag. AZIP-8's "drop `is_infinite`" goal applies to the
|
|
77
|
-
* address-derivation hash (via `hash_public_key`, computed elsewhere), not to the
|
|
78
|
-
* contract-call args wire.
|
|
79
|
-
* TODO(F-553): drop the `is_infinite` slot once `Point` no longer carries the flag.
|
|
73
|
+
* `[npk_m_hash, ivpk_m.x, ivpk_m.y, ovpk_m_hash, tpk_m_hash]` (5 fields).
|
|
80
74
|
*/
|
|
81
75
|
toFields(): Fr[];
|
|
82
76
|
encodeToNoir(): Fr[];
|
|
@@ -84,4 +78,4 @@ export declare class PublicKeys {
|
|
|
84
78
|
toString(): `0x${string}`;
|
|
85
79
|
static fromString(keys: string): PublicKeys;
|
|
86
80
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2tleXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlzL3B1YmxpY19rZXlzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUUzRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsQ0FBQyxFQUFFLE1BQU0sS0FBSyxDQUFDO0FBRXhCLE9BQU8sRUFBRSxTQUFTLEVBQWlCLE1BQU0saUJBQWlCLENBQUM7QUFFM0Q7Ozs7O0dBS0c7QUFDSCxxQkFBYSxVQUFVO0lBRW5CLDhDQUE4QztJQUN2QyxRQUFRLEVBQUUsRUFBRTtJQUNuQix5Q0FBeUM7SUFDbEMsS0FBSyxFQUFFLFNBQVM7SUFDdkIscURBQXFEO0lBQzlDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDRDQUE0QztJQUNyQyxRQUFRLEVBQUUsRUFBRTtJQVJyQjtJQUNFLDhDQUE4QztJQUN2QyxRQUFRLEVBQUUsRUFBRTtJQUNuQix5Q0FBeUM7SUFDbEMsS0FBSyxFQUFFLFNBQVM7SUFDdkIscURBQXFEO0lBQzlDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDRDQUE0QztJQUNyQyxRQUFRLEVBQUUsRUFBRSxFQUNqQjtJQUVKLE1BQU0sS0FBSyxNQUFNOzs7Ozs7Ozs7O1FBU2hCO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFVBQVUsQ0FBQyxjQUV2QztJQUVEOzs7T0FHRztJQUNILE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxVQUFVLENBVTNDO0lBRUssSUFBSSxnQkFZVDtJQUVELE9BQU8sWUFFTjtJQUVELE1BQU0sQ0FBQyxPQUFPLElBQUksVUFBVSxDQVkzQjtJQUVELE9BQWEsTUFBTSxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FVekM7SUFFRCxNQUFNLENBQUMsS0FBSyxFQUFFLFVBQVUsR0FBRyxPQUFPLENBT2pDO0lBRUQ7Ozs7O09BS0c7SUFDSCxRQUFRLElBQUksTUFBTSxDQUVqQjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsVUFBVSxDQU8zRDtJQUVELFlBQVk7Ozs7Ozs7Ozs7TUFVWDtJQUVEOzs7T0FHRztJQUNILFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FFZjtJQUdELFlBQVksSUFBSSxFQUFFLEVBQUUsQ0FFbkI7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxXQUFXLEdBQUcsVUFBVSxDQUd4RDtJQUVELFFBQVEsa0JBRVA7SUFFRCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxNQUFNLGNBRTdCO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_keys.d.ts","sourceRoot":"","sources":["../../src/keys/public_keys.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;
|
|
1
|
+
{"version":3,"file":"public_keys.d.ts","sourceRoot":"","sources":["../../src/keys/public_keys.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAqB,MAAM,6BAA6B,CAAC;AAE3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,SAAS,EAAiB,MAAM,iBAAiB,CAAC;AAE3D;;;;;GAKG;AACH,qBAAa,UAAU;IAEnB,8CAA8C;IACvC,QAAQ,EAAE,EAAE;IACnB,yCAAyC;IAClC,KAAK,EAAE,SAAS;IACvB,qDAAqD;IAC9C,SAAS,EAAE,EAAE;IACpB,4CAA4C;IACrC,QAAQ,EAAE,EAAE;IARrB;IACE,8CAA8C;IACvC,QAAQ,EAAE,EAAE;IACnB,yCAAyC;IAClC,KAAK,EAAE,SAAS;IACvB,qDAAqD;IAC9C,SAAS,EAAE,EAAE;IACpB,4CAA4C;IACrC,QAAQ,EAAE,EAAE,EACjB;IAEJ,MAAM,KAAK,MAAM;;;;;;;;;;QAShB;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,UAAU,CAAC,cAEvC;IAED;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,GAAG,EAAE,GAAG,GAAG,UAAU,CAU3C;IAEK,IAAI,gBAYT;IAED,OAAO,YAEN;IAED,MAAM,CAAC,OAAO,IAAI,UAAU,CAY3B;IAED,OAAa,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC,CAUzC;IAED,MAAM,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAOjC;IAED;;;;;OAKG;IACH,QAAQ,IAAI,MAAM,CAEjB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,CAO3D;IAED,YAAY;;;;;;;;;;MAUX;IAED;;;OAGG;IACH,QAAQ,IAAI,EAAE,EAAE,CAEf;IAGD,YAAY,IAAI,EAAE,EAAE,CAEnB;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,UAAU,CAGxD;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,cAE7B;CACF"}
|
package/dest/keys/public_keys.js
CHANGED
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { DEFAULT_IVPK_M_X, DEFAULT_IVPK_M_Y, DEFAULT_NPK_M_HASH, DEFAULT_OVPK_M_HASH, DEFAULT_TPK_M_HASH, DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
5
4
|
import { schemas } from '@aztec/foundation/schemas';
|
|
6
5
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
7
6
|
import { bufferToHex, withoutHexPrefix } from '@aztec/foundation/string';
|
|
8
7
|
import { z } from 'zod';
|
|
9
|
-
import { hashPublicKey } from './public_key.js';
|
|
8
|
+
import { PublicKey, hashPublicKey } from './public_key.js';
|
|
10
9
|
/**
|
|
11
10
|
* A non-owner's view of an account's master public keys.
|
|
12
11
|
*
|
|
@@ -41,7 +40,7 @@ import { hashPublicKey } from './public_key.js';
|
|
|
41
40
|
if (obj instanceof PublicKeys) {
|
|
42
41
|
return obj;
|
|
43
42
|
}
|
|
44
|
-
return new PublicKeys(Fr.fromPlainObject(obj.npkMHash),
|
|
43
|
+
return new PublicKeys(Fr.fromPlainObject(obj.npkMHash), PublicKey.fromPlainObject(obj.ivpkM), Fr.fromPlainObject(obj.ovpkMHash), Fr.fromPlainObject(obj.tpkMHash));
|
|
45
44
|
}
|
|
46
45
|
async hash() {
|
|
47
46
|
if (this.isEmpty()) {
|
|
@@ -49,8 +48,7 @@ import { hashPublicKey } from './public_key.js';
|
|
|
49
48
|
}
|
|
50
49
|
// Mirror Noir's `PublicKeys::hash`: hash the four single-key digests under
|
|
51
50
|
// DOM_SEP__PUBLIC_KEYS_HASH. `ivpk_m` must be reduced to its single-key digest first
|
|
52
|
-
// (Poseidon2 over [x, y]); passing the Point directly would
|
|
53
|
-
// `is_infinite` and produce a different value.
|
|
51
|
+
// (Poseidon2 over [x, y]); passing the Point directly would omit the DOM_SEP__SINGLE_PUBLIC_KEY_HASH
|
|
54
52
|
const ivpkMHash = await hashPublicKey(this.ivpkM);
|
|
55
53
|
return poseidon2HashWithSeparator([
|
|
56
54
|
this.npkMHash,
|
|
@@ -63,23 +61,28 @@ import { hashPublicKey } from './public_key.js';
|
|
|
63
61
|
return this.npkMHash.isZero() && this.ivpkM.isZero() && this.ovpkMHash.isZero() && this.tpkMHash.isZero();
|
|
64
62
|
}
|
|
65
63
|
static default() {
|
|
66
|
-
// Precomputed `hash_public_key(Point { DEFAULT_*_X, DEFAULT_*_Y
|
|
64
|
+
// Precomputed `hash_public_key(Point { DEFAULT_*_X, DEFAULT_*_Y })` for npk/ovpk/tpk.
|
|
67
65
|
// Sourced from constants.gen.ts (originally defined in
|
|
68
66
|
// noir-protocol-circuits/crates/types/src/constants.nr); a self-test in public_keys.nr
|
|
69
67
|
// (`default_hashes_match_default_points`) catches drift between the *_HASH constants and
|
|
70
68
|
// the underlying X/Y points.
|
|
71
|
-
return new PublicKeys(new Fr(DEFAULT_NPK_M_HASH), new
|
|
69
|
+
return new PublicKeys(new Fr(DEFAULT_NPK_M_HASH), new PublicKey(new Fr(DEFAULT_IVPK_M_X), new Fr(DEFAULT_IVPK_M_Y)), new Fr(DEFAULT_OVPK_M_HASH), new Fr(DEFAULT_TPK_M_HASH));
|
|
72
70
|
}
|
|
73
71
|
static async random() {
|
|
74
|
-
const npkM = await
|
|
75
|
-
const ovpkM = await
|
|
76
|
-
const tpkM = await
|
|
77
|
-
return new PublicKeys(await hashPublicKey(npkM), await
|
|
72
|
+
const npkM = await PublicKey.random();
|
|
73
|
+
const ovpkM = await PublicKey.random();
|
|
74
|
+
const tpkM = await PublicKey.random();
|
|
75
|
+
return new PublicKeys(await hashPublicKey(npkM), await PublicKey.random(), await hashPublicKey(ovpkM), await hashPublicKey(tpkM));
|
|
78
76
|
}
|
|
79
77
|
equals(other) {
|
|
80
78
|
return this.npkMHash.equals(other.npkMHash) && this.ivpkM.equals(other.ivpkM) && this.ovpkMHash.equals(other.ovpkMHash) && this.tpkMHash.equals(other.tpkMHash);
|
|
81
79
|
}
|
|
82
|
-
|
|
80
|
+
/**
|
|
81
|
+
* Converts the PublicKeys instance into a Buffer.
|
|
82
|
+
* This method should be used when encoding the address for storage, transmission or serialization purposes.
|
|
83
|
+
*
|
|
84
|
+
* @returns A Buffer representation of the PublicKeys instance.
|
|
85
|
+
*/ toBuffer() {
|
|
83
86
|
return serializeToBuffer([
|
|
84
87
|
this.npkMHash,
|
|
85
88
|
this.ivpkM,
|
|
@@ -90,7 +93,7 @@ import { hashPublicKey } from './public_key.js';
|
|
|
90
93
|
static fromBuffer(buffer) {
|
|
91
94
|
const reader = BufferReader.asReader(buffer);
|
|
92
95
|
const npkMHash = Fr.fromBuffer(reader);
|
|
93
|
-
const ivpkM = reader.readObject(
|
|
96
|
+
const ivpkM = reader.readObject(PublicKey);
|
|
94
97
|
const ovpkMHash = Fr.fromBuffer(reader);
|
|
95
98
|
const tpkMHash = Fr.fromBuffer(reader);
|
|
96
99
|
return new PublicKeys(npkMHash, ivpkM, ovpkMHash, tpkMHash);
|
|
@@ -106,23 +109,12 @@ import { hashPublicKey } from './public_key.js';
|
|
|
106
109
|
/* eslint-enable camelcase */ }
|
|
107
110
|
/**
|
|
108
111
|
* Wire-format fields matching Noir's struct flattening of `PublicKeys`:
|
|
109
|
-
* `[npk_m_hash, ivpk_m.x, ivpk_m.y,
|
|
110
|
-
*
|
|
111
|
-
* The `is_infinite` slot is `0` for `ivpkM` produced by `deriveKeys` (fixed-base scalar
|
|
112
|
-
* multiplication on Grumpkin cannot reach infinity for a non-zero scalar, and Poseidon-derived
|
|
113
|
-
* scalars are non-zero with cryptographically negligible exception). External flows that
|
|
114
|
-
* import pre-derived keys are responsible for maintaining this invariant (see the AZIP-8
|
|
115
|
-
* migration note "Security note (PXE side)"). The slot stays on the wire because the Noir
|
|
116
|
-
* struct's `Point` still carries the flag. AZIP-8's "drop `is_infinite`" goal applies to the
|
|
117
|
-
* address-derivation hash (via `hash_public_key`, computed elsewhere), not to the
|
|
118
|
-
* contract-call args wire.
|
|
119
|
-
* TODO(F-553): drop the `is_infinite` slot once `Point` no longer carries the flag.
|
|
112
|
+
* `[npk_m_hash, ivpk_m.x, ivpk_m.y, ovpk_m_hash, tpk_m_hash]` (5 fields).
|
|
120
113
|
*/ toFields() {
|
|
121
114
|
return [
|
|
122
115
|
this.npkMHash,
|
|
123
116
|
this.ivpkM.x,
|
|
124
117
|
this.ivpkM.y,
|
|
125
|
-
new Fr(this.ivpkM.isInfinite ? 1 : 0),
|
|
126
118
|
this.ovpkMHash,
|
|
127
119
|
this.tpkMHash
|
|
128
120
|
];
|
|
@@ -133,13 +125,7 @@ import { hashPublicKey } from './public_key.js';
|
|
|
133
125
|
}
|
|
134
126
|
static fromFields(fields) {
|
|
135
127
|
const reader = FieldReader.asReader(fields);
|
|
136
|
-
|
|
137
|
-
const ivpkMX = reader.readField();
|
|
138
|
-
const ivpkMY = reader.readField();
|
|
139
|
-
const ivpkMIsInfinite = reader.readBoolean();
|
|
140
|
-
const ovpkMHash = reader.readField();
|
|
141
|
-
const tpkMHash = reader.readField();
|
|
142
|
-
return new PublicKeys(npkMHash, new Point(ivpkMX, ivpkMY, ivpkMIsInfinite), ovpkMHash, tpkMHash);
|
|
128
|
+
return new PublicKeys(reader.readField(), reader.readObject(PublicKey), reader.readField(), reader.readField());
|
|
143
129
|
}
|
|
144
130
|
toString() {
|
|
145
131
|
return bufferToHex(this.toBuffer());
|
|
@@ -394,4 +394,4 @@ export declare function randomTxScopedPublicL2Log(opts?: {
|
|
|
394
394
|
*/
|
|
395
395
|
export declare function makeL2Tips(blockNumber: number | BlockNumber, hash?: string, checkpointNumber?: number | CheckpointNumber, checkpointHash?: string): L2Tips;
|
|
396
396
|
export declare function randomExtendedDirectionalAppTaggingSecret(): Promise<ExtendedDirectionalAppTaggingSecret>;
|
|
397
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJNUYsT0FBTyxFQUFNLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyxTQUFTLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixP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
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTJDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJNUYsT0FBTyxFQUFNLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyxTQUFTLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixP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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../src/tests/factories.ts"],"names":[],"mappings":"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"}
|
package/dest/tests/factories.js
CHANGED
|
@@ -31,7 +31,7 @@ import { PrivateCircuitPublicInputs } from '../kernel/private_circuit_public_inp
|
|
|
31
31
|
import { PrivateLogData } from '../kernel/private_log_data.js';
|
|
32
32
|
import { PrivateToRollupKernelCircuitPublicInputs } from '../kernel/private_to_rollup_kernel_circuit_public_inputs.js';
|
|
33
33
|
import { CountedPublicCallRequest, PublicCallRequest, PublicCallRequestArrayLengths } from '../kernel/public_call_request.js';
|
|
34
|
-
import { PublicKeys, computeAddress, hashPublicKey } from '../keys/index.js';
|
|
34
|
+
import { PublicKey, PublicKeys, computeAddress, hashPublicKey } from '../keys/index.js';
|
|
35
35
|
import { ExtendedDirectionalAppTaggingSecret } from '../logs/extended_directional_app_tagging_secret.js';
|
|
36
36
|
import { ContractClassLog, ContractClassLogFields } from '../logs/index.js';
|
|
37
37
|
import { PrivateLog } from '../logs/private_log.js';
|
|
@@ -274,7 +274,7 @@ function makeSiblingPath(seed, size) {
|
|
|
274
274
|
* @param seed - Seed to generate the point values.
|
|
275
275
|
* @returns A point.
|
|
276
276
|
*/ export function makePoint(seed = 1) {
|
|
277
|
-
return new Point(fr(seed), fr(seed + 1)
|
|
277
|
+
return new Point(fr(seed), fr(seed + 1));
|
|
278
278
|
}
|
|
279
279
|
/**
|
|
280
280
|
* Creates an arbitrary grumpkin scalar.
|
|
@@ -780,7 +780,7 @@ export function makeAvmContractDbCheckpointActionRevertCheckpointHint(seed = 0)
|
|
|
780
780
|
* @param seed - The seed to use for generating the state reference.
|
|
781
781
|
* @returns AvmContractInstanceHint.
|
|
782
782
|
*/ export function makeAvmContractInstanceHint(seed = 0) {
|
|
783
|
-
return new AvmContractInstanceHint(seed, new AztecAddress(new Fr(seed)), new Fr(seed + 0x2), new AztecAddress(new Fr(seed + 0x3)), new Fr(seed + 0x4), new Fr(seed + 0x5), new Fr(seed + 0x6), new Fr(seed + 0x7), new PublicKeys(new Fr(seed + 0x7), new
|
|
783
|
+
return new AvmContractInstanceHint(seed, new AztecAddress(new Fr(seed)), new Fr(seed + 0x2), new AztecAddress(new Fr(seed + 0x3)), new Fr(seed + 0x4), new Fr(seed + 0x5), new Fr(seed + 0x6), new Fr(seed + 0x7), new PublicKeys(new Fr(seed + 0x7), new PublicKey(new Fr(seed + 0x9), new Fr(seed + 0x10)), new Fr(seed + 0x11), new Fr(seed + 0x13)));
|
|
784
784
|
}
|
|
785
785
|
/**
|
|
786
786
|
* Makes arbitrary AvmDebugFunctionNameHint.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "5.0.0-nightly.
|
|
3
|
+
"version": "5.0.0-nightly.20260524",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -92,13 +92,13 @@
|
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
95
|
-
"@aztec/bb.js": "5.0.0-nightly.
|
|
96
|
-
"@aztec/blob-lib": "5.0.0-nightly.
|
|
97
|
-
"@aztec/constants": "5.0.0-nightly.
|
|
98
|
-
"@aztec/ethereum": "5.0.0-nightly.
|
|
99
|
-
"@aztec/foundation": "5.0.0-nightly.
|
|
100
|
-
"@aztec/l1-artifacts": "5.0.0-nightly.
|
|
101
|
-
"@aztec/noir-noirc_abi": "5.0.0-nightly.
|
|
95
|
+
"@aztec/bb.js": "5.0.0-nightly.20260524",
|
|
96
|
+
"@aztec/blob-lib": "5.0.0-nightly.20260524",
|
|
97
|
+
"@aztec/constants": "5.0.0-nightly.20260524",
|
|
98
|
+
"@aztec/ethereum": "5.0.0-nightly.20260524",
|
|
99
|
+
"@aztec/foundation": "5.0.0-nightly.20260524",
|
|
100
|
+
"@aztec/l1-artifacts": "5.0.0-nightly.20260524",
|
|
101
|
+
"@aztec/noir-noirc_abi": "5.0.0-nightly.20260524",
|
|
102
102
|
"@google-cloud/storage": "^7.15.0",
|
|
103
103
|
"axios": "^1.15.1",
|
|
104
104
|
"json-stringify-deterministic": "1.0.12",
|
package/src/avm/message_pack.ts
CHANGED
|
@@ -64,13 +64,22 @@ function setUpMessagePackExtensions() {
|
|
|
64
64
|
addExtension({
|
|
65
65
|
Class: Point,
|
|
66
66
|
write: (p: Point) => {
|
|
67
|
-
|
|
68
|
-
//
|
|
67
|
+
// TODO: Now that we use a 2 elt point representation, we should be able to handle infs here.
|
|
68
|
+
// However this opens possible bad paths with public keys and requires sanitised conversion between
|
|
69
|
+
// BB's inf representation (see below), and ours/Noir's (0, 0), and empty points from BB, when inf
|
|
70
|
+
// does not actually pass through.
|
|
71
|
+
assert(!p.isInfinite, 'Cannot serialize infinity');
|
|
69
72
|
return { x: new Fq(p.x.toBigInt()), y: new Fq(p.y.toBigInt()) };
|
|
70
73
|
},
|
|
71
74
|
read: (data: { x: Fq; y: Fq }) => {
|
|
75
|
+
// Note: BB encodes infinity as x == y == Buffer of all ones.
|
|
76
|
+
// Infinity should never pass through here, but for correctness:
|
|
77
|
+
const ALL_ONES = (1n << 256n) - 1n;
|
|
78
|
+
if (data.x.toBigInt() === ALL_ONES && data.y.toBigInt() === ALL_ONES) {
|
|
79
|
+
return Point.INFINITY;
|
|
80
|
+
}
|
|
72
81
|
// Convert Fq back to Fr for Point constructor
|
|
73
|
-
return new Point(new Fr(data.x.toBigInt()), new Fr(data.y.toBigInt())
|
|
82
|
+
return new Point(new Fr(data.x.toBigInt()), new Fr(data.y.toBigInt()));
|
|
74
83
|
},
|
|
75
84
|
});
|
|
76
85
|
// EthAddress is a class that has a buffer in TS, but is itself just a field in C++.
|
package/src/keys/derivation.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
|
7
7
|
|
|
8
8
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
9
9
|
import type { KeyPrefix } from './key_types.js';
|
|
10
|
-
import { hashPublicKey } from './public_key.js';
|
|
10
|
+
import { PublicKey, hashPublicKey } from './public_key.js';
|
|
11
11
|
import { PublicKeys } from './public_keys.js';
|
|
12
12
|
import { getKeyGenerator } from './utils.js';
|
|
13
13
|
|
|
@@ -84,7 +84,7 @@ export async function computeAddressSecret(preaddress: Fr, ivsk: Fq) {
|
|
|
84
84
|
return addressSecretCandidate;
|
|
85
85
|
}
|
|
86
86
|
|
|
87
|
-
export function derivePublicKeyFromSecretKey(secretKey: Fq) {
|
|
87
|
+
export function derivePublicKeyFromSecretKey(secretKey: Fq): Promise<PublicKey> {
|
|
88
88
|
return Grumpkin.mul(Grumpkin.generator, secretKey);
|
|
89
89
|
}
|
|
90
90
|
|
package/src/keys/public_key.ts
CHANGED
|
@@ -1,16 +1,28 @@
|
|
|
1
1
|
import { DomainSeparator } from '@aztec/constants';
|
|
2
2
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
3
3
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
|
-
import
|
|
5
|
-
|
|
6
|
-
/** Represents a user public key. */
|
|
7
|
-
export type PublicKey = Point;
|
|
4
|
+
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
8
5
|
|
|
9
6
|
/**
|
|
10
|
-
* Hashes a public key
|
|
7
|
+
* Hashes a public key.
|
|
11
8
|
*
|
|
9
|
+
* Mirrors Noir's `hash_public_key` in `noir-protocol-circuits/crates/types/src/public_keys.nr`:
|
|
12
10
|
* `Poseidon2(DOM_SEP__SINGLE_PUBLIC_KEY_HASH, [pk.x, pk.y])`.
|
|
11
|
+
*
|
|
12
|
+
* This is distinct from Noir's generic `Hash` impl for `EmbeddedCurvePoint` (`noir_stdlib/src/embedded_curve_ops.nr`),
|
|
13
|
+
* which simply absorbs `x` then `y` into a `Hasher` state with no domain separator. That generic impl is unsuitable
|
|
14
|
+
* for hashing keys at the protocol boundary, where the domain separator is required to prevent collisions with hashes
|
|
15
|
+
* of other Grumpkin points (e.g. note commitments, nullifiers).
|
|
13
16
|
*/
|
|
14
17
|
export function hashPublicKey(pk: PublicKey): Promise<Fr> {
|
|
15
18
|
return poseidon2HashWithSeparator([pk.x, pk.y], DomainSeparator.SINGLE_PUBLIC_KEY_HASH);
|
|
16
19
|
}
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Represents a user public key.
|
|
23
|
+
*
|
|
24
|
+
* Structurally identical to a Grumpkin `Point`; exposed as a distinct name so call sites read as "public key" where
|
|
25
|
+
* that's the domain meaning.
|
|
26
|
+
*/
|
|
27
|
+
export type PublicKey = Point;
|
|
28
|
+
export const PublicKey = Point;
|
package/src/keys/public_keys.ts
CHANGED
|
@@ -8,7 +8,6 @@ import {
|
|
|
8
8
|
} from '@aztec/constants';
|
|
9
9
|
import { poseidon2HashWithSeparator } from '@aztec/foundation/crypto/poseidon';
|
|
10
10
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
11
|
-
import { Point } from '@aztec/foundation/curves/grumpkin';
|
|
12
11
|
import { schemas } from '@aztec/foundation/schemas';
|
|
13
12
|
import { BufferReader, FieldReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
14
13
|
import { bufferToHex, withoutHexPrefix } from '@aztec/foundation/string';
|
|
@@ -16,7 +15,7 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
16
15
|
|
|
17
16
|
import { z } from 'zod';
|
|
18
17
|
|
|
19
|
-
import {
|
|
18
|
+
import { PublicKey, hashPublicKey } from './public_key.js';
|
|
20
19
|
|
|
21
20
|
/**
|
|
22
21
|
* A non-owner's view of an account's master public keys.
|
|
@@ -61,7 +60,7 @@ export class PublicKeys {
|
|
|
61
60
|
}
|
|
62
61
|
return new PublicKeys(
|
|
63
62
|
Fr.fromPlainObject(obj.npkMHash),
|
|
64
|
-
|
|
63
|
+
PublicKey.fromPlainObject(obj.ivpkM),
|
|
65
64
|
Fr.fromPlainObject(obj.ovpkMHash),
|
|
66
65
|
Fr.fromPlainObject(obj.tpkMHash),
|
|
67
66
|
);
|
|
@@ -73,8 +72,7 @@ export class PublicKeys {
|
|
|
73
72
|
}
|
|
74
73
|
// Mirror Noir's `PublicKeys::hash`: hash the four single-key digests under
|
|
75
74
|
// DOM_SEP__PUBLIC_KEYS_HASH. `ivpk_m` must be reduced to its single-key digest first
|
|
76
|
-
// (Poseidon2 over [x, y]); passing the Point directly would
|
|
77
|
-
// `is_infinite` and produce a different value.
|
|
75
|
+
// (Poseidon2 over [x, y]); passing the Point directly would omit the DOM_SEP__SINGLE_PUBLIC_KEY_HASH
|
|
78
76
|
const ivpkMHash = await hashPublicKey(this.ivpkM);
|
|
79
77
|
return poseidon2HashWithSeparator(
|
|
80
78
|
[this.npkMHash, ivpkMHash, this.ovpkMHash, this.tpkMHash],
|
|
@@ -87,26 +85,26 @@ export class PublicKeys {
|
|
|
87
85
|
}
|
|
88
86
|
|
|
89
87
|
static default(): PublicKeys {
|
|
90
|
-
// Precomputed `hash_public_key(Point { DEFAULT_*_X, DEFAULT_*_Y
|
|
88
|
+
// Precomputed `hash_public_key(Point { DEFAULT_*_X, DEFAULT_*_Y })` for npk/ovpk/tpk.
|
|
91
89
|
// Sourced from constants.gen.ts (originally defined in
|
|
92
90
|
// noir-protocol-circuits/crates/types/src/constants.nr); a self-test in public_keys.nr
|
|
93
91
|
// (`default_hashes_match_default_points`) catches drift between the *_HASH constants and
|
|
94
92
|
// the underlying X/Y points.
|
|
95
93
|
return new PublicKeys(
|
|
96
94
|
new Fr(DEFAULT_NPK_M_HASH),
|
|
97
|
-
new
|
|
95
|
+
new PublicKey(new Fr(DEFAULT_IVPK_M_X), new Fr(DEFAULT_IVPK_M_Y)),
|
|
98
96
|
new Fr(DEFAULT_OVPK_M_HASH),
|
|
99
97
|
new Fr(DEFAULT_TPK_M_HASH),
|
|
100
98
|
);
|
|
101
99
|
}
|
|
102
100
|
|
|
103
101
|
static async random(): Promise<PublicKeys> {
|
|
104
|
-
const npkM = await
|
|
105
|
-
const ovpkM = await
|
|
106
|
-
const tpkM = await
|
|
102
|
+
const npkM = await PublicKey.random();
|
|
103
|
+
const ovpkM = await PublicKey.random();
|
|
104
|
+
const tpkM = await PublicKey.random();
|
|
107
105
|
return new PublicKeys(
|
|
108
106
|
await hashPublicKey(npkM),
|
|
109
|
-
await
|
|
107
|
+
await PublicKey.random(),
|
|
110
108
|
await hashPublicKey(ovpkM),
|
|
111
109
|
await hashPublicKey(tpkM),
|
|
112
110
|
);
|
|
@@ -121,6 +119,12 @@ export class PublicKeys {
|
|
|
121
119
|
);
|
|
122
120
|
}
|
|
123
121
|
|
|
122
|
+
/**
|
|
123
|
+
* Converts the PublicKeys instance into a Buffer.
|
|
124
|
+
* This method should be used when encoding the address for storage, transmission or serialization purposes.
|
|
125
|
+
*
|
|
126
|
+
* @returns A Buffer representation of the PublicKeys instance.
|
|
127
|
+
*/
|
|
124
128
|
toBuffer(): Buffer {
|
|
125
129
|
return serializeToBuffer([this.npkMHash, this.ivpkM, this.ovpkMHash, this.tpkMHash]);
|
|
126
130
|
}
|
|
@@ -128,7 +132,7 @@ export class PublicKeys {
|
|
|
128
132
|
static fromBuffer(buffer: Buffer | BufferReader): PublicKeys {
|
|
129
133
|
const reader = BufferReader.asReader(buffer);
|
|
130
134
|
const npkMHash = Fr.fromBuffer(reader);
|
|
131
|
-
const ivpkM = reader.readObject(
|
|
135
|
+
const ivpkM = reader.readObject(PublicKey);
|
|
132
136
|
const ovpkMHash = Fr.fromBuffer(reader);
|
|
133
137
|
const tpkMHash = Fr.fromBuffer(reader);
|
|
134
138
|
return new PublicKeys(npkMHash, ivpkM, ovpkMHash, tpkMHash);
|
|
@@ -148,27 +152,10 @@ export class PublicKeys {
|
|
|
148
152
|
|
|
149
153
|
/**
|
|
150
154
|
* Wire-format fields matching Noir's struct flattening of `PublicKeys`:
|
|
151
|
-
* `[npk_m_hash, ivpk_m.x, ivpk_m.y,
|
|
152
|
-
*
|
|
153
|
-
* The `is_infinite` slot is `0` for `ivpkM` produced by `deriveKeys` (fixed-base scalar
|
|
154
|
-
* multiplication on Grumpkin cannot reach infinity for a non-zero scalar, and Poseidon-derived
|
|
155
|
-
* scalars are non-zero with cryptographically negligible exception). External flows that
|
|
156
|
-
* import pre-derived keys are responsible for maintaining this invariant (see the AZIP-8
|
|
157
|
-
* migration note "Security note (PXE side)"). The slot stays on the wire because the Noir
|
|
158
|
-
* struct's `Point` still carries the flag. AZIP-8's "drop `is_infinite`" goal applies to the
|
|
159
|
-
* address-derivation hash (via `hash_public_key`, computed elsewhere), not to the
|
|
160
|
-
* contract-call args wire.
|
|
161
|
-
* TODO(F-553): drop the `is_infinite` slot once `Point` no longer carries the flag.
|
|
155
|
+
* `[npk_m_hash, ivpk_m.x, ivpk_m.y, ovpk_m_hash, tpk_m_hash]` (5 fields).
|
|
162
156
|
*/
|
|
163
157
|
toFields(): Fr[] {
|
|
164
|
-
return [
|
|
165
|
-
this.npkMHash,
|
|
166
|
-
this.ivpkM.x,
|
|
167
|
-
this.ivpkM.y,
|
|
168
|
-
new Fr(this.ivpkM.isInfinite ? 1 : 0),
|
|
169
|
-
this.ovpkMHash,
|
|
170
|
-
this.tpkMHash,
|
|
171
|
-
];
|
|
158
|
+
return [this.npkMHash, this.ivpkM.x, this.ivpkM.y, this.ovpkMHash, this.tpkMHash];
|
|
172
159
|
}
|
|
173
160
|
|
|
174
161
|
// Used in foundation/src/abi/encoder. Probably non-optimal but the encoder needs a refactor.
|
|
@@ -178,13 +165,7 @@ export class PublicKeys {
|
|
|
178
165
|
|
|
179
166
|
static fromFields(fields: Fr[] | FieldReader): PublicKeys {
|
|
180
167
|
const reader = FieldReader.asReader(fields);
|
|
181
|
-
|
|
182
|
-
const ivpkMX = reader.readField();
|
|
183
|
-
const ivpkMY = reader.readField();
|
|
184
|
-
const ivpkMIsInfinite = reader.readBoolean();
|
|
185
|
-
const ovpkMHash = reader.readField();
|
|
186
|
-
const tpkMHash = reader.readField();
|
|
187
|
-
return new PublicKeys(npkMHash, new Point(ivpkMX, ivpkMY, ivpkMIsInfinite), ovpkMHash, tpkMHash);
|
|
168
|
+
return new PublicKeys(reader.readField(), reader.readObject(PublicKey), reader.readField(), reader.readField());
|
|
188
169
|
}
|
|
189
170
|
|
|
190
171
|
toString() {
|
package/src/tests/factories.ts
CHANGED
|
@@ -123,7 +123,7 @@ import {
|
|
|
123
123
|
PublicCallRequest,
|
|
124
124
|
PublicCallRequestArrayLengths,
|
|
125
125
|
} from '../kernel/public_call_request.js';
|
|
126
|
-
import { PublicKeys, computeAddress, hashPublicKey } from '../keys/index.js';
|
|
126
|
+
import { PublicKey, PublicKeys, computeAddress, hashPublicKey } from '../keys/index.js';
|
|
127
127
|
import { ExtendedDirectionalAppTaggingSecret } from '../logs/extended_directional_app_tagging_secret.js';
|
|
128
128
|
import { ContractClassLog, ContractClassLogFields } from '../logs/index.js';
|
|
129
129
|
import { PrivateLog } from '../logs/private_log.js';
|
|
@@ -577,7 +577,7 @@ export function makeVerificationKeyAsFields(size: number): VerificationKeyAsFiel
|
|
|
577
577
|
* @returns A point.
|
|
578
578
|
*/
|
|
579
579
|
export function makePoint(seed = 1): Point {
|
|
580
|
-
return new Point(fr(seed), fr(seed + 1)
|
|
580
|
+
return new Point(fr(seed), fr(seed + 1));
|
|
581
581
|
}
|
|
582
582
|
|
|
583
583
|
/**
|
|
@@ -1442,7 +1442,7 @@ export function makeAvmContractInstanceHint(seed = 0): AvmContractInstanceHint {
|
|
|
1442
1442
|
new Fr(seed + 0x7),
|
|
1443
1443
|
new PublicKeys(
|
|
1444
1444
|
new Fr(seed + 0x7),
|
|
1445
|
-
new
|
|
1445
|
+
new PublicKey(new Fr(seed + 0x9), new Fr(seed + 0x10)),
|
|
1446
1446
|
new Fr(seed + 0x11),
|
|
1447
1447
|
new Fr(seed + 0x13),
|
|
1448
1448
|
),
|