@aztec/stdlib 4.0.0-nightly.20260130 → 4.0.0-nightly.20260201
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/database-version/database_version.d.ts +58 -0
- package/dest/database-version/database_version.d.ts.map +1 -0
- package/dest/database-version/database_version.js +69 -0
- package/dest/database-version/version_manager.d.ts +2 -50
- package/dest/database-version/version_manager.d.ts.map +1 -1
- package/dest/database-version/version_manager.js +1 -66
- package/dest/interfaces/aztec-node.d.ts +28 -21
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +1 -1
- package/dest/interfaces/block-builder.d.ts +8 -3
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/block-builder.js +7 -0
- package/dest/keys/derivation.d.ts +3 -3
- package/dest/keys/derivation.js +8 -8
- package/dest/keys/key_types.d.ts +1 -1
- package/dest/keys/utils.d.ts +1 -1
- package/dest/keys/utils.d.ts.map +1 -1
- package/dest/keys/utils.js +7 -3
- package/dest/l1-contracts/slash_factory.d.ts +1 -1
- package/dest/l1-contracts/slash_factory.d.ts.map +1 -1
- package/dest/l1-contracts/slash_factory.js +1 -0
- package/dest/stats/stats.d.ts +1 -3
- package/dest/stats/stats.d.ts.map +1 -1
- package/package.json +11 -10
- package/src/database-version/database_version.ts +87 -0
- package/src/database-version/version_manager.ts +1 -77
- package/src/interfaces/aztec-node.ts +34 -24
- package/src/interfaces/block-builder.ts +10 -2
- package/src/keys/derivation.ts +8 -8
- package/src/keys/key_types.ts +1 -1
- package/src/keys/utils.ts +7 -3
- package/src/l1-contracts/slash_factory.ts +1 -0
- package/src/stats/stats.ts +0 -2
- package/dest/database-version/index.d.ts +0 -2
- package/dest/database-version/index.d.ts.map +0 -1
- package/dest/database-version/index.js +0 -1
- package/src/database-version/index.ts +0 -1
package/dest/keys/derivation.js
CHANGED
|
@@ -7,8 +7,8 @@ import { GrumpkinScalar } from '@aztec/foundation/curves/grumpkin';
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
8
|
import { PublicKeys } from './public_keys.js';
|
|
9
9
|
import { getKeyGenerator } from './utils.js';
|
|
10
|
-
export function
|
|
11
|
-
return computeAppSecretKey(
|
|
10
|
+
export function computeAppNullifierHidingKey(masterNullifierHidingKey, app) {
|
|
11
|
+
return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
|
|
12
12
|
}
|
|
13
13
|
export function computeAppSecretKey(skM, app, keyPrefix) {
|
|
14
14
|
const generator = getKeyGenerator(keyPrefix);
|
|
@@ -24,10 +24,10 @@ export async function computeOvskApp(ovsk, app) {
|
|
|
24
24
|
// P = s * G will not be uniform because 2 * (q - r) / q is small.
|
|
25
25
|
return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
|
|
26
26
|
}
|
|
27
|
-
export function
|
|
27
|
+
export function deriveMasterNullifierHidingKey(secretKey) {
|
|
28
28
|
return sha512ToGrumpkinScalar([
|
|
29
29
|
secretKey,
|
|
30
|
-
GeneratorIndex.
|
|
30
|
+
GeneratorIndex.NHK_M
|
|
31
31
|
]);
|
|
32
32
|
}
|
|
33
33
|
export function deriveMasterIncomingViewingSecretKey(secretKey) {
|
|
@@ -91,9 +91,9 @@ export function derivePublicKeyFromSecretKey(secretKey) {
|
|
|
91
91
|
* @param secretKey - The secret key to derive keys from.
|
|
92
92
|
* @returns The derived keys.
|
|
93
93
|
*/ export async function deriveKeys(secretKey) {
|
|
94
|
-
// First we derive master secret keys - we use sha512 here because this derivation will never take place
|
|
94
|
+
// First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
|
|
95
95
|
// in a circuit
|
|
96
|
-
const
|
|
96
|
+
const masterNullifierHidingKey = deriveMasterNullifierHidingKey(secretKey);
|
|
97
97
|
const masterIncomingViewingSecretKey = deriveMasterIncomingViewingSecretKey(secretKey);
|
|
98
98
|
const masterOutgoingViewingSecretKey = deriveMasterOutgoingViewingSecretKey(secretKey);
|
|
99
99
|
const masterTaggingSecretKey = sha512ToGrumpkinScalar([
|
|
@@ -101,14 +101,14 @@ export function derivePublicKeyFromSecretKey(secretKey) {
|
|
|
101
101
|
GeneratorIndex.TSK_M
|
|
102
102
|
]);
|
|
103
103
|
// Then we derive master public keys
|
|
104
|
-
const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(
|
|
104
|
+
const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
|
|
105
105
|
const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
|
|
106
106
|
const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
|
|
107
107
|
const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
|
|
108
108
|
// We hash the public keys to get the public keys hash
|
|
109
109
|
const publicKeys = new PublicKeys(masterNullifierPublicKey, masterIncomingViewingPublicKey, masterOutgoingViewingPublicKey, masterTaggingPublicKey);
|
|
110
110
|
return {
|
|
111
|
-
|
|
111
|
+
masterNullifierHidingKey,
|
|
112
112
|
masterIncomingViewingSecretKey,
|
|
113
113
|
masterOutgoingViewingSecretKey,
|
|
114
114
|
masterTaggingSecretKey,
|
package/dest/keys/key_types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { GeneratorIndex } from '@aztec/constants';
|
|
2
|
-
export type KeyGenerator = GeneratorIndex.
|
|
2
|
+
export type KeyGenerator = GeneratorIndex.NHK_M | GeneratorIndex.IVSK_M | GeneratorIndex.OVSK_M | GeneratorIndex.TSK_M;
|
|
3
3
|
export type KeyPrefix = 'n' | 'iv' | 'ov' | 't';
|
|
4
4
|
export declare const KEY_PREFIXES: KeyPrefix[];
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5X3R5cGVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2V5cy9rZXlfdHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFdkQsTUFBTSxNQUFNLFlBQVksR0FBRyxjQUFjLENBQUMsS0FBSyxHQUFHLGNBQWMsQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDO0FBQ3ZILE1BQU0sTUFBTSxTQUFTLEdBQUcsR0FBRyxHQUFHLElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxDQUFDO0FBQ2hELGVBQU8sTUFBTSxZQUFZLEVBQUUsU0FBUyxFQUEyQixDQUFDIn0=
|
package/dest/keys/utils.d.ts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { KeyGenerator, KeyPrefix } from './key_types.js';
|
|
2
2
|
export declare function getKeyGenerator(prefix: KeyPrefix): KeyGenerator;
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXlzL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sS0FBSyxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCx3QkFBZ0IsZUFBZSxDQUFDLE1BQU0sRUFBRSxTQUFTLEdBQUcsWUFBWSxDQVEvRCJ9
|
package/dest/keys/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/keys/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/keys/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE9D,wBAAgB,eAAe,CAAC,MAAM,EAAE,SAAS,GAAG,YAAY,CAQ/D"}
|
package/dest/keys/utils.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
import { GeneratorIndex } from '@aztec/constants';
|
|
2
2
|
export function getKeyGenerator(prefix) {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
const map = {
|
|
4
|
+
n: GeneratorIndex.NHK_M,
|
|
5
|
+
iv: GeneratorIndex.IVSK_M,
|
|
6
|
+
ov: GeneratorIndex.OVSK_M,
|
|
7
|
+
t: GeneratorIndex.TSK_M
|
|
8
|
+
};
|
|
9
|
+
return map[prefix];
|
|
6
10
|
}
|
|
@@ -42,4 +42,4 @@ export declare class SlashFactoryContract {
|
|
|
42
42
|
}
|
|
43
43
|
export declare function packValidatorSlashOffense(offense: ValidatorSlashOffense): bigint;
|
|
44
44
|
export declare function unpackValidatorSlashOffense(packed: bigint): ValidatorSlashOffense;
|
|
45
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhc2hfZmFjdG9yeS5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2wxLWNvbnRyYWN0cy9zbGFzaF9mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3hELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkzRCxPQUFPLEVBQThCLEtBQUssR0FBRyxFQUFFLEtBQUssR0FBRyxFQUFtQyxNQUFNLE1BQU0sQ0FBQztBQUV2RyxPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ25FLE9BQU8sRUFFTCxLQUFLLFlBQVksRUFDakIsS0FBSyxjQUFjLEVBQ25CLEtBQUsscUJBQXFCLEVBRTNCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIscUJBQWEsb0JBQW9CO2FBS2IsTUFBTSxFQUFFLFVBQVU7SUFKcEMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQTJDO0lBQ2xFLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUE0RDtJQUVyRixZQUNrQixNQUFNLEVBQUUsVUFBVSxFQUNsQyxPQUFPLEVBQUUsR0FBRyxHQUFHLFVBQVUsRUFPMUI7SUFFRCxJQUFXLE9BQU8sZUFFakI7SUFFTSx5QkFBeUIsQ0FBQyxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsV0FBVyxDQWdCdkU7SUFFRCx3RUFBd0U7SUFDakUsa0NBQWtDLENBQUMsSUFBSSxFQUFFLEdBQUcsRUFBRTs7Ozs7Ozs7a0JBRXBEO0lBRVksNEJBQTRCLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBZW5FO0lBRUQ7Ozs7O09BS0c7SUFDVSx5QkFBeUIsQ0FDcEMsY0FBYyxFQUFFLFVBQVUsRUFDMUIsUUFBUSxFQUFFO1FBQ1IsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO1FBQ3ZCLGlCQUFpQixFQUFFLE1BQU0sQ0FBQztRQUMxQiwrQkFBK0IsRUFBRSxNQUFNLENBQUM7S0FDekMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxHQUFHLHNCQUFzQixDQUFDLEdBQ25FLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQW1EbEQ7SUFFWSx1QkFBdUIsQ0FDbEMsT0FBTyxFQUFFLGNBQWMsRUFBRSxHQUN4QixPQUFPLENBQUM7UUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDO1FBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztRQUFDLFVBQVUsRUFBRSxPQUFPLENBQUE7S0FBRSxDQUFDLENBUWxFO0lBRUQsT0FBTyxDQUFDLFdBQVc7Q0FRcEI7QUFFRCx3QkFBZ0IseUJBQXlCLENBQUMsT0FBTyxFQUFFLHFCQUFxQixHQUFHLE1BQU0sQ0FNaEY7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxxQkFBcUIsQ0FLakYifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash_factory.d.ts","sourceRoot":"","sources":["../../src/l1-contracts/slash_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,EAA8B,KAAK,GAAG,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAoB;aAKb,MAAM,EAAE,UAAU;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IAErF,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAO1B;IAED,IAAW,OAAO,eAEjB;IAEM,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"slash_factory.d.ts","sourceRoot":"","sources":["../../src/l1-contracts/slash_factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAI3D,OAAO,EAA8B,KAAK,GAAG,EAAE,KAAK,GAAG,EAAmC,MAAM,MAAM,CAAC;AAEvG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACnE,OAAO,EAEL,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAE3B,MAAM,sBAAsB,CAAC;AAE9B,qBAAa,oBAAoB;aAKb,MAAM,EAAE,UAAU;IAJpC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA4D;IAErF,YACkB,MAAM,EAAE,UAAU,EAClC,OAAO,EAAE,GAAG,GAAG,UAAU,EAO1B;IAED,IAAW,OAAO,eAEjB;IAEM,yBAAyB,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,WAAW,CAgBvE;IAED,wEAAwE;IACjE,kCAAkC,CAAC,IAAI,EAAE,GAAG,EAAE;;;;;;;;kBAEpD;IAEY,4BAA4B,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAenE;IAED;;;;;OAKG;IACU,yBAAyB,CACpC,cAAc,EAAE,UAAU,EAC1B,QAAQ,EAAE;QACR,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,+BAA+B,EAAE,MAAM,CAAC;KACzC,GAAG,IAAI,CAAC,iBAAiB,EAAE,cAAc,GAAG,sBAAsB,CAAC,GACnE,OAAO,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC,CAmDlD;IAEY,uBAAuB,CAClC,OAAO,EAAE,cAAc,EAAE,GACxB,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,IAAI,EAAE,GAAG,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAQlE;IAED,OAAO,CAAC,WAAW;CAQpB;AAED,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,qBAAqB,GAAG,MAAM,CAMhF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,MAAM,GAAG,qBAAqB,CAKjF"}
|
package/dest/stats/stats.d.ts
CHANGED
|
@@ -158,8 +158,6 @@ export type L2BlockBuiltStats = {
|
|
|
158
158
|
duration: number;
|
|
159
159
|
/** Time for processing public txs in ms. */
|
|
160
160
|
publicProcessDuration: number;
|
|
161
|
-
/** Time for running rollup circuits in ms. */
|
|
162
|
-
rollupCircuitsDuration: number;
|
|
163
161
|
} & L2BlockStats;
|
|
164
162
|
/** Stats for an L2 block processed by the world state synchronizer. */
|
|
165
163
|
export type L2BlockHandledStats = {
|
|
@@ -225,4 +223,4 @@ export type TxAddedToPoolStats = {
|
|
|
225
223
|
export type Stats = AvmSimulationStats | CircuitProvingStats | CircuitSimulationStats | CircuitWitnessGenerationStats | PublicDBAccessStats | L1PublishCheckpointStats | L1PublishProofStats | L2BlockBuiltStats | L2BlockHandledStats | NodeSyncedChainHistoryStats | ProofConstructed | TreeInsertionStats | TxAddedToPoolStats;
|
|
226
224
|
/** Set of event names across emitted stats. */
|
|
227
225
|
export type StatsEventName = Stats['eventName'];
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
226
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGF0cy9zdGF0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxREFBcUQ7QUFDckQsTUFBTSxNQUFNLGdCQUFnQixHQUFHO0lBQzdCLDZDQUE2QztJQUM3QyxTQUFTLEVBQUUseUJBQXlCLENBQUM7SUFDckMsdUNBQXVDO0lBQ3ZDLFNBQVMsRUFBRSxNQUFNLENBQUM7SUFDbEIseUNBQXlDO0lBQ3pDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIseUJBQXlCO0lBQ3pCLEtBQUssRUFBRSxNQUFNLENBQUM7Q0FDZixDQUFDO0FBRUYseUNBQXlDO0FBQ3pDLE1BQU0sTUFBTSxZQUFZLEdBQUc7SUFDekIscUNBQXFDO0lBQ3JDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEIsOEJBQThCO0lBQzlCLFdBQVcsRUFBRSxNQUFNLENBQUM7SUFDcEIsNkJBQTZCO0lBQzdCLGNBQWMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUN6QixDQUFDO0FBRUYsTUFBTSxNQUFNLGVBQWUsR0FBRztJQUM1QiwrQ0FBK0M7SUFDL0MsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQix5Q0FBeUM7SUFDekMsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQixDQUFDO0FBRUYsMENBQTBDO0FBQzFDLE1BQU0sTUFBTSxjQUFjLEdBQUc7SUFDM0IsNkJBQTZCO0lBQzdCLE1BQU0sRUFBRSxNQUFNLENBQUM7SUFDZixxQ0FBcUM7SUFDckMsUUFBUSxFQUFFLE1BQU0sQ0FBQztJQUNqQixvQ0FBb0M7SUFDcEMsT0FBTyxFQUFFLE1BQU0sQ0FBQztJQUNoQix5QkFBeUI7SUFDekIsZUFBZSxFQUFFLE1BQU0sQ0FBQztJQUN4QixnQ0FBZ0M7SUFDaEMsV0FBVyxFQUFFLE1BQU0sQ0FBQztJQUNwQixxQ0FBcUM7SUFDckMsWUFBWSxFQUFFLE1BQU0sQ0FBQztJQUNyQixnQ0FBZ0M7SUFDaEMsV0FBVyxF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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/stats/stats.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../src/stats/stats.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/stdlib",
|
|
3
|
-
"version": "4.0.0-nightly.
|
|
3
|
+
"version": "4.0.0-nightly.20260201",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -52,7 +52,8 @@
|
|
|
52
52
|
"./epoch-helpers": "./dest/epoch-helpers/index.js",
|
|
53
53
|
"./config": "./dest/config/index.js",
|
|
54
54
|
"./testing/jest": "./dest/tests/jest.js",
|
|
55
|
-
"./database-version": "./dest/database-version/
|
|
55
|
+
"./database-version/version": "./dest/database-version/database_version.js",
|
|
56
|
+
"./database-version/manager": "./dest/database-version/version_manager.js",
|
|
56
57
|
"./validators": "./dest/validators/index.js",
|
|
57
58
|
"./file-store": "./dest/file-store/index.js",
|
|
58
59
|
"./snapshots": "./dest/snapshots/index.js",
|
|
@@ -78,14 +79,14 @@
|
|
|
78
79
|
},
|
|
79
80
|
"dependencies": {
|
|
80
81
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
81
|
-
"@aztec/bb.js": "4.0.0-nightly.
|
|
82
|
-
"@aztec/blob-lib": "4.0.0-nightly.
|
|
83
|
-
"@aztec/constants": "4.0.0-nightly.
|
|
84
|
-
"@aztec/ethereum": "4.0.0-nightly.
|
|
85
|
-
"@aztec/foundation": "4.0.0-nightly.
|
|
86
|
-
"@aztec/l1-artifacts": "4.0.0-nightly.
|
|
87
|
-
"@aztec/noir-noirc_abi": "4.0.0-nightly.
|
|
88
|
-
"@aztec/validator-ha-signer": "4.0.0-nightly.
|
|
82
|
+
"@aztec/bb.js": "4.0.0-nightly.20260201",
|
|
83
|
+
"@aztec/blob-lib": "4.0.0-nightly.20260201",
|
|
84
|
+
"@aztec/constants": "4.0.0-nightly.20260201",
|
|
85
|
+
"@aztec/ethereum": "4.0.0-nightly.20260201",
|
|
86
|
+
"@aztec/foundation": "4.0.0-nightly.20260201",
|
|
87
|
+
"@aztec/l1-artifacts": "4.0.0-nightly.20260201",
|
|
88
|
+
"@aztec/noir-noirc_abi": "4.0.0-nightly.20260201",
|
|
89
|
+
"@aztec/validator-ha-signer": "4.0.0-nightly.20260201",
|
|
89
90
|
"@google-cloud/storage": "^7.15.0",
|
|
90
91
|
"axios": "^1.12.0",
|
|
91
92
|
"json-stringify-deterministic": "1.0.12",
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
+
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
|
+
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Symbol for Node.js custom inspect. Using Symbol.for() is the documented way to
|
|
8
|
+
* reference this without importing node:util. In browsers, objects with this symbol
|
|
9
|
+
* simply won't have custom inspect behavior (which is fine).
|
|
10
|
+
* @see https://nodejs.org/api/util.html#utilinspectcustom
|
|
11
|
+
*/
|
|
12
|
+
const inspectCustomSymbol = Symbol.for('nodejs.util.inspect.custom');
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Represents a version record for storing in a version file.
|
|
16
|
+
*/
|
|
17
|
+
export class DatabaseVersion {
|
|
18
|
+
constructor(
|
|
19
|
+
/** The version of the data on disk. Used to perform upgrades */
|
|
20
|
+
public readonly schemaVersion: number,
|
|
21
|
+
/** The rollup the data pertains to */
|
|
22
|
+
public readonly rollupAddress: EthAddress,
|
|
23
|
+
) {}
|
|
24
|
+
|
|
25
|
+
public toBuffer(): Buffer {
|
|
26
|
+
return Buffer.from(jsonStringify(this));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
public static fromBuffer(buf: Buffer): DatabaseVersion {
|
|
30
|
+
try {
|
|
31
|
+
return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
|
|
32
|
+
} catch (err) {
|
|
33
|
+
throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Compares two versions. If the rollups addresses are different then it returns undefined
|
|
39
|
+
*/
|
|
40
|
+
public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
|
|
41
|
+
if (this.rollupAddress.equals(other.rollupAddress)) {
|
|
42
|
+
if (this.schemaVersion < other.schemaVersion) {
|
|
43
|
+
return -1;
|
|
44
|
+
} else if (this.schemaVersion > other.schemaVersion) {
|
|
45
|
+
return 1;
|
|
46
|
+
} else {
|
|
47
|
+
return 0;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Checks if two versions exactly match
|
|
55
|
+
*/
|
|
56
|
+
public equals(other: DatabaseVersion): boolean {
|
|
57
|
+
return this.cmp(other) === 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/**
|
|
61
|
+
* Returns the schema for this class
|
|
62
|
+
*/
|
|
63
|
+
static get schema() {
|
|
64
|
+
return z
|
|
65
|
+
.object({
|
|
66
|
+
schemaVersion: z.number(),
|
|
67
|
+
rollupAddress: EthAddress.schema,
|
|
68
|
+
})
|
|
69
|
+
.transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Allows for better introspection in Node.js console. Ignored in browser envs. */
|
|
73
|
+
public [inspectCustomSymbol](): string {
|
|
74
|
+
return this.toString();
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
public toString(): string {
|
|
78
|
+
return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Returns an empty instance
|
|
83
|
+
*/
|
|
84
|
+
static empty() {
|
|
85
|
+
return new DatabaseVersion(0, EthAddress.ZERO);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
@@ -1,86 +1,10 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { jsonParseWithSchema, jsonStringify } from '@aztec/foundation/json-rpc';
|
|
3
2
|
import { type Logger, createLogger } from '@aztec/foundation/log';
|
|
4
3
|
|
|
5
4
|
import fs from 'fs/promises';
|
|
6
|
-
import { inspect } from 'node:util';
|
|
7
5
|
import { join } from 'path';
|
|
8
|
-
import { z } from 'zod';
|
|
9
6
|
|
|
10
|
-
|
|
11
|
-
* Represents a version record for storing in a version file.
|
|
12
|
-
*/
|
|
13
|
-
export class DatabaseVersion {
|
|
14
|
-
constructor(
|
|
15
|
-
/** The version of the data on disk. Used to perform upgrades */
|
|
16
|
-
public readonly schemaVersion: number,
|
|
17
|
-
/** The rollup the data pertains to */
|
|
18
|
-
public readonly rollupAddress: EthAddress,
|
|
19
|
-
) {}
|
|
20
|
-
|
|
21
|
-
public toBuffer(): Buffer {
|
|
22
|
-
return Buffer.from(jsonStringify(this));
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
public static fromBuffer(buf: Buffer): DatabaseVersion {
|
|
26
|
-
try {
|
|
27
|
-
return jsonParseWithSchema(buf.toString('utf-8'), DatabaseVersion.schema);
|
|
28
|
-
} catch (err) {
|
|
29
|
-
throw new Error(`Failed to deserialize version information: ${err}`, { cause: err });
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
/**
|
|
34
|
-
* Compares two versions. If the rollups addresses are different then it returns undefined
|
|
35
|
-
*/
|
|
36
|
-
public cmp(other: DatabaseVersion): undefined | -1 | 0 | 1 {
|
|
37
|
-
if (this.rollupAddress.equals(other.rollupAddress)) {
|
|
38
|
-
if (this.schemaVersion < other.schemaVersion) {
|
|
39
|
-
return -1;
|
|
40
|
-
} else if (this.schemaVersion > other.schemaVersion) {
|
|
41
|
-
return 1;
|
|
42
|
-
} else {
|
|
43
|
-
return 0;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
return undefined;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Checks if two versions exactly match
|
|
51
|
-
*/
|
|
52
|
-
public equals(other: DatabaseVersion): boolean {
|
|
53
|
-
return this.cmp(other) === 0;
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Returns the schema for this class
|
|
58
|
-
*/
|
|
59
|
-
static get schema() {
|
|
60
|
-
return z
|
|
61
|
-
.object({
|
|
62
|
-
schemaVersion: z.number(),
|
|
63
|
-
rollupAddress: EthAddress.schema,
|
|
64
|
-
})
|
|
65
|
-
.transform(({ schemaVersion, rollupAddress }) => new DatabaseVersion(schemaVersion, rollupAddress));
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/** Allows for better introspection. */
|
|
69
|
-
public [inspect.custom](): string {
|
|
70
|
-
return this.toString();
|
|
71
|
-
}
|
|
72
|
-
|
|
73
|
-
public toString(): string {
|
|
74
|
-
return `DatabaseVersion{schemaVersion=${this.schemaVersion},rollupAddress=${this.rollupAddress}"}`;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Returns an empty instance
|
|
79
|
-
*/
|
|
80
|
-
static empty() {
|
|
81
|
-
return new DatabaseVersion(0, EthAddress.ZERO);
|
|
82
|
-
}
|
|
83
|
-
}
|
|
7
|
+
import { DatabaseVersion } from './database_version.js';
|
|
84
8
|
|
|
85
9
|
export type DatabaseVersionManagerFs = Pick<typeof fs, 'readFile' | 'writeFile' | 'rm' | 'mkdir'>;
|
|
86
10
|
|
|
@@ -87,28 +87,31 @@ export interface AztecNode
|
|
|
87
87
|
/**
|
|
88
88
|
* Find the indexes of the given leaves in the given tree along with a block metadata pointing to the block in which
|
|
89
89
|
* the leaves were inserted.
|
|
90
|
-
* @param
|
|
90
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
91
91
|
* @param treeId - The tree to search in.
|
|
92
92
|
* @param leafValues - The values to search for.
|
|
93
93
|
* @returns The indices of leaves and the block metadata of a block in which the leaves were inserted.
|
|
94
94
|
*/
|
|
95
95
|
findLeavesIndexes(
|
|
96
|
-
|
|
96
|
+
referenceBlock: BlockParameter,
|
|
97
97
|
treeId: MerkleTreeId,
|
|
98
98
|
leafValues: Fr[],
|
|
99
99
|
): Promise<(DataInBlock<bigint> | undefined)[]>;
|
|
100
100
|
|
|
101
101
|
/**
|
|
102
102
|
* Returns a nullifier membership witness for a given nullifier at a given block.
|
|
103
|
-
* @param
|
|
103
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
104
104
|
* @param nullifier - Nullifier we try to find witness for.
|
|
105
105
|
* @returns The nullifier membership witness (if found).
|
|
106
106
|
*/
|
|
107
|
-
getNullifierMembershipWitness(
|
|
107
|
+
getNullifierMembershipWitness(
|
|
108
|
+
referenceBlock: BlockParameter,
|
|
109
|
+
nullifier: Fr,
|
|
110
|
+
): Promise<NullifierMembershipWitness | undefined>;
|
|
108
111
|
|
|
109
112
|
/**
|
|
110
113
|
* Returns a low nullifier membership witness for a given nullifier at a given block.
|
|
111
|
-
* @param
|
|
114
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
112
115
|
* @param nullifier - Nullifier we try to find the low nullifier witness for.
|
|
113
116
|
* @returns The low nullifier membership witness (if found).
|
|
114
117
|
* @remarks Low nullifier witness can be used to perform a nullifier non-inclusion proof by leveraging the "linked
|
|
@@ -116,49 +119,56 @@ export interface AztecNode
|
|
|
116
119
|
* we are trying to prove non-inclusion for.
|
|
117
120
|
*/
|
|
118
121
|
getLowNullifierMembershipWitness(
|
|
119
|
-
|
|
122
|
+
referenceBlock: BlockParameter,
|
|
120
123
|
nullifier: Fr,
|
|
121
124
|
): Promise<NullifierMembershipWitness | undefined>;
|
|
122
125
|
|
|
123
126
|
/**
|
|
124
127
|
* Returns a public data tree witness for a given leaf slot at a given block.
|
|
125
|
-
* @param
|
|
128
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
126
129
|
* @param leafSlot - The leaf slot we try to find the witness for.
|
|
127
130
|
* @returns The public data witness (if found).
|
|
128
131
|
* @remarks The witness can be used to compute the current value of the public data tree leaf. If the low leaf preimage corresponds to an
|
|
129
132
|
* "in range" slot, means that the slot doesn't exist and the value is 0. If the low leaf preimage corresponds to the exact slot, the current value
|
|
130
133
|
* is contained in the leaf preimage.
|
|
131
134
|
*/
|
|
132
|
-
getPublicDataWitness(
|
|
135
|
+
getPublicDataWitness(referenceBlock: BlockParameter, leafSlot: Fr): Promise<PublicDataWitness | undefined>;
|
|
133
136
|
|
|
134
137
|
/**
|
|
135
|
-
* Returns a membership witness for a given
|
|
136
|
-
*
|
|
137
|
-
*
|
|
138
|
+
* Returns a membership witness for a given block hash in the archive tree.
|
|
139
|
+
*
|
|
140
|
+
* Block hashes are the leaves of the archive tree. Each time a new block is added to the chain,
|
|
141
|
+
* its block hash is appended as a new leaf to the archive tree. This method finds the membership
|
|
142
|
+
* witness (leaf index and sibling path) for a given block hash, which can be used to prove that
|
|
143
|
+
* a specific block exists in the chain's history.
|
|
144
|
+
*
|
|
145
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data
|
|
146
|
+
* (which contains the root of the archive tree in which we are searching for the block hash).
|
|
147
|
+
* @param blockHash - The block hash to find in the archive tree.
|
|
138
148
|
*/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
149
|
+
getBlockHashMembershipWitness(
|
|
150
|
+
referenceBlock: BlockParameter,
|
|
151
|
+
blockHash: BlockHash,
|
|
142
152
|
): Promise<MembershipWitness<typeof ARCHIVE_HEIGHT> | undefined>;
|
|
143
153
|
|
|
144
154
|
/**
|
|
145
155
|
* Returns a membership witness for a given note hash at a given block.
|
|
146
|
-
* @param
|
|
156
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
147
157
|
* @param noteHash - The note hash we try to find the witness for.
|
|
148
158
|
*/
|
|
149
159
|
getNoteHashMembershipWitness(
|
|
150
|
-
|
|
160
|
+
referenceBlock: BlockParameter,
|
|
151
161
|
noteHash: Fr,
|
|
152
162
|
): Promise<MembershipWitness<typeof NOTE_HASH_TREE_HEIGHT> | undefined>;
|
|
153
163
|
|
|
154
164
|
/**
|
|
155
165
|
* Returns the index and a sibling path for a leaf in the committed l1 to l2 data tree.
|
|
156
|
-
* @param
|
|
166
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
157
167
|
* @param l1ToL2Message - The l1ToL2Message to get the index / sibling path for.
|
|
158
168
|
* @returns A tuple of the index and the sibling path of the L1ToL2Message (undefined if not found).
|
|
159
169
|
*/
|
|
160
170
|
getL1ToL2MessageMembershipWitness(
|
|
161
|
-
|
|
171
|
+
referenceBlock: BlockParameter,
|
|
162
172
|
l1ToL2Message: Fr,
|
|
163
173
|
): Promise<[bigint, SiblingPath<typeof L1_TO_L2_MSG_TREE_HEIGHT>] | undefined>;
|
|
164
174
|
|
|
@@ -183,10 +193,10 @@ export interface AztecNode
|
|
|
183
193
|
|
|
184
194
|
/**
|
|
185
195
|
* Get a block specified by its block number or 'latest'.
|
|
186
|
-
* @param
|
|
196
|
+
* @param blockParameter - The block parameter (block number, block hash, or 'latest').
|
|
187
197
|
* @returns The requested block.
|
|
188
198
|
*/
|
|
189
|
-
getBlock(
|
|
199
|
+
getBlock(blockParameter: BlockParameter): Promise<L2Block | undefined>;
|
|
190
200
|
|
|
191
201
|
/**
|
|
192
202
|
* Get a block specified by its hash.
|
|
@@ -392,12 +402,12 @@ export interface AztecNode
|
|
|
392
402
|
* @remarks The storage slot here refers to the slot as it is defined in Noir not the index in the merkle tree.
|
|
393
403
|
* Aztec's version of `eth_getStorageAt`.
|
|
394
404
|
*
|
|
395
|
-
* @param
|
|
405
|
+
* @param referenceBlock - The block parameter (block number, block hash, or 'latest') at which to get the data.
|
|
396
406
|
* @param contract - Address of the contract to query.
|
|
397
407
|
* @param slot - Slot to query.
|
|
398
408
|
* @returns Storage value at the given contract slot.
|
|
399
409
|
*/
|
|
400
|
-
getPublicStorageAt(
|
|
410
|
+
getPublicStorageAt(referenceBlock: BlockParameter, contract: AztecAddress, slot: Fr): Promise<Fr>;
|
|
401
411
|
|
|
402
412
|
/**
|
|
403
413
|
* Returns the block header for a given block number, block hash, or 'latest'.
|
|
@@ -492,9 +502,9 @@ export const AztecNodeApiSchema: ApiSchemaFor<AztecNode> = {
|
|
|
492
502
|
.args(BlockParameterSchema, schemas.Fr)
|
|
493
503
|
.returns(PublicDataWitness.schema.optional()),
|
|
494
504
|
|
|
495
|
-
|
|
505
|
+
getBlockHashMembershipWitness: z
|
|
496
506
|
.function()
|
|
497
|
-
.args(BlockParameterSchema,
|
|
507
|
+
.args(BlockParameterSchema, BlockHash.schema)
|
|
498
508
|
.returns(MembershipWitness.schemaFor(ARCHIVE_HEIGHT).optional()),
|
|
499
509
|
|
|
500
510
|
getNoteHashMembershipWitness: z
|
|
@@ -62,8 +62,16 @@ export const FullNodeBlockBuilderConfigKeys: (keyof FullNodeBlockBuilderConfig)[
|
|
|
62
62
|
'fakeThrowAfterProcessingTxCount',
|
|
63
63
|
] as const;
|
|
64
64
|
|
|
65
|
+
/** Thrown when no valid transactions are available to include in a block after processing, and this is not the first block in a checkpoint. */
|
|
66
|
+
export class NoValidTxsError extends Error {
|
|
67
|
+
constructor(public readonly failedTxs: FailedTx[]) {
|
|
68
|
+
super('No valid transactions to include in block');
|
|
69
|
+
this.name = 'NoValidTxsError';
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
65
73
|
/** Result of building a block within a checkpoint. */
|
|
66
|
-
export
|
|
74
|
+
export type BuildBlockInCheckpointResult = {
|
|
67
75
|
block: L2Block;
|
|
68
76
|
publicGas: Gas;
|
|
69
77
|
publicProcessorDuration: number;
|
|
@@ -71,7 +79,7 @@ export interface BuildBlockInCheckpointResult {
|
|
|
71
79
|
failedTxs: FailedTx[];
|
|
72
80
|
usedTxs: Tx[];
|
|
73
81
|
usedTxBlobFields: number;
|
|
74
|
-
}
|
|
82
|
+
};
|
|
75
83
|
|
|
76
84
|
/** Interface for building blocks within a checkpoint context. */
|
|
77
85
|
export interface ICheckpointBlockBuilder {
|
package/src/keys/derivation.ts
CHANGED
|
@@ -10,8 +10,8 @@ import type { KeyPrefix } from './key_types.js';
|
|
|
10
10
|
import { PublicKeys } from './public_keys.js';
|
|
11
11
|
import { getKeyGenerator } from './utils.js';
|
|
12
12
|
|
|
13
|
-
export function
|
|
14
|
-
return computeAppSecretKey(
|
|
13
|
+
export function computeAppNullifierHidingKey(masterNullifierHidingKey: GrumpkinScalar, app: AztecAddress): Promise<Fr> {
|
|
14
|
+
return computeAppSecretKey(masterNullifierHidingKey, app, 'n'); // 'n' is the key prefix for nullifier hiding key
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
export function computeAppSecretKey(skM: GrumpkinScalar, app: AztecAddress, keyPrefix: KeyPrefix): Promise<Fr> {
|
|
@@ -26,8 +26,8 @@ export async function computeOvskApp(ovsk: GrumpkinScalar, app: AztecAddress): P
|
|
|
26
26
|
return GrumpkinScalar.fromBuffer(ovskAppFr.toBuffer());
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
export function
|
|
30
|
-
return sha512ToGrumpkinScalar([secretKey, GeneratorIndex.
|
|
29
|
+
export function deriveMasterNullifierHidingKey(secretKey: Fr): GrumpkinScalar {
|
|
30
|
+
return sha512ToGrumpkinScalar([secretKey, GeneratorIndex.NHK_M]);
|
|
31
31
|
}
|
|
32
32
|
|
|
33
33
|
export function deriveMasterIncomingViewingSecretKey(secretKey: Fr): GrumpkinScalar {
|
|
@@ -93,15 +93,15 @@ export function derivePublicKeyFromSecretKey(secretKey: Fq) {
|
|
|
93
93
|
* @returns The derived keys.
|
|
94
94
|
*/
|
|
95
95
|
export async function deriveKeys(secretKey: Fr) {
|
|
96
|
-
// First we derive master secret keys - we use sha512 here because this derivation will never take place
|
|
96
|
+
// First we derive master secret/hiding keys - we use sha512 here because this derivation will never take place
|
|
97
97
|
// in a circuit
|
|
98
|
-
const
|
|
98
|
+
const masterNullifierHidingKey = deriveMasterNullifierHidingKey(secretKey);
|
|
99
99
|
const masterIncomingViewingSecretKey = deriveMasterIncomingViewingSecretKey(secretKey);
|
|
100
100
|
const masterOutgoingViewingSecretKey = deriveMasterOutgoingViewingSecretKey(secretKey);
|
|
101
101
|
const masterTaggingSecretKey = sha512ToGrumpkinScalar([secretKey, GeneratorIndex.TSK_M]);
|
|
102
102
|
|
|
103
103
|
// Then we derive master public keys
|
|
104
|
-
const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(
|
|
104
|
+
const masterNullifierPublicKey = await derivePublicKeyFromSecretKey(masterNullifierHidingKey);
|
|
105
105
|
const masterIncomingViewingPublicKey = await derivePublicKeyFromSecretKey(masterIncomingViewingSecretKey);
|
|
106
106
|
const masterOutgoingViewingPublicKey = await derivePublicKeyFromSecretKey(masterOutgoingViewingSecretKey);
|
|
107
107
|
const masterTaggingPublicKey = await derivePublicKeyFromSecretKey(masterTaggingSecretKey);
|
|
@@ -115,7 +115,7 @@ export async function deriveKeys(secretKey: Fr) {
|
|
|
115
115
|
);
|
|
116
116
|
|
|
117
117
|
return {
|
|
118
|
-
|
|
118
|
+
masterNullifierHidingKey,
|
|
119
119
|
masterIncomingViewingSecretKey,
|
|
120
120
|
masterOutgoingViewingSecretKey,
|
|
121
121
|
masterTaggingSecretKey,
|