@aztec/simulator 0.30.1 → 0.32.0
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/oracle/oracle.d.ts +1 -1
- package/dest/acvm/oracle/oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/oracle.js +3 -3
- package/dest/acvm/oracle/typed_oracle.d.ts +1 -1
- package/dest/acvm/oracle/typed_oracle.d.ts.map +1 -1
- package/dest/acvm/oracle/typed_oracle.js +2 -2
- package/dest/avm/avm_execution_environment.d.ts +7 -0
- package/dest/avm/avm_execution_environment.d.ts.map +1 -1
- package/dest/avm/avm_execution_environment.js +16 -1
- package/dest/avm/avm_gas_cost.d.ts +322 -0
- package/dest/avm/avm_gas_cost.d.ts.map +1 -0
- package/dest/avm/avm_gas_cost.js +118 -0
- package/dest/avm/avm_machine_state.d.ts +12 -1
- package/dest/avm/avm_machine_state.d.ts.map +1 -1
- package/dest/avm/avm_machine_state.js +31 -2
- package/dest/avm/avm_memory_types.d.ts.map +1 -1
- package/dest/avm/avm_memory_types.js +2 -1
- package/dest/avm/avm_simulator.d.ts.map +1 -1
- package/dest/avm/avm_simulator.js +2 -2
- package/dest/avm/errors.d.ts +4 -0
- package/dest/avm/errors.d.ts.map +1 -1
- package/dest/avm/errors.js +8 -1
- package/dest/avm/fixtures/index.d.ts +7 -1
- package/dest/avm/fixtures/index.d.ts.map +1 -1
- package/dest/avm/fixtures/index.js +20 -6
- package/dest/avm/journal/journal.d.ts.map +1 -1
- package/dest/avm/journal/journal.js +7 -2
- package/dest/avm/opcodes/addressing_mode.d.ts +1 -1
- package/dest/avm/opcodes/addressing_mode.d.ts.map +1 -1
- package/dest/avm/opcodes/addressing_mode.js +1 -1
- package/dest/avm/opcodes/arithmetic.d.ts +15 -12
- package/dest/avm/opcodes/arithmetic.d.ts.map +1 -1
- package/dest/avm/opcodes/arithmetic.js +25 -36
- package/dest/avm/opcodes/hashing.d.ts +12 -12
- package/dest/avm/opcodes/hashing.d.ts.map +1 -1
- package/dest/avm/opcodes/hashing.js +24 -23
- package/dest/avm/opcodes/instruction.d.ts +24 -2
- package/dest/avm/opcodes/instruction.d.ts.map +1 -1
- package/dest/avm/opcodes/instruction.js +45 -2
- package/dest/avm/opcodes/memory.d.ts +3 -0
- package/dest/avm/opcodes/memory.d.ts.map +1 -1
- package/dest/avm/opcodes/memory.js +8 -1
- package/dest/avm/temporary_executor_migration.js +3 -3
- package/dest/client/client_execution_context.d.ts +3 -3
- package/dest/client/client_execution_context.d.ts.map +1 -1
- package/dest/client/client_execution_context.js +5 -5
- package/dest/client/execution_result.d.ts +5 -5
- package/dest/client/execution_result.d.ts.map +1 -1
- package/dest/client/private_execution.d.ts.map +1 -1
- package/dest/client/private_execution.js +4 -5
- package/dest/client/unconstrained_execution.js +2 -2
- package/dest/client/view_data_oracle.d.ts +8 -5
- package/dest/client/view_data_oracle.d.ts.map +1 -1
- package/dest/client/view_data_oracle.js +9 -6
- package/dest/index.d.ts +1 -0
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +2 -1
- package/dest/public/db.d.ts +7 -5
- package/dest/public/db.d.ts.map +1 -1
- package/dest/public/execution.d.ts +3 -3
- package/dest/public/execution.d.ts.map +1 -1
- package/dest/public/execution.js +1 -1
- package/dest/public/executor.d.ts.map +1 -1
- package/dest/public/executor.js +6 -4
- package/dest/public/public_execution_context.d.ts +9 -6
- package/dest/public/public_execution_context.d.ts.map +1 -1
- package/dest/public/public_execution_context.js +11 -8
- package/dest/simulator/acvm_native.d.ts +20 -0
- package/dest/simulator/acvm_native.d.ts.map +1 -0
- package/dest/simulator/acvm_native.js +96 -0
- package/dest/simulator/acvm_wasm.d.ts +7 -0
- package/dest/simulator/acvm_wasm.d.ts.map +1 -0
- package/dest/simulator/acvm_wasm.js +23 -0
- package/dest/simulator/index.d.ts +4 -0
- package/dest/simulator/index.d.ts.map +1 -0
- package/dest/simulator/index.js +4 -0
- package/dest/simulator/simulation_provider.d.ts +9 -0
- package/dest/simulator/simulation_provider.d.ts.map +1 -0
- package/dest/simulator/simulation_provider.js +2 -0
- package/dest/test/utils.d.ts.map +1 -1
- package/dest/test/utils.js +4 -5
- package/dest/utils.js +2 -2
- package/package.json +6 -5
- package/src/acvm/oracle/oracle.ts +10 -2
- package/src/acvm/oracle/typed_oracle.ts +5 -1
- package/src/avm/avm_execution_environment.ts +17 -1
- package/src/avm/avm_gas_cost.ts +132 -0
- package/src/avm/avm_machine_state.ts +34 -1
- package/src/avm/avm_memory_types.ts +1 -0
- package/src/avm/avm_simulator.ts +1 -2
- package/src/avm/errors.ts +8 -0
- package/src/avm/fixtures/index.ts +21 -5
- package/src/avm/journal/journal.ts +10 -1
- package/src/avm/opcodes/addressing_mode.ts +1 -1
- package/src/avm/opcodes/arithmetic.ts +34 -47
- package/src/avm/opcodes/hashing.ts +27 -20
- package/src/avm/opcodes/instruction.ts +49 -2
- package/src/avm/opcodes/memory.ts +9 -0
- package/src/avm/temporary_executor_migration.ts +2 -2
- package/src/client/client_execution_context.ts +7 -5
- package/src/client/execution_result.ts +5 -5
- package/src/client/private_execution.ts +3 -4
- package/src/client/unconstrained_execution.ts +1 -1
- package/src/client/view_data_oracle.ts +8 -5
- package/src/index.ts +1 -0
- package/src/public/db.ts +11 -5
- package/src/public/execution.ts +3 -3
- package/src/public/executor.ts +5 -3
- package/src/public/public_execution_context.ts +10 -7
- package/src/simulator/acvm_native.ts +112 -0
- package/src/simulator/acvm_wasm.ts +31 -0
- package/src/simulator/index.ts +3 -0
- package/src/simulator/simulation_provider.ts +10 -0
- package/src/test/utils.ts +2 -4
- package/src/utils.ts +1 -1
package/dest/public/executor.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
2
|
import { Fr, PublicCircuitPublicInputs } from '@aztec/circuits.js';
|
|
3
3
|
import { createDebugLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { spawn } from 'child_process';
|
|
@@ -68,7 +68,7 @@ export async function executePublicFunction(context, acir, nested, log = createD
|
|
|
68
68
|
contractStorageReads: [],
|
|
69
69
|
contractStorageUpdateRequests: [],
|
|
70
70
|
nestedExecutions: [],
|
|
71
|
-
unencryptedLogs:
|
|
71
|
+
unencryptedLogs: UnencryptedFunctionL2Logs.empty(),
|
|
72
72
|
reverted,
|
|
73
73
|
revertReason,
|
|
74
74
|
};
|
|
@@ -154,11 +154,13 @@ export class PublicExecutor {
|
|
|
154
154
|
const hostStorage = new HostStorage(this.stateDb, this.contractsDb, this.commitmentsDb);
|
|
155
155
|
const worldStateJournal = new AvmPersistableStateManager(hostStorage);
|
|
156
156
|
const executionEnv = temporaryCreateAvmExecutionEnvironment(execution, globalVariables);
|
|
157
|
-
|
|
157
|
+
// TODO(@spalladino) Load initial gas from the public execution request
|
|
158
|
+
const machineState = new AvmMachineState(100000, 100000, 100000);
|
|
158
159
|
const context = new AvmContext(worldStateJournal, executionEnv, machineState);
|
|
159
160
|
const simulator = new AvmSimulator(context);
|
|
160
161
|
const result = await simulator.execute();
|
|
161
162
|
const newWorldState = context.persistableState.flush();
|
|
163
|
+
// TODO(@spalladino) Read gas left from machineState and return it
|
|
162
164
|
return temporaryConvertAvmResults(execution, newWorldState, result);
|
|
163
165
|
}
|
|
164
166
|
/**
|
|
@@ -241,4 +243,4 @@ export class PublicExecutor {
|
|
|
241
243
|
});
|
|
242
244
|
}
|
|
243
245
|
}
|
|
244
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsRUFBRSxFQUEyQix5QkFBeUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTFELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzdCLE9BQU8sSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUV4QixPQUFPLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRSxPQUFPLEVBQ0wsMEJBQTBCLEVBQzFCLHNDQUFzQyxHQUN2QyxNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLHFCQUFxQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFD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
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhlY3V0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcHVibGljL2V4ZWN1dG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxFQUFFLEVBQTJCLHlCQUF5QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDNUYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFMUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDN0IsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBRXhCLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDeEYsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzdELE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3JFLE9BQU8sRUFDTCwwQkFBMEIsRUFDMUIsc0NBQXNDLEdBQ3ZDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sZ0NBQWdDLENB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
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NullifierMembershipWitness, UnencryptedFunctionL2Logs, UnencryptedL2Log } from '@aztec/circuit-types';
|
|
2
2
|
import { FunctionSelector, GlobalVariables, Header } from '@aztec/circuits.js';
|
|
3
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
4
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
@@ -49,7 +49,7 @@ export declare class PublicExecutionContext extends TypedOracle {
|
|
|
49
49
|
/**
|
|
50
50
|
* Return the encrypted logs emitted during this execution.
|
|
51
51
|
*/
|
|
52
|
-
getUnencryptedLogs():
|
|
52
|
+
getUnencryptedLogs(): UnencryptedFunctionL2Logs;
|
|
53
53
|
/**
|
|
54
54
|
* Return the data read and updated during this execution.
|
|
55
55
|
*/
|
|
@@ -63,11 +63,14 @@ export declare class PublicExecutionContext extends TypedOracle {
|
|
|
63
63
|
*/
|
|
64
64
|
packArguments(args: Fr[]): Promise<Fr>;
|
|
65
65
|
/**
|
|
66
|
-
* Fetches
|
|
67
|
-
* @param
|
|
68
|
-
* @
|
|
66
|
+
* Fetches a message from the db, given its key.
|
|
67
|
+
* @param contractAddress - Address of a contract by which the message was emitted.
|
|
68
|
+
* @param messageHash - Hash of the message.
|
|
69
|
+
* @param secret - Secret used to compute a nullifier.
|
|
70
|
+
* @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
|
|
71
|
+
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
69
72
|
*/
|
|
70
|
-
getL1ToL2MembershipWitness(
|
|
73
|
+
getL1ToL2MembershipWitness(contractAddress: AztecAddress, messageHash: Fr, secret: Fr): Promise<import("../acvm/index.js").MessageLoadOracleInputs<16>>;
|
|
71
74
|
/**
|
|
72
75
|
* Emit an unencrypted log.
|
|
73
76
|
* @param log - The unencrypted log to be emitted.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public_execution_context.d.ts","sourceRoot":"","sources":["../../src/public/public_execution_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"public_execution_context.d.ts","sourceRoot":"","sources":["../../src/public/public_execution_context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC/G,OAAO,EAA6B,gBAAgB,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC1G,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAiB,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAwB,MAAM,gBAAgB,CAAC;AAI9F;;GAEG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;IAMnD;;OAEG;aACa,SAAS,EAAE,eAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,eAAe;IAChC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAClC,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAC5B,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,GAAG;IAhBb,OAAO,CAAC,cAAc,CAAkC;IACxD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,eAAe,CAA0B;;IAG/C;;OAEG;IACa,SAAS,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,eAAe,EAAE,eAAe,EAChC,iBAAiB,EAAE,iBAAiB,EACpC,OAAO,EAAE,aAAa,EACtB,WAAW,EAAE,iBAAiB,EAC9B,aAAa,EAAE,aAAa,EACrC,GAAG,8CAAgE;IAM7E;;;;;;;;OAQG;IACI,iBAAiB,CAAC,iBAAiB,SAAI;IAa9C;;OAEG;IACI,mBAAmB;IAI1B;;OAEG;IACI,kBAAkB;IAIzB;;OAEG;IACI,oBAAoB;;;;IAK3B;;;OAGG;IACI,aAAa,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;IAI7C;;;;;;;OAOG;IACU,0BAA0B,CAAC,eAAe,EAAE,YAAY,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE;IAIlG;;;OAGG;IACI,kBAAkB,CAAC,GAAG,EAAE,gBAAgB;IAM/C;;;;;OAKG;IACU,wBAAwB,CAAC,eAAe,EAAE,YAAY;IAInE;;;;OAIG;IACU,WAAW,CAAC,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE,MAAM;IAYvE;;;;OAIG;IACU,YAAY,CAAC,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;IAc5D;;;;;;OAMG;IACU,kBAAkB,CAC7B,qBAAqB,EAAE,YAAY,EACnC,gBAAgB,EAAE,gBAAgB,EAClC,QAAQ,EAAE,EAAE,EACZ,iBAAiB,EAAE,MAAM,EACzB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO;IA+DZ,6BAA6B,CACxC,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,EAAE,GACZ,OAAO,CAAC,0BAA0B,GAAG,SAAS,CAAC;IAOrC,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAYnF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UnencryptedFunctionL2Logs } from '@aztec/circuit-types';
|
|
2
2
|
import { CallContext, FunctionData } from '@aztec/circuits.js';
|
|
3
3
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
4
|
import { Fr } from '@aztec/foundation/fields';
|
|
@@ -60,7 +60,7 @@ export class PublicExecutionContext extends TypedOracle {
|
|
|
60
60
|
* Return the encrypted logs emitted during this execution.
|
|
61
61
|
*/
|
|
62
62
|
getUnencryptedLogs() {
|
|
63
|
-
return new
|
|
63
|
+
return new UnencryptedFunctionL2Logs(this.unencryptedLogs);
|
|
64
64
|
}
|
|
65
65
|
/**
|
|
66
66
|
* Return the data read and updated during this execution.
|
|
@@ -77,12 +77,15 @@ export class PublicExecutionContext extends TypedOracle {
|
|
|
77
77
|
return Promise.resolve(this.packedArgsCache.pack(args));
|
|
78
78
|
}
|
|
79
79
|
/**
|
|
80
|
-
* Fetches
|
|
81
|
-
* @param
|
|
82
|
-
* @
|
|
80
|
+
* Fetches a message from the db, given its key.
|
|
81
|
+
* @param contractAddress - Address of a contract by which the message was emitted.
|
|
82
|
+
* @param messageHash - Hash of the message.
|
|
83
|
+
* @param secret - Secret used to compute a nullifier.
|
|
84
|
+
* @dev Contract address and secret are only used to compute the nullifier to get non-nullified messages
|
|
85
|
+
* @returns The l1 to l2 membership witness (index of message in the tree and sibling path).
|
|
83
86
|
*/
|
|
84
|
-
async getL1ToL2MembershipWitness(
|
|
85
|
-
return await this.commitmentsDb.getL1ToL2MembershipWitness(
|
|
87
|
+
async getL1ToL2MembershipWitness(contractAddress, messageHash, secret) {
|
|
88
|
+
return await this.commitmentsDb.getL1ToL2MembershipWitness(contractAddress, messageHash, secret);
|
|
86
89
|
}
|
|
87
90
|
/**
|
|
88
91
|
* Emit an unencrypted log.
|
|
@@ -196,4 +199,4 @@ export class PublicExecutionContext extends TypedOracle {
|
|
|
196
199
|
return instance;
|
|
197
200
|
}
|
|
198
201
|
}
|
|
199
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljX2V4ZWN1dGlvbl9jb250ZXh0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3B1YmxpYy9wdWJsaWNfZXhlY3V0aW9uX2NvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUE4Qix5QkFBeUIsRUFBb0IsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBNkMsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzlDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFHOUQsT0FBTyxFQUEwQyxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUVyRTs7R0FFRztBQUNILE1BQU0sT0FBTyxzQkFBdUIsU0FBUSxXQUFXO0lBS3JEO0lBQ0U7O09BRUc7SUFDYSxTQUEwQixFQUN6QixNQUFjLEVBQ2QsZUFBZ0MsRUFDaEMsZUFBZ0MsRUFDaEMsaUJBQW9DLEVBQ3BDLE9BQXNCLEVBQ3RCLFdBQThCLEVBQzlCLGFBQTRCLEVBQ3JDLE1BQU0saUJBQWlCLENBQUMsMENBQTBDLENBQUM7UUFFM0UsS0FBSyxFQUFFLENBQUM7UUFWUSxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUN6QixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Qsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxzQkFBaUIsR0FB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
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/// <reference types="node" resolution-mode="require"/>
|
|
2
|
+
import { NoirCompiledCircuit } from '@aztec/types/noir';
|
|
3
|
+
import { WitnessMap } from '@noir-lang/types';
|
|
4
|
+
import { SimulationProvider } from './simulation_provider.js';
|
|
5
|
+
/**
|
|
6
|
+
*
|
|
7
|
+
* @param inputWitness - The circuit's input witness
|
|
8
|
+
* @param bytecode - The circuit bytecode
|
|
9
|
+
* @param workingDirectory - A directory to use for temporary files by the ACVM
|
|
10
|
+
* @param pathToAcvm - The path to the ACVm binary
|
|
11
|
+
* @returns The completed partial witness outputted from the circuit
|
|
12
|
+
*/
|
|
13
|
+
export declare function executeNativeCircuit(inputWitness: WitnessMap, bytecode: Buffer, workingDirectory: string, pathToAcvm: string): Promise<Map<number, string>>;
|
|
14
|
+
export declare class NativeACVMSimulator implements SimulationProvider {
|
|
15
|
+
private workingDirectory;
|
|
16
|
+
private pathToAcvm;
|
|
17
|
+
constructor(workingDirectory: string, pathToAcvm: string);
|
|
18
|
+
simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=acvm_native.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acvm_native.d.ts","sourceRoot":"","sources":["../../src/simulator/acvm_native.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAI9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAmB9D;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,YAAY,EAAE,UAAU,EACxB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,EACxB,UAAU,EAAE,MAAM,gCAwDnB;AAED,qBAAa,mBAAoB,YAAW,kBAAkB;IAChD,OAAO,CAAC,gBAAgB;IAAU,OAAO,CAAC,UAAU;gBAA5C,gBAAgB,EAAE,MAAM,EAAU,UAAU,EAAE,MAAM;IAClE,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAapG"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { randomBytes } from '@aztec/foundation/crypto';
|
|
2
|
+
import * as proc from 'child_process';
|
|
3
|
+
import fs from 'fs/promises';
|
|
4
|
+
/**
|
|
5
|
+
* Parses a TOML format witness map string into a Map structure
|
|
6
|
+
* @param outputString - The witness map in TOML format
|
|
7
|
+
* @returns The parsed witness map
|
|
8
|
+
*/
|
|
9
|
+
function parseIntoWitnessMap(outputString) {
|
|
10
|
+
const lines = outputString.split('\n');
|
|
11
|
+
return new Map(lines
|
|
12
|
+
.filter((line) => line.length)
|
|
13
|
+
.map((line) => {
|
|
14
|
+
const pair = line.replaceAll(' ', '').split('=');
|
|
15
|
+
return [Number(pair[0]), pair[1].replaceAll('"', '')];
|
|
16
|
+
}));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
*
|
|
20
|
+
* @param inputWitness - The circuit's input witness
|
|
21
|
+
* @param bytecode - The circuit bytecode
|
|
22
|
+
* @param workingDirectory - A directory to use for temporary files by the ACVM
|
|
23
|
+
* @param pathToAcvm - The path to the ACVm binary
|
|
24
|
+
* @returns The completed partial witness outputted from the circuit
|
|
25
|
+
*/
|
|
26
|
+
export async function executeNativeCircuit(inputWitness, bytecode, workingDirectory, pathToAcvm) {
|
|
27
|
+
const bytecodeFilename = 'bytecode';
|
|
28
|
+
const witnessFilename = 'input_witness.toml';
|
|
29
|
+
// convert the witness map to TOML format
|
|
30
|
+
let witnessMap = '';
|
|
31
|
+
inputWitness.forEach((value, key) => {
|
|
32
|
+
witnessMap = witnessMap.concat(`${key} = '${value}'\n`);
|
|
33
|
+
});
|
|
34
|
+
// In case the directory is still around from some time previously, remove it
|
|
35
|
+
await fs.rm(workingDirectory, { recursive: true, force: true });
|
|
36
|
+
// Create the new working directory
|
|
37
|
+
await fs.mkdir(workingDirectory, { recursive: true });
|
|
38
|
+
// Write the bytecode and input witness to the working directory
|
|
39
|
+
await fs.writeFile(`${workingDirectory}/${bytecodeFilename}`, bytecode);
|
|
40
|
+
await fs.writeFile(`${workingDirectory}/${witnessFilename}`, witnessMap);
|
|
41
|
+
// Execute the ACVM using the given args
|
|
42
|
+
const args = [
|
|
43
|
+
`execute`,
|
|
44
|
+
`--working-directory`,
|
|
45
|
+
`${workingDirectory}`,
|
|
46
|
+
`--bytecode`,
|
|
47
|
+
`${bytecodeFilename}`,
|
|
48
|
+
`--input-witness`,
|
|
49
|
+
`${witnessFilename}`,
|
|
50
|
+
`--print`,
|
|
51
|
+
];
|
|
52
|
+
const processPromise = new Promise((resolve, reject) => {
|
|
53
|
+
let outputWitness = Buffer.alloc(0);
|
|
54
|
+
let errorBuffer = Buffer.alloc(0);
|
|
55
|
+
const acvm = proc.spawn(pathToAcvm, args);
|
|
56
|
+
acvm.stdout.on('data', data => {
|
|
57
|
+
outputWitness = Buffer.concat([outputWitness, data]);
|
|
58
|
+
});
|
|
59
|
+
acvm.stderr.on('data', data => {
|
|
60
|
+
errorBuffer = Buffer.concat([errorBuffer, data]);
|
|
61
|
+
});
|
|
62
|
+
acvm.on('close', code => {
|
|
63
|
+
if (code === 0) {
|
|
64
|
+
resolve(outputWitness.toString('utf-8'));
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
reject(errorBuffer.toString('utf-8'));
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
try {
|
|
72
|
+
const output = await processPromise;
|
|
73
|
+
return parseIntoWitnessMap(output);
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
// Clean up the working directory before we leave
|
|
77
|
+
await fs.rm(workingDirectory, { recursive: true, force: true });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
export class NativeACVMSimulator {
|
|
81
|
+
constructor(workingDirectory, pathToAcvm) {
|
|
82
|
+
this.workingDirectory = workingDirectory;
|
|
83
|
+
this.pathToAcvm = pathToAcvm;
|
|
84
|
+
}
|
|
85
|
+
async simulateCircuit(input, compiledCircuit) {
|
|
86
|
+
// Execute the circuit on those initial witness values
|
|
87
|
+
// Decode the bytecode from base64 since the acvm does not know about base64 encoding
|
|
88
|
+
const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
|
|
89
|
+
// Provide a unique working directory so we don't get clashes with parallel executions
|
|
90
|
+
const directory = `${this.workingDirectory}/${randomBytes(32).toString('hex')}`;
|
|
91
|
+
// Execute the circuit
|
|
92
|
+
const _witnessMap = await executeNativeCircuit(input, decodedBytecode, directory, this.pathToAcvm);
|
|
93
|
+
return _witnessMap;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV9uYXRpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2Fjdm1fbmF0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUl2RCxPQUFPLEtBQUssSUFBSSxNQUFNLGVBQWUsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFJN0I7Ozs7R0FJRztBQUNILFNBQVMsbUJBQW1CLENBQUMsWUFBb0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QyxPQUFPLElBQUksR0FBRyxDQUNaLEtBQUs7U0FDRixNQUFNLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7U0FDckMsR0FBRyxDQUFDLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDcEIsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDLENBQUMsQ0FDTCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUN4QyxZQUF3QixFQUN4QixRQUFnQixFQUNoQixnQkFBd0IsRUFDeEIsVUFBa0I7SUFFbEIsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUM7SUFDcEMsTUFBTSxlQUFlLEdBQUcsb0JBQW9CLENBQUM7SUFFN0MseUNBQXlDO0lBQ3pDLElBQUksVUFBVSxH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
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { NoirCompiledCircuit } from '@aztec/types/noir';
|
|
2
|
+
import { WitnessMap } from '@noir-lang/types';
|
|
3
|
+
import { SimulationProvider } from './simulation_provider.js';
|
|
4
|
+
export declare class WASMSimulator implements SimulationProvider {
|
|
5
|
+
simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=acvm_wasm.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acvm_wasm.d.ts","sourceRoot":"","sources":["../../src/simulator/acvm_wasm.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAW9D,qBAAa,aAAc,YAAW,kBAAkB;IAChD,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC;CAapG"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { createBlackBoxSolver, executeCircuitWithBlackBoxSolver } from '@noir-lang/acvm_js';
|
|
2
|
+
let solver;
|
|
3
|
+
const getSolver = () => {
|
|
4
|
+
if (!solver) {
|
|
5
|
+
solver = createBlackBoxSolver();
|
|
6
|
+
}
|
|
7
|
+
return solver;
|
|
8
|
+
};
|
|
9
|
+
export class WASMSimulator {
|
|
10
|
+
async simulateCircuit(input, compiledCircuit) {
|
|
11
|
+
// Execute the circuit on those initial witness values
|
|
12
|
+
//
|
|
13
|
+
// Decode the bytecode from base64 since the acvm does not know about base64 encoding
|
|
14
|
+
const decodedBytecode = Buffer.from(compiledCircuit.bytecode, 'base64');
|
|
15
|
+
//
|
|
16
|
+
// Execute the circuit
|
|
17
|
+
const _witnessMap = await executeCircuitWithBlackBoxSolver(await getSolver(), decodedBytecode, input, () => {
|
|
18
|
+
throw Error('unexpected oracle during execution');
|
|
19
|
+
});
|
|
20
|
+
return _witnessMap;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN2bV93YXNtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3NpbXVsYXRvci9hY3ZtX3dhc20udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUE4QixvQkFBb0IsRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBS3hILElBQUksTUFBMkMsQ0FBQztBQUVoRCxNQUFNLFNBQVMsR0FBRyxHQUF3QyxFQUFFO0lBQzFELElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO0lBQ2xDLENBQUM7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDLENBQUM7QUFFRixNQUFNLE9BQU8sYUFBYTtJQUN4QixLQUFLLENBQUMsZUFBZSxDQUFDLEtBQWlCLEVBQUUsZUFBb0M7UUFDM0Usc0RBQXNEO1FBQ3RELEVBQUU7UUFDRixxRkFBcUY7UUFDckYsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3hFLEVBQUU7UUFDRixzQkFBc0I7UUFDdEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxnQ0FBZ0MsQ0FBQyxNQUFNLFNBQVMsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1lBQ3pHLE1BQU0sS0FBSyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLFdBQVcsQ0FBQztJQUNyQixDQUFDO0NBQ0YifQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/simulator/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './acvm_native.js';
|
|
2
|
+
export * from './acvm_wasm.js';
|
|
3
|
+
export * from './simulation_provider.js';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2ltdWxhdG9yL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0JBQWtCLENBQUM7QUFDakMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLDBCQUEwQixDQUFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { NoirCompiledCircuit } from '@aztec/types/noir';
|
|
2
|
+
import { WitnessMap } from '@noir-lang/types';
|
|
3
|
+
/**
|
|
4
|
+
* Low level simulation interface
|
|
5
|
+
*/
|
|
6
|
+
export interface SimulationProvider {
|
|
7
|
+
simulateCircuit(input: WitnessMap, compiledCircuit: NoirCompiledCircuit): Promise<WitnessMap>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=simulation_provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"simulation_provider.d.ts","sourceRoot":"","sources":["../../src/simulator/simulation_provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,eAAe,CAAC,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,mBAAmB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;CAC/F"}
|
package/dest/test/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAW,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAc,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,aACnB,MAAM,mBACC,EAAE,EAAE,kBACL,YAAY,UACpB,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/test/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAW,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAc,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAIlE;;;;;;;GAOG;AACH,eAAO,MAAM,kBAAkB,aACnB,MAAM,mBACC,EAAE,EAAE,kBACL,YAAY,UACpB,EAAE,kBAWX,CAAC"}
|
package/dest/test/utils.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { L1Actor, L1ToL2Message, L2Actor } from '@aztec/circuit-types';
|
|
2
|
-
import { EthAddress
|
|
2
|
+
import { EthAddress } from '@aztec/circuits.js';
|
|
3
3
|
import { computeMessageSecretHash } from '@aztec/circuits.js/hash';
|
|
4
|
-
import {
|
|
4
|
+
import { sha256ToField } from '@aztec/foundation/crypto';
|
|
5
5
|
/**
|
|
6
6
|
* Test utility function to craft an L1 to L2 message.
|
|
7
7
|
* @param selector - The cross chain message selector.
|
|
@@ -13,11 +13,10 @@ import { sha256 } from '@aztec/foundation/crypto';
|
|
|
13
13
|
export const buildL1ToL2Message = (selector, contentPreimage, targetContract, secret) => {
|
|
14
14
|
// Write the selector into a buffer.
|
|
15
15
|
const selectorBuf = Buffer.from(selector, 'hex');
|
|
16
|
-
const
|
|
17
|
-
const content = Fr.fromBufferReduce(sha256(contentBuf));
|
|
16
|
+
const content = sha256ToField([selectorBuf, ...contentPreimage]);
|
|
18
17
|
const secretHash = computeMessageSecretHash(secret);
|
|
19
18
|
// Eventually the kernel will need to prove the kernel portal pair exists within the contract tree,
|
|
20
19
|
// EthAddress.random() will need to be replaced when this happens
|
|
21
20
|
return new L1ToL2Message(new L1Actor(EthAddress.random(), 1), new L2Actor(targetContract, 1), content, secretHash);
|
|
22
21
|
};
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdC91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQWdCLFVBQVUsRUFBTSxNQUFNLG9CQUFvQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxDQUFDLE1BQU0sa0JBQWtCLEdBQUcsQ0FDaEMsUUFBZ0IsRUFDaEIsZUFBcUIsRUFDckIsY0FBNEIsRUFDNUIsTUFBVSxFQUNWLEVBQUU7SUFDRixvQ0FBb0M7SUFDcEMsTUFBTSxXQUFXLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFakQsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsZUFBZSxDQUFDLENBQUMsQ0FBQztJQUNqRSxNQUFNLFVBQVUsR0FBRyx3QkFBd0IsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVwRCxtR0FBbUc7SUFDbkcsaUVBQWlFO0lBQ2pFLE9BQU8sSUFBSSxhQUFhLENBQUMsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDckgsQ0FBQyxDQUFDIn0=
|
package/dest/utils.js
CHANGED
|
@@ -6,6 +6,6 @@ import { pedersenHash } from '@aztec/foundation/crypto';
|
|
|
6
6
|
* @returns The slot in the contract storage where the value is stored.
|
|
7
7
|
*/
|
|
8
8
|
export function computeSlotForMapping(mappingSlot, key) {
|
|
9
|
-
return pedersenHash([mappingSlot, key.toField()]
|
|
9
|
+
return pedersenHash([mappingSlot, key.toField()]);
|
|
10
10
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBR3hEOzs7OztHQUtHO0FBQ0gsTUFBTSxVQUFVLHFCQUFxQixDQUNuQyxXQUFlLEVBQ2YsR0FHQztJQUVELE9BQU8sWUFBWSxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDcEQsQ0FBQyJ9
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/simulator",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.32.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -30,11 +30,12 @@
|
|
|
30
30
|
"rootDir": "./src"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@aztec/circuit-types": "0.
|
|
34
|
-
"@aztec/circuits.js": "0.
|
|
35
|
-
"@aztec/foundation": "0.
|
|
36
|
-
"@aztec/types": "0.
|
|
33
|
+
"@aztec/circuit-types": "0.32.0",
|
|
34
|
+
"@aztec/circuits.js": "0.32.0",
|
|
35
|
+
"@aztec/foundation": "0.32.0",
|
|
36
|
+
"@aztec/types": "0.32.0",
|
|
37
37
|
"@noir-lang/acvm_js": "portal:../../noir/packages/acvm_js",
|
|
38
|
+
"@noir-lang/types": "portal:../../noir/packages/types",
|
|
38
39
|
"levelup": "^5.1.1",
|
|
39
40
|
"memdown": "^6.1.1",
|
|
40
41
|
"tslib": "^2.4.0"
|
|
@@ -244,8 +244,16 @@ export class Oracle {
|
|
|
244
244
|
return toACVMField(exists);
|
|
245
245
|
}
|
|
246
246
|
|
|
247
|
-
async getL1ToL2MembershipWitness(
|
|
248
|
-
|
|
247
|
+
async getL1ToL2MembershipWitness(
|
|
248
|
+
[contractAddress]: ACVMField[],
|
|
249
|
+
[messageHash]: ACVMField[],
|
|
250
|
+
[secret]: ACVMField[],
|
|
251
|
+
): Promise<ACVMField[]> {
|
|
252
|
+
const message = await this.typedOracle.getL1ToL2MembershipWitness(
|
|
253
|
+
AztecAddress.fromString(contractAddress),
|
|
254
|
+
fromACVMField(messageHash),
|
|
255
|
+
fromACVMField(secret),
|
|
256
|
+
);
|
|
249
257
|
return message.toFields().map(toACVMField);
|
|
250
258
|
}
|
|
251
259
|
|
|
@@ -171,7 +171,11 @@ export abstract class TypedOracle {
|
|
|
171
171
|
throw new OracleMethodNotAvailableError('checkNullifierExists');
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
getL1ToL2MembershipWitness(
|
|
174
|
+
getL1ToL2MembershipWitness(
|
|
175
|
+
_contractAddress: AztecAddress,
|
|
176
|
+
_messageHash: Fr,
|
|
177
|
+
_secret: Fr,
|
|
178
|
+
): Promise<MessageLoadOracleInputs<typeof L1_TO_L2_MSG_TREE_HEIGHT>> {
|
|
175
179
|
throw new OracleMethodNotAvailableError('getL1ToL2MembershipWitness');
|
|
176
180
|
}
|
|
177
181
|
|
|
@@ -1,8 +1,19 @@
|
|
|
1
1
|
import { FunctionSelector, GlobalVariables } from '@aztec/circuits.js';
|
|
2
|
+
import { computeVarArgsHash } from '@aztec/circuits.js/hash';
|
|
2
3
|
import { AztecAddress } from '@aztec/foundation/aztec-address';
|
|
3
4
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
4
5
|
import { Fr } from '@aztec/foundation/fields';
|
|
5
6
|
|
|
7
|
+
export class AvmContextInputs {
|
|
8
|
+
static readonly SIZE = 2;
|
|
9
|
+
|
|
10
|
+
constructor(private selector: Fr, private argsHash: Fr) {}
|
|
11
|
+
|
|
12
|
+
public toFields(): Fr[] {
|
|
13
|
+
return [this.selector, this.argsHash];
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
6
17
|
/**
|
|
7
18
|
* Contains variables that remain constant during AVM execution
|
|
8
19
|
* These variables are provided by the public kernel circuit
|
|
@@ -40,7 +51,12 @@ export class AvmExecutionEnvironment {
|
|
|
40
51
|
// containing all functions, and function selector will become an application-level mechanism
|
|
41
52
|
// (e.g. first few bytes of calldata + compiler-generated jump table)
|
|
42
53
|
public readonly temporaryFunctionSelector: FunctionSelector,
|
|
43
|
-
) {
|
|
54
|
+
) {
|
|
55
|
+
// We encode some extra inputs (AvmContextInputs) in calldata.
|
|
56
|
+
// This will have to go once we move away from one proof per call.
|
|
57
|
+
const inputs = new AvmContextInputs(temporaryFunctionSelector.toField(), computeVarArgsHash(calldata));
|
|
58
|
+
this.calldata = [...inputs.toFields(), ...calldata];
|
|
59
|
+
}
|
|
44
60
|
|
|
45
61
|
public deriveEnvironmentForNestedCall(
|
|
46
62
|
address: AztecAddress,
|