@aztec-labs/stdlib 6.0.0-nightly.20260923 → 6.0.0-rc.1
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/hash/hash.d.ts +2 -2
- package/dest/hash/hash.d.ts.map +1 -1
- package/dest/hash/hash.js +2 -2
- package/dest/kernel/private_circuit_public_inputs.d.ts +11 -7
- package/dest/kernel/private_circuit_public_inputs.d.ts.map +1 -1
- package/dest/kernel/private_circuit_public_inputs.js +10 -8
- package/dest/kernel/private_context_inputs.d.ts +3 -3
- package/dest/kernel/private_context_inputs.d.ts.map +1 -1
- package/dest/kernel/private_context_inputs.js +4 -4
- package/dest/tests/factories.js +1 -1
- package/dest/tx/private_tx_constant_data.d.ts +9 -9
- package/dest/tx/private_tx_constant_data.d.ts.map +1 -1
- package/dest/tx/private_tx_constant_data.js +8 -8
- package/dest/tx/tx_request.d.ts +24 -4
- package/dest/tx/tx_request.d.ts.map +1 -1
- package/dest/tx/tx_request.js +25 -4
- package/package.json +7 -7
- package/src/hash/hash.ts +2 -2
- package/src/kernel/private_circuit_public_inputs.ts +8 -6
- package/src/kernel/private_context_inputs.ts +2 -2
- package/src/tests/factories.ts +1 -1
- package/src/tx/private_tx_constant_data.ts +6 -6
- package/src/tx/tx_request.ts +27 -5
package/dest/hash/hash.d.ts
CHANGED
|
@@ -66,7 +66,7 @@ export declare function computeSiloedPublicInitializationNullifier(contract: Azt
|
|
|
66
66
|
*
|
|
67
67
|
* @dev Must match the implementation in noir-protocol-circuits/crates/types/src/hash.nr > compute_protocol_nullifier
|
|
68
68
|
*/
|
|
69
|
-
export declare function computeProtocolNullifier(
|
|
69
|
+
export declare function computeProtocolNullifier(protocolNullifierValue: Fr): Promise<Fr>;
|
|
70
70
|
/** Domain-separates a raw log tag with the given domain separator. */
|
|
71
71
|
export declare function computeLogTag(rawTag: number | bigint | boolean | Fr | Buffer, domSep: DomainSeparator): Promise<Fr>;
|
|
72
72
|
/**
|
|
@@ -125,4 +125,4 @@ export declare function computeL2ToL1MessageHash({ l2Sender, l1Recipient, conten
|
|
|
125
125
|
rollupVersion: Fr;
|
|
126
126
|
chainId: Fr;
|
|
127
127
|
}): Fr;
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
128
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzaC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2hhc2gvaGFzaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEQsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUV6RCw4R0FBOEc7QUFDOUcsd0JBQWdCLGlCQUFpQixDQUFDLElBQUksRUFBRSxFQUFFLEVBQUUsS0FBSyxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBRWxFO0FBRUQsaUVBQWlFO0FBQ2pFLHdCQUFnQiwwQkFBMEIsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUUzRTtBQUVELG1FQUFtRTtBQUNuRSx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FFNUU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQXNCLE1BQU0sQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUczRDtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLG9CQUFvQixDQUFDLGFBQWEsRUFBRSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsRUFBRSxDQUFDLENBRTFGO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxRQUFRLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxFQUFFLEdBQUcsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUU5RTtBQUVEOzs7OztHQUtH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
|
package/dest/hash/hash.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/hash/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAErE,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,8GAA8G;AAC9G,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAElE;AAED,iEAAiE;AACjE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAE3E;AAED,mEAAmE;AACnE,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAE5E;AAED;;;;GAIG;AACH,wBAAsB,MAAM,CAAC,WAAW,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAG3D;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,EAAE,CAAC,CAE1F;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,YAAY,EAAE,QAAQ,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAE9E;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAEpF;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,YAAY,EAAE,cAAc,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC,CAErF;AAED;;;;;GAKG;AACH,wBAAsB,2CAA2C,CAC/D,QAAQ,EAAE,YAAY,EACtB,kBAAkB,EAAE,EAAE,GACrB,OAAO,CAAC,EAAE,CAAC,CAMb;AAED;;;;;;GAMG;AACH,wBAAsB,0CAA0C,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,EAAE,CAAC,CAGpG;AAED;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,
|
|
1
|
+
{"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/hash/hash.ts"],"names":[],"mappings":"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"}
|
package/dest/hash/hash.js
CHANGED
|
@@ -105,8 +105,8 @@ import { AztecAddress } from '../aztec-address/index.js';
|
|
|
105
105
|
* @returns The siloed value of the protocol nullifier.
|
|
106
106
|
*
|
|
107
107
|
* @dev Must match the implementation in noir-protocol-circuits/crates/types/src/hash.nr > compute_protocol_nullifier
|
|
108
|
-
*/ export function computeProtocolNullifier(
|
|
109
|
-
return siloNullifier(AztecAddress.NULL_MSG_SENDER,
|
|
108
|
+
*/ export function computeProtocolNullifier(protocolNullifierValue) {
|
|
109
|
+
return siloNullifier(AztecAddress.NULL_MSG_SENDER, protocolNullifierValue);
|
|
110
110
|
}
|
|
111
111
|
/** Domain-separates a raw log tag with the given domain separator. */ export function computeLogTag(rawTag, domSep) {
|
|
112
112
|
return poseidon2HashWithSeparator([
|
|
@@ -117,10 +117,12 @@ export declare class PrivateCircuitPublicInputs {
|
|
|
117
117
|
*/
|
|
118
118
|
contractClassLogsHashes: ClaimedLengthArray<CountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>;
|
|
119
119
|
/**
|
|
120
|
-
* The
|
|
121
|
-
*
|
|
120
|
+
* The transaction's siloed protocol nullifier: the value the init kernel inserts at index 0 of the transaction's
|
|
121
|
+
* nullifiers, identical on every private call. The init kernel asserts the first call's value equals the one
|
|
122
|
+
* derived from the tx request, binding this proof to that request; every later kernel asserts each nested call's
|
|
123
|
+
* value equals the transaction constant.
|
|
122
124
|
*/
|
|
123
|
-
|
|
125
|
+
protocolNullifier: Fr;
|
|
124
126
|
constructor(
|
|
125
127
|
/**
|
|
126
128
|
* Context of the call corresponding to this private circuit execution.
|
|
@@ -219,10 +221,12 @@ export declare class PrivateCircuitPublicInputs {
|
|
|
219
221
|
*/
|
|
220
222
|
contractClassLogsHashes: ClaimedLengthArray<CountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>,
|
|
221
223
|
/**
|
|
222
|
-
* The
|
|
223
|
-
*
|
|
224
|
+
* The transaction's siloed protocol nullifier: the value the init kernel inserts at index 0 of the transaction's
|
|
225
|
+
* nullifiers, identical on every private call. The init kernel asserts the first call's value equals the one
|
|
226
|
+
* derived from the tx request, binding this proof to that request; every later kernel asserts each nested call's
|
|
227
|
+
* value equals the transaction constant.
|
|
224
228
|
*/
|
|
225
|
-
|
|
229
|
+
protocolNullifier: Fr);
|
|
226
230
|
/**
|
|
227
231
|
* Create PrivateCircuitPublicInputs from a fields dictionary.
|
|
228
232
|
* @param fields - The dictionary.
|
|
@@ -260,4 +264,4 @@ export declare class PrivateCircuitPublicInputs {
|
|
|
260
264
|
toJSON(): Buffer<ArrayBufferLike>;
|
|
261
265
|
static get schema(): import("zod").ZodType<PrivateCircuitPublicInputs, string, import("zod/v4/core").$ZodTypeInternals<PrivateCircuitPublicInputs, string>>;
|
|
262
266
|
}
|
|
263
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9jaXJjdWl0X3B1YmxpY19pbnB1dHMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9rZXJuZWwvcHJpdmF0ZV9jaXJjdWl0X3B1YmxpY19pbnB1dHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQywyQkFBMkIsRUFDM0Isb0NBQW9DLEVBQ3BDLDBCQUEwQixFQUMxQix3QkFBd0IsRUFDeEIsb0NBQW9DLEVBQ3BDLHVCQUF1QixFQUN2QixvQ0FBb0MsRUFDcEMsc0NBQXNDLEVBQ3RDLHlCQUF5QixFQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBQy9CLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUV6RCxPQUFPLEVBQ0wsWUFBWSxFQUNaLFdBQVcsRUFJWixNQUFNLGtDQUFrQyxDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRTdELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQzNHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUNMLGtCQUFrQixFQUduQixNQUFNLDJC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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_circuit_public_inputs.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"private_circuit_public_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_circuit_public_inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,7 +41,7 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
41
41
|
l2ToL1Msgs;
|
|
42
42
|
privateLogs;
|
|
43
43
|
contractClassLogsHashes;
|
|
44
|
-
|
|
44
|
+
protocolNullifier;
|
|
45
45
|
constructor(/**
|
|
46
46
|
* Context of the call corresponding to this private circuit execution.
|
|
47
47
|
*/ callContext, /**
|
|
@@ -93,9 +93,11 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
93
93
|
*/ privateLogs, /**
|
|
94
94
|
* Hash of the contract class logs emitted in this function call.
|
|
95
95
|
*/ contractClassLogsHashes, /**
|
|
96
|
-
* The
|
|
97
|
-
*
|
|
98
|
-
|
|
96
|
+
* The transaction's siloed protocol nullifier: the value the init kernel inserts at index 0 of the transaction's
|
|
97
|
+
* nullifiers, identical on every private call. The init kernel asserts the first call's value equals the one
|
|
98
|
+
* derived from the tx request, binding this proof to that request; every later kernel asserts each nested call's
|
|
99
|
+
* value equals the transaction constant.
|
|
100
|
+
*/ protocolNullifier){
|
|
99
101
|
this.callContext = callContext;
|
|
100
102
|
this.argsHash = argsHash;
|
|
101
103
|
this.returnsHash = returnsHash;
|
|
@@ -119,7 +121,7 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
119
121
|
this.l2ToL1Msgs = l2ToL1Msgs;
|
|
120
122
|
this.privateLogs = privateLogs;
|
|
121
123
|
this.contractClassLogsHashes = contractClassLogsHashes;
|
|
122
|
-
this.
|
|
124
|
+
this.protocolNullifier = protocolNullifier;
|
|
123
125
|
}
|
|
124
126
|
/**
|
|
125
127
|
* Create PrivateCircuitPublicInputs from a fields dictionary.
|
|
@@ -147,7 +149,7 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
147
149
|
return new PrivateCircuitPublicInputs(CallContext.empty(), Fr.ZERO, Fr.ZERO, BlockHeader.empty(), TxContext.empty(), Fr.ZERO, false, 0n, Fr.ZERO, Fr.ZERO, Fr.ZERO, Fr.ZERO, ClaimedLengthArray.empty(ScopedReadRequest, MAX_NOTE_HASH_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(ScopedReadRequest, MAX_NULLIFIER_READ_REQUESTS_PER_CALL), ClaimedLengthArray.empty(KeyValidationRequestAndSeparator, MAX_KEY_VALIDATION_REQUESTS_PER_CALL), ClaimedLengthArray.empty(PrivateCallRequest, MAX_PRIVATE_CALL_STACK_LENGTH_PER_CALL), ClaimedLengthArray.empty(CountedPublicCallRequest, MAX_ENQUEUED_CALLS_PER_CALL), PublicCallRequest.empty(), ClaimedLengthArray.empty(NoteHash, MAX_NOTE_HASHES_PER_CALL), ClaimedLengthArray.empty(Nullifier, MAX_NULLIFIERS_PER_CALL), ClaimedLengthArray.empty(CountedL2ToL1Message, MAX_L2_TO_L1_MSGS_PER_CALL), ClaimedLengthArray.empty(PrivateLogData, MAX_PRIVATE_LOGS_PER_CALL), ClaimedLengthArray.empty(CountedLogHash, MAX_CONTRACT_CLASS_LOGS_PER_CALL), Fr.ZERO);
|
|
148
150
|
}
|
|
149
151
|
isEmpty() {
|
|
150
|
-
return this.callContext.isEmpty() && this.argsHash.isZero() && this.returnsHash.isZero() && this.anchorBlockHeader.isEmpty() && this.txContext.isEmpty() && this.minRevertibleSideEffectCounter.isZero() && !this.isFeePayer && !this.expirationTimestamp && this.startSideEffectCounter.isZero() && this.endSideEffectCounter.isZero() && this.expectedNonRevertibleSideEffectCounter.isZero() && this.expectedRevertibleSideEffectCounter.isZero() && this.noteHashReadRequests.isEmpty() && this.nullifierReadRequests.isEmpty() && this.keyValidationRequestsAndSeparators.isEmpty() && this.privateCallRequests.isEmpty() && this.publicCallRequests.isEmpty() && this.publicTeardownCallRequest.isEmpty() && this.noteHashes.isEmpty() && this.nullifiers.isEmpty() && this.l2ToL1Msgs.isEmpty() && this.privateLogs.isEmpty() && this.contractClassLogsHashes.isEmpty() && this.
|
|
152
|
+
return this.callContext.isEmpty() && this.argsHash.isZero() && this.returnsHash.isZero() && this.anchorBlockHeader.isEmpty() && this.txContext.isEmpty() && this.minRevertibleSideEffectCounter.isZero() && !this.isFeePayer && !this.expirationTimestamp && this.startSideEffectCounter.isZero() && this.endSideEffectCounter.isZero() && this.expectedNonRevertibleSideEffectCounter.isZero() && this.expectedRevertibleSideEffectCounter.isZero() && this.noteHashReadRequests.isEmpty() && this.nullifierReadRequests.isEmpty() && this.keyValidationRequestsAndSeparators.isEmpty() && this.privateCallRequests.isEmpty() && this.publicCallRequests.isEmpty() && this.publicTeardownCallRequest.isEmpty() && this.noteHashes.isEmpty() && this.nullifiers.isEmpty() && this.l2ToL1Msgs.isEmpty() && this.privateLogs.isEmpty() && this.contractClassLogsHashes.isEmpty() && this.protocolNullifier.isZero();
|
|
151
153
|
}
|
|
152
154
|
/**
|
|
153
155
|
* Serialize into a field array. Low-level utility.
|
|
@@ -178,7 +180,7 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
178
180
|
fields.l2ToL1Msgs,
|
|
179
181
|
fields.privateLogs,
|
|
180
182
|
fields.contractClassLogsHashes,
|
|
181
|
-
fields.
|
|
183
|
+
fields.protocolNullifier
|
|
182
184
|
];
|
|
183
185
|
}
|
|
184
186
|
/**
|
|
@@ -211,7 +213,7 @@ import { CountedPublicCallRequest, PublicCallRequest } from './public_call_reque
|
|
|
211
213
|
this.l2ToL1Msgs,
|
|
212
214
|
this.privateLogs,
|
|
213
215
|
this.contractClassLogsHashes,
|
|
214
|
-
this.
|
|
216
|
+
this.protocolNullifier
|
|
215
217
|
]);
|
|
216
218
|
}
|
|
217
219
|
/**
|
|
@@ -7,9 +7,9 @@ export declare class PrivateContextInputs {
|
|
|
7
7
|
anchorBlockHeader: BlockHeader;
|
|
8
8
|
txContext: TxContext;
|
|
9
9
|
startSideEffectCounter: number;
|
|
10
|
-
|
|
11
|
-
constructor(callContext: CallContext, anchorBlockHeader: BlockHeader, txContext: TxContext, startSideEffectCounter: number,
|
|
10
|
+
protocolNullifier: Fr;
|
|
11
|
+
constructor(callContext: CallContext, anchorBlockHeader: BlockHeader, txContext: TxContext, startSideEffectCounter: number, protocolNullifier: Fr);
|
|
12
12
|
static empty(): PrivateContextInputs;
|
|
13
13
|
toFields(): Fr[];
|
|
14
14
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9jb250ZXh0X2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2tlcm5lbC9wcml2YXRlX2NvbnRleHRfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUd6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVoRCxxQkFBYSxvQkFBb0I7SUFFdEIsV0FBVyxFQUFFLFdBQVc7SUFDeEIsaUJBQWlCLEVBQUUsV0FBVztJQUM5QixTQUFTLEVBQUUsU0FBUztJQUNwQixzQkFBc0IsRUFBRSxNQUFNO0lBQzlCLGlCQUFpQixFQUFFLEVBQUU7SUFMOUIsWUFDUyxXQUFXLEVBQUUsV0FBVyxFQUN4QixpQkFBaUIsRUFBRSxXQUFXLEVBQzlCLFNBQVMsRUFBRSxTQUFTLEVBQ3BCLHNCQUFzQixFQUFFLE1BQU0sRUFDOUIsaUJBQWlCLEVBQUUsRUFBRSxFQUMxQjtJQUVKLE9BQWMsS0FBSyxJQUFJLG9CQUFvQixDQUUxQztJQUVNLFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FRdEI7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_context_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_context_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,oBAAoB;IAEtB,WAAW,EAAE,WAAW;IACxB,iBAAiB,EAAE,WAAW;IAC9B,SAAS,EAAE,SAAS;IACpB,sBAAsB,EAAE,MAAM;IAC9B,
|
|
1
|
+
{"version":3,"file":"private_context_inputs.d.ts","sourceRoot":"","sources":["../../src/kernel/private_context_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,qBAAa,oBAAoB;IAEtB,WAAW,EAAE,WAAW;IACxB,iBAAiB,EAAE,WAAW;IAC9B,SAAS,EAAE,SAAS;IACpB,sBAAsB,EAAE,MAAM;IAC9B,iBAAiB,EAAE,EAAE;IAL9B,YACS,WAAW,EAAE,WAAW,EACxB,iBAAiB,EAAE,WAAW,EAC9B,SAAS,EAAE,SAAS,EACpB,sBAAsB,EAAE,MAAM,EAC9B,iBAAiB,EAAE,EAAE,EAC1B;IAEJ,OAAc,KAAK,IAAI,oBAAoB,CAE1C;IAEM,QAAQ,IAAI,EAAE,EAAE,CAQtB;CACF"}
|
|
@@ -8,13 +8,13 @@ export class PrivateContextInputs {
|
|
|
8
8
|
anchorBlockHeader;
|
|
9
9
|
txContext;
|
|
10
10
|
startSideEffectCounter;
|
|
11
|
-
|
|
12
|
-
constructor(callContext, anchorBlockHeader, txContext, startSideEffectCounter,
|
|
11
|
+
protocolNullifier;
|
|
12
|
+
constructor(callContext, anchorBlockHeader, txContext, startSideEffectCounter, protocolNullifier){
|
|
13
13
|
this.callContext = callContext;
|
|
14
14
|
this.anchorBlockHeader = anchorBlockHeader;
|
|
15
15
|
this.txContext = txContext;
|
|
16
16
|
this.startSideEffectCounter = startSideEffectCounter;
|
|
17
|
-
this.
|
|
17
|
+
this.protocolNullifier = protocolNullifier;
|
|
18
18
|
}
|
|
19
19
|
static empty() {
|
|
20
20
|
return new PrivateContextInputs(CallContext.empty(), BlockHeader.empty(), TxContext.empty(), 0, Fr.ZERO);
|
|
@@ -25,7 +25,7 @@ export class PrivateContextInputs {
|
|
|
25
25
|
this.anchorBlockHeader,
|
|
26
26
|
this.txContext,
|
|
27
27
|
this.startSideEffectCounter,
|
|
28
|
-
this.
|
|
28
|
+
this.protocolNullifier
|
|
29
29
|
]);
|
|
30
30
|
}
|
|
31
31
|
}
|
package/dest/tests/factories.js
CHANGED
|
@@ -321,7 +321,7 @@ function makeClaimedLengthArray(arraySize, makeItem, seed, length = arraySize) {
|
|
|
321
321
|
anchorBlockHeader: makeBlockHeader(seed + 0xd00),
|
|
322
322
|
txContext: makeTxContext(seed + 0x1400),
|
|
323
323
|
isFeePayer: false,
|
|
324
|
-
|
|
324
|
+
protocolNullifier: fr(seed + 0x1500)
|
|
325
325
|
});
|
|
326
326
|
}
|
|
327
327
|
export function makeGlobalVariables(seed = 1, overrides = {}) {
|
|
@@ -20,13 +20,13 @@ export declare class PrivateTxConstantData {
|
|
|
20
20
|
*/
|
|
21
21
|
txContext: TxContext;
|
|
22
22
|
/**
|
|
23
|
-
*
|
|
23
|
+
* The transaction's siloed protocol nullifier.
|
|
24
24
|
*
|
|
25
25
|
* Bound to the user's `tx_request` by the Init circuit and kept constant by every subsequent kernel so that each
|
|
26
|
-
* app circuit's `
|
|
27
|
-
*
|
|
26
|
+
* app circuit's `protocolNullifier` public input can be checked against it. Not carried into `TxConstantData`:
|
|
27
|
+
* the value is already published as the transaction's first nullifier.
|
|
28
28
|
*/
|
|
29
|
-
|
|
29
|
+
protocolNullifier: Fr;
|
|
30
30
|
/**
|
|
31
31
|
* Root of the vk tree for the protocol circuits.
|
|
32
32
|
*/
|
|
@@ -48,13 +48,13 @@ export declare class PrivateTxConstantData {
|
|
|
48
48
|
*/
|
|
49
49
|
txContext: TxContext,
|
|
50
50
|
/**
|
|
51
|
-
*
|
|
51
|
+
* The transaction's siloed protocol nullifier.
|
|
52
52
|
*
|
|
53
53
|
* Bound to the user's `tx_request` by the Init circuit and kept constant by every subsequent kernel so that each
|
|
54
|
-
* app circuit's `
|
|
55
|
-
*
|
|
54
|
+
* app circuit's `protocolNullifier` public input can be checked against it. Not carried into `TxConstantData`:
|
|
55
|
+
* the value is already published as the transaction's first nullifier.
|
|
56
56
|
*/
|
|
57
|
-
|
|
57
|
+
protocolNullifier: Fr,
|
|
58
58
|
/**
|
|
59
59
|
* Root of the vk tree for the protocol circuits.
|
|
60
60
|
*/
|
|
@@ -73,4 +73,4 @@ export declare class PrivateTxConstantData {
|
|
|
73
73
|
getSize(): number;
|
|
74
74
|
clone(): PrivateTxConstantData;
|
|
75
75
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV90eF9jb25zdGFudF9kYXRhLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHgvcHJpdmF0ZV90eF9jb25zdGFudF9kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBd0MsTUFBTSxrQ0FBa0MsQ0FBQztBQUNuSCxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVDOztHQUVHO0FBQ0gscUJBQWEscUJBQXFCO0lBRTlCLDZHQUE2RztJQUN0RyxpQkFBaUIsRUFBRSxXQUFXO0lBQ3JDOzs7Ozs7O09BT0c7SUFDSSxTQUFTLEVBQUUsU0FBUztJQUMzQjs7Ozs7O09BTUc7SUFDSSxpQkFBaUIsRUFBRSxFQUFFO0lBQzVCOztPQUVHO0lBQ0ksVUFBVSxFQUFFLEVBQUU7SUFDckI7O09BRUc7SUFDSSxpQkFBaUIsRUFBRSxpQkFBaUI7SUEzQjdDO0lBQ0UsNkdBQTZHO0lBQ3RHLGlCQUFpQixFQUFFLFdBQVc7SUFDckM7Ozs7Ozs7T0FPRztJQUNJLFNBQVMsRUFBRSxTQUFTO0lBQzNCOzs7Ozs7T0FNRztJQUNJLGlCQUFpQixFQUFFLEVBQUU7SUFDNUI7O09BRUc7SUFDSSxVQUFVLEVBQUUsRUFBRTtJQUNyQjs7T0FFRztJQUNJLGlCQUFpQixFQUFFLGlCQUFpQixFQUN6QztJQUVKLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxxQkFBcUIsQ0FBQyx5QkFFbEQ7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMscUJBQXFCLENBQUMsZ0VBUXZEO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsV0FBVyxHQUFHLHFCQUFxQixDQVNuRTtJQUVELFFBQVEsSUFBSSxFQUFFLEVBQUUsQ0FRZjtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcscUJBQXFCLENBU3RFO0lBRUQsUUFBUSw0QkFFUDtJQUVELE1BQU0sQ0FBQyxLQUFLLDBCQVFYO0lBRUQsT0FBTyxXQVFOO0lBRUQsS0FBSyxJQUFJLHFCQUFxQixDQUU3QjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_tx_constant_data.d.ts","sourceRoot":"","sources":["../../src/tx/private_tx_constant_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,kCAAkC,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,qBAAqB;IAE9B,6GAA6G;IACtG,iBAAiB,EAAE,WAAW;IACrC;;;;;;;OAOG;IACI,SAAS,EAAE,SAAS;IAC3B;;;;;;OAMG;IACI,
|
|
1
|
+
{"version":3,"file":"private_tx_constant_data.d.ts","sourceRoot":"","sources":["../../src/tx/private_tx_constant_data.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAwC,MAAM,kCAAkC,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,qBAAqB;IAE9B,6GAA6G;IACtG,iBAAiB,EAAE,WAAW;IACrC;;;;;;;OAOG;IACI,SAAS,EAAE,SAAS;IAC3B;;;;;;OAMG;IACI,iBAAiB,EAAE,EAAE;IAC5B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB;IA3B7C;IACE,6GAA6G;IACtG,iBAAiB,EAAE,WAAW;IACrC;;;;;;;OAOG;IACI,SAAS,EAAE,SAAS;IAC3B;;;;;;OAMG;IACI,iBAAiB,EAAE,EAAE;IAC5B;;OAEG;IACI,UAAU,EAAE,EAAE;IACrB;;OAEG;IACI,iBAAiB,EAAE,iBAAiB,EACzC;IAEJ,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,yBAElD;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,qBAAqB,CAAC,gEAQvD;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,GAAG,qBAAqB,CASnE;IAED,QAAQ,IAAI,EAAE,EAAE,CAQf;IAED,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,qBAAqB,CAStE;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,KAAK,0BAQX;IAED,OAAO,WAQN;IAED,KAAK,IAAI,qBAAqB,CAE7B;CACF"}
|
|
@@ -9,7 +9,7 @@ import { TxContext } from './tx_context.js';
|
|
|
9
9
|
*/ export class PrivateTxConstantData {
|
|
10
10
|
anchorBlockHeader;
|
|
11
11
|
txContext;
|
|
12
|
-
|
|
12
|
+
protocolNullifier;
|
|
13
13
|
vkTreeRoot;
|
|
14
14
|
protocolContracts;
|
|
15
15
|
constructor(/** Header of a block whose state is used during execution (not the block the transaction is included in). */ anchorBlockHeader, /**
|
|
@@ -20,19 +20,19 @@ import { TxContext } from './tx_context.js';
|
|
|
20
20
|
* a situation we could be using header from a block before the upgrade took place but be using the updated
|
|
21
21
|
* protocol to execute and prove the transaction.
|
|
22
22
|
*/ txContext, /**
|
|
23
|
-
*
|
|
23
|
+
* The transaction's siloed protocol nullifier.
|
|
24
24
|
*
|
|
25
25
|
* Bound to the user's `tx_request` by the Init circuit and kept constant by every subsequent kernel so that each
|
|
26
|
-
* app circuit's `
|
|
27
|
-
*
|
|
28
|
-
*/
|
|
26
|
+
* app circuit's `protocolNullifier` public input can be checked against it. Not carried into `TxConstantData`:
|
|
27
|
+
* the value is already published as the transaction's first nullifier.
|
|
28
|
+
*/ protocolNullifier, /**
|
|
29
29
|
* Root of the vk tree for the protocol circuits.
|
|
30
30
|
*/ vkTreeRoot, /**
|
|
31
31
|
* List of protocol contracts.
|
|
32
32
|
*/ protocolContracts){
|
|
33
33
|
this.anchorBlockHeader = anchorBlockHeader;
|
|
34
34
|
this.txContext = txContext;
|
|
35
|
-
this.
|
|
35
|
+
this.protocolNullifier = protocolNullifier;
|
|
36
36
|
this.vkTreeRoot = vkTreeRoot;
|
|
37
37
|
this.protocolContracts = protocolContracts;
|
|
38
38
|
}
|
|
@@ -43,7 +43,7 @@ import { TxContext } from './tx_context.js';
|
|
|
43
43
|
return [
|
|
44
44
|
fields.anchorBlockHeader,
|
|
45
45
|
fields.txContext,
|
|
46
|
-
fields.
|
|
46
|
+
fields.protocolNullifier,
|
|
47
47
|
fields.vkTreeRoot,
|
|
48
48
|
fields.protocolContracts
|
|
49
49
|
];
|
|
@@ -70,7 +70,7 @@ import { TxContext } from './tx_context.js';
|
|
|
70
70
|
return new PrivateTxConstantData(BlockHeader.empty(), TxContext.empty(), Fr.ZERO, Fr.ZERO, ProtocolContracts.empty());
|
|
71
71
|
}
|
|
72
72
|
getSize() {
|
|
73
|
-
return this.anchorBlockHeader.getSize() + this.txContext.getSize() + this.
|
|
73
|
+
return this.anchorBlockHeader.getSize() + this.txContext.getSize() + this.protocolNullifier.size + this.vkTreeRoot.size + this.protocolContracts.getSize();
|
|
74
74
|
}
|
|
75
75
|
clone() {
|
|
76
76
|
return PrivateTxConstantData.fromBuffer(this.toBuffer());
|
package/dest/tx/tx_request.d.ts
CHANGED
|
@@ -16,7 +16,12 @@ export declare class TxRequest {
|
|
|
16
16
|
txContext: TxContext;
|
|
17
17
|
/** Function data representing the function to call. */
|
|
18
18
|
functionData: FunctionData;
|
|
19
|
-
/**
|
|
19
|
+
/**
|
|
20
|
+
* A fresh random field drawn by the wallet, acting as the tx request's nonce. With `origin`, `chainId` and `version`
|
|
21
|
+
* it is the whole preimage of the protocol nullifier, so it keeps that nullifier unpredictable and unique. The kernel
|
|
22
|
+
* cannot check that it is random; draw it fresh for every transaction, since two requests with the same origin and
|
|
23
|
+
* salt are mutually exclusive.
|
|
24
|
+
*/
|
|
20
25
|
salt: Fr;
|
|
21
26
|
constructor(
|
|
22
27
|
/** Sender. */
|
|
@@ -27,7 +32,12 @@ export declare class TxRequest {
|
|
|
27
32
|
txContext: TxContext,
|
|
28
33
|
/** Function data representing the function to call. */
|
|
29
34
|
functionData: FunctionData,
|
|
30
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* A fresh random field drawn by the wallet, acting as the tx request's nonce. With `origin`, `chainId` and `version`
|
|
37
|
+
* it is the whole preimage of the protocol nullifier, so it keeps that nullifier unpredictable and unique. The kernel
|
|
38
|
+
* cannot check that it is random; draw it fresh for every transaction, since two requests with the same origin and
|
|
39
|
+
* salt are mutually exclusive.
|
|
40
|
+
*/
|
|
31
41
|
salt: Fr);
|
|
32
42
|
static getFields(fields: FieldsOf<TxRequest>): readonly [AztecAddress, Fr, TxContext, FunctionData, Fr];
|
|
33
43
|
static from(fields: FieldsOf<TxRequest>): TxRequest;
|
|
@@ -36,6 +46,17 @@ export declare class TxRequest {
|
|
|
36
46
|
* @returns The buffer.
|
|
37
47
|
*/
|
|
38
48
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
49
|
+
/**
|
|
50
|
+
* The unsiloed value of the protocol nullifier: the transaction's nonce commitment.
|
|
51
|
+
* The preimage is only `origin`, `chainId`, `version` and `salt`. Gas settings and the first call's arguments are
|
|
52
|
+
* left out so that a fee bump or a cancellation that reuses the salt produces the same nullifier.
|
|
53
|
+
*/
|
|
54
|
+
computeProtocolNullifierValue(): Promise<Fr>;
|
|
55
|
+
/**
|
|
56
|
+
* The protocol nullifier as inserted into the nullifier tree, and as every private call receives it in
|
|
57
|
+
* `PrivateCircuitPublicInputs.protocolNullifier`: the value above siloed under `NULL_MSG_SENDER`.
|
|
58
|
+
*/
|
|
59
|
+
computeProtocolNullifier(): Promise<Fr>;
|
|
39
60
|
toFields(): Fr[];
|
|
40
61
|
/**
|
|
41
62
|
* Deserializes from a buffer or reader, corresponding to a write in cpp.
|
|
@@ -43,8 +64,7 @@ export declare class TxRequest {
|
|
|
43
64
|
* @returns The deserialized TxRequest object.
|
|
44
65
|
*/
|
|
45
66
|
static fromBuffer(buffer: Buffer | BufferReader): TxRequest;
|
|
46
|
-
hash(): Promise<Fr>;
|
|
47
67
|
static empty(): TxRequest;
|
|
48
68
|
isEmpty(): boolean;
|
|
49
69
|
}
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHhfcmVxdWVzdC5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3R4L3R4X3JlcXVlc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQXdDLE1BQU0sa0NBQWtDLENBQUM7QUFDdEcsT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXpELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFNUM7O0dBRUc7QUFDSCxxQkFBYSxTQUFTO0lBR2xCLGNBQWM7SUFDUCxNQUFNLEVBQUUsWUFBWTtJQUMzQiwyQ0FBMkM7SUFDcEMsUUFBUSxFQUFFLEVBQUU7SUFDbkIsMkJBQTJCO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0lBQzNCLHVEQUF1RDtJQUNoRCxZQUFZLEVBQUUsWUFBWTtJQUNqQzs7Ozs7T0FLRztJQUNJLElBQUksRUFBRSxFQUFFO0lBZmpCO0lBQ0UsY0FBYztJQUNQLE1BQU0sRUFBRSxZQUFZO0lBQzNCLDJDQUEyQztJQUNwQyxRQUFRLEVBQUUsRUFBRTtJQUNuQiwyQkFBMkI7SUFDcEIsU0FBUyxFQUFFLFNBQVM7SUFDM0IsdURBQXVEO0lBQ2hELFlBQVksRUFBRSxZQUFZO0lBQ2pDOzs7OztPQUtHO0lBQ0ksSUFBSSxFQUFFLEVBQUUsRUFDYjtJQUdKLE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxTQUFTLENBQUMsNERBRTNDO0lBRUQsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FFbEQ7SUFFRDs7O09BR0c7SUFDSCxRQUFRLDRCQUVQO0lBRUQ7Ozs7T0FJRztJQUNILDZCQUE2QixJQUFJLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FLM0M7SUFFRDs7O09BR0c7SUFDRyx3QkFBd0IsSUFBSSxPQUFPLENBQUMsRUFBRSxDQUFDLENBRTVDO0lBRUQsUUFBUSxJQUFJLEVBQUUsRUFBRSxDQU1mO0lBRUQ7Ozs7T0FJRztJQUNILE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsU0FBUyxDQVMxRDtJQUVELE1BQU0sQ0FBQyxLQUFLLGNBRVg7SUFFRCxPQUFPLFlBUU47Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tx_request.d.ts","sourceRoot":"","sources":["../../src/tx/tx_request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAwC,MAAM,kCAAkC,CAAC;AACtG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"tx_request.d.ts","sourceRoot":"","sources":["../../src/tx/tx_request.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,EAAE,MAAM,qCAAqC,CAAC;AACzD,OAAO,EAAE,YAAY,EAAwC,MAAM,kCAAkC,CAAC;AACtG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAE7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C;;GAEG;AACH,qBAAa,SAAS;IAGlB,cAAc;IACP,MAAM,EAAE,YAAY;IAC3B,2CAA2C;IACpC,QAAQ,EAAE,EAAE;IACnB,2BAA2B;IACpB,SAAS,EAAE,SAAS;IAC3B,uDAAuD;IAChD,YAAY,EAAE,YAAY;IACjC;;;;;OAKG;IACI,IAAI,EAAE,EAAE;IAfjB;IACE,cAAc;IACP,MAAM,EAAE,YAAY;IAC3B,2CAA2C;IACpC,QAAQ,EAAE,EAAE;IACnB,2BAA2B;IACpB,SAAS,EAAE,SAAS;IAC3B,uDAAuD;IAChD,YAAY,EAAE,YAAY;IACjC;;;;;OAKG;IACI,IAAI,EAAE,EAAE,EACb;IAGJ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,4DAE3C;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,SAAS,CAElD;IAED;;;OAGG;IACH,QAAQ,4BAEP;IAED;;;;OAIG;IACH,6BAA6B,IAAI,OAAO,CAAC,EAAE,CAAC,CAK3C;IAED;;;OAGG;IACG,wBAAwB,IAAI,OAAO,CAAC,EAAE,CAAC,CAE5C;IAED,QAAQ,IAAI,EAAE,EAAE,CAMf;IAED;;;;OAIG;IACH,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAS1D;IAED,MAAM,CAAC,KAAK,cAEX;IAED,OAAO,YAQN;CACF"}
|
package/dest/tx/tx_request.js
CHANGED
|
@@ -3,6 +3,7 @@ import { poseidon2HashWithSeparator } from '@aztec-labs/foundation/crypto/poseid
|
|
|
3
3
|
import { Fr } from '@aztec-labs/foundation/curves/bn254';
|
|
4
4
|
import { BufferReader, serializeToBuffer, serializeToFields } from '@aztec-labs/foundation/serialize';
|
|
5
5
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
6
|
+
import { computeProtocolNullifier } from '../hash/hash.js';
|
|
6
7
|
import { FunctionData } from './function_data.js';
|
|
7
8
|
import { TxContext } from './tx_context.js';
|
|
8
9
|
/**
|
|
@@ -14,7 +15,12 @@ import { TxContext } from './tx_context.js';
|
|
|
14
15
|
functionData;
|
|
15
16
|
salt;
|
|
16
17
|
// docs:start:constructor
|
|
17
|
-
constructor(/** Sender. */ origin, /** Pedersen hash of function arguments. */ argsHash, /** Transaction context. */ txContext, /** Function data representing the function to call. */ functionData, /**
|
|
18
|
+
constructor(/** Sender. */ origin, /** Pedersen hash of function arguments. */ argsHash, /** Transaction context. */ txContext, /** Function data representing the function to call. */ functionData, /**
|
|
19
|
+
* A fresh random field drawn by the wallet, acting as the tx request's nonce. With `origin`, `chainId` and `version`
|
|
20
|
+
* it is the whole preimage of the protocol nullifier, so it keeps that nullifier unpredictable and unique. The kernel
|
|
21
|
+
* cannot check that it is random; draw it fresh for every transaction, since two requests with the same origin and
|
|
22
|
+
* salt are mutually exclusive.
|
|
23
|
+
*/ salt){
|
|
18
24
|
this.origin = origin;
|
|
19
25
|
this.argsHash = argsHash;
|
|
20
26
|
this.txContext = txContext;
|
|
@@ -42,6 +48,24 @@ import { TxContext } from './tx_context.js';
|
|
|
42
48
|
...TxRequest.getFields(this)
|
|
43
49
|
]);
|
|
44
50
|
}
|
|
51
|
+
/**
|
|
52
|
+
* The unsiloed value of the protocol nullifier: the transaction's nonce commitment.
|
|
53
|
+
* The preimage is only `origin`, `chainId`, `version` and `salt`. Gas settings and the first call's arguments are
|
|
54
|
+
* left out so that a fee bump or a cancellation that reuses the salt produces the same nullifier.
|
|
55
|
+
*/ computeProtocolNullifierValue() {
|
|
56
|
+
return poseidon2HashWithSeparator([
|
|
57
|
+
this.origin.toField(),
|
|
58
|
+
this.txContext.chainId,
|
|
59
|
+
this.txContext.version,
|
|
60
|
+
this.salt
|
|
61
|
+
], DomainSeparator.PROTOCOL_NULLIFIER);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The protocol nullifier as inserted into the nullifier tree, and as every private call receives it in
|
|
65
|
+
* `PrivateCircuitPublicInputs.protocolNullifier`: the value above siloed under `NULL_MSG_SENDER`.
|
|
66
|
+
*/ async computeProtocolNullifier() {
|
|
67
|
+
return computeProtocolNullifier(await this.computeProtocolNullifierValue());
|
|
68
|
+
}
|
|
45
69
|
toFields() {
|
|
46
70
|
const fields = serializeToFields(...TxRequest.getFields(this));
|
|
47
71
|
if (fields.length !== TX_REQUEST_LENGTH) {
|
|
@@ -57,9 +81,6 @@ import { TxContext } from './tx_context.js';
|
|
|
57
81
|
const reader = BufferReader.asReader(buffer);
|
|
58
82
|
return new TxRequest(reader.readObject(AztecAddress), Fr.fromBuffer(reader), reader.readObject(TxContext), reader.readObject(FunctionData), Fr.fromBuffer(reader));
|
|
59
83
|
}
|
|
60
|
-
hash() {
|
|
61
|
-
return poseidon2HashWithSeparator(this.toFields(), DomainSeparator.TX_REQUEST);
|
|
62
|
-
}
|
|
63
84
|
static empty() {
|
|
64
85
|
return new TxRequest(AztecAddress.ZERO, Fr.zero(), TxContext.empty(), FunctionData.empty(), Fr.zero());
|
|
65
86
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec-labs/stdlib",
|
|
3
|
-
"version": "6.0.0-
|
|
3
|
+
"version": "6.0.0-rc.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"inherits": [
|
|
6
6
|
"../package.common.json",
|
|
@@ -92,12 +92,12 @@
|
|
|
92
92
|
},
|
|
93
93
|
"dependencies": {
|
|
94
94
|
"@aws-sdk/client-s3": "^3.892.0",
|
|
95
|
-
"@aztec-foundation/bb.js": "6.0.0-
|
|
96
|
-
"@aztec-foundation/noir-noirc_abi": "6.0.0-
|
|
97
|
-
"@aztec-labs/blob-lib": "6.0.0-
|
|
98
|
-
"@aztec-labs/constants": "6.0.0-
|
|
99
|
-
"@aztec-labs/ethereum": "6.0.0-
|
|
100
|
-
"@aztec-labs/foundation": "6.0.0-
|
|
95
|
+
"@aztec-foundation/bb.js": "6.0.0-rc.1",
|
|
96
|
+
"@aztec-foundation/noir-noirc_abi": "6.0.0-rc.1",
|
|
97
|
+
"@aztec-labs/blob-lib": "6.0.0-rc.1",
|
|
98
|
+
"@aztec-labs/constants": "6.0.0-rc.1",
|
|
99
|
+
"@aztec-labs/ethereum": "6.0.0-rc.1",
|
|
100
|
+
"@aztec-labs/foundation": "6.0.0-rc.1",
|
|
101
101
|
"@google-cloud/storage": "^7.15.0",
|
|
102
102
|
"axios": "^1.15.1",
|
|
103
103
|
"json-stringify-deterministic": "1.0.12",
|
package/src/hash/hash.ts
CHANGED
|
@@ -109,8 +109,8 @@ export async function computeSiloedPublicInitializationNullifier(contract: Aztec
|
|
|
109
109
|
*
|
|
110
110
|
* @dev Must match the implementation in noir-protocol-circuits/crates/types/src/hash.nr > compute_protocol_nullifier
|
|
111
111
|
*/
|
|
112
|
-
export function computeProtocolNullifier(
|
|
113
|
-
return siloNullifier(AztecAddress.NULL_MSG_SENDER,
|
|
112
|
+
export function computeProtocolNullifier(protocolNullifierValue: Fr): Promise<Fr> {
|
|
113
|
+
return siloNullifier(AztecAddress.NULL_MSG_SENDER, protocolNullifierValue);
|
|
114
114
|
}
|
|
115
115
|
|
|
116
116
|
/** Domain-separates a raw log tag with the given domain separator. */
|
|
@@ -145,10 +145,12 @@ export class PrivateCircuitPublicInputs {
|
|
|
145
145
|
*/
|
|
146
146
|
public contractClassLogsHashes: ClaimedLengthArray<CountedLogHash, typeof MAX_CONTRACT_CLASS_LOGS_PER_CALL>,
|
|
147
147
|
/**
|
|
148
|
-
* The
|
|
149
|
-
*
|
|
148
|
+
* The transaction's siloed protocol nullifier: the value the init kernel inserts at index 0 of the transaction's
|
|
149
|
+
* nullifiers, identical on every private call. The init kernel asserts the first call's value equals the one
|
|
150
|
+
* derived from the tx request, binding this proof to that request; every later kernel asserts each nested call's
|
|
151
|
+
* value equals the transaction constant.
|
|
150
152
|
*/
|
|
151
|
-
public
|
|
153
|
+
public protocolNullifier: Fr,
|
|
152
154
|
) {}
|
|
153
155
|
|
|
154
156
|
/**
|
|
@@ -287,7 +289,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
287
289
|
this.l2ToL1Msgs.isEmpty() &&
|
|
288
290
|
this.privateLogs.isEmpty() &&
|
|
289
291
|
this.contractClassLogsHashes.isEmpty() &&
|
|
290
|
-
this.
|
|
292
|
+
this.protocolNullifier.isZero()
|
|
291
293
|
);
|
|
292
294
|
}
|
|
293
295
|
|
|
@@ -321,7 +323,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
321
323
|
fields.l2ToL1Msgs,
|
|
322
324
|
fields.privateLogs,
|
|
323
325
|
fields.contractClassLogsHashes,
|
|
324
|
-
fields.
|
|
326
|
+
fields.protocolNullifier,
|
|
325
327
|
] as const;
|
|
326
328
|
}
|
|
327
329
|
|
|
@@ -356,7 +358,7 @@ export class PrivateCircuitPublicInputs {
|
|
|
356
358
|
this.l2ToL1Msgs,
|
|
357
359
|
this.privateLogs,
|
|
358
360
|
this.contractClassLogsHashes,
|
|
359
|
-
this.
|
|
361
|
+
this.protocolNullifier,
|
|
360
362
|
]);
|
|
361
363
|
}
|
|
362
364
|
|
|
@@ -11,7 +11,7 @@ export class PrivateContextInputs {
|
|
|
11
11
|
public anchorBlockHeader: BlockHeader,
|
|
12
12
|
public txContext: TxContext,
|
|
13
13
|
public startSideEffectCounter: number,
|
|
14
|
-
public
|
|
14
|
+
public protocolNullifier: Fr,
|
|
15
15
|
) {}
|
|
16
16
|
|
|
17
17
|
public static empty(): PrivateContextInputs {
|
|
@@ -24,7 +24,7 @@ export class PrivateContextInputs {
|
|
|
24
24
|
this.anchorBlockHeader,
|
|
25
25
|
this.txContext,
|
|
26
26
|
this.startSideEffectCounter,
|
|
27
|
-
this.
|
|
27
|
+
this.protocolNullifier,
|
|
28
28
|
]);
|
|
29
29
|
}
|
|
30
30
|
}
|
package/src/tests/factories.ts
CHANGED
|
@@ -653,7 +653,7 @@ export function makePrivateCircuitPublicInputs(seed = 0): PrivateCircuitPublicIn
|
|
|
653
653
|
anchorBlockHeader: makeBlockHeader(seed + 0xd00),
|
|
654
654
|
txContext: makeTxContext(seed + 0x1400),
|
|
655
655
|
isFeePayer: false,
|
|
656
|
-
|
|
656
|
+
protocolNullifier: fr(seed + 0x1500),
|
|
657
657
|
});
|
|
658
658
|
}
|
|
659
659
|
|
|
@@ -24,13 +24,13 @@ export class PrivateTxConstantData {
|
|
|
24
24
|
*/
|
|
25
25
|
public txContext: TxContext,
|
|
26
26
|
/**
|
|
27
|
-
*
|
|
27
|
+
* The transaction's siloed protocol nullifier.
|
|
28
28
|
*
|
|
29
29
|
* Bound to the user's `tx_request` by the Init circuit and kept constant by every subsequent kernel so that each
|
|
30
|
-
* app circuit's `
|
|
31
|
-
*
|
|
30
|
+
* app circuit's `protocolNullifier` public input can be checked against it. Not carried into `TxConstantData`:
|
|
31
|
+
* the value is already published as the transaction's first nullifier.
|
|
32
32
|
*/
|
|
33
|
-
public
|
|
33
|
+
public protocolNullifier: Fr,
|
|
34
34
|
/**
|
|
35
35
|
* Root of the vk tree for the protocol circuits.
|
|
36
36
|
*/
|
|
@@ -49,7 +49,7 @@ export class PrivateTxConstantData {
|
|
|
49
49
|
return [
|
|
50
50
|
fields.anchorBlockHeader,
|
|
51
51
|
fields.txContext,
|
|
52
|
-
fields.
|
|
52
|
+
fields.protocolNullifier,
|
|
53
53
|
fields.vkTreeRoot,
|
|
54
54
|
fields.protocolContracts,
|
|
55
55
|
] as const;
|
|
@@ -105,7 +105,7 @@ export class PrivateTxConstantData {
|
|
|
105
105
|
return (
|
|
106
106
|
this.anchorBlockHeader.getSize() +
|
|
107
107
|
this.txContext.getSize() +
|
|
108
|
-
this.
|
|
108
|
+
this.protocolNullifier.size +
|
|
109
109
|
this.vkTreeRoot.size +
|
|
110
110
|
this.protocolContracts.getSize()
|
|
111
111
|
);
|
package/src/tx/tx_request.ts
CHANGED
|
@@ -5,6 +5,7 @@ import { BufferReader, serializeToBuffer, serializeToFields } from '@aztec-labs/
|
|
|
5
5
|
import type { FieldsOf } from '@aztec-labs/foundation/types';
|
|
6
6
|
|
|
7
7
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
8
|
+
import { computeProtocolNullifier } from '../hash/hash.js';
|
|
8
9
|
import { FunctionData } from './function_data.js';
|
|
9
10
|
import { TxContext } from './tx_context.js';
|
|
10
11
|
|
|
@@ -22,7 +23,12 @@ export class TxRequest {
|
|
|
22
23
|
public txContext: TxContext,
|
|
23
24
|
/** Function data representing the function to call. */
|
|
24
25
|
public functionData: FunctionData,
|
|
25
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* A fresh random field drawn by the wallet, acting as the tx request's nonce. With `origin`, `chainId` and `version`
|
|
28
|
+
* it is the whole preimage of the protocol nullifier, so it keeps that nullifier unpredictable and unique. The kernel
|
|
29
|
+
* cannot check that it is random; draw it fresh for every transaction, since two requests with the same origin and
|
|
30
|
+
* salt are mutually exclusive.
|
|
31
|
+
*/
|
|
26
32
|
public salt: Fr,
|
|
27
33
|
) {}
|
|
28
34
|
// docs:end:constructor
|
|
@@ -43,6 +49,26 @@ export class TxRequest {
|
|
|
43
49
|
return serializeToBuffer([...TxRequest.getFields(this)]);
|
|
44
50
|
}
|
|
45
51
|
|
|
52
|
+
/**
|
|
53
|
+
* The unsiloed value of the protocol nullifier: the transaction's nonce commitment.
|
|
54
|
+
* The preimage is only `origin`, `chainId`, `version` and `salt`. Gas settings and the first call's arguments are
|
|
55
|
+
* left out so that a fee bump or a cancellation that reuses the salt produces the same nullifier.
|
|
56
|
+
*/
|
|
57
|
+
computeProtocolNullifierValue(): Promise<Fr> {
|
|
58
|
+
return poseidon2HashWithSeparator(
|
|
59
|
+
[this.origin.toField(), this.txContext.chainId, this.txContext.version, this.salt],
|
|
60
|
+
DomainSeparator.PROTOCOL_NULLIFIER,
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* The protocol nullifier as inserted into the nullifier tree, and as every private call receives it in
|
|
66
|
+
* `PrivateCircuitPublicInputs.protocolNullifier`: the value above siloed under `NULL_MSG_SENDER`.
|
|
67
|
+
*/
|
|
68
|
+
async computeProtocolNullifier(): Promise<Fr> {
|
|
69
|
+
return computeProtocolNullifier(await this.computeProtocolNullifierValue());
|
|
70
|
+
}
|
|
71
|
+
|
|
46
72
|
toFields(): Fr[] {
|
|
47
73
|
const fields = serializeToFields(...TxRequest.getFields(this));
|
|
48
74
|
if (fields.length !== TX_REQUEST_LENGTH) {
|
|
@@ -67,10 +93,6 @@ export class TxRequest {
|
|
|
67
93
|
);
|
|
68
94
|
}
|
|
69
95
|
|
|
70
|
-
hash() {
|
|
71
|
-
return poseidon2HashWithSeparator(this.toFields(), DomainSeparator.TX_REQUEST);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
96
|
static empty() {
|
|
75
97
|
return new TxRequest(AztecAddress.ZERO, Fr.zero(), TxContext.empty(), FunctionData.empty(), Fr.zero());
|
|
76
98
|
}
|