@aztec/simulator 1.2.1 → 2.0.0-nightly.20250814
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/private/circuit_recording/circuit_recorder.js +2 -2
- package/dest/public/avm/fixtures/base_avm_simulation_tester.js +2 -2
- package/dest/public/avm/fixtures/utils.js +2 -2
- package/dest/public/avm/opcodes/accrued_substate.d.ts.map +1 -1
- package/dest/public/avm/opcodes/accrued_substate.js +5 -3
- package/dest/public/avm/opcodes/comparators.js +1 -1
- package/dest/public/avm/opcodes/environment_getters.d.ts +2 -2
- package/dest/public/avm/opcodes/environment_getters.d.ts.map +1 -1
- package/dest/public/avm/opcodes/environment_getters.js +6 -6
- package/dest/public/avm/opcodes/misc.js +1 -1
- package/dest/public/avm/test_utils.d.ts +2 -2
- package/dest/public/avm/test_utils.d.ts.map +1 -1
- package/dest/public/avm/test_utils.js +2 -2
- package/dest/public/executor_metrics.d.ts +0 -1
- package/dest/public/executor_metrics.d.ts.map +1 -1
- package/dest/public/executor_metrics.js +0 -3
- package/dest/public/executor_metrics_interface.d.ts +0 -1
- package/dest/public/executor_metrics_interface.d.ts.map +1 -1
- package/dest/public/fixtures/index.d.ts +1 -0
- package/dest/public/fixtures/index.d.ts.map +1 -1
- package/dest/public/fixtures/index.js +1 -0
- package/dest/public/fixtures/minimal_public_tx.d.ts.map +1 -1
- package/dest/public/fixtures/minimal_public_tx.js +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.d.ts.map +1 -1
- package/dest/public/fixtures/public_tx_simulation_tester.js +2 -1
- package/dest/public/fixtures/utils.d.ts +5 -2
- package/dest/public/fixtures/utils.d.ts.map +1 -1
- package/dest/public/fixtures/utils.js +37 -13
- package/dest/public/public_db_sources.js +4 -4
- package/dest/public/public_processor/public_processor.d.ts +3 -2
- package/dest/public/public_processor/public_processor.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor.js +30 -19
- package/dest/public/public_processor/public_processor_metrics.d.ts +2 -2
- package/dest/public/public_processor/public_processor_metrics.d.ts.map +1 -1
- package/dest/public/public_processor/public_processor_metrics.js +1 -1
- package/dest/public/public_tx_simulator/apps_tests/amm_test.js +4 -4
- package/dest/public/public_tx_simulator/apps_tests/token_test.d.ts +1 -1
- package/dest/public/public_tx_simulator/apps_tests/token_test.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/apps_tests/token_test.js +2 -2
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts +0 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/measured_public_tx_simulator.js +0 -6
- package/dest/public/public_tx_simulator/public_tx_context.d.ts +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_context.js +6 -12
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts +1 -20
- package/dest/public/public_tx_simulator/public_tx_simulator.d.ts.map +1 -1
- package/dest/public/public_tx_simulator/public_tx_simulator.js +49 -81
- package/dest/public/side_effect_trace.d.ts.map +1 -1
- package/dest/public/side_effect_trace.js +17 -11
- package/dest/public/state_manager/state_manager.d.ts +1 -1
- package/dest/public/state_manager/state_manager.d.ts.map +1 -1
- package/dest/public/state_manager/state_manager.js +16 -16
- package/dest/public/test_executor_metrics.d.ts +13 -3
- package/dest/public/test_executor_metrics.d.ts.map +1 -1
- package/dest/public/test_executor_metrics.js +159 -47
- package/package.json +15 -15
- package/src/private/circuit_recording/circuit_recorder.ts +2 -2
- package/src/public/avm/fixtures/base_avm_simulation_tester.ts +2 -2
- package/src/public/avm/fixtures/utils.ts +2 -2
- package/src/public/avm/opcodes/accrued_substate.ts +6 -3
- package/src/public/avm/opcodes/comparators.ts +1 -1
- package/src/public/avm/opcodes/environment_getters.ts +8 -8
- package/src/public/avm/opcodes/misc.ts +1 -1
- package/src/public/avm/test_utils.ts +4 -4
- package/src/public/executor_metrics.ts +0 -4
- package/src/public/executor_metrics_interface.ts +0 -1
- package/src/public/fixtures/index.ts +1 -0
- package/src/public/fixtures/minimal_public_tx.ts +2 -0
- package/src/public/fixtures/public_tx_simulation_tester.ts +3 -2
- package/src/public/fixtures/utils.ts +45 -16
- package/src/public/public_db_sources.ts +7 -7
- package/src/public/public_processor/public_processor.ts +38 -29
- package/src/public/public_processor/public_processor_metrics.ts +2 -2
- package/src/public/public_tx_simulator/apps_tests/amm_test.ts +4 -4
- package/src/public/public_tx_simulator/apps_tests/token_test.ts +2 -2
- package/src/public/public_tx_simulator/measured_public_tx_simulator.ts +0 -7
- package/src/public/public_tx_simulator/public_tx_context.ts +13 -19
- package/src/public/public_tx_simulator/public_tx_simulator.ts +63 -105
- package/src/public/side_effect_trace.ts +29 -23
- package/src/public/state_manager/state_manager.ts +23 -21
- package/src/public/test_executor_metrics.ts +172 -46
|
@@ -118,10 +118,10 @@ export class CircuitRecording {
|
|
|
118
118
|
if (!fn || typeof fn !== 'function') {
|
|
119
119
|
throw new Error(`Oracle method ${name} not found when setting up recording callback`);
|
|
120
120
|
}
|
|
121
|
-
const isExternalCall = name === '
|
|
121
|
+
const isExternalCall = name === 'privateCallPrivateFunction';
|
|
122
122
|
recordingCallback[name] = (...args)=>{
|
|
123
123
|
const timer = new Timer();
|
|
124
|
-
// If we're entering another circuit via `
|
|
124
|
+
// If we're entering another circuit via `privateCallPrivateFunction`, we increase the stack depth and set the
|
|
125
125
|
// newCircuit variable to ensure we are creating a new recording object.
|
|
126
126
|
if (isExternalCall) {
|
|
127
127
|
this.stackDepth++;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { ProtocolContractAddress } from '@aztec/protocol-contracts';
|
|
@@ -70,7 +70,7 @@ import { createContractClassAndInstance } from './utils.js';
|
|
|
70
70
|
await this.contractDataSource.addContractInstance(contractInstance);
|
|
71
71
|
}
|
|
72
72
|
async insertContractAddressNullifier(contractAddress) {
|
|
73
|
-
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(
|
|
73
|
+
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractAddress.toField());
|
|
74
74
|
await this.merkleTrees.sequentialInsert(MerkleTreeId.NULLIFIER_TREE, [
|
|
75
75
|
contractAddressNullifier.toBuffer()
|
|
76
76
|
]);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS } from '@aztec/constants';
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { FunctionSelector, getAllFunctionAbis } from '@aztec/stdlib/abi';
|
|
4
4
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
@@ -86,7 +86,7 @@ export function resolveContractAssertionMessage(functionName, revertReason, outp
|
|
|
86
86
|
currentClassId: contractClass.id,
|
|
87
87
|
publicKeys
|
|
88
88
|
});
|
|
89
|
-
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(
|
|
89
|
+
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractInstance.address.toField());
|
|
90
90
|
return {
|
|
91
91
|
contractClass,
|
|
92
92
|
contractInstance,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,qBAAa,cAAe,SAAQ,WAAW;IAa3C,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,YAAY;IAftB,MAAM,CAAC,IAAI,EAAE,MAAM,CAAoB;IACvC,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAyB;IAEvD,MAAM,CAAC,QAAQ,CAAC,UAAU,gBAMxB;gBAGQ,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM;IAKjB,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"accrued_substate.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/accrued_substate.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,10 +32,11 @@ export class NoteHashExists extends Instruction {
|
|
|
32
32
|
this.existsOffset
|
|
33
33
|
];
|
|
34
34
|
const [noteHashOffset, leafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
|
|
35
|
-
memory.
|
|
35
|
+
memory.checkTag(TypeTag.FIELD, noteHashOffset);
|
|
36
|
+
memory.checkTag(TypeTag.UINT64, leafIndexOffset);
|
|
36
37
|
// Note that this instruction accepts any type in memory, and converts to Field.
|
|
37
38
|
const noteHash = memory.get(noteHashOffset).toFr();
|
|
38
|
-
const leafIndex = memory.get(leafIndexOffset).
|
|
39
|
+
const leafIndex = memory.get(leafIndexOffset).toBigInt();
|
|
39
40
|
const exists = await context.persistableState.checkNoteHashExists(context.environment.address, noteHash, leafIndex);
|
|
40
41
|
memory.set(existsOffset, exists ? new Uint1(1) : new Uint1(0));
|
|
41
42
|
}
|
|
@@ -172,7 +173,8 @@ export class L1ToL2MessageExists extends Instruction {
|
|
|
172
173
|
this.existsOffset
|
|
173
174
|
];
|
|
174
175
|
const [msgHashOffset, msgLeafIndexOffset, existsOffset] = addressing.resolve(operands, memory);
|
|
175
|
-
memory.
|
|
176
|
+
memory.checkTag(TypeTag.FIELD, msgHashOffset);
|
|
177
|
+
memory.checkTag(TypeTag.UINT64, msgLeafIndexOffset);
|
|
176
178
|
const msgHash = memory.get(msgHashOffset).toFr();
|
|
177
179
|
const msgLeafIndex = memory.get(msgLeafIndexOffset).toFr();
|
|
178
180
|
const exists = await context.persistableState.checkL1ToL2MessageExists(msgHash, msgLeafIndex);
|
|
@@ -13,7 +13,7 @@ class ComparatorInstruction extends ThreeOperandInstruction {
|
|
|
13
13
|
this.dstOffset
|
|
14
14
|
];
|
|
15
15
|
const [aOffset, bOffset, dstOffset] = addressing.resolve(operands, memory);
|
|
16
|
-
memory.checkTagsAreSame(aOffset, bOffset);
|
|
16
|
+
memory.checkTagsAreSame(aOffset, bOffset); // Brillig semantic enforces that tags match.
|
|
17
17
|
const a = memory.get(aOffset);
|
|
18
18
|
const b = memory.get(bOffset);
|
|
19
19
|
const dest = new Uint1(this.compare(a, b) ? 1 : 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,oBAAY,mBAAmB;IAC7B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,cAAc,IAAA;IACd,OAAO,IAAA;IACP,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,
|
|
1
|
+
{"version":3,"file":"environment_getters.d.ts","sourceRoot":"","sources":["../../../../src/public/avm/opcodes/environment_getters.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAGpD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,+CAA+C,CAAC;AAEpF,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,oBAAY,mBAAmB;IAC7B,OAAO,IAAA;IACP,MAAM,IAAA;IACN,cAAc,IAAA;IACd,OAAO,IAAA;IACP,OAAO,IAAA;IACP,WAAW,IAAA;IACX,SAAS,IAAA;IACT,eAAe,IAAA;IACf,eAAe,IAAA;IACf,YAAY,IAAA;IACZ,SAAS,KAAA;IACT,SAAS,KAAA;CACV;AAiCD,qBAAa,SAAU,SAAQ,WAAW;IAWtC,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,OAAO;IAZjB,gBAAuB,IAAI,EAAE,MAAM,CAAe;IAClD,gBAAuB,MAAM,EAAE,MAAM,CAAuB;IAC5D,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,WAAW,EAAE,CAKzC;gBAGQ,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM;IAKZ,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;CAiBzD"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Field, Uint32, Uint64, Uint128 } from '../avm_memory_types.js';
|
|
1
|
+
import { Field, Uint1, Uint32, Uint64, Uint128 } from '../avm_memory_types.js';
|
|
2
2
|
import { InstructionExecutionError } from '../errors.js';
|
|
3
3
|
import { Opcode, OperandType } from '../serialization/instruction_serialization.js';
|
|
4
4
|
import { Addressing } from './addressing_mode.js';
|
|
@@ -11,8 +11,8 @@ export var EnvironmentVariable = /*#__PURE__*/ function(EnvironmentVariable) {
|
|
|
11
11
|
EnvironmentVariable[EnvironmentVariable["VERSION"] = 4] = "VERSION";
|
|
12
12
|
EnvironmentVariable[EnvironmentVariable["BLOCKNUMBER"] = 5] = "BLOCKNUMBER";
|
|
13
13
|
EnvironmentVariable[EnvironmentVariable["TIMESTAMP"] = 6] = "TIMESTAMP";
|
|
14
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
15
|
-
EnvironmentVariable[EnvironmentVariable["
|
|
14
|
+
EnvironmentVariable[EnvironmentVariable["BASEFEEPERL2GAS"] = 7] = "BASEFEEPERL2GAS";
|
|
15
|
+
EnvironmentVariable[EnvironmentVariable["BASEFEEPERDAGAS"] = 8] = "BASEFEEPERDAGAS";
|
|
16
16
|
EnvironmentVariable[EnvironmentVariable["ISSTATICCALL"] = 9] = "ISSTATICCALL";
|
|
17
17
|
EnvironmentVariable[EnvironmentVariable["L2GASLEFT"] = 10] = "L2GASLEFT";
|
|
18
18
|
EnvironmentVariable[EnvironmentVariable["DAGASLEFT"] = 11] = "DAGASLEFT";
|
|
@@ -39,11 +39,11 @@ function getValue(e, ctx) {
|
|
|
39
39
|
case 8:
|
|
40
40
|
return new Uint128(ctx.environment.globals.gasFees.feePerDaGas);
|
|
41
41
|
case 9:
|
|
42
|
-
return new
|
|
42
|
+
return new Uint1(ctx.environment.isStaticCall ? 1 : 0);
|
|
43
43
|
case 10:
|
|
44
|
-
return new
|
|
44
|
+
return new Uint32(ctx.machineState.l2GasLeft);
|
|
45
45
|
case 11:
|
|
46
|
-
return new
|
|
46
|
+
return new Uint32(ctx.machineState.daGasLeft);
|
|
47
47
|
default:
|
|
48
48
|
throw new Error(`Unknown environment variable ${e}`);
|
|
49
49
|
}
|
|
@@ -34,11 +34,11 @@ export class DebugLog extends Instruction {
|
|
|
34
34
|
this.fieldsSizeOffset
|
|
35
35
|
];
|
|
36
36
|
const [messageOffset, fieldsOffset, fieldsSizeOffset] = addressing.resolve(operands, memory);
|
|
37
|
-
memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
|
|
38
37
|
// DebugLog is a no-op except when doing client-initiated simulation with debug logging enabled.
|
|
39
38
|
// Note that we still do address resolution and basic tag-checking (above)
|
|
40
39
|
// To avoid a special-case in the witness generator and circuit.
|
|
41
40
|
if (context.environment.clientInitiatedSimulation && DebugLog.logger.isLevelEnabled('verbose')) {
|
|
41
|
+
memory.checkTag(TypeTag.UINT32, fieldsSizeOffset);
|
|
42
42
|
const fieldsSize = memory.get(fieldsSizeOffset).toNumber();
|
|
43
43
|
const rawMessage = memory.getSlice(messageOffset, this.messageSize);
|
|
44
44
|
const fields = memory.getSlice(fieldsOffset, fieldsSize);
|
|
@@ -6,9 +6,9 @@ export declare function mockTraceFork(trace: PublicSideEffectTraceInterface, nes
|
|
|
6
6
|
export declare function mockStorageRead(worldStateDB: PublicTreesDB, value: Fr): void;
|
|
7
7
|
export declare function mockNoteHashCount(mockedTrace: PublicSideEffectTraceInterface, count: number): void;
|
|
8
8
|
export declare function mockStorageReadWithMap(worldStateDB: PublicTreesDB, mockedStorage: Map<bigint, Fr>): void;
|
|
9
|
-
export declare function mockNoteHashExists(worldStateDB: PublicTreesDB, _leafIndex:
|
|
9
|
+
export declare function mockNoteHashExists(worldStateDB: PublicTreesDB, _leafIndex: bigint, value?: Fr): void;
|
|
10
10
|
export declare function mockCheckNullifierExists(worldStateDB: PublicTreesDB, exists: boolean, _ignoredValue?: Fr): void;
|
|
11
|
-
export declare function mockL1ToL2MessageExists(worldStateDB: PublicTreesDB, leafIndex:
|
|
11
|
+
export declare function mockL1ToL2MessageExists(worldStateDB: PublicTreesDB, leafIndex: bigint, value: Fr, valueAtOtherIndices?: Fr): void;
|
|
12
12
|
export declare function mockGetContractInstance(contractsDB: PublicContractsDB, contractInstance: ContractInstanceWithAddress): void;
|
|
13
13
|
export declare function mockGetContractClass(contractsDB: PublicContractsDB, contractClass: ContractClassPublic): void;
|
|
14
14
|
export declare function mockGetBytecodeCommitment(contractsDB: PublicContractsDB, commitment: Fr): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/public/avm/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAK/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF,wBAAgB,aAAa,CAAC,KAAK,EAAE,8BAA8B,EAAE,WAAW,CAAC,EAAE,8BAA8B,QAIhH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,QAErE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,QAE3F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAIjG;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"test_utils.d.ts","sourceRoot":"","sources":["../../../src/public/avm/test_utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAK/F,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAChF,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAExF,wBAAgB,aAAa,CAAC,KAAK,EAAE,8BAA8B,EAAE,WAAW,CAAC,EAAE,8BAA8B,QAIhH;AAED,wBAAgB,eAAe,CAAC,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,QAErE;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,8BAA8B,EAAE,KAAK,EAAE,MAAM,QAE3F;AAED,wBAAgB,sBAAsB,CAAC,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,QAIjG;AAED,wBAAgB,kBAAkB,CAAC,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,QAS7F;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,CAAC,EAAE,EAAE,QAExG;AAED,wBAAgB,uBAAuB,CACrC,YAAY,EAAE,aAAa,EAC3B,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,EAAE,EACT,mBAAmB,CAAC,EAAE,EAAE,QAWzB;AAED,wBAAgB,uBAAuB,CAAC,WAAW,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,2BAA2B,QAEpH;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,iBAAiB,EAAE,aAAa,EAAE,mBAAmB,QAEtG;AAED,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,QAEvF"}
|
|
@@ -14,7 +14,7 @@ export function mockStorageReadWithMap(worldStateDB, mockedStorage) {
|
|
|
14
14
|
}
|
|
15
15
|
export function mockNoteHashExists(worldStateDB, _leafIndex, value) {
|
|
16
16
|
worldStateDB.getNoteHash.mockImplementation((index)=>{
|
|
17
|
-
if (index == _leafIndex
|
|
17
|
+
if (index == _leafIndex) {
|
|
18
18
|
return Promise.resolve(value);
|
|
19
19
|
} else {
|
|
20
20
|
// This is ok for now since the traceing functions handle it
|
|
@@ -27,7 +27,7 @@ export function mockCheckNullifierExists(worldStateDB, exists, _ignoredValue) {
|
|
|
27
27
|
}
|
|
28
28
|
export function mockL1ToL2MessageExists(worldStateDB, leafIndex, value, valueAtOtherIndices) {
|
|
29
29
|
worldStateDB.getL1ToL2LeafValue.mockImplementation((index)=>{
|
|
30
|
-
if (index == leafIndex
|
|
30
|
+
if (index == leafIndex) {
|
|
31
31
|
return Promise.resolve(value);
|
|
32
32
|
} else {
|
|
33
33
|
// any indices other than mockAtLeafIndex will return a different value
|
|
@@ -15,7 +15,6 @@ export declare class ExecutorMetrics implements ExecutorMetricsInterface {
|
|
|
15
15
|
stopRecordingTxSimulation(_txLabel: string, _revertedCode?: RevertCode): void;
|
|
16
16
|
recordEnqueuedCallSimulation(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void;
|
|
17
17
|
recordEnqueuedCallSimulationFailure(_fnName: string, _durationMs: number, _manaUsed: number, _totalInstructionsExecuted: number): void;
|
|
18
|
-
recordTxHashComputation(durationMs: number): void;
|
|
19
18
|
recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible'): void;
|
|
20
19
|
}
|
|
21
20
|
//# sourceMappingURL=executor_metrics.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,wBAAwB,CAAY;gBAEhC,MAAM,EAAE,eAAe,EAAE,IAAI,SAAmB;IA6C5D,0BAA0B,CAAC,QAAQ,EAAE,MAAM;IAI3C,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU;IAItE,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM;IAuBnC,mCAAmC,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM;IAOpC,
|
|
1
|
+
{"version":3,"file":"executor_metrics.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAEhF,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,UAAU,CAAY;IAC9B,OAAO,CAAC,aAAa,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,yBAAyB,CAAY;IAC7C,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,wBAAwB,CAAY;gBAEhC,MAAM,EAAE,eAAe,EAAE,IAAI,SAAmB;IA6C5D,0BAA0B,CAAC,QAAQ,EAAE,MAAM;IAI3C,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,UAAU;IAItE,4BAA4B,CAC1B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM;IAuBnC,mCAAmC,CACjC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,0BAA0B,EAAE,MAAM;IAOpC,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB;CAKxF"}
|
|
@@ -77,9 +77,6 @@ export class ExecutorMetrics {
|
|
|
77
77
|
[Attributes.OK]: false
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
|
-
recordTxHashComputation(durationMs) {
|
|
81
|
-
this.txHashing.record(Math.ceil(durationMs));
|
|
82
|
-
}
|
|
83
80
|
recordPrivateEffectsInsertion(durationUs, type) {
|
|
84
81
|
this.privateEffectsInsertions.record(Math.ceil(durationUs), {
|
|
85
82
|
[Attributes.REVERTIBILITY]: type
|
|
@@ -4,7 +4,6 @@ export interface ExecutorMetricsInterface {
|
|
|
4
4
|
stopRecordingTxSimulation(txLabel: string, revertedCode?: RevertCode): void;
|
|
5
5
|
recordEnqueuedCallSimulation(fnName: string, durationMs: number, manaUsed: number, totalInstructions: number): void;
|
|
6
6
|
recordEnqueuedCallSimulationFailure(fnName: string, durationMs: number, manaUsed: number, totalInstructionsExecuted: number): void;
|
|
7
|
-
recordTxHashComputation(durationMs: number): void;
|
|
8
7
|
recordPrivateEffectsInsertion(durationUs: number, type: 'revertible' | 'non-revertible'): void;
|
|
9
8
|
}
|
|
10
9
|
//# sourceMappingURL=executor_metrics_interface.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor_metrics_interface.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5E,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpH,mCAAmC,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM,GAChC,IAAI,CAAC;IACR,
|
|
1
|
+
{"version":3,"file":"executor_metrics_interface.d.ts","sourceRoot":"","sources":["../../src/public/executor_metrics_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,MAAM,WAAW,wBAAwB;IACvC,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAClD,yBAAyB,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC5E,4BAA4B,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpH,mCAAmC,CACjC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,yBAAyB,EAAE,MAAM,GAChC,IAAI,CAAC;IACR,6BAA6B,CAAC,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG,gBAAgB,GAAG,IAAI,CAAC;CAChG"}
|
|
@@ -2,4 +2,5 @@ export * from './public_tx_simulation_tester.js';
|
|
|
2
2
|
export * from './utils.js';
|
|
3
3
|
export * from './simple_contract_data_source.js';
|
|
4
4
|
export { readAvmMinimalPublicTxInputsFromFile, createAvmMinimalPublicTx } from './minimal_public_tx.js';
|
|
5
|
+
export { TestExecutorMetrics } from '../test_executor_metrics.js';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/index.ts"],"names":[],"mappings":"AAAA,cAAc,kCAAkC,CAAC;AACjD,cAAc,YAAY,CAAC;AAC3B,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,oCAAoC,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AACxG,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -2,3 +2,4 @@ export * from './public_tx_simulation_tester.js';
|
|
|
2
2
|
export * from './utils.js';
|
|
3
3
|
export * from './simple_contract_data_source.js';
|
|
4
4
|
export { readAvmMinimalPublicTxInputsFromFile, createAvmMinimalPublicTx } from './minimal_public_tx.js';
|
|
5
|
+
export { TestExecutorMetrics } from '../test_executor_metrics.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"minimal_public_tx.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/minimal_public_tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAGpF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC,
|
|
1
|
+
{"version":3,"file":"minimal_public_tx.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/minimal_public_tx.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AAGpF,wBAAsB,wBAAwB,IAAI,OAAO,CAAC,cAAc,CAAC,CAsCxE;AAED;;;GAGG;AACH,wBAAgB,oCAAoC,IAAI,gBAAgB,CAEvE"}
|
|
@@ -33,7 +33,7 @@ export async function createAvmMinimalPublicTx() {
|
|
|
33
33
|
fnName: 'public_dispatch',
|
|
34
34
|
args: []
|
|
35
35
|
}
|
|
36
|
-
]);
|
|
36
|
+
], /*teardownCall=*/ undefined, /*feePayer=*/ deployer);
|
|
37
37
|
}
|
|
38
38
|
/**
|
|
39
39
|
* Reads the AVM circuit inputs for the minimal public tx from a pre-generated JSON file.
|
|
@@ -23,7 +23,7 @@ export type TestEnqueuedCall = {
|
|
|
23
23
|
export declare class PublicTxSimulationTester extends BaseAvmSimulationTester {
|
|
24
24
|
#private;
|
|
25
25
|
private metrics;
|
|
26
|
-
|
|
26
|
+
protected txCount: number;
|
|
27
27
|
private simulator;
|
|
28
28
|
private metricsPrefix?;
|
|
29
29
|
constructor(merkleTree: MerkleTreeWriteOperations, contractDataSource: SimpleContractDataSource, globals?: GlobalVariables, metrics?: TestExecutorMetrics);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAiC,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AASxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,KAAK,qBAAqB,EAA0B,MAAM,YAAY,CAAC;AAIhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,uBAAuB;;IASjE,OAAO,CAAC,OAAO;IARjB,
|
|
1
|
+
{"version":3,"file":"public_tx_simulation_tester.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/public_tx_simulation_tester.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAmB,MAAM,mBAAmB,CAAC;AAC3E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEjF,OAAO,EAAE,eAAe,EAAiC,KAAK,EAAE,EAAE,MAAM,kBAAkB,CAAC;AAG3F,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AASxF,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+CAA+C,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,KAAK,qBAAqB,EAA0B,MAAM,YAAY,CAAC;AAIhF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB,OAAO,EAAE,YAAY,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF;;;;GAIG;AACH,qBAAa,wBAAyB,SAAQ,uBAAuB;;IASjE,OAAO,CAAC,OAAO;IARjB,SAAS,CAAC,OAAO,EAAE,MAAM,CAAK;IAC9B,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,aAAa,CAAC,CAAS;gBAG7B,UAAU,EAAE,yBAAyB,EACrC,kBAAkB,EAAE,wBAAwB,EAC5C,OAAO,GAAE,eAAkC,EACnC,OAAO,GAAE,mBAA+C;WAgB9C,MAAM,CACxB,OAAO,GAAE,eAAkC,EAC3C,OAAO,GAAE,mBAA+C,GACvD,OAAO,CAAC,wBAAwB,CAAC;IAM7B,gBAAgB,CAAC,MAAM,EAAE,MAAM;IAIzB,QAAQ,CACnB,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,gBAAgB,EAAO,EACnC,QAAQ,GAAE,gBAAgB,EAAO,EACjC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,GAAE,YAAqB,EAE/B,iBAAiB,GAAE,qBAA0F,GAC5G,OAAO,CAAC,EAAE,CAAC;IAuBD,UAAU,CACrB,MAAM,EAAE,YAAY,EACpB,UAAU,GAAE,gBAAgB,EAAO,EACnC,QAAQ,GAAE,gBAAgB,EAAO,EACjC,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,GAAE,YAAqB,EAE/B,iBAAiB,CAAC,EAAE,qBAAqB,EACzC,OAAO,GAAE,MAAsB,GAC9B,OAAO,CAAC,cAAc,CAAC;IAyBb,mBAAmB,CAC9B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,YAAY,EACpB,UAAU,CAAC,EAAE,gBAAgB,EAAE,EAC/B,QAAQ,CAAC,EAAE,gBAAgB,EAAE,EAC7B,YAAY,CAAC,EAAE,gBAAgB,EAC/B,QAAQ,CAAC,EAAE,YAAY,EACvB,iBAAiB,CAAC,EAAE,qBAAqB,GACxC,OAAO,CAAC,cAAc,CAAC;IAInB,kBAAkB;CAuB1B;AAED,wBAAgB,cAAc,oBAM7B"}
|
|
@@ -38,13 +38,14 @@ const DEFAULT_GAS_FEES = new GasFees(2, 3);
|
|
|
38
38
|
async createTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ privateInsertions = {
|
|
39
39
|
nonRevertible: {
|
|
40
40
|
nullifiers: [
|
|
41
|
-
new Fr(420000 + this.txCount
|
|
41
|
+
new Fr(420000 + this.txCount)
|
|
42
42
|
]
|
|
43
43
|
}
|
|
44
44
|
}) {
|
|
45
45
|
const setupCallRequests = await asyncMap(setupCalls, (call)=>this.#createPubicCallRequestForCall(call, call.sender ?? sender));
|
|
46
46
|
const appCallRequests = await asyncMap(appCalls, (call)=>this.#createPubicCallRequestForCall(call, call.sender ?? sender));
|
|
47
47
|
const teardownCallRequest = teardownCall ? await this.#createPubicCallRequestForCall(teardownCall, teardownCall.sender ?? sender) : undefined;
|
|
48
|
+
this.txCount++;
|
|
48
49
|
return createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer, /*gasUsedByPrivate*/ Gas.empty(), defaultGlobals());
|
|
49
50
|
}
|
|
50
51
|
async simulateTx(sender, setupCalls = [], appCalls = [], teardownCall, feePayer = sender, /* need some unique first nullifier for note-nonce computations */ privateInsertions, txLabel = 'unlabeledTx') {
|
|
@@ -2,22 +2,25 @@ import { Fr } from '@aztec/foundation/fields';
|
|
|
2
2
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
3
3
|
import type { ContractClassPublic, ContractInstanceWithAddress } from '@aztec/stdlib/contract';
|
|
4
4
|
import { Gas } from '@aztec/stdlib/gas';
|
|
5
|
+
import type { ScopedL2ToL1Message } from '@aztec/stdlib/messaging';
|
|
5
6
|
import { GlobalVariables, PublicCallRequestWithCalldata, Tx } from '@aztec/stdlib/tx';
|
|
6
7
|
export type TestPrivateInsertions = {
|
|
7
8
|
revertible?: {
|
|
8
9
|
nullifiers?: Fr[];
|
|
9
10
|
noteHashes?: Fr[];
|
|
11
|
+
l2ToL1Msgs?: ScopedL2ToL1Message[];
|
|
10
12
|
};
|
|
11
13
|
nonRevertible?: {
|
|
12
14
|
nullifiers?: Fr[];
|
|
13
15
|
noteHashes?: Fr[];
|
|
16
|
+
l2ToL1Msgs?: ScopedL2ToL1Message[];
|
|
14
17
|
};
|
|
15
18
|
};
|
|
16
19
|
/**
|
|
17
20
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
18
21
|
*/
|
|
19
|
-
export declare function createTxForPublicCalls(privateInsertions: TestPrivateInsertions, setupCallRequests: PublicCallRequestWithCalldata[], appCallRequests: PublicCallRequestWithCalldata[], teardownCallRequest?: PublicCallRequestWithCalldata, feePayer?: AztecAddress, gasUsedByPrivate?: Gas, globals?: GlobalVariables): Tx
|
|
20
|
-
export declare function createTxForPrivateOnly(feePayer?: AztecAddress, gasUsedByPrivate?: Gas): Tx
|
|
22
|
+
export declare function createTxForPublicCalls(privateInsertions: TestPrivateInsertions, setupCallRequests: PublicCallRequestWithCalldata[], appCallRequests: PublicCallRequestWithCalldata[], teardownCallRequest?: PublicCallRequestWithCalldata, feePayer?: AztecAddress, gasUsedByPrivate?: Gas, globals?: GlobalVariables): Promise<Tx>;
|
|
23
|
+
export declare function createTxForPrivateOnly(feePayer?: AztecAddress, gasUsedByPrivate?: Gas): Promise<Tx>;
|
|
21
24
|
export declare function addNewContractClassToTx(tx: Tx, contractClass: ContractClassPublic, skipNullifierInsertion?: boolean): Promise<void>;
|
|
22
25
|
export declare function addNewContractInstanceToTx(tx: Tx, contractInstance: ContractInstanceWithAddress, skipNullifierInsertion?: boolean): Promise<void>;
|
|
23
26
|
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,GAAG,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/public/fixtures/utils.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAC/F,OAAO,EAAE,GAAG,EAAwB,MAAM,mBAAmB,CAAC;AAU9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAEnE,OAAO,EAEL,eAAe,EAEf,6BAA6B,EAC7B,EAAE,EAGH,MAAM,kBAAkB,CAAC;AAI1B,MAAM,MAAM,qBAAqB,GAAG;IAClC,UAAU,CAAC,EAAE;QACX,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC,CAAC;IACF,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,EAAE,EAAE,CAAC;QAClB,UAAU,CAAC,EAAE,mBAAmB,EAAE,CAAC;KACpC,CAAC;CACH,CAAC;AAEF;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,iBAAiB,EAAE,qBAAqB,EACxC,iBAAiB,EAAE,6BAA6B,EAAE,EAClD,eAAe,EAAE,6BAA6B,EAAE,EAChD,mBAAmB,CAAC,EAAE,6BAA6B,EACnD,QAAQ,eAAsB,EAC9B,gBAAgB,GAAE,GAAiB,EACnC,OAAO,GAAE,eAAyC,GACjD,OAAO,CAAC,EAAE,CAAC,CA6Fb;AAED,wBAAsB,sBAAsB,CAC1C,QAAQ,eAAsB,EAC9B,gBAAgB,GAAE,GAAqB,GACtC,OAAO,CAAC,EAAE,CAAC,CA0Bb;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,EAAE,EACN,aAAa,EAAE,mBAAmB,EAClC,sBAAsB,UAAQ,iBA6B/B;AAED,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,EAAE,EACN,gBAAgB,EAAE,2BAA2B,EAC7C,sBAAsB,UAAQ,iBA0C/B"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE, CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS, CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS, DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION, PRIVATE_LOG_SIZE_IN_FIELDS } from '@aztec/constants';
|
|
2
2
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
3
3
|
import { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import {
|
|
4
|
+
import { CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG } from '@aztec/protocol-contracts';
|
|
5
5
|
import { bufferAsFields } from '@aztec/stdlib/abi';
|
|
6
6
|
import { AztecAddress } from '@aztec/stdlib/aztec-address';
|
|
7
7
|
import { Gas, GasFees, GasSettings } from '@aztec/stdlib/gas';
|
|
8
8
|
import { siloNullifier } from '@aztec/stdlib/hash';
|
|
9
|
-
import { LogHash, PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs,
|
|
9
|
+
import { LogHash, PartialPrivateTailPublicInputsForPublic, PartialPrivateTailPublicInputsForRollup, PrivateKernelTailCircuitPublicInputs, countAccumulatedItems } from '@aztec/stdlib/kernel';
|
|
10
10
|
import { ContractClassLogFields, PrivateLog } from '@aztec/stdlib/logs';
|
|
11
11
|
import { ClientIvcProof } from '@aztec/stdlib/proofs';
|
|
12
12
|
import { BlockHeader, GlobalVariables, HashedValues, Tx, TxConstantData, TxContext } from '@aztec/stdlib/tx';
|
|
13
13
|
import { strict as assert } from 'assert';
|
|
14
14
|
/**
|
|
15
15
|
* Craft a carrier transaction for some public calls for simulation by PublicTxSimulator.
|
|
16
|
-
*/ export function createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer = AztecAddress.zero(), gasUsedByPrivate = Gas.empty(), globals = GlobalVariables.empty()) {
|
|
16
|
+
*/ export async function createTxForPublicCalls(privateInsertions, setupCallRequests, appCallRequests, teardownCallRequest, feePayer = AztecAddress.zero(), gasUsedByPrivate = Gas.empty(), globals = GlobalVariables.empty()) {
|
|
17
17
|
assert(setupCallRequests.length > 0 || appCallRequests.length > 0 || teardownCallRequest !== undefined, "Can't create public tx with no enqueued calls");
|
|
18
18
|
// use max limits
|
|
19
19
|
const gasLimits = new Gas(DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
@@ -32,6 +32,12 @@ import { strict as assert } from 'assert';
|
|
|
32
32
|
forPublic.nonRevertibleAccumulatedData.noteHashes[i] = privateInsertions.nonRevertible.noteHashes[i];
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
+
if (privateInsertions.nonRevertible.l2ToL1Msgs) {
|
|
36
|
+
for(let i = 0; i < privateInsertions.nonRevertible.l2ToL1Msgs.length; i++){
|
|
37
|
+
assert(i < forPublic.nonRevertibleAccumulatedData.l2ToL1Msgs.length, 'L2 to L1 message index out of bounds');
|
|
38
|
+
forPublic.nonRevertibleAccumulatedData.l2ToL1Msgs[i] = privateInsertions.nonRevertible.l2ToL1Msgs[i];
|
|
39
|
+
}
|
|
40
|
+
}
|
|
35
41
|
// Revertible private insertions
|
|
36
42
|
if (privateInsertions.revertible) {
|
|
37
43
|
if (privateInsertions.revertible.noteHashes) {
|
|
@@ -46,6 +52,12 @@ import { strict as assert } from 'assert';
|
|
|
46
52
|
forPublic.revertibleAccumulatedData.nullifiers[i] = privateInsertions.revertible.nullifiers[i];
|
|
47
53
|
}
|
|
48
54
|
}
|
|
55
|
+
if (privateInsertions.revertible.l2ToL1Msgs) {
|
|
56
|
+
for(let i = 0; i < privateInsertions.revertible.l2ToL1Msgs.length; i++){
|
|
57
|
+
assert(i < forPublic.revertibleAccumulatedData.l2ToL1Msgs.length, 'L2 to L1 message index out of bounds');
|
|
58
|
+
forPublic.revertibleAccumulatedData.l2ToL1Msgs[i] = privateInsertions.revertible.l2ToL1Msgs[i];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
49
61
|
}
|
|
50
62
|
for(let i = 0; i < setupCallRequests.length; i++){
|
|
51
63
|
forPublic.nonRevertibleAccumulatedData.publicCallRequests[i] = setupCallRequests[i].request;
|
|
@@ -63,7 +75,8 @@ import { strict as assert } from 'assert';
|
|
|
63
75
|
const header = BlockHeader.empty();
|
|
64
76
|
header.globalVariables = globals;
|
|
65
77
|
const constantData = new TxConstantData(header, txContext, Fr.zero(), Fr.zero());
|
|
66
|
-
const
|
|
78
|
+
const includeByTimestamp = 0n; // Not used in the simulator.
|
|
79
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer, includeByTimestamp, forPublic);
|
|
67
80
|
const calldata = [
|
|
68
81
|
...setupCallRequests,
|
|
69
82
|
...appCallRequests,
|
|
@@ -71,9 +84,14 @@ import { strict as assert } from 'assert';
|
|
|
71
84
|
teardownCallRequest
|
|
72
85
|
] : []
|
|
73
86
|
].map((r)=>new HashedValues(r.calldata, r.request.calldataHash));
|
|
74
|
-
return
|
|
87
|
+
return await Tx.create({
|
|
88
|
+
data: txData,
|
|
89
|
+
clientIvcProof: ClientIvcProof.empty(),
|
|
90
|
+
contractClassLogFields: [],
|
|
91
|
+
publicFunctionCalldata: calldata
|
|
92
|
+
});
|
|
75
93
|
}
|
|
76
|
-
export function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedByPrivate = new Gas(10, 10)) {
|
|
94
|
+
export async function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedByPrivate = new Gas(10, 10)) {
|
|
77
95
|
// use max limits
|
|
78
96
|
const gasLimits = new Gas(DEFAULT_GAS_LIMIT, MAX_L2_GAS_PER_TX_PUBLIC_PORTION);
|
|
79
97
|
const forRollup = PartialPrivateTailPublicInputsForRollup.empty();
|
|
@@ -81,19 +99,25 @@ export function createTxForPrivateOnly(feePayer = AztecAddress.zero(), gasUsedBy
|
|
|
81
99
|
const gasSettings = new GasSettings(gasLimits, Gas.empty(), maxFeesPerGas, GasFees.empty());
|
|
82
100
|
const txContext = new TxContext(Fr.zero(), Fr.zero(), gasSettings);
|
|
83
101
|
const constantData = new TxConstantData(BlockHeader.empty(), txContext, Fr.zero(), Fr.zero());
|
|
84
|
-
const
|
|
85
|
-
|
|
102
|
+
const includeByTimestamp = 0n; // Not used in the simulator.
|
|
103
|
+
const txData = new PrivateKernelTailCircuitPublicInputs(constantData, /*gasUsed=*/ gasUsedByPrivate, feePayer, includeByTimestamp, /*forPublic=*/ undefined, forRollup);
|
|
104
|
+
return await Tx.create({
|
|
105
|
+
data: txData,
|
|
106
|
+
clientIvcProof: ClientIvcProof.empty(),
|
|
107
|
+
contractClassLogFields: [],
|
|
108
|
+
publicFunctionCalldata: []
|
|
109
|
+
});
|
|
86
110
|
}
|
|
87
111
|
export async function addNewContractClassToTx(tx, contractClass, skipNullifierInsertion = false) {
|
|
88
112
|
const contractClassLogFields = [
|
|
89
|
-
new Fr(
|
|
113
|
+
new Fr(CONTRACT_CLASS_PUBLISHED_MAGIC_VALUE),
|
|
90
114
|
contractClass.id,
|
|
91
115
|
new Fr(contractClass.version),
|
|
92
116
|
new Fr(contractClass.artifactHash),
|
|
93
117
|
new Fr(contractClass.privateFunctionsRoot),
|
|
94
118
|
...bufferAsFields(contractClass.packedBytecode, Math.ceil(contractClass.packedBytecode.length / 31) + 1)
|
|
95
119
|
];
|
|
96
|
-
const contractAddress = new AztecAddress(new Fr(
|
|
120
|
+
const contractAddress = new AztecAddress(new Fr(CONTRACT_CLASS_REGISTRY_CONTRACT_ADDRESS));
|
|
97
121
|
const emittedLength = contractClassLogFields.length;
|
|
98
122
|
const logFields = ContractClassLogFields.fromEmittedFields(contractClassLogFields);
|
|
99
123
|
const contractClassLogHash = LogHash.from({
|
|
@@ -123,7 +147,7 @@ export async function addNewContractInstanceToTx(tx, contractInstance, skipNulli
|
|
|
123
147
|
contractInstance.publicKeys.masterTaggingPublicKey.y
|
|
124
148
|
];
|
|
125
149
|
const logFields = [
|
|
126
|
-
|
|
150
|
+
CONTRACT_INSTANCE_PUBLISHED_EVENT_TAG,
|
|
127
151
|
contractInstance.address.toField(),
|
|
128
152
|
new Fr(contractInstance.version),
|
|
129
153
|
new Fr(contractInstance.salt),
|
|
@@ -133,7 +157,7 @@ export async function addNewContractInstanceToTx(tx, contractInstance, skipNulli
|
|
|
133
157
|
contractInstance.deployer.toField()
|
|
134
158
|
];
|
|
135
159
|
const contractInstanceLog = new PrivateLog(padArrayEnd(logFields, Fr.ZERO, PRIVATE_LOG_SIZE_IN_FIELDS), logFields.length);
|
|
136
|
-
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(
|
|
160
|
+
const contractAddressNullifier = await siloNullifier(AztecAddress.fromNumber(CONTRACT_INSTANCE_REGISTRY_CONTRACT_ADDRESS), contractInstance.address.toField());
|
|
137
161
|
const accumulatedData = tx.data.forPublic ? tx.data.forPublic.revertibleAccumulatedData : tx.data.forRollup.end;
|
|
138
162
|
if (!skipNullifierInsertion) {
|
|
139
163
|
const nextNullifierIndex = countAccumulatedItems(accumulatedData.nullifiers);
|
|
@@ -2,8 +2,8 @@ import { NULLIFIER_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_HEIGHT } from '@aztec/con
|
|
|
2
2
|
import { Fr } from '@aztec/foundation/fields';
|
|
3
3
|
import { createLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { Timer } from '@aztec/foundation/timer';
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { ContractClassPublishedEvent } from '@aztec/protocol-contracts/class-registry';
|
|
6
|
+
import { ContractInstancePublishedEvent } from '@aztec/protocol-contracts/instance-registry';
|
|
7
7
|
import { PublicDataWrite } from '@aztec/stdlib/avm';
|
|
8
8
|
import { computePublicBytecodeCommitment } from '@aztec/stdlib/contract';
|
|
9
9
|
import { computePublicDataTreeLeafSlot } from '@aztec/stdlib/hash';
|
|
@@ -99,7 +99,7 @@ import { TxContractCache } from './tx_contract_cache.js';
|
|
|
99
99
|
* @param cache - The cache to store the contract classes in
|
|
100
100
|
* @param cacheType - Type of cache (for logging)
|
|
101
101
|
*/ async addContractClassesFromLogs(siloedContractClassLogs, cache, cacheType) {
|
|
102
|
-
const contractClassEvents = siloedContractClassLogs.filter((log)=>
|
|
102
|
+
const contractClassEvents = siloedContractClassLogs.filter((log)=>ContractClassPublishedEvent.isContractClassPublishedEvent(log)).map((log)=>ContractClassPublishedEvent.fromLog(log));
|
|
103
103
|
// Cache contract classes
|
|
104
104
|
await Promise.all(contractClassEvents.map(async (event)=>{
|
|
105
105
|
this.log.debug(`Adding class ${event.contractClassId.toString()} to contract's ${cacheType} tx cache`);
|
|
@@ -113,7 +113,7 @@ import { TxContractCache } from './tx_contract_cache.js';
|
|
|
113
113
|
* @param cache - The cache to store the contract instances in
|
|
114
114
|
* @param cacheType - Type of cache (for logging)
|
|
115
115
|
*/ addContractInstancesFromLogs(contractInstanceLogs, cache, cacheType) {
|
|
116
|
-
const contractInstanceEvents = contractInstanceLogs.filter((log)=>
|
|
116
|
+
const contractInstanceEvents = contractInstanceLogs.filter((log)=>ContractInstancePublishedEvent.isContractInstancePublishedEvent(log)).map((log)=>ContractInstancePublishedEvent.fromLog(log));
|
|
117
117
|
// Cache contract instances
|
|
118
118
|
contractInstanceEvents.forEach((e)=>{
|
|
119
119
|
this.log.debug(`Adding instance ${e.address.toString()} with class ${e.contractClassId.toString()} to ${cacheType} tx contract cache`);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { DateProvider } from '@aztec/foundation/timer';
|
|
2
2
|
import type { ContractDataSource } from '@aztec/stdlib/contract';
|
|
3
|
-
import type { MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator } from '@aztec/stdlib/interfaces/server';
|
|
3
|
+
import type { MerkleTreeWriteOperations, PublicProcessorLimits, PublicProcessorValidator, SequencerConfig } from '@aztec/stdlib/interfaces/server';
|
|
4
4
|
import { type FailedTx, GlobalVariables, NestedProcessReturnValues, type ProcessedTx, Tx } from '@aztec/stdlib/tx';
|
|
5
5
|
import { type TelemetryClient, type Traceable, type Tracer } from '@aztec/telemetry-client';
|
|
6
6
|
import { PublicContractsDB } from '../public_db_sources.js';
|
|
@@ -35,8 +35,9 @@ export declare class PublicProcessor implements Traceable {
|
|
|
35
35
|
protected publicTxSimulator: PublicTxSimulator;
|
|
36
36
|
private dateProvider;
|
|
37
37
|
private log;
|
|
38
|
+
private opts;
|
|
38
39
|
private metrics;
|
|
39
|
-
constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulator, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger);
|
|
40
|
+
constructor(globalVariables: GlobalVariables, guardedMerkleTree: GuardedMerkleTreeOperations, contractsDB: PublicContractsDB, publicTxSimulator: PublicTxSimulator, dateProvider: DateProvider, telemetryClient?: TelemetryClient, log?: import("@aztec/foundation/log").Logger, opts?: Pick<SequencerConfig, 'fakeProcessingDelayPerTxMs'>);
|
|
40
41
|
get tracer(): Tracer;
|
|
41
42
|
/**
|
|
42
43
|
* Run each tx through the public circuit and the public kernel circuit if needed.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"public_processor.d.ts","sourceRoot":"","sources":["../../../src/public/public_processor/public_processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAkC,MAAM,yBAAyB,CAAC;AAMvF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,KAAK,EACV,yBAAyB,EACzB,qBAAqB,EACrB,wBAAwB,EACxB,eAAe,EAChB,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EACL,KAAK,QAAQ,EACb,eAAe,EACf,yBAAyB,EACzB,KAAK,WAAW,EAEhB,EAAE,EAKH,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,MAAM,EAGZ,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,iBAAiB,EAAiB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,KAAK,iBAAiB,EAA8B,MAAM,iCAAiC,CAAC;AACrG,OAAO,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAC;AAGvE;;GAEG;AACH,qBAAa,sBAAsB;IAE/B,OAAO,CAAC,kBAAkB;IAC1B,OAAO,CAAC,YAAY;IACpB,SAAS,CAAC,eAAe,EAAE,eAAe;gBAFlC,kBAAkB,EAAE,kBAAkB,EACtC,YAAY,GAAE,YAAiC,EAC7C,eAAe,GAAE,eAAsC;IAGnE;;;;;;OAMG;IACI,MAAM,CACX,UAAU,EAAE,yBAAyB,EACrC,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,GAAE,OAAe,GACzC,eAAe;IAuBlB,SAAS,CAAC,uBAAuB,CAC/B,UAAU,EAAE,yBAAyB,EACrC,WAAW,EAAE,iBAAiB,EAC9B,eAAe,EAAE,eAAe,EAChC,kBAAkB,EAAE,OAAO,EAC3B,kBAAkB,EAAE,OAAO,EAC3B,yBAAyB,EAAE,OAAO,GACjC,iBAAiB;CAWrB;AASD;;;GAGG;AACH,qBAAa,eAAgB,YAAW,SAAS;IAI7C,SAAS,CAAC,eAAe,EAAE,eAAe;IAC1C,OAAO,CAAC,iBAAiB;IACzB,SAAS,CAAC,WAAW,EAAE,iBAAiB;IACxC,SAAS,CAAC,iBAAiB,EAAE,iBAAiB;IAC9C,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,IAAI;IAVd,OAAO,CAAC,OAAO,CAAyB;gBAG5B,eAAe,EAAE,eAAe,EAClC,iBAAiB,EAAE,2BAA2B,EAC5C,WAAW,EAAE,iBAAiB,EAC9B,iBAAiB,EAAE,iBAAiB,EACtC,YAAY,EAAE,YAAY,EAClC,eAAe,GAAE,eAAsC,EAC/C,GAAG,yCAA6C,EAChD,IAAI,GAAE,IAAI,CAAC,eAAe,EAAE,4BAA4B,CAAM;IAKxE,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED;;;;;;OAMG;IACU,OAAO,CAClB,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,EAAE,CAAC,EACrC,MAAM,GAAE,qBAA0B,EAClC,SAAS,GAAE,wBAA6B,GACvC,OAAO,CAAC,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,yBAAyB,EAAE,CAAC,CAAC;YAyK5D,wBAAwB;YAiBxB,SAAS;YA2BT,gCAAgC;IAoC9C,kFAAkF;YACpE,uBAAuB;IA2CrC;;;;OAIG;YACW,gCAAgC;YA0BhC,oBAAoB;YAkCpB,wBAAwB;CAsCvC"}
|