@aztec/simulator 0.46.7 → 0.47.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/acvm/acvm.d.ts +1 -1
- package/dest/acvm/acvm.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.d.ts +4 -4
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +10 -12
- package/dest/acvm/oracle/typed_oracle.d.ts +9 -6
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +3 -3
- package/dest/acvm/serialize.d.ts +0 -11
- package/dest/acvm/serialize.d.ts.map +1 -1
- package/dest/acvm/serialize.js +1 -26
- package/dest/avm/avm_gas.d.ts.map +1 -1
- package/dest/avm/avm_gas.js +5 -1
- package/dest/avm/fixtures/index.d.ts +2 -1
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +5 -2
- package/dest/avm/opcodes/commitment.d.ts +16 -0
- package/dest/avm/opcodes/commitment.d.ts.map +1 -0
- package/dest/avm/opcodes/commitment.js +50 -0
- package/dest/avm/opcodes/hashing.d.ts +11 -0
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +42 -3
- package/dest/avm/serialization/bytecode_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/bytecode_serialization.js +7 -2
- package/dest/avm/serialization/instruction_serialization.d.ts +4 -1
- package/dest/avm/serialization/instruction_serialization.d.ts.map +1 -1
- package/dest/avm/serialization/instruction_serialization.js +6 -2
- package/dest/client/client_execution_context.d.ts +17 -12
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +25 -31
- package/dest/client/execution_result.d.ts +12 -6
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/execution_result.js +21 -8
- package/dest/mocks/fixtures.d.ts +5 -5
- package/dest/mocks/fixtures.d.ts.map +1 -1
- package/dest/mocks/fixtures.js +6 -9
- package/dest/providers/factory.d.ts +12 -0
- package/dest/providers/factory.d.ts.map +1 -0
- package/dest/providers/factory.js +27 -0
- package/dest/providers/index.d.ts +1 -0
- package/dest/providers/index.d.ts.map +1 -1
- package/dest/providers/index.js +2 -1
- package/dest/public/abstract_phase_manager.d.ts +4 -5
- package/dest/public/abstract_phase_manager.d.ts.map +1 -1
- package/dest/public/abstract_phase_manager.js +16 -83
- package/dest/public/execution.d.ts +8 -10
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +10 -1
- package/dest/public/executor.d.ts +2 -1
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +3 -3
- package/dest/public/index.d.ts +1 -1
- package/dest/public/index.d.ts.map +1 -1
- package/dest/public/index.js +1 -1
- package/dest/public/public_processor.d.ts +1 -1
- package/dest/public/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor.js +9 -3
- package/dest/public/side_effect_trace.d.ts +1 -0
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +9 -9
- package/package.json +9 -9
- package/src/acvm/acvm.ts +1 -1
- package/src/acvm/oracle/oracle.ts +9 -7
- package/src/acvm/oracle/typed_oracle.ts +6 -10
- package/src/acvm/serialize.ts +0 -29
- package/src/avm/avm_gas.ts +4 -0
- package/src/avm/fixtures/index.ts +5 -1
- package/src/avm/opcodes/commitment.ts +66 -0
- package/src/avm/opcodes/hashing.ts +53 -2
- package/src/avm/serialization/bytecode_serialization.ts +6 -1
- package/src/avm/serialization/instruction_serialization.ts +4 -0
- package/src/client/client_execution_context.ts +34 -38
- package/src/client/execution_result.ts +25 -10
- package/src/mocks/fixtures.ts +13 -11
- package/src/providers/factory.ts +38 -0
- package/src/providers/index.ts +1 -0
- package/src/public/abstract_phase_manager.ts +22 -102
- package/src/public/execution.ts +30 -14
- package/src/public/executor.ts +4 -3
- package/src/public/index.ts +1 -1
- package/src/public/public_processor.ts +8 -5
- package/src/public/side_effect_trace.ts +13 -7
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
1
|
+
import { PublicExecutionRequest, UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
2
|
import { AvmContractInstanceHint, AvmExecutionHints, AvmExternalCallHint, AvmKeyValueHint, AztecAddress, CallContext, ContractStorageRead, ContractStorageUpdateRequest, EthAddress, Gas, L2ToL1Message, LogHash, NoteHash, Nullifier, ReadRequest, } from '@aztec/circuits.js';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
4
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
5
5
|
import { createSimulationError } from '../common/errors.js';
|
|
6
|
+
import { resultToPublicCallRequest } from './execution.js';
|
|
6
7
|
export class PublicSideEffectTrace {
|
|
7
8
|
constructor(
|
|
8
9
|
/** The counter of this trace's first side effect. */
|
|
@@ -21,6 +22,7 @@ export class PublicSideEffectTrace {
|
|
|
21
22
|
this.unencryptedLogs = [];
|
|
22
23
|
this.allUnencryptedLogs = [];
|
|
23
24
|
this.unencryptedLogsHashes = [];
|
|
25
|
+
this.publicCallRequests = [];
|
|
24
26
|
this.gotContractInstances = [];
|
|
25
27
|
this.nestedExecutions = [];
|
|
26
28
|
this.sideEffectCounter = startSideEffectCounter;
|
|
@@ -159,6 +161,7 @@ export class PublicSideEffectTrace {
|
|
|
159
161
|
// this function will accept all of the nested's side effects into this instance
|
|
160
162
|
this.nestedExecutions.push(result);
|
|
161
163
|
const gasUsed = new Gas(result.startGasLeft.daGas - result.endGasLeft.daGas, result.startGasLeft.l2Gas - result.endGasLeft.l2Gas);
|
|
164
|
+
this.publicCallRequests.push(resultToPublicCallRequest(result));
|
|
162
165
|
this.avmCircuitHints.externalCalls.items.push(new AvmExternalCallHint(
|
|
163
166
|
/*success=*/ new Fr(result.reverted ? 0 : 1), result.returnValues, gasUsed, result.endSideEffectCounter));
|
|
164
167
|
}
|
|
@@ -205,6 +208,7 @@ export class PublicSideEffectTrace {
|
|
|
205
208
|
unencryptedLogsHashes: this.unencryptedLogsHashes,
|
|
206
209
|
// TODO(dbanks12): process contract instance read requests in public kernel
|
|
207
210
|
//gotContractInstances: this.gotContractInstances,
|
|
211
|
+
publicCallRequests: this.publicCallRequests,
|
|
208
212
|
nestedExecutions: this.nestedExecutions,
|
|
209
213
|
avmCircuitHints: this.avmCircuitHints,
|
|
210
214
|
functionName,
|
|
@@ -222,12 +226,8 @@ function createPublicExecutionRequest(avmEnvironment) {
|
|
|
222
226
|
isDelegateCall: avmEnvironment.isDelegateCall,
|
|
223
227
|
isStaticCall: avmEnvironment.isStaticCall,
|
|
224
228
|
});
|
|
225
|
-
return
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
callContext,
|
|
229
|
-
// execution request does not contain AvmContextInputs prefix
|
|
230
|
-
args: avmEnvironment.getCalldataWithoutPrefix(),
|
|
231
|
-
};
|
|
229
|
+
return new PublicExecutionRequest(avmEnvironment.address, callContext,
|
|
230
|
+
// execution request does not contain AvmContextInputs prefix
|
|
231
|
+
avmEnvironment.getCalldataWithoutPrefix());
|
|
232
232
|
}
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25GLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUNULFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQU01RCxNQUFNLE9BQU8scUJBQXFCO0lBNkJoQztJQUNFLHFEQUFxRDtJQUNyQyx5QkFBaUMsQ0FBQztRQUFsQywyQkFBc0IsR0FBdEIsc0JBQXNCLENBQVk7UUE5QjdDLFdBQU0sR0FBRyxpQkFBaUIsQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBSzVELHlCQUFvQixHQUEwQixFQUFFLENBQUM7UUFDakQsa0NBQTZCLEdBQW1DLEVBQUUsQ0FBQztRQUVuRSx5QkFBb0IsR0FBa0IsRUFBRSxDQUFDO1FBQ3pDLGVBQVUsR0FBZSxFQUFFLENBQUM7UUFFNUIsMEJBQXFCLEdBQWtCLEVBQUUsQ0FBQztRQUMxQyxxQ0FBZ0MsR0FBa0IsRUFBRSxDQUFDO1FBQ3JELGVBQVUsR0FBZ0IsRUFBRSxDQUFDO1FBRTdCLDBCQUFxQixHQUFrQixFQUFFLENBQUM7UUFDMUMsc0JBQWlCLEdB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
|
|
233
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZV9lZmZlY3RfdHJhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL3NpZGVfZWZmZWN0X3RyYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSx5QkFBeUIsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzNHLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLG1CQUFtQixFQUNuQixlQUFlLEVBQ2YsWUFBWSxFQUNaLFdBQVcsRUFDWCxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLFVBQVUsRUFDVixHQUFHLEVBQ0gsYUFBYSxFQUNiLE9BQU8sRUFDUCxRQUFRLEVBQ1IsU0FBUyxFQUVULFdBQVcsR0FDWixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUsxRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQThCLHlCQUF5QixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLdkYsTUFBTSxPQUFPLHFCQUFxQjtJQStCaEM7SUFDRSxxREFBcUQ7SUFDckMseUJBQWlDLENBQUM7UUFBbEMsMkJBQXNCLEdBQXRCLHNCQUFzQixDQUFZO1FBaEM3QyxXQUFNLEdBQUcsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUs1RCx5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBQ2pELGtDQUE2QixHQUFtQyxFQUFFLENBQUM7UUFFbkUseUJBQW9CLEdBQWtCLEVBQUUsQ0FBQztRQUN6QyxlQUFVLEdBQWUsRUFBRSxDQUFDO1FBRTVCLDBCQUFxQixHQUFrQixFQUFFLENBQUM7UUFDMUMscUNBQWdDLEdBQWtCLEVBQUUsQ0FBQztRQUNyRCxlQUFVLEdB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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.47.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": "./dest/index.js",
|
|
@@ -56,14 +56,14 @@
|
|
|
56
56
|
]
|
|
57
57
|
},
|
|
58
58
|
"dependencies": {
|
|
59
|
-
"@aztec/circuit-types": "0.
|
|
60
|
-
"@aztec/circuits.js": "0.
|
|
61
|
-
"@aztec/foundation": "0.
|
|
62
|
-
"@aztec/noir-protocol-circuits-types": "0.
|
|
63
|
-
"@aztec/protocol-contracts": "0.
|
|
64
|
-
"@aztec/telemetry-client": "0.
|
|
65
|
-
"@aztec/types": "0.
|
|
66
|
-
"@aztec/world-state": "0.
|
|
59
|
+
"@aztec/circuit-types": "0.47.1",
|
|
60
|
+
"@aztec/circuits.js": "0.47.1",
|
|
61
|
+
"@aztec/foundation": "0.47.1",
|
|
62
|
+
"@aztec/noir-protocol-circuits-types": "0.47.1",
|
|
63
|
+
"@aztec/protocol-contracts": "0.47.1",
|
|
64
|
+
"@aztec/telemetry-client": "0.47.1",
|
|
65
|
+
"@aztec/types": "0.47.1",
|
|
66
|
+
"@aztec/world-state": "0.47.1",
|
|
67
67
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
68
68
|
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
69
69
|
"levelup": "^5.1.1",
|
package/src/acvm/acvm.ts
CHANGED
|
@@ -18,7 +18,7 @@ import { type ORACLE_NAMES } from './oracle/index.js';
|
|
|
18
18
|
*/
|
|
19
19
|
type ACIRCallback = Record<
|
|
20
20
|
ORACLE_NAMES,
|
|
21
|
-
(...args: ForeignCallInput[]) => void | ForeignCallOutput | Promise<ForeignCallOutput>
|
|
21
|
+
(...args: ForeignCallInput[]) => void | Promise<void> | ForeignCallOutput | Promise<ForeignCallOutput>
|
|
22
22
|
>;
|
|
23
23
|
|
|
24
24
|
/**
|
|
@@ -6,7 +6,7 @@ import { Fr, Point } from '@aztec/foundation/fields';
|
|
|
6
6
|
|
|
7
7
|
import { type ACVMField } from '../acvm_types.js';
|
|
8
8
|
import { frToBoolean, frToNumber, fromACVMField } from '../deserialize.js';
|
|
9
|
-
import { toACVMField
|
|
9
|
+
import { toACVMField } from '../serialize.js';
|
|
10
10
|
import { type TypedOracle } from './typed_oracle.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -340,6 +340,7 @@ export class Oracle {
|
|
|
340
340
|
[ivpkMX]: ACVMField[],
|
|
341
341
|
[ivpkMY]: ACVMField[],
|
|
342
342
|
[ivpkMIsInfinite]: ACVMField[],
|
|
343
|
+
[recipient]: ACVMField[],
|
|
343
344
|
preimage: ACVMField[],
|
|
344
345
|
): ACVMField[] {
|
|
345
346
|
const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY), !fromACVMField(ovpkMIsInfinite).isZero());
|
|
@@ -351,6 +352,7 @@ export class Oracle {
|
|
|
351
352
|
Fr.fromString(eventTypeId),
|
|
352
353
|
ovKeys,
|
|
353
354
|
ivpkM,
|
|
355
|
+
AztecAddress.fromString(recipient),
|
|
354
356
|
preimage.map(fromACVMField),
|
|
355
357
|
);
|
|
356
358
|
const bytes: ACVMField[] = [];
|
|
@@ -371,6 +373,7 @@ export class Oracle {
|
|
|
371
373
|
[ivpkMX]: ACVMField[],
|
|
372
374
|
[ivpkMY]: ACVMField[],
|
|
373
375
|
[ivpkMIsInfinite]: ACVMField[],
|
|
376
|
+
[recipient]: ACVMField[],
|
|
374
377
|
preimage: ACVMField[],
|
|
375
378
|
): ACVMField[] {
|
|
376
379
|
const ovpkM = new Point(fromACVMField(ovpkMX), fromACVMField(ovpkMY), !fromACVMField(ovpkMIsInfinite).isZero());
|
|
@@ -382,6 +385,7 @@ export class Oracle {
|
|
|
382
385
|
NoteSelector.fromField(Fr.fromString(noteTypeId)),
|
|
383
386
|
ovKeys,
|
|
384
387
|
ivpkM,
|
|
388
|
+
AztecAddress.fromString(recipient),
|
|
385
389
|
preimage.map(fromACVMField),
|
|
386
390
|
);
|
|
387
391
|
const bytes: ACVMField[] = [];
|
|
@@ -425,7 +429,7 @@ export class Oracle {
|
|
|
425
429
|
[isStaticCall]: ACVMField[],
|
|
426
430
|
[isDelegateCall]: ACVMField[],
|
|
427
431
|
): Promise<ACVMField[]> {
|
|
428
|
-
const
|
|
432
|
+
const { endSideEffectCounter, returnsHash } = await this.typedOracle.callPrivateFunction(
|
|
429
433
|
AztecAddress.fromField(fromACVMField(contractAddress)),
|
|
430
434
|
FunctionSelector.fromField(fromACVMField(functionSelector)),
|
|
431
435
|
fromACVMField(argsHash),
|
|
@@ -433,7 +437,7 @@ export class Oracle {
|
|
|
433
437
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
434
438
|
frToBoolean(fromACVMField(isDelegateCall)),
|
|
435
439
|
);
|
|
436
|
-
return
|
|
440
|
+
return [endSideEffectCounter, returnsHash].map(toACVMField);
|
|
437
441
|
}
|
|
438
442
|
|
|
439
443
|
async callPublicFunction(
|
|
@@ -463,7 +467,7 @@ export class Oracle {
|
|
|
463
467
|
[isStaticCall]: ACVMField[],
|
|
464
468
|
[isDelegateCall]: ACVMField[],
|
|
465
469
|
) {
|
|
466
|
-
|
|
470
|
+
await this.typedOracle.enqueuePublicFunctionCall(
|
|
467
471
|
AztecAddress.fromString(contractAddress),
|
|
468
472
|
FunctionSelector.fromField(fromACVMField(functionSelector)),
|
|
469
473
|
fromACVMField(argsHash),
|
|
@@ -471,7 +475,6 @@ export class Oracle {
|
|
|
471
475
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
472
476
|
frToBoolean(fromACVMField(isDelegateCall)),
|
|
473
477
|
);
|
|
474
|
-
return toAcvmEnqueuePublicFunctionResult(enqueuedRequest);
|
|
475
478
|
}
|
|
476
479
|
|
|
477
480
|
async setPublicTeardownFunctionCall(
|
|
@@ -482,7 +485,7 @@ export class Oracle {
|
|
|
482
485
|
[isStaticCall]: ACVMField[],
|
|
483
486
|
[isDelegateCall]: ACVMField[],
|
|
484
487
|
) {
|
|
485
|
-
|
|
488
|
+
await this.typedOracle.setPublicTeardownFunctionCall(
|
|
486
489
|
AztecAddress.fromString(contractAddress),
|
|
487
490
|
FunctionSelector.fromField(fromACVMField(functionSelector)),
|
|
488
491
|
fromACVMField(argsHash),
|
|
@@ -490,7 +493,6 @@ export class Oracle {
|
|
|
490
493
|
frToBoolean(fromACVMField(isStaticCall)),
|
|
491
494
|
frToBoolean(fromACVMField(isDelegateCall)),
|
|
492
495
|
);
|
|
493
|
-
return toAcvmEnqueuePublicFunctionResult(teardownRequest);
|
|
494
496
|
}
|
|
495
497
|
|
|
496
498
|
aes128Encrypt(input: ACVMField[], initializationVector: ACVMField[], key: ACVMField[]): ACVMField[] {
|
|
@@ -9,13 +9,7 @@ import {
|
|
|
9
9
|
type SiblingPath,
|
|
10
10
|
type UnencryptedL2Log,
|
|
11
11
|
} from '@aztec/circuit-types';
|
|
12
|
-
import {
|
|
13
|
-
type Header,
|
|
14
|
-
type KeyValidationRequest,
|
|
15
|
-
type L1_TO_L2_MSG_TREE_HEIGHT,
|
|
16
|
-
type PrivateCallStackItem,
|
|
17
|
-
type PublicCallRequest,
|
|
18
|
-
} from '@aztec/circuits.js';
|
|
12
|
+
import { type Header, type KeyValidationRequest, type L1_TO_L2_MSG_TREE_HEIGHT } from '@aztec/circuits.js';
|
|
19
13
|
import { type FunctionSelector, type NoteSelector } from '@aztec/foundation/abi';
|
|
20
14
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
21
15
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -222,6 +216,7 @@ export abstract class TypedOracle {
|
|
|
222
216
|
_eventTypeId: Fr,
|
|
223
217
|
_ovKeys: KeyValidationRequest,
|
|
224
218
|
_ivpkM: PublicKey,
|
|
219
|
+
_recipient: AztecAddress,
|
|
225
220
|
_preimage: Fr[],
|
|
226
221
|
): Buffer {
|
|
227
222
|
throw new OracleMethodNotAvailableError('computeEncryptedEventLog');
|
|
@@ -233,6 +228,7 @@ export abstract class TypedOracle {
|
|
|
233
228
|
_noteTypeId: NoteSelector,
|
|
234
229
|
_ovKeys: KeyValidationRequest,
|
|
235
230
|
_ivpkM: PublicKey,
|
|
231
|
+
_recipient: AztecAddress,
|
|
236
232
|
_preimage: Fr[],
|
|
237
233
|
): Buffer {
|
|
238
234
|
throw new OracleMethodNotAvailableError('computeEncryptedNoteLog');
|
|
@@ -253,7 +249,7 @@ export abstract class TypedOracle {
|
|
|
253
249
|
_sideEffectCounter: number,
|
|
254
250
|
_isStaticCall: boolean,
|
|
255
251
|
_isDelegateCall: boolean,
|
|
256
|
-
): Promise<
|
|
252
|
+
): Promise<{ endSideEffectCounter: Fr; returnsHash: Fr }> {
|
|
257
253
|
throw new OracleMethodNotAvailableError('callPrivateFunction');
|
|
258
254
|
}
|
|
259
255
|
|
|
@@ -275,7 +271,7 @@ export abstract class TypedOracle {
|
|
|
275
271
|
_sideEffectCounter: number,
|
|
276
272
|
_isStaticCall: boolean,
|
|
277
273
|
_isDelegateCall: boolean,
|
|
278
|
-
): Promise<
|
|
274
|
+
): Promise<void> {
|
|
279
275
|
throw new OracleMethodNotAvailableError('enqueuePublicFunctionCall');
|
|
280
276
|
}
|
|
281
277
|
|
|
@@ -286,7 +282,7 @@ export abstract class TypedOracle {
|
|
|
286
282
|
_sideEffectCounter: number,
|
|
287
283
|
_isStaticCall: boolean,
|
|
288
284
|
_isDelegateCall: boolean,
|
|
289
|
-
): Promise<
|
|
285
|
+
): Promise<void> {
|
|
290
286
|
throw new OracleMethodNotAvailableError('setPublicTeardownFunctionCall');
|
|
291
287
|
}
|
|
292
288
|
|
package/src/acvm/serialize.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH, type PublicCallRequest } from '@aztec/circuits.js';
|
|
2
1
|
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
2
|
import { type EthAddress } from '@aztec/foundation/eth-address';
|
|
4
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -40,34 +39,6 @@ export function toACVMField(
|
|
|
40
39
|
return `0x${adaptBufferSize(buffer).toString('hex')}`;
|
|
41
40
|
}
|
|
42
41
|
|
|
43
|
-
// Utilities to write TS classes to ACVM Field arrays
|
|
44
|
-
// In the order that the ACVM expects them
|
|
45
|
-
|
|
46
|
-
/**
|
|
47
|
-
* Converts a public call stack item with the request for executing a public function to
|
|
48
|
-
* a set of ACVM fields accepted by the enqueue_public_function_call_oracle Aztec.nr function.
|
|
49
|
-
* Note that only the fields related to the request are serialized: those related to the result
|
|
50
|
-
* are empty since this is just an execution request, so we don't send them to the circuit.
|
|
51
|
-
* @param item - The public call stack item to serialize to be passed onto Noir.
|
|
52
|
-
* @returns The fields expected by the enqueue_public_function_call_oracle Aztec.nr function.
|
|
53
|
-
* TODO(#4380): Nuke this and replace it with PublicCallRequest.toFields()
|
|
54
|
-
*/
|
|
55
|
-
export function toAcvmEnqueuePublicFunctionResult(item: PublicCallRequest): ACVMField[] {
|
|
56
|
-
const fields = [
|
|
57
|
-
item.contractAddress.toField(),
|
|
58
|
-
item.functionSelector.toField(),
|
|
59
|
-
...item.callContext.toFields(),
|
|
60
|
-
item.sideEffectCounter,
|
|
61
|
-
item.getArgsHash(),
|
|
62
|
-
];
|
|
63
|
-
if (fields.length !== ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH) {
|
|
64
|
-
throw new Error(
|
|
65
|
-
`Invalid length for EnqueuePublicFunctionResult (got ${fields.length} expected ${ENQUEUE_PUBLIC_FUNCTION_CALL_RETURN_LENGTH})`,
|
|
66
|
-
);
|
|
67
|
-
}
|
|
68
|
-
return fields.map(toACVMField);
|
|
69
|
-
}
|
|
70
|
-
|
|
71
42
|
/**
|
|
72
43
|
* Inserts a list of ACVM fields to a witness.
|
|
73
44
|
* @param witnessStartIndex - The index where to start inserting the fields.
|
package/src/avm/avm_gas.ts
CHANGED
|
@@ -124,8 +124,12 @@ const BaseGasCosts: Record<Opcode, Gas> = {
|
|
|
124
124
|
[Opcode.PEDERSEN]: DefaultBaseGasCost,
|
|
125
125
|
[Opcode.ECADD]: DefaultBaseGasCost,
|
|
126
126
|
[Opcode.MSM]: DefaultBaseGasCost,
|
|
127
|
+
[Opcode.PEDERSENCOMMITMENT]: DefaultBaseGasCost,
|
|
127
128
|
// Conversions
|
|
128
129
|
[Opcode.TORADIXLE]: DefaultBaseGasCost,
|
|
130
|
+
// Other
|
|
131
|
+
[Opcode.SHA256COMPRESSION]: DefaultBaseGasCost,
|
|
132
|
+
[Opcode.KECCAKF1600]: DefaultBaseGasCost,
|
|
129
133
|
};
|
|
130
134
|
|
|
131
135
|
/** Returns the fixed base gas cost for a given opcode. */
|
|
@@ -14,7 +14,7 @@ import { type PublicSideEffectTraceInterface } from '../../public/side_effect_tr
|
|
|
14
14
|
import { AvmContext } from '../avm_context.js';
|
|
15
15
|
import { AvmContextInputs, AvmExecutionEnvironment } from '../avm_execution_environment.js';
|
|
16
16
|
import { AvmMachineState } from '../avm_machine_state.js';
|
|
17
|
-
import { Field, Uint8 } from '../avm_memory_types.js';
|
|
17
|
+
import { Field, Uint8, Uint64 } from '../avm_memory_types.js';
|
|
18
18
|
import { HostStorage } from '../journal/host_storage.js';
|
|
19
19
|
import { AvmPersistableStateManager } from '../journal/journal.js';
|
|
20
20
|
import { NullifierManager } from '../journal/nullifiers.js';
|
|
@@ -135,6 +135,10 @@ export function randomMemoryBytes(length: number): Uint8[] {
|
|
|
135
135
|
return [...Array(length)].map(_ => new Uint8(Math.floor(Math.random() * 255)));
|
|
136
136
|
}
|
|
137
137
|
|
|
138
|
+
export function randomMemoryUint64s(length: number): Uint64[] {
|
|
139
|
+
return [...Array(length)].map(_ => new Uint64(Math.floor(Math.random() * 255)));
|
|
140
|
+
}
|
|
141
|
+
|
|
138
142
|
export function randomMemoryFields(length: number): Field[] {
|
|
139
143
|
return [...Array(length)].map(_ => new Field(Fr.random()));
|
|
140
144
|
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { pedersenCommit } from '@aztec/foundation/crypto';
|
|
2
|
+
|
|
3
|
+
import { type AvmContext } from '../avm_context.js';
|
|
4
|
+
import { Field, TypeTag, Uint8 } from '../avm_memory_types.js';
|
|
5
|
+
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
6
|
+
import { Addressing } from './addressing_mode.js';
|
|
7
|
+
import { Instruction } from './instruction.js';
|
|
8
|
+
|
|
9
|
+
export class PedersenCommitment extends Instruction {
|
|
10
|
+
static type: string = 'PEDERSENCOMMITMENT';
|
|
11
|
+
static readonly opcode: Opcode = Opcode.PEDERSENCOMMITMENT;
|
|
12
|
+
|
|
13
|
+
// Informs (de)serialization. See Instruction.deserialize.
|
|
14
|
+
static readonly wireFormat: OperandType[] = [
|
|
15
|
+
OperandType.UINT8 /* Opcode */,
|
|
16
|
+
OperandType.UINT8 /* Indirect */,
|
|
17
|
+
OperandType.UINT32 /* Input Offset*/,
|
|
18
|
+
OperandType.UINT32 /* Dst Offset */,
|
|
19
|
+
OperandType.UINT32 /* Input Size Offset */,
|
|
20
|
+
OperandType.UINT32 /* Generator Index Offset */,
|
|
21
|
+
];
|
|
22
|
+
|
|
23
|
+
constructor(
|
|
24
|
+
private indirect: number,
|
|
25
|
+
private inputOffset: number,
|
|
26
|
+
private outputOffset: number,
|
|
27
|
+
private inputSizeOffset: number,
|
|
28
|
+
private genIndexOffset: number,
|
|
29
|
+
) {
|
|
30
|
+
super();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
public async execute(context: AvmContext): Promise<void> {
|
|
34
|
+
const memory = context.machineState.memory.track(this.type);
|
|
35
|
+
const [inputOffset, outputOffset, inputSizeOffset, genIndexOffset] = Addressing.fromWire(this.indirect).resolve(
|
|
36
|
+
[this.inputOffset, this.outputOffset, this.inputSizeOffset, this.genIndexOffset],
|
|
37
|
+
memory,
|
|
38
|
+
);
|
|
39
|
+
|
|
40
|
+
const inputSize = memory.get(inputSizeOffset).toNumber();
|
|
41
|
+
memory.checkTag(TypeTag.UINT32, inputSizeOffset);
|
|
42
|
+
|
|
43
|
+
const inputs = memory.getSlice(inputOffset, inputSize);
|
|
44
|
+
memory.checkTagsRange(TypeTag.FIELD, inputOffset, inputSize);
|
|
45
|
+
|
|
46
|
+
// Generator index not used for now since we dont utilise it in the pedersenCommit function
|
|
47
|
+
memory.checkTag(TypeTag.UINT32, genIndexOffset);
|
|
48
|
+
|
|
49
|
+
const memoryOperations = { reads: inputSize + 1, writes: 3, indirect: this.indirect };
|
|
50
|
+
context.machineState.consumeGas(this.gasCost(memoryOperations));
|
|
51
|
+
|
|
52
|
+
const inputBuffer: Buffer[] = inputs.map(input => input.toBuffer());
|
|
53
|
+
// TODO: Add the generate index to the pedersenCommit function
|
|
54
|
+
const commitment = pedersenCommit(inputBuffer).map(f => new Field(f));
|
|
55
|
+
// The function doesnt include a flag if the output point is infinity, come back to this
|
|
56
|
+
// for now we just check if theyre zero - until we know how bb encodes them
|
|
57
|
+
const isInfinity = commitment[0].equals(new Field(0)) && commitment[1].equals(new Field(0));
|
|
58
|
+
|
|
59
|
+
memory.set(outputOffset, commitment[0]); // Field typed
|
|
60
|
+
memory.set(outputOffset + 1, commitment[1]); // Field typed
|
|
61
|
+
memory.set(outputOffset + 2, new Uint8(isInfinity ? 1 : 0)); // U8 typed
|
|
62
|
+
|
|
63
|
+
memory.assert(memoryOperations);
|
|
64
|
+
context.machineState.incrementPc();
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import { keccak256, pedersenHash, poseidon2Permutation, sha256 } from '@aztec/foundation/crypto';
|
|
1
|
+
import { keccak256, keccakf1600, pedersenHash, poseidon2Permutation, sha256 } from '@aztec/foundation/crypto';
|
|
2
|
+
|
|
3
|
+
import { strict as assert } from 'assert';
|
|
2
4
|
|
|
3
5
|
import { type AvmContext } from '../avm_context.js';
|
|
4
|
-
import { Field, TypeTag, Uint8 } from '../avm_memory_types.js';
|
|
6
|
+
import { Field, TypeTag, Uint8, Uint64 } from '../avm_memory_types.js';
|
|
5
7
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
6
8
|
import { Addressing } from './addressing_mode.js';
|
|
7
9
|
import { Instruction } from './instruction.js';
|
|
@@ -94,6 +96,55 @@ export class Keccak extends Instruction {
|
|
|
94
96
|
}
|
|
95
97
|
}
|
|
96
98
|
|
|
99
|
+
export class KeccakF1600 extends Instruction {
|
|
100
|
+
static type: string = 'KECCAKF1600';
|
|
101
|
+
static readonly opcode: Opcode = Opcode.KECCAKF1600;
|
|
102
|
+
|
|
103
|
+
// Informs (de)serialization. See Instruction.deserialize.
|
|
104
|
+
static readonly wireFormat: OperandType[] = [
|
|
105
|
+
OperandType.UINT8,
|
|
106
|
+
OperandType.UINT8,
|
|
107
|
+
OperandType.UINT32,
|
|
108
|
+
OperandType.UINT32,
|
|
109
|
+
OperandType.UINT32,
|
|
110
|
+
];
|
|
111
|
+
|
|
112
|
+
constructor(
|
|
113
|
+
private indirect: number,
|
|
114
|
+
private dstOffset: number,
|
|
115
|
+
private stateOffset: number,
|
|
116
|
+
// This is here for compatibility with the CPP side. Should be removed in both.
|
|
117
|
+
private stateSizeOffset: number,
|
|
118
|
+
) {
|
|
119
|
+
super();
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
// pub fn keccakf1600(input: [u64; 25]) -> [u64; 25]
|
|
123
|
+
public async execute(context: AvmContext): Promise<void> {
|
|
124
|
+
const memory = context.machineState.memory.track(this.type);
|
|
125
|
+
const [dstOffset, stateOffset, stateSizeOffset] = Addressing.fromWire(this.indirect).resolve(
|
|
126
|
+
[this.dstOffset, this.stateOffset, this.stateSizeOffset],
|
|
127
|
+
memory,
|
|
128
|
+
);
|
|
129
|
+
memory.checkTag(TypeTag.UINT32, stateSizeOffset);
|
|
130
|
+
const stateSize = memory.get(stateSizeOffset).toNumber();
|
|
131
|
+
assert(stateSize === 25, 'Invalid state size for keccakf1600');
|
|
132
|
+
const memoryOperations = { reads: stateSize + 1, writes: 25, indirect: this.indirect };
|
|
133
|
+
context.machineState.consumeGas(this.gasCost(memoryOperations));
|
|
134
|
+
|
|
135
|
+
memory.checkTagsRange(TypeTag.UINT64, stateOffset, stateSize);
|
|
136
|
+
|
|
137
|
+
const stateData = memory.getSlice(stateOffset, stateSize).map(word => word.toBigInt());
|
|
138
|
+
const updatedState = keccakf1600(stateData);
|
|
139
|
+
|
|
140
|
+
const res = updatedState.map(word => new Uint64(word));
|
|
141
|
+
memory.setSlice(dstOffset, res);
|
|
142
|
+
|
|
143
|
+
memory.assert(memoryOperations);
|
|
144
|
+
context.machineState.incrementPc();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
97
148
|
export class Sha256 extends Instruction {
|
|
98
149
|
static type: string = 'SHA256';
|
|
99
150
|
static readonly opcode: Opcode = Opcode.SHA256;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
import { PedersenCommitment } from '../opcodes/commitment.js';
|
|
1
2
|
import { DAGasLeft, L2GasLeft } from '../opcodes/context_getters.js';
|
|
2
3
|
import { EcAdd } from '../opcodes/ec_add.js';
|
|
3
|
-
import { Keccak, Pedersen, Poseidon2, Sha256 } from '../opcodes/hashing.js';
|
|
4
|
+
import { Keccak, KeccakF1600, Pedersen, Poseidon2, Sha256 } from '../opcodes/hashing.js';
|
|
4
5
|
import type { Instruction } from '../opcodes/index.js';
|
|
5
6
|
import {
|
|
6
7
|
Add,
|
|
@@ -146,8 +147,12 @@ const INSTRUCTION_SET = () =>
|
|
|
146
147
|
[Sha256.opcode, Sha256],
|
|
147
148
|
[Pedersen.opcode, Pedersen],
|
|
148
149
|
[MultiScalarMul.opcode, MultiScalarMul],
|
|
150
|
+
[PedersenCommitment.opcode, PedersenCommitment],
|
|
149
151
|
// Conversions
|
|
150
152
|
[ToRadixLE.opcode, ToRadixLE],
|
|
153
|
+
// Future Gadgets -- pending changes in noir
|
|
154
|
+
// SHA256COMPRESSION,
|
|
155
|
+
[KeccakF1600.opcode, KeccakF1600],
|
|
151
156
|
]);
|
|
152
157
|
|
|
153
158
|
interface Serializable {
|
|
@@ -78,8 +78,12 @@ export enum Opcode {
|
|
|
78
78
|
PEDERSEN, // temp - may be removed, but alot of contracts rely on it
|
|
79
79
|
ECADD,
|
|
80
80
|
MSM,
|
|
81
|
+
PEDERSENCOMMITMENT,
|
|
81
82
|
// Conversion
|
|
82
83
|
TORADIXLE,
|
|
84
|
+
// Future Gadgets -- pending changes in noir
|
|
85
|
+
SHA256COMPRESSION,
|
|
86
|
+
KECCAKF1600, // Here for when we eventually support this
|
|
83
87
|
}
|
|
84
88
|
|
|
85
89
|
// Possible types for an instruction's operand in its wire format. (Keep in sync with CPP code.
|