@aztec/pxe 4.3.0-nightly.20260427 → 4.3.0-nightly.20260428
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/contract_function_simulator/oracle/private_execution_oracle.d.ts +8 -7
- package/dest/contract_function_simulator/oracle/private_execution_oracle.d.ts.map +1 -1
- package/dest/contract_function_simulator/oracle/private_execution_oracle.js +10 -10
- package/dest/pxe.d.ts +15 -4
- package/dest/pxe.d.ts.map +1 -1
- package/dest/pxe.js +37 -14
- package/package.json +16 -16
- package/src/contract_function_simulator/oracle/private_execution_oracle.ts +14 -10
- package/src/pxe.ts +72 -20
|
@@ -57,7 +57,10 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
57
57
|
private readonly senderTaggingStore;
|
|
58
58
|
private totalPublicCalldataCount;
|
|
59
59
|
private readonly initialSideEffectCounter;
|
|
60
|
-
|
|
60
|
+
/** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags` unless overridden. */
|
|
61
|
+
private readonly defaultSenderForTags;
|
|
62
|
+
/** Per-call sender-for-tags override, set by `setSenderForTags`. Takes precedence over `defaultSenderForTags`. */
|
|
63
|
+
private currentSenderForTags;
|
|
61
64
|
private readonly simulator?;
|
|
62
65
|
constructor(args: PrivateExecutionOracleArgs);
|
|
63
66
|
getPrivateContextInputs(): PrivateContextInputs;
|
|
@@ -91,8 +94,7 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
91
94
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
92
95
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
93
96
|
*
|
|
94
|
-
*
|
|
95
|
-
* 'senderForTags' value (unless it is replaced).
|
|
97
|
+
* Returns `currentSenderForTags` if set (via `setSenderForTags`), otherwise `defaultSenderForTags`.
|
|
96
98
|
*/
|
|
97
99
|
getSenderForTags(): Promise<AztecAddress | undefined>;
|
|
98
100
|
/**
|
|
@@ -102,9 +104,8 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
102
104
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
103
105
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
104
106
|
*
|
|
105
|
-
*
|
|
106
|
-
*
|
|
107
|
-
* value (unless it is replaced by another call to this setter).
|
|
107
|
+
* Overrides `defaultSenderForTags` for the remainder of this call. Each oracle instance is
|
|
108
|
+
* independent, so this has no effect on any other call in the execution.
|
|
108
109
|
*/
|
|
109
110
|
setSenderForTags(senderForTags: AztecAddress): Promise<void>;
|
|
110
111
|
/**
|
|
@@ -212,4 +213,4 @@ export declare class PrivateExecutionOracle extends UtilityExecutionOracle imple
|
|
|
212
213
|
private deriveCallContext;
|
|
213
214
|
getDebugFunctionName(): Promise<string>;
|
|
214
215
|
}
|
|
215
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJpdmF0ZV9leGVjdXRpb25fb3JhY2xlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29udHJhY3RfZnVuY3Rpb25fc2ltdWxhdG9yL29yYWNsZS9wcml2YXRlX2V4ZWN1dGlvbl9vcmFjbGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBR3BELE9BQU8sRUFBRSxLQUFLLGdCQUFnQixFQUFpQixNQUFNLHlCQUF5QixDQUFDO0FBQy9FLE9BQU8sRUFDTCxLQUFLLFdBQVcsRUFFaEIsS0FBSyxZQUFZLEVBQ2pCLGdCQUFnQixFQUNoQixLQUFLLFlBQVksRUFFbEIsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDNUQsT0FBTyxFQUFFLEtBQUssZ0JBQWdCLEVBQXVDLEtBQUssaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4SCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekMsT0FBTyxFQUFRLEtBQUssVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0QsT0FBTyxFQUNMLFdBQVcsRUFDWCx1QkFBdUIsRUFDdkIsV0FBVyxFQUNYLDBCQUEwQixFQUMxQixLQUFLLFNBQVMsRUFDZixNQUFNLGtCQUFrQixDQUFDO0FBRzFCLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFFOUYsT0FBTyxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUNqRixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixD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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAGpD,OAAO,EAAE,KAAK,gBAAgB,EAAiB,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,YAAY,EACjB,gBAAgB,EAChB,KAAK,YAAY,EAElB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAE3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,KAAK,gBAAgB,EAAuC,KAAK,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxH,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAC;AACzC,OAAO,EAAQ,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EACL,WAAW,EACX,uBAAuB,EACvB,WAAW,EACX,0BAA0B,EAC1B,KAAK,SAAS,EACf,MAAM,kBAAkB,CAAC;AAG1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qDAAqD,CAAC;AAE9F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,OAAO,KAAK,EAAE,uBAAuB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,KAAK,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAExG,mDAAmD;AACnD,MAAM,MAAM,0BAA0B,GAAG,IAAI,CAAC,0BAA0B,EAAE,iBAAiB,CAAC,GAAG;IAC7F,QAAQ,EAAE,EAAE,CAAC;IACb,SAAS,EAAE,SAAS,CAAC;IACrB,WAAW,EAAE,WAAW,CAAC;IACzB,qEAAqE;IACrE,eAAe,EAAE,CAAC,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/E,cAAc,EAAE,iBAAiB,CAAC;IAClC,SAAS,EAAE,kBAAkB,CAAC;IAC9B,iBAAiB,EAAE,0BAA0B,CAAC;IAC9C,kBAAkB,EAAE,kBAAkB,CAAC;IACvC,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,sBAAuB,YAAW,uBAAuB;;IACnG,SAAS,OAAiB;IAE1B;;;;;;;OAOG;IACH,OAAO,CAAC,QAAQ,CAAqB;IACrC,OAAO,CAAC,2BAA2B,CAAkC;IACrE,OAAO,CAAC,iBAAiB,CAAiC;IAC1D,OAAO,CAAC,sBAAsB,CAAoC;IAElE,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAK;IAC9B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgE;IAChG,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAoB;IACnD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA6B;IAC/D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAS;IAClD,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"private_execution_oracle.d.ts","sourceRoot":"","sources":["../../../src/contract_function_simulator/oracle/private_execution_oracle.ts"],"names":[],"mappings":"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"}
|
|
@@ -40,7 +40,8 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
40
40
|
senderTaggingStore;
|
|
41
41
|
totalPublicCalldataCount;
|
|
42
42
|
initialSideEffectCounter;
|
|
43
|
-
|
|
43
|
+
/** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags` unless overridden. */ defaultSenderForTags;
|
|
44
|
+
/** Per-call sender-for-tags override, set by `setSenderForTags`. Takes precedence over `defaultSenderForTags`. */ currentSenderForTags;
|
|
44
45
|
simulator;
|
|
45
46
|
constructor(args){
|
|
46
47
|
super({
|
|
@@ -58,7 +59,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
58
59
|
this.senderTaggingStore = args.senderTaggingStore;
|
|
59
60
|
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
60
61
|
this.initialSideEffectCounter = args.sideEffectCounter ?? 0;
|
|
61
|
-
this.
|
|
62
|
+
this.defaultSenderForTags = args.senderForTags;
|
|
62
63
|
this.simulator = args.simulator;
|
|
63
64
|
}
|
|
64
65
|
getPrivateContextInputs() {
|
|
@@ -116,10 +117,9 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
116
117
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
117
118
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
118
119
|
*
|
|
119
|
-
*
|
|
120
|
-
* 'senderForTags' value (unless it is replaced).
|
|
120
|
+
* Returns `currentSenderForTags` if set (via `setSenderForTags`), otherwise `defaultSenderForTags`.
|
|
121
121
|
*/ getSenderForTags() {
|
|
122
|
-
return Promise.resolve(this.
|
|
122
|
+
return Promise.resolve(this.currentSenderForTags ?? this.defaultSenderForTags);
|
|
123
123
|
}
|
|
124
124
|
/**
|
|
125
125
|
* Set the sender for tags.
|
|
@@ -128,11 +128,11 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
128
128
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
129
129
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
130
130
|
*
|
|
131
|
-
*
|
|
132
|
-
*
|
|
133
|
-
* value (unless it is replaced by another call to this setter).
|
|
131
|
+
* Overrides `defaultSenderForTags` for the remainder of this call. Each oracle instance is
|
|
132
|
+
* independent, so this has no effect on any other call in the execution.
|
|
134
133
|
*/ setSenderForTags(senderForTags) {
|
|
135
|
-
this.senderForTags
|
|
134
|
+
this.logger.debug(`Sender for tags switched to ${senderForTags} by contract ${this.contractAddress} (default was ${this.defaultSenderForTags})`);
|
|
135
|
+
this.currentSenderForTags = senderForTags;
|
|
136
136
|
return Promise.resolve();
|
|
137
137
|
}
|
|
138
138
|
/**
|
|
@@ -397,7 +397,7 @@ import { UtilityExecutionOracle } from './utility_execution_oracle.js';
|
|
|
397
397
|
sideEffectCounter,
|
|
398
398
|
scopes: this.scopes,
|
|
399
399
|
log: this.logger,
|
|
400
|
-
senderForTags: this.
|
|
400
|
+
senderForTags: this.defaultSenderForTags,
|
|
401
401
|
simulator: this.simulator,
|
|
402
402
|
l2TipsStore: this.l2TipsStore
|
|
403
403
|
});
|
package/dest/pxe.d.ts
CHANGED
|
@@ -16,6 +16,13 @@ export type PackedPrivateEvent = InTx & {
|
|
|
16
16
|
packedEvent: Fr[];
|
|
17
17
|
eventSelector: EventSelector;
|
|
18
18
|
};
|
|
19
|
+
/** Options for PXE.proveTx. */
|
|
20
|
+
export type ProveTxOpts = {
|
|
21
|
+
/** Addresses whose private state and keys are accessible during private execution. */
|
|
22
|
+
scopes: AztecAddress[];
|
|
23
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
24
|
+
senderForTags?: AztecAddress;
|
|
25
|
+
};
|
|
19
26
|
/** Options for PXE.profileTx. */
|
|
20
27
|
export type ProfileTxOpts = {
|
|
21
28
|
/** The profiling mode to use. */
|
|
@@ -24,6 +31,8 @@ export type ProfileTxOpts = {
|
|
|
24
31
|
skipProofGeneration?: boolean;
|
|
25
32
|
/** Addresses whose private state and keys are accessible during private execution. */
|
|
26
33
|
scopes: AztecAddress[];
|
|
34
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
35
|
+
senderForTags?: AztecAddress;
|
|
27
36
|
};
|
|
28
37
|
/** Options for PXE.simulateTx. */
|
|
29
38
|
export type SimulateTxOpts = {
|
|
@@ -39,6 +48,8 @@ export type SimulateTxOpts = {
|
|
|
39
48
|
overrides?: SimulationOverrides;
|
|
40
49
|
/** Addresses whose private state and keys are accessible during private execution */
|
|
41
50
|
scopes: AztecAddress[];
|
|
51
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
52
|
+
senderForTags?: AztecAddress;
|
|
42
53
|
};
|
|
43
54
|
/** Options for PXE.executeUtility. */
|
|
44
55
|
export type ExecuteUtilityOpts = {
|
|
@@ -199,14 +210,14 @@ export declare class PXE {
|
|
|
199
210
|
* @throws If contract code not found, or public simulation reverts.
|
|
200
211
|
* Also throws if simulatePublic is true and public simulation reverts.
|
|
201
212
|
*/
|
|
202
|
-
proveTx(txRequest: TxExecutionRequest, scopes:
|
|
213
|
+
proveTx(txRequest: TxExecutionRequest, { scopes, senderForTags }: ProveTxOpts): Promise<TxProvingResult>;
|
|
203
214
|
/**
|
|
204
215
|
* Profiles a transaction, reporting gate counts (unless disabled) and returns an execution trace.
|
|
205
216
|
* @param txRequest - An authenticated tx request ready for simulation.
|
|
206
217
|
* @returns A trace of the program execution with gate counts.
|
|
207
218
|
* @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
|
|
208
219
|
*/
|
|
209
|
-
profileTx(txRequest: TxExecutionRequest, { profileMode, skipProofGeneration, scopes }: ProfileTxOpts): Promise<TxProfileResult>;
|
|
220
|
+
profileTx(txRequest: TxExecutionRequest, { profileMode, skipProofGeneration, scopes, senderForTags }: ProfileTxOpts): Promise<TxProfileResult>;
|
|
210
221
|
/**
|
|
211
222
|
* Simulates a transaction based on the provided preauthenticated execution request.
|
|
212
223
|
* This will run a local simulation of private execution (and optionally of public as well), run the
|
|
@@ -225,7 +236,7 @@ export declare class PXE {
|
|
|
225
236
|
*
|
|
226
237
|
* TODO(#7456) Prevent msgSender being defined here for the first call
|
|
227
238
|
*/
|
|
228
|
-
simulateTx(txRequest: TxExecutionRequest, { simulatePublic, skipTxValidation, skipFeeEnforcement, skipKernels, overrides, scopes }: SimulateTxOpts): Promise<TxSimulationResult>;
|
|
239
|
+
simulateTx(txRequest: TxExecutionRequest, { simulatePublic, skipTxValidation, skipFeeEnforcement, skipKernels, overrides, scopes, senderForTags }: SimulateTxOpts): Promise<TxSimulationResult>;
|
|
229
240
|
/**
|
|
230
241
|
* Executes a contract utility function.
|
|
231
242
|
* @param call - The function call containing the function details, arguments, and target contract address.
|
|
@@ -250,4 +261,4 @@ export declare class PXE {
|
|
|
250
261
|
*/
|
|
251
262
|
stop(): Promise<void>;
|
|
252
263
|
}
|
|
253
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
264
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHhlLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcHhlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFakUsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLE1BQU0sRUFBcUMsTUFBTSx1QkFBdUIsQ0FBQztBQUl2RixPQUFPLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBRSxLQUFLLHlCQUF5QixFQUF5QixNQUFNLDJCQUEyQixDQUFDO0FBQ2xHLE9BQU8sS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUssZ0JBQWdCLEVBQ3JCLGFBQWEsRUFDYixZQUFZLEVBR2IsTUFBTSxtQkFBbUIsQ0FBQztBQUMzQixPQUFPLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRSxPQUFPLEVBQ0wsZUFBZSxFQUNmLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssY0FBYyxFQUdwQixNQUFNLHdCQUF3QixDQUFDO0FBRWhDLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBTXRGLE9BQU8sRUFDTCxXQUFXLEVBRVgsS0FBSyxJQUFJLEVBS1QsbUJBQW1CLEVBR25CLGtCQUFrQixFQUNsQixlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixzQkFBc0IsRUFDdkIsTUFBTSxrQkFBa0IsQ0FBQztBQUsxQixPQUFPLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQVVuRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFvQjNELE1BQU0sTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUc7SUFDdEMsV0FBVyxFQUFFLEVBQUUsRUFBRSxDQUFDO0lBQ2xCLGFBQWEsRUFBRSxhQUFhLENBQUM7Q0FDOUIsQ0FBQztBQUVGLCtCQUErQjtBQUMvQixNQUFNLE1BQU0sV0FBVyxHQUFHO0lBQ3hCLHNGQUFzRjtJQUN0RixNQUFNLEVBQUUsWUFBWSxFQUFFLENBQUM7SUFDdkIsNkdBQTZHO0lBQzdHLGFBQWEsQ0FBQyxFQUFFLFlBQVksQ0FBQztDQUM5QixDQUFDO0FBRUYsaUNBQWlDO0FBQ2pDLE1BQU0sTUFBTSxhQUFhLEdBQUc7SUFDMUIsaUNBQWlDO0lBQ2pDLFdBQVcsRUFBRSxNQUFNLEdBQUcsaUJBQWlCLEdBQUcsT0FBTyxDQUFDO0lBQ2xELCtFQUErRTtJQUMvRSxtQkFBbUIsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUM5QixzRkFBc0Y7SUFDdEYsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO0lBQ3ZCLDZHQUE2RztJQUM3RyxhQUFhLENBQUMsRUFBRSxZQUFZLENBQUM7Q0FDOUIsQ0FBQztBQUVGLGtDQUFrQztBQUNsQyxNQUFNLE1BQU0sY0FBYyxHQUFHO0lBQzNCLDhEQUE4RDtJQUM5RCxjQUFjLEVBQUUsT0FBTyxDQUFDO0lBQ3hCLGtIQUFrSDtJQUNsSCxnQkFBZ0IsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUMzQixtQ0FBbUM7SUFDbkMsa0JBQWtCLENBQUMsRUFBRSxPQUFPLENBQUM7SUFDN0IsNkRBQTZEO0lBQzdELFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUN0QiwrR0FBK0c7SUFDL0csU0FBUyxDQUFDLEVBQUUsbUJBQW1CLENBQUM7SUFDaEMscUZBQXFGO0lBQ3JGLE1BQU0sRUFBRSxZQUFZLEVBQUUsQ0FBQztJQUN2Qiw2R0FBNkc7SUFDN0csYUFBYSxDQUFDLEVBQUUsWUFBWSxDQUFDO0NBQzlCLENBQUM7QUFFRixzQ0FBc0M7QUFDdEMsTUFBTSxNQUFNLGtCQUFrQixHQUFHO0lBQy9CLG1FQUFtRTtJQUNuRSxRQUFRLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUN6QiwwREFBMEQ7SUFDMUQsTUFBTSxFQUFFLFlBQVksRUFBRSxDQUFDO0NBQ3hCLENBQUM7QUFFRiwyQkFBMkI7QUFDM0IsTUFBTSxNQUFNLGFBQWEsR0FBRztJQUMxQixvQ0FBb0M7SUFDcEMsSUFBSSxFQUFFLFNBQVMsQ0FBQztJQUNoQixvREFBb0Q7SUFDcEQsS0FBSyxFQUFFLGlCQUFpQixDQUFDO0lBQ3pCLHVEQUF1RDtJQUN2RCxZQUFZLEVBQUUsbUJBQW1CLENBQUM7SUFDbEMseURBQXlEO0lBQ3pELFNBQVMsRUFBRSxnQkFBZ0IsQ0FBQztJQUM1Qiw4REFBOEQ7SUFDOUQseUJBQXlCLEVBQUUseUJBQXlCLENBQUM7SUFDckQsaUNBQWlDO0lBQ2pDLE1BQU0sRUFBRSxTQUFTLENBQUM7SUFDbEIscUVBQXFFO0lBQ3JFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxNQUFNLENBQUM7Q0FDbEMsQ0FBQztBQUVGOzs7R0FHRztBQUNILHFCQUFhLEdBQUc7O0lBRVosT0FBTyxDQUFDLElBQUk7SUFDWixPQUFPLENBQUMsc0JBQXNCO0lBQzlCLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxhQUFhO0lBQ3JCLE9BQU8sQ0FBQyxTQUFTO0lBQ2pCLE9BQU8sQ0FBQyxZQUFZO0lBQ3BCLE9BQU8sQ0FBQyxnQkFBZ0I7SUFDeEIsT0FBTyxDQUFDLGtCQUFrQjtJQUMxQixPQUFPLENBQUMsc0JBQXNCO0lBQzlCLE9BQU8sQ0FBQyxxQkFBcUI7SUFDN0IsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLGlCQUFpQjtJQUN6QixPQUFPLENBQUMsbUJBQW1CO0lBQzNCLE9BQU8sQ0FBQyxxQkFBcUI7SUFDN0IsT0FBTyxDQUFDLFdBQVc7SUFDbkIsT0FBTyxDQUFDLFNBQVM7SUFDakIsT0FBTyxDQUFDLGFBQWE7SUFDckIsT0FBTyxDQUFDLFlBQVk7SUFDcEIsT0FBTyxDQUFDLHlCQUF5QjtJQUNqQyxPQUFPLENBQUMsR0FBRztJQUNYLE9BQU8sQ0FBQyxRQUFRO0lBQ2hCLE9BQU8sQ0FBQyxjQUFjO0lBQ2YsS0FBSyxFQUFFLGFBQWE7SUF2QjdCLE9BQU8sZUF3Qkg7SUFFSjs7Ozs7O09BTUc7SUFDSCxPQUFvQixNQUFNLENBQUMsRUFDekIsSUFBSSxFQUNKLEtBQUssRUFDTCxZQUFZLEVBQ1osU0FBUyxFQUNULHlCQUF5QixFQUN6QixNQUFNLEVBQ04sY0FBYyxFQUNmLEVBQUUsYUFBYSxnQkErRmY7SUErTkQ7OztPQUdHO0lBQ0ksb0JBQW9CLElBQUksT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUlsRDtJQUVEOzs7O09BSUc7SUFDSSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQywyQkFBMkIsR0FBRyxTQUFTLENBQUMsQ0FFbEc7SUFFRDs7OztPQUlHO0lBQ1UsbUJBQW1CLENBQUMsRUFBRSxFQUFFLEVBQUUsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDLENBRTlFO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ1UsZUFBZSxDQUFDLFNBQVMsRUFBRSxFQUFFLEVBQUUsY0FBYyxFQUFFLGNBQWMsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBYXBHO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ1UsY0FBYyxDQUFDLE1BQU0sRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQXlCdkU7SUFFRDs7O09BR0c7SUFDSSxVQUFVLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDLENBRTNDO0lBRUQ7OztPQUdHO0lBQ1UsWUFBWSxDQUFDLE1BQU0sRUFBRSxZQUFZLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQVE3RDtJQUVEOzs7T0FHRztJQUNVLHFCQUFxQixJQUFJLE9BQU8sQ0FBQyxlQUFlLEVBQUUsQ0FBQyxDQVEvRDtJQUVEOzs7O09BSUc7SUFDVSxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUc1RTtJQUVEOzs7Ozs7O09BT0c7SUFDVSxnQkFBZ0IsQ0FBQyxRQUFRLEVBQUU7UUFBRSxRQUFRLEVBQUUsMkJBQTJCLENBQUM7UUFBQyxRQUFRLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQTtLQUFFLGlCQXFDN0c7SUFFRDs7Ozs7Ozs7T0FRRztJQUNJLGNBQWMsQ0FBQyxlQUFlLEVBQUUsWUFBWSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBOEI5RjtJQUVEOzs7T0FHRztJQUNJLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FFN0M7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxPQUFPLENBQUMsU0FBUyxFQUFFLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDLENBK0U5RztJQUVEOzs7OztPQUtHO0lBQ0ksU0FBUyxDQUNkLFNBQVMsRUFBRSxrQkFBa0IsRUFDN0IsRUFBRSxXQUFXLEVBQUUsbUJBQTBCLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxFQUFFLGFBQWEsR0FDaEYsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQTJFMUI7SUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7T0FpQkc7SUFDSSxVQUFVLENBQ2YsU0FBUyxFQUFFLGtCQUFrQixFQUM3QixFQUNFLGNBQWMsRUFDZCxnQkFBd0IsRUFDeEIsa0JBQTBCLEVBQzFCLFdBQWtCLEVBQ2xCLFNBQVMsRUFDVCxNQUFNLEVBQ04sYUFBYSxFQUNkLEVBQUUsY0FBYyxHQUNoQixPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FxSjdCO0lBRUQ7OztPQUdHO0lBQ0ksY0FBYyxDQUNuQixJQUFJLEVBQUUsWUFBWSxFQUNsQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsR0FBRSxrQkFBbUMsR0FDeEQsT0FBTyxDQUFDLHNCQUFzQixDQUFDLENBNkRqQztJQUVEOzs7Ozs7Ozs7Ozs7T0FZRztJQUNVLGdCQUFnQixDQUMzQixhQUFhLEVBQUUsYUFBYSxFQUM1QixNQUFNLEVBQUUsa0JBQWtCLEdBQ3pCLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBOEIvQjtJQUVEOztPQUVHO0lBQ1UsSUFBSSxJQUFJLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FHakM7Q0FDRiJ9
|
package/dest/pxe.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,KAAK,MAAM,EAAqC,MAAM,uBAAuB,CAAC;AAIvF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEzD,OAAO,EAAE,KAAK,yBAAyB,EAAyB,MAAM,2BAA2B,CAAC;AAClG,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EACL,KAAK,gBAAgB,EACrB,aAAa,EACb,YAAY,EAGb,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,EACL,eAAe,EACf,KAAK,2BAA2B,EAChC,KAAK,cAAc,EAGpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,iCAAiC,CAAC;AAMtF,OAAO,EACL,WAAW,EAEX,KAAK,IAAI,EAKT,mBAAmB,EAGnB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACvB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAUnD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAoB3D,MAAM,MAAM,kBAAkB,GAAG,IAAI,GAAG;IACtC,WAAW,EAAE,EAAE,EAAE,CAAC;IAClB,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,iCAAiC;AACjC,MAAM,MAAM,aAAa,GAAG;IAC1B,iCAAiC;IACjC,WAAW,EAAE,MAAM,GAAG,iBAAiB,GAAG,OAAO,CAAC;IAClD,+EAA+E;IAC/E,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,sFAAsF;IACtF,MAAM,EAAE,YAAY,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"pxe.d.ts","sourceRoot":"","sources":["../src/pxe.ts"],"names":[],"mappings":"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"}
|
package/dest/pxe.js
CHANGED
|
@@ -198,17 +198,17 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
198
198
|
}
|
|
199
199
|
// Executes the entrypoint private function, as well as all nested private
|
|
200
200
|
// functions that might arise.
|
|
201
|
-
async #executePrivate(contractFunctionSimulator, txRequest, scopes, jobId) {
|
|
201
|
+
async #executePrivate({ contractFunctionSimulator, txRequest, anchorBlockHeader, scopes, jobId, senderForTags }) {
|
|
202
202
|
const { origin: contractAddress, functionSelector } = txRequest;
|
|
203
203
|
try {
|
|
204
|
-
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
205
204
|
await this.contractSyncService.ensureContractSynced(contractAddress, functionSelector, (privateSyncCall, execScopes)=>this.#executeUtility(contractFunctionSimulator, privateSyncCall, [], execScopes, jobId), anchorBlockHeader, jobId, scopes);
|
|
206
205
|
const result = await contractFunctionSimulator.run(txRequest, {
|
|
207
206
|
contractAddress,
|
|
208
207
|
selector: functionSelector,
|
|
209
208
|
anchorBlockHeader,
|
|
210
209
|
scopes,
|
|
211
|
-
jobId
|
|
210
|
+
jobId,
|
|
211
|
+
senderForTags
|
|
212
212
|
});
|
|
213
213
|
this.log.debug(`Private simulation completed for ${contractAddress.toString()}:${functionSelector}`);
|
|
214
214
|
return result;
|
|
@@ -278,8 +278,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
278
278
|
* @param privateExecutionResult - The result of the private execution
|
|
279
279
|
* @param config - The configuration for the kernel execution prover.
|
|
280
280
|
* @returns An object that contains the output of the kernel execution, including the ChonkProof if proving is enabled.
|
|
281
|
-
*/ async #prove(txExecutionRequest, proofCreator, privateExecutionResult, config) {
|
|
282
|
-
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
281
|
+
*/ async #prove(txExecutionRequest, proofCreator, privateExecutionResult, anchorBlockHeader, config) {
|
|
283
282
|
const kernelOracle = new PrivateKernelOracle(this.contractStore, this.keyStore, this.node, anchorBlockHeader);
|
|
284
283
|
const kernelTraceProver = new PrivateKernelExecutionProver(kernelOracle, proofCreator, !this.proverEnabled, this.log.getBindings());
|
|
285
284
|
this.log.debug(`Executing kernel trace prover (${JSON.stringify(config)})...`);
|
|
@@ -475,7 +474,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
475
474
|
* @returns A result containing the proof and public inputs of the tail circuit.
|
|
476
475
|
* @throws If contract code not found, or public simulation reverts.
|
|
477
476
|
* Also throws if simulatePublic is true and public simulation reverts.
|
|
478
|
-
*/ proveTx(txRequest, scopes) {
|
|
477
|
+
*/ proveTx(txRequest, { scopes, senderForTags }) {
|
|
479
478
|
let privateExecutionResult;
|
|
480
479
|
// We disable proving concurrently mostly out of caution, since it accesses some of our stores. Proving is so
|
|
481
480
|
// computationally demanding that it'd be rare for someone to try to do it concurrently regardless.
|
|
@@ -484,10 +483,18 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
484
483
|
try {
|
|
485
484
|
const syncTimer = new Timer();
|
|
486
485
|
await this.blockStateSynchronizer.sync();
|
|
486
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
487
487
|
const syncTime = syncTimer.ms();
|
|
488
488
|
const contractFunctionSimulator = this.#getSimulatorForTx();
|
|
489
|
-
privateExecutionResult = await this.#executePrivate(
|
|
490
|
-
|
|
489
|
+
privateExecutionResult = await this.#executePrivate({
|
|
490
|
+
contractFunctionSimulator,
|
|
491
|
+
txRequest,
|
|
492
|
+
anchorBlockHeader,
|
|
493
|
+
scopes,
|
|
494
|
+
jobId,
|
|
495
|
+
senderForTags
|
|
496
|
+
});
|
|
497
|
+
const { publicInputs, chonkProof, executionSteps, timings: { proving } = {} } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, anchorBlockHeader, {
|
|
491
498
|
simulate: false,
|
|
492
499
|
skipFeeEnforcement: false,
|
|
493
500
|
profileMode: 'none'
|
|
@@ -539,7 +546,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
539
546
|
* @param txRequest - An authenticated tx request ready for simulation.
|
|
540
547
|
* @returns A trace of the program execution with gate counts.
|
|
541
548
|
* @throws If the code for the functions executed in this transaction have not been made available via `addContracts`.
|
|
542
|
-
*/ profileTx(txRequest, { profileMode, skipProofGeneration = true, scopes }) {
|
|
549
|
+
*/ profileTx(txRequest, { profileMode, skipProofGeneration = true, scopes, senderForTags }) {
|
|
543
550
|
// We disable concurrent profiles for consistency with simulateTx.
|
|
544
551
|
return this.#putInJobQueue(async (jobId)=>{
|
|
545
552
|
const totalTimer = new Timer();
|
|
@@ -555,10 +562,18 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
555
562
|
this.log.info(`Profiling transaction execution request to ${txRequest.functionSelector} at ${txRequest.origin}`, txInfo);
|
|
556
563
|
const syncTimer = new Timer();
|
|
557
564
|
await this.blockStateSynchronizer.sync();
|
|
565
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
558
566
|
const syncTime = syncTimer.ms();
|
|
559
567
|
const contractFunctionSimulator = this.#getSimulatorForTx();
|
|
560
|
-
const privateExecutionResult = await this.#executePrivate(
|
|
561
|
-
|
|
568
|
+
const privateExecutionResult = await this.#executePrivate({
|
|
569
|
+
contractFunctionSimulator,
|
|
570
|
+
txRequest,
|
|
571
|
+
anchorBlockHeader,
|
|
572
|
+
scopes,
|
|
573
|
+
jobId,
|
|
574
|
+
senderForTags
|
|
575
|
+
});
|
|
576
|
+
const { executionSteps, timings: { proving } = {} } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, anchorBlockHeader, {
|
|
562
577
|
simulate: skipProofGeneration,
|
|
563
578
|
skipFeeEnforcement: false,
|
|
564
579
|
profileMode
|
|
@@ -608,7 +623,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
608
623
|
* Also throws if simulatePublic is true and public simulation reverts.
|
|
609
624
|
*
|
|
610
625
|
* TODO(#7456) Prevent msgSender being defined here for the first call
|
|
611
|
-
*/ simulateTx(txRequest, { simulatePublic, skipTxValidation = false, skipFeeEnforcement = false, skipKernels = true, overrides, scopes }) {
|
|
626
|
+
*/ simulateTx(txRequest, { simulatePublic, skipTxValidation = false, skipFeeEnforcement = false, skipKernels = true, overrides, scopes, senderForTags }) {
|
|
612
627
|
// We disable concurrent simulations since those might execute oracles which read and write to the PXE stores (e.g.
|
|
613
628
|
// to the capsules), and we need to prevent concurrent runs from interfering with one another (e.g. attempting to
|
|
614
629
|
// delete the same read value, or reading values that another simulation is currently modifying).
|
|
@@ -626,6 +641,7 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
626
641
|
this.log.info(`Simulating transaction execution request to ${txRequest.functionSelector} at ${txRequest.origin}`, txInfo);
|
|
627
642
|
const syncTimer = new Timer();
|
|
628
643
|
await this.blockStateSynchronizer.sync();
|
|
644
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
629
645
|
const syncTime = syncTimer.ms();
|
|
630
646
|
const overriddenContracts = overrides?.contracts ? new Set(Object.keys(overrides.contracts)) : undefined;
|
|
631
647
|
const hasOverriddenContracts = overriddenContracts !== undefined && overriddenContracts.size > 0;
|
|
@@ -639,14 +655,21 @@ import { SenderTaggingStore } from './storage/tagging_store/sender_tagging_store
|
|
|
639
655
|
this.contractSyncService.setExcludedFromSync(jobId, overriddenContracts);
|
|
640
656
|
}
|
|
641
657
|
// Execution of private functions only; no proving, and no kernel logic.
|
|
642
|
-
const privateExecutionResult = await this.#executePrivate(
|
|
658
|
+
const privateExecutionResult = await this.#executePrivate({
|
|
659
|
+
contractFunctionSimulator,
|
|
660
|
+
txRequest,
|
|
661
|
+
anchorBlockHeader,
|
|
662
|
+
scopes,
|
|
663
|
+
jobId,
|
|
664
|
+
senderForTags
|
|
665
|
+
});
|
|
643
666
|
let publicInputs;
|
|
644
667
|
let executionSteps = [];
|
|
645
668
|
if (skipKernels) {
|
|
646
669
|
({ publicInputs, executionSteps } = await generateSimulatedProvingResult(privateExecutionResult, (addr, sel)=>this.contractStore.getDebugFunctionName(addr, sel), this.node));
|
|
647
670
|
} else {
|
|
648
671
|
// Kernel logic, plus proving of all private functions and kernels.
|
|
649
|
-
({ publicInputs, executionSteps } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, {
|
|
672
|
+
({ publicInputs, executionSteps } = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, anchorBlockHeader, {
|
|
650
673
|
simulate: true,
|
|
651
674
|
skipFeeEnforcement,
|
|
652
675
|
profileMode: 'none'
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/pxe",
|
|
3
|
-
"version": "4.3.0-nightly.
|
|
3
|
+
"version": "4.3.0-nightly.20260428",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"typedocOptions": {
|
|
6
6
|
"entryPoints": [
|
|
@@ -70,19 +70,19 @@
|
|
|
70
70
|
]
|
|
71
71
|
},
|
|
72
72
|
"dependencies": {
|
|
73
|
-
"@aztec/bb-prover": "4.3.0-nightly.
|
|
74
|
-
"@aztec/bb.js": "4.3.0-nightly.
|
|
75
|
-
"@aztec/builder": "4.3.0-nightly.
|
|
76
|
-
"@aztec/constants": "4.3.0-nightly.
|
|
77
|
-
"@aztec/ethereum": "4.3.0-nightly.
|
|
78
|
-
"@aztec/foundation": "4.3.0-nightly.
|
|
79
|
-
"@aztec/key-store": "4.3.0-nightly.
|
|
80
|
-
"@aztec/kv-store": "4.3.0-nightly.
|
|
81
|
-
"@aztec/noir-protocol-circuits-types": "4.3.0-nightly.
|
|
82
|
-
"@aztec/noir-types": "4.3.0-nightly.
|
|
83
|
-
"@aztec/protocol-contracts": "4.3.0-nightly.
|
|
84
|
-
"@aztec/simulator": "4.3.0-nightly.
|
|
85
|
-
"@aztec/stdlib": "4.3.0-nightly.
|
|
73
|
+
"@aztec/bb-prover": "4.3.0-nightly.20260428",
|
|
74
|
+
"@aztec/bb.js": "4.3.0-nightly.20260428",
|
|
75
|
+
"@aztec/builder": "4.3.0-nightly.20260428",
|
|
76
|
+
"@aztec/constants": "4.3.0-nightly.20260428",
|
|
77
|
+
"@aztec/ethereum": "4.3.0-nightly.20260428",
|
|
78
|
+
"@aztec/foundation": "4.3.0-nightly.20260428",
|
|
79
|
+
"@aztec/key-store": "4.3.0-nightly.20260428",
|
|
80
|
+
"@aztec/kv-store": "4.3.0-nightly.20260428",
|
|
81
|
+
"@aztec/noir-protocol-circuits-types": "4.3.0-nightly.20260428",
|
|
82
|
+
"@aztec/noir-types": "4.3.0-nightly.20260428",
|
|
83
|
+
"@aztec/protocol-contracts": "4.3.0-nightly.20260428",
|
|
84
|
+
"@aztec/simulator": "4.3.0-nightly.20260428",
|
|
85
|
+
"@aztec/stdlib": "4.3.0-nightly.20260428",
|
|
86
86
|
"koa": "^2.16.1",
|
|
87
87
|
"koa-router": "^13.1.1",
|
|
88
88
|
"lodash.omit": "^4.5.0",
|
|
@@ -91,8 +91,8 @@
|
|
|
91
91
|
"viem": "npm:@aztec/viem@2.38.2"
|
|
92
92
|
},
|
|
93
93
|
"devDependencies": {
|
|
94
|
-
"@aztec/merkle-tree": "4.3.0-nightly.
|
|
95
|
-
"@aztec/noir-test-contracts.js": "4.3.0-nightly.
|
|
94
|
+
"@aztec/merkle-tree": "4.3.0-nightly.20260428",
|
|
95
|
+
"@aztec/noir-test-contracts.js": "4.3.0-nightly.20260428",
|
|
96
96
|
"@jest/globals": "^30.0.0",
|
|
97
97
|
"@types/jest": "^30.0.0",
|
|
98
98
|
"@types/lodash.omit": "^4.5.7",
|
|
@@ -82,7 +82,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
82
82
|
private readonly senderTaggingStore: SenderTaggingStore;
|
|
83
83
|
private totalPublicCalldataCount: number;
|
|
84
84
|
private readonly initialSideEffectCounter: number;
|
|
85
|
-
|
|
85
|
+
/** Sender for tags passed in at oracle construction time. Returned by `getSenderForTags` unless overridden. */
|
|
86
|
+
private readonly defaultSenderForTags: AztecAddress | undefined;
|
|
87
|
+
/** Per-call sender-for-tags override, set by `setSenderForTags`. Takes precedence over `defaultSenderForTags`. */
|
|
88
|
+
private currentSenderForTags: AztecAddress | undefined;
|
|
86
89
|
private readonly simulator?: CircuitSimulator;
|
|
87
90
|
|
|
88
91
|
constructor(args: PrivateExecutionOracleArgs) {
|
|
@@ -101,7 +104,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
101
104
|
this.senderTaggingStore = args.senderTaggingStore;
|
|
102
105
|
this.totalPublicCalldataCount = args.totalPublicCalldataCount ?? 0;
|
|
103
106
|
this.initialSideEffectCounter = args.sideEffectCounter ?? 0;
|
|
104
|
-
this.
|
|
107
|
+
this.defaultSenderForTags = args.senderForTags;
|
|
105
108
|
this.simulator = args.simulator;
|
|
106
109
|
}
|
|
107
110
|
|
|
@@ -178,11 +181,10 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
178
181
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
179
182
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
180
183
|
*
|
|
181
|
-
*
|
|
182
|
-
* 'senderForTags' value (unless it is replaced).
|
|
184
|
+
* Returns `currentSenderForTags` if set (via `setSenderForTags`), otherwise `defaultSenderForTags`.
|
|
183
185
|
*/
|
|
184
186
|
public getSenderForTags(): Promise<AztecAddress | undefined> {
|
|
185
|
-
return Promise.resolve(this.
|
|
187
|
+
return Promise.resolve(this.currentSenderForTags ?? this.defaultSenderForTags);
|
|
186
188
|
}
|
|
187
189
|
|
|
188
190
|
/**
|
|
@@ -192,12 +194,14 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
192
194
|
* for a tag in order to emit a log. Constrained tagging should not use this as there is no
|
|
193
195
|
* guarantee that the recipient knows about the sender, and hence about the shared secret.
|
|
194
196
|
*
|
|
195
|
-
*
|
|
196
|
-
*
|
|
197
|
-
* value (unless it is replaced by another call to this setter).
|
|
197
|
+
* Overrides `defaultSenderForTags` for the remainder of this call. Each oracle instance is
|
|
198
|
+
* independent, so this has no effect on any other call in the execution.
|
|
198
199
|
*/
|
|
199
200
|
public setSenderForTags(senderForTags: AztecAddress): Promise<void> {
|
|
200
|
-
this.
|
|
201
|
+
this.logger.debug(
|
|
202
|
+
`Sender for tags switched to ${senderForTags} by contract ${this.contractAddress} (default was ${this.defaultSenderForTags})`,
|
|
203
|
+
);
|
|
204
|
+
this.currentSenderForTags = senderForTags;
|
|
201
205
|
return Promise.resolve();
|
|
202
206
|
}
|
|
203
207
|
|
|
@@ -578,7 +582,7 @@ export class PrivateExecutionOracle extends UtilityExecutionOracle implements IP
|
|
|
578
582
|
sideEffectCounter,
|
|
579
583
|
scopes: this.scopes,
|
|
580
584
|
log: this.logger,
|
|
581
|
-
senderForTags: this.
|
|
585
|
+
senderForTags: this.defaultSenderForTags,
|
|
582
586
|
simulator: this.simulator!,
|
|
583
587
|
l2TipsStore: this.l2TipsStore,
|
|
584
588
|
});
|
package/src/pxe.ts
CHANGED
|
@@ -89,6 +89,14 @@ export type PackedPrivateEvent = InTx & {
|
|
|
89
89
|
eventSelector: EventSelector;
|
|
90
90
|
};
|
|
91
91
|
|
|
92
|
+
/** Options for PXE.proveTx. */
|
|
93
|
+
export type ProveTxOpts = {
|
|
94
|
+
/** Addresses whose private state and keys are accessible during private execution. */
|
|
95
|
+
scopes: AztecAddress[];
|
|
96
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
97
|
+
senderForTags?: AztecAddress;
|
|
98
|
+
};
|
|
99
|
+
|
|
92
100
|
/** Options for PXE.profileTx. */
|
|
93
101
|
export type ProfileTxOpts = {
|
|
94
102
|
/** The profiling mode to use. */
|
|
@@ -97,6 +105,8 @@ export type ProfileTxOpts = {
|
|
|
97
105
|
skipProofGeneration?: boolean;
|
|
98
106
|
/** Addresses whose private state and keys are accessible during private execution. */
|
|
99
107
|
scopes: AztecAddress[];
|
|
108
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
109
|
+
senderForTags?: AztecAddress;
|
|
100
110
|
};
|
|
101
111
|
|
|
102
112
|
/** Options for PXE.simulateTx. */
|
|
@@ -113,6 +123,8 @@ export type SimulateTxOpts = {
|
|
|
113
123
|
overrides?: SimulationOverrides;
|
|
114
124
|
/** Addresses whose private state and keys are accessible during private execution */
|
|
115
125
|
scopes: AztecAddress[];
|
|
126
|
+
/** Sender address used to derive discovery tags for private messages (notes, events, logs) this tx emits. */
|
|
127
|
+
senderForTags?: AztecAddress;
|
|
116
128
|
};
|
|
117
129
|
|
|
118
130
|
/** Options for PXE.executeUtility. */
|
|
@@ -366,17 +378,24 @@ export class PXE {
|
|
|
366
378
|
|
|
367
379
|
// Executes the entrypoint private function, as well as all nested private
|
|
368
380
|
// functions that might arise.
|
|
369
|
-
async #executePrivate(
|
|
370
|
-
contractFunctionSimulator
|
|
371
|
-
txRequest
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
381
|
+
async #executePrivate({
|
|
382
|
+
contractFunctionSimulator,
|
|
383
|
+
txRequest,
|
|
384
|
+
anchorBlockHeader,
|
|
385
|
+
scopes,
|
|
386
|
+
jobId,
|
|
387
|
+
senderForTags,
|
|
388
|
+
}: {
|
|
389
|
+
contractFunctionSimulator: ContractFunctionSimulator;
|
|
390
|
+
txRequest: TxExecutionRequest;
|
|
391
|
+
anchorBlockHeader: BlockHeader;
|
|
392
|
+
scopes: AztecAddress[];
|
|
393
|
+
jobId: string;
|
|
394
|
+
senderForTags?: AztecAddress;
|
|
395
|
+
}): Promise<PrivateExecutionResult> {
|
|
375
396
|
const { origin: contractAddress, functionSelector } = txRequest;
|
|
376
397
|
|
|
377
398
|
try {
|
|
378
|
-
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
379
|
-
|
|
380
399
|
await this.contractSyncService.ensureContractSynced(
|
|
381
400
|
contractAddress,
|
|
382
401
|
functionSelector,
|
|
@@ -393,6 +412,7 @@ export class PXE {
|
|
|
393
412
|
anchorBlockHeader,
|
|
394
413
|
scopes,
|
|
395
414
|
jobId,
|
|
415
|
+
senderForTags,
|
|
396
416
|
});
|
|
397
417
|
this.log.debug(`Private simulation completed for ${contractAddress.toString()}:${functionSelector}`);
|
|
398
418
|
return result;
|
|
@@ -481,9 +501,9 @@ export class PXE {
|
|
|
481
501
|
txExecutionRequest: TxExecutionRequest,
|
|
482
502
|
proofCreator: PrivateKernelProver,
|
|
483
503
|
privateExecutionResult: PrivateExecutionResult,
|
|
504
|
+
anchorBlockHeader: BlockHeader,
|
|
484
505
|
config: PrivateKernelExecutionProverConfig,
|
|
485
506
|
): Promise<PrivateKernelExecutionProofOutput<PrivateKernelTailCircuitPublicInputs>> {
|
|
486
|
-
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
487
507
|
const kernelOracle = new PrivateKernelOracle(this.contractStore, this.keyStore, this.node, anchorBlockHeader);
|
|
488
508
|
const kernelTraceProver = new PrivateKernelExecutionProver(
|
|
489
509
|
kernelOracle,
|
|
@@ -739,7 +759,7 @@ export class PXE {
|
|
|
739
759
|
* @throws If contract code not found, or public simulation reverts.
|
|
740
760
|
* Also throws if simulatePublic is true and public simulation reverts.
|
|
741
761
|
*/
|
|
742
|
-
public proveTx(txRequest: TxExecutionRequest, scopes:
|
|
762
|
+
public proveTx(txRequest: TxExecutionRequest, { scopes, senderForTags }: ProveTxOpts): Promise<TxProvingResult> {
|
|
743
763
|
let privateExecutionResult: PrivateExecutionResult;
|
|
744
764
|
// We disable proving concurrently mostly out of caution, since it accesses some of our stores. Proving is so
|
|
745
765
|
// computationally demanding that it'd be rare for someone to try to do it concurrently regardless.
|
|
@@ -748,16 +768,24 @@ export class PXE {
|
|
|
748
768
|
try {
|
|
749
769
|
const syncTimer = new Timer();
|
|
750
770
|
await this.blockStateSynchronizer.sync();
|
|
771
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
751
772
|
const syncTime = syncTimer.ms();
|
|
752
773
|
const contractFunctionSimulator = this.#getSimulatorForTx();
|
|
753
|
-
privateExecutionResult = await this.#executePrivate(
|
|
774
|
+
privateExecutionResult = await this.#executePrivate({
|
|
775
|
+
contractFunctionSimulator,
|
|
776
|
+
txRequest,
|
|
777
|
+
anchorBlockHeader,
|
|
778
|
+
scopes,
|
|
779
|
+
jobId,
|
|
780
|
+
senderForTags,
|
|
781
|
+
});
|
|
754
782
|
|
|
755
783
|
const {
|
|
756
784
|
publicInputs,
|
|
757
785
|
chonkProof,
|
|
758
786
|
executionSteps,
|
|
759
787
|
timings: { proving } = {},
|
|
760
|
-
} = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, {
|
|
788
|
+
} = await this.#prove(txRequest, this.proofCreator, privateExecutionResult, anchorBlockHeader, {
|
|
761
789
|
simulate: false,
|
|
762
790
|
skipFeeEnforcement: false,
|
|
763
791
|
profileMode: 'none',
|
|
@@ -820,7 +848,7 @@ export class PXE {
|
|
|
820
848
|
*/
|
|
821
849
|
public profileTx(
|
|
822
850
|
txRequest: TxExecutionRequest,
|
|
823
|
-
{ profileMode, skipProofGeneration = true, scopes }: ProfileTxOpts,
|
|
851
|
+
{ profileMode, skipProofGeneration = true, scopes, senderForTags }: ProfileTxOpts,
|
|
824
852
|
): Promise<TxProfileResult> {
|
|
825
853
|
// We disable concurrent profiles for consistency with simulateTx.
|
|
826
854
|
return this.#putInJobQueue(async jobId => {
|
|
@@ -840,15 +868,24 @@ export class PXE {
|
|
|
840
868
|
);
|
|
841
869
|
const syncTimer = new Timer();
|
|
842
870
|
await this.blockStateSynchronizer.sync();
|
|
871
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
843
872
|
const syncTime = syncTimer.ms();
|
|
844
873
|
|
|
845
874
|
const contractFunctionSimulator = this.#getSimulatorForTx();
|
|
846
|
-
const privateExecutionResult = await this.#executePrivate(
|
|
875
|
+
const privateExecutionResult = await this.#executePrivate({
|
|
876
|
+
contractFunctionSimulator,
|
|
877
|
+
txRequest,
|
|
878
|
+
anchorBlockHeader,
|
|
879
|
+
scopes,
|
|
880
|
+
jobId,
|
|
881
|
+
senderForTags,
|
|
882
|
+
});
|
|
847
883
|
|
|
848
884
|
const { executionSteps, timings: { proving } = {} } = await this.#prove(
|
|
849
885
|
txRequest,
|
|
850
886
|
this.proofCreator,
|
|
851
887
|
privateExecutionResult,
|
|
888
|
+
anchorBlockHeader,
|
|
852
889
|
{
|
|
853
890
|
simulate: skipProofGeneration,
|
|
854
891
|
skipFeeEnforcement: false,
|
|
@@ -916,6 +953,7 @@ export class PXE {
|
|
|
916
953
|
skipKernels = true,
|
|
917
954
|
overrides,
|
|
918
955
|
scopes,
|
|
956
|
+
senderForTags,
|
|
919
957
|
}: SimulateTxOpts,
|
|
920
958
|
): Promise<TxSimulationResult> {
|
|
921
959
|
// We disable concurrent simulations since those might execute oracles which read and write to the PXE stores (e.g.
|
|
@@ -938,6 +976,7 @@ export class PXE {
|
|
|
938
976
|
);
|
|
939
977
|
const syncTimer = new Timer();
|
|
940
978
|
await this.blockStateSynchronizer.sync();
|
|
979
|
+
const anchorBlockHeader = await this.anchorBlockStore.getBlockHeader();
|
|
941
980
|
const syncTime = syncTimer.ms();
|
|
942
981
|
|
|
943
982
|
const overriddenContracts = overrides?.contracts ? new Set(Object.keys(overrides.contracts)) : undefined;
|
|
@@ -957,7 +996,14 @@ export class PXE {
|
|
|
957
996
|
}
|
|
958
997
|
|
|
959
998
|
// Execution of private functions only; no proving, and no kernel logic.
|
|
960
|
-
const privateExecutionResult = await this.#executePrivate(
|
|
999
|
+
const privateExecutionResult = await this.#executePrivate({
|
|
1000
|
+
contractFunctionSimulator,
|
|
1001
|
+
txRequest,
|
|
1002
|
+
anchorBlockHeader,
|
|
1003
|
+
scopes,
|
|
1004
|
+
jobId,
|
|
1005
|
+
senderForTags,
|
|
1006
|
+
});
|
|
961
1007
|
|
|
962
1008
|
let publicInputs: PrivateKernelTailCircuitPublicInputs | undefined;
|
|
963
1009
|
let executionSteps: PrivateExecutionStep[] = [];
|
|
@@ -970,11 +1016,17 @@ export class PXE {
|
|
|
970
1016
|
));
|
|
971
1017
|
} else {
|
|
972
1018
|
// Kernel logic, plus proving of all private functions and kernels.
|
|
973
|
-
({ publicInputs, executionSteps } = await this.#prove(
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
|
|
1019
|
+
({ publicInputs, executionSteps } = await this.#prove(
|
|
1020
|
+
txRequest,
|
|
1021
|
+
this.proofCreator,
|
|
1022
|
+
privateExecutionResult,
|
|
1023
|
+
anchorBlockHeader,
|
|
1024
|
+
{
|
|
1025
|
+
simulate: true,
|
|
1026
|
+
skipFeeEnforcement,
|
|
1027
|
+
profileMode: 'none',
|
|
1028
|
+
},
|
|
1029
|
+
));
|
|
978
1030
|
}
|
|
979
1031
|
|
|
980
1032
|
const privateSimulationResult = new PrivateSimulationResult(privateExecutionResult, publicInputs);
|