Skip to content

Commit 10148c5

Browse files
feat: Sync from aztec-packages (#4657)
Automated pull of Noir development from [aztec-packages](https://github.com/AztecProtocol/aztec-packages). BEGIN_COMMIT_OVERRIDE chore: Dont double check num bits in brillig vm (AztecProtocol/aztec-packages#5489) chore: unify noir macros flow (AztecProtocol/aztec-packages#5461) feat!: Brillig typed memory (AztecProtocol/aztec-packages#5395) chore: add AvmContextInputs (AztecProtocol/aztec-packages#5396) END_COMMIT_OVERRIDE --------- Co-authored-by: sirasistant <sirasistant@gmail.com>
1 parent b87654e commit 10148c5

File tree

46 files changed

+1886
-1617
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

46 files changed

+1886
-1617
lines changed

.aztec-sync-commit

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
208abbb63af4c9a3f25d723fe1c49e82aa461061
1+
a18288d9b8f3057b9e79362d922da656dacf22a9

Cargo.lock

Lines changed: 1 addition & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

acvm-repo/acir/codegen/acir.cpp

Lines changed: 600 additions & 645 deletions
Large diffs are not rendered by default.

acvm-repo/acir/tests/test_program_serialization.rs

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -190,9 +190,9 @@ fn simple_brillig_foreign_call() {
190190
brillig::Opcode::ForeignCall {
191191
function: "invert".into(),
192192
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
193-
destination_value_types: vec![HeapValueType::Simple],
193+
destination_value_types: vec![HeapValueType::field()],
194194
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
195-
input_value_types: vec![HeapValueType::Simple],
195+
input_value_types: vec![HeapValueType::field()],
196196
},
197197
brillig::Opcode::Stop { return_data_offset: 0, return_data_size: 1 },
198198
],
@@ -211,11 +211,11 @@ fn simple_brillig_foreign_call() {
211211
let bytes = Program::serialize_program(&program);
212212

213213
let expected_serialization: Vec<u8> = vec![
214-
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 173, 143, 65, 10, 192, 32, 12, 4, 77, 10, 165, 244, 214,
215-
159, 216, 31, 244, 51, 61, 120, 241, 32, 226, 251, 85, 140, 176, 136, 122, 209, 129, 144,
216-
176, 9, 97, 151, 84, 225, 74, 69, 50, 31, 48, 35, 85, 251, 164, 235, 53, 94, 218, 247, 75,
217-
163, 95, 150, 12, 153, 179, 227, 191, 114, 195, 222, 216, 240, 59, 63, 75, 221, 251, 208,
218-
106, 207, 232, 150, 65, 100, 53, 33, 2, 22, 232, 178, 27, 144, 1, 0, 0,
214+
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 173, 144, 61, 10, 192, 48, 8, 133, 53, 133, 82, 186,
215+
245, 38, 233, 13, 122, 153, 14, 93, 58, 132, 144, 227, 135, 252, 41, 56, 36, 46, 201, 7,
216+
162, 168, 200, 123, 34, 52, 142, 28, 72, 245, 38, 106, 9, 247, 30, 202, 118, 142, 27, 215,
217+
221, 178, 82, 175, 33, 15, 133, 189, 163, 159, 57, 197, 252, 251, 195, 235, 188, 230, 186,
218+
16, 65, 255, 12, 239, 92, 131, 89, 149, 198, 77, 3, 10, 9, 119, 8, 198, 242, 152, 1, 0, 0,
219219
];
220220

221221
assert_eq!(bytes, expected_serialization)
@@ -264,8 +264,8 @@ fn complex_brillig_foreign_call() {
264264
},
265265
brillig::Opcode::Const {
266266
destination: MemoryAddress(0),
267-
value: brillig::Value::from(32_usize),
268-
bit_size: 32,
267+
value: FieldElement::from(32_usize),
268+
bit_size: 64,
269269
},
270270
brillig::Opcode::CalldataCopy {
271271
destination_address: MemoryAddress(1),
@@ -280,18 +280,18 @@ fn complex_brillig_foreign_call() {
280280
ValueOrArray::MemoryAddress(MemoryAddress::from(1)),
281281
],
282282
input_value_types: vec![
283-
HeapValueType::Array { size: 3, value_types: vec![HeapValueType::Simple] },
284-
HeapValueType::Simple,
283+
HeapValueType::Array { size: 3, value_types: vec![HeapValueType::field()] },
284+
HeapValueType::field(),
285285
],
286286
destinations: vec![
287287
ValueOrArray::HeapArray(HeapArray { pointer: 0.into(), size: 3 }),
288288
ValueOrArray::MemoryAddress(MemoryAddress::from(35)),
289289
ValueOrArray::MemoryAddress(MemoryAddress::from(36)),
290290
],
291291
destination_value_types: vec![
292-
HeapValueType::Array { size: 3, value_types: vec![HeapValueType::Simple] },
293-
HeapValueType::Simple,
294-
HeapValueType::Simple,
292+
HeapValueType::Array { size: 3, value_types: vec![HeapValueType::field()] },
293+
HeapValueType::field(),
294+
HeapValueType::field(),
295295
],
296296
},
297297
brillig::Opcode::Stop { return_data_offset: 32, return_data_size: 5 },
@@ -311,15 +311,15 @@ fn complex_brillig_foreign_call() {
311311
let bytes = Program::serialize_program(&program);
312312

313313
let expected_serialization: Vec<u8> = vec![
314-
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 213, 84, 65, 14, 132, 32, 12, 108, 101, 117, 205, 222,
315-
246, 7, 38, 187, 15, 96, 247, 5, 254, 197, 120, 211, 232, 209, 231, 139, 113, 136, 181, 65,
316-
47, 98, 162, 147, 52, 20, 24, 202, 164, 45, 48, 205, 200, 157, 49, 124, 227, 44, 129, 207,
317-
152, 75, 120, 94, 137, 209, 30, 195, 143, 227, 197, 178, 103, 105, 76, 110, 160, 209, 156,
318-
160, 209, 247, 195, 69, 235, 29, 179, 46, 81, 243, 103, 2, 239, 231, 225, 44, 117, 150, 97,
319-
254, 196, 152, 99, 157, 176, 87, 168, 188, 147, 224, 121, 20, 209, 180, 254, 109, 70, 75,
320-
47, 178, 186, 251, 37, 116, 86, 93, 219, 55, 245, 96, 20, 85, 75, 253, 8, 255, 171, 246,
321-
121, 231, 220, 4, 249, 237, 132, 56, 28, 224, 109, 113, 223, 180, 164, 50, 165, 0, 137, 17,
322-
72, 139, 88, 97, 4, 173, 98, 132, 157, 33, 5, 0, 0,
314+
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 213, 84, 93, 10, 131, 48, 12, 78, 218, 233, 100, 111,
315+
187, 193, 96, 59, 64, 231, 9, 188, 139, 248, 166, 232, 163, 167, 23, 11, 126, 197, 24, 250,
316+
34, 86, 208, 64, 72, 218, 252, 125, 36, 105, 153, 22, 42, 60, 51, 116, 235, 217, 64, 103,
317+
156, 37, 5, 191, 10, 210, 29, 163, 63, 167, 203, 229, 206, 194, 104, 110, 128, 209, 158,
318+
128, 49, 236, 195, 69, 231, 157, 114, 46, 73, 251, 103, 35, 239, 231, 225, 57, 243, 156,
319+
227, 252, 132, 44, 112, 79, 176, 125, 84, 223, 73, 248, 145, 152, 69, 149, 4, 107, 233,
320+
114, 90, 119, 145, 85, 237, 151, 192, 89, 247, 221, 208, 54, 163, 85, 174, 26, 234, 87,
321+
232, 63, 101, 103, 21, 55, 169, 216, 73, 72, 249, 5, 197, 234, 132, 123, 179, 35, 247, 155,
322+
214, 246, 102, 20, 73, 204, 72, 168, 123, 191, 161, 25, 66, 136, 159, 187, 53, 5, 0, 0,
323323
];
324324

325325
assert_eq!(bytes, expected_serialization)

acvm-repo/acvm/src/pwg/brillig.rs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::collections::HashMap;
22

33
use acir::{
4-
brillig::{ForeignCallParam, ForeignCallResult, Value},
4+
brillig::{ForeignCallParam, ForeignCallResult},
55
circuit::{
66
brillig::{Brillig, BrilligInputs, BrilligOutputs},
77
opcodes::BlockId,
@@ -11,7 +11,7 @@ use acir::{
1111
FieldElement,
1212
};
1313
use acvm_blackbox_solver::BlackBoxFunctionSolver;
14-
use brillig_vm::{VMStatus, VM};
14+
use brillig_vm::{MemoryValue, VMStatus, VM};
1515

1616
use crate::{pwg::OpcodeNotSolvable, OpcodeResolutionError};
1717

@@ -73,15 +73,15 @@ impl<'b, B: BlackBoxFunctionSolver> BrilligSolver<'b, B> {
7373
acir_index: usize,
7474
) -> Result<Self, OpcodeResolutionError> {
7575
// Set input values
76-
let mut calldata: Vec<Value> = Vec::new();
76+
let mut calldata: Vec<FieldElement> = Vec::new();
7777
// Each input represents an expression or array of expressions to evaluate.
7878
// Iterate over each input and evaluate the expression(s) associated with it.
7979
// Push the results into memory.
8080
// If a certain expression is not solvable, we stall the ACVM and do not proceed with Brillig VM execution.
8181
for input in &brillig.inputs {
8282
match input {
8383
BrilligInputs::Single(expr) => match get_value(expr, initial_witness) {
84-
Ok(value) => calldata.push(value.into()),
84+
Ok(value) => calldata.push(value),
8585
Err(_) => {
8686
return Err(OpcodeResolutionError::OpcodeNotSolvable(
8787
OpcodeNotSolvable::ExpressionHasTooManyUnknowns(expr.clone()),
@@ -92,7 +92,7 @@ impl<'b, B: BlackBoxFunctionSolver> BrilligSolver<'b, B> {
9292
// Attempt to fetch all array input values
9393
for expr in expr_arr.iter() {
9494
match get_value(expr, initial_witness) {
95-
Ok(value) => calldata.push(value.into()),
95+
Ok(value) => calldata.push(value),
9696
Err(_) => {
9797
return Err(OpcodeResolutionError::OpcodeNotSolvable(
9898
OpcodeNotSolvable::ExpressionHasTooManyUnknowns(expr.clone()),
@@ -110,7 +110,7 @@ impl<'b, B: BlackBoxFunctionSolver> BrilligSolver<'b, B> {
110110
.block_value
111111
.get(&memory_index)
112112
.expect("All memory is initialized on creation");
113-
calldata.push((*memory_value).into());
113+
calldata.push(*memory_value);
114114
}
115115
}
116116
}
@@ -122,11 +122,11 @@ impl<'b, B: BlackBoxFunctionSolver> BrilligSolver<'b, B> {
122122
Ok(Self { vm, acir_index })
123123
}
124124

125-
pub fn get_memory(&self) -> &[Value] {
125+
pub fn get_memory(&self) -> &[MemoryValue] {
126126
self.vm.get_memory()
127127
}
128128

129-
pub fn write_memory_at(&mut self, ptr: usize, value: Value) {
129+
pub fn write_memory_at(&mut self, ptr: usize, value: MemoryValue) {
130130
self.vm.write_memory_at(ptr, value);
131131
}
132132

@@ -206,13 +206,13 @@ impl<'b, B: BlackBoxFunctionSolver> BrilligSolver<'b, B> {
206206
for output in brillig.outputs.iter() {
207207
match output {
208208
BrilligOutputs::Simple(witness) => {
209-
insert_value(witness, memory[current_ret_data_idx].to_field(), witness_map)?;
209+
insert_value(witness, memory[current_ret_data_idx].value, witness_map)?;
210210
current_ret_data_idx += 1;
211211
}
212212
BrilligOutputs::Array(witness_arr) => {
213213
for witness in witness_arr.iter() {
214214
let value = memory[current_ret_data_idx];
215-
insert_value(witness, value.to_field(), witness_map)?;
215+
insert_value(witness, value.value, witness_map)?;
216216
current_ret_data_idx += 1;
217217
}
218218
}

acvm-repo/acvm/tests/solver.rs

Lines changed: 18 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use std::collections::BTreeMap;
22

33
use acir::{
4-
brillig::{BinaryFieldOp, MemoryAddress, Opcode as BrilligOpcode, Value, ValueOrArray},
4+
brillig::{BinaryFieldOp, MemoryAddress, Opcode as BrilligOpcode, ValueOrArray},
55
circuit::{
66
brillig::{Brillig, BrilligInputs, BrilligOutputs},
77
opcodes::{BlockId, MemOp},
@@ -70,9 +70,9 @@ fn inversion_brillig_oracle_equivalence() {
7070
BrilligOpcode::ForeignCall {
7171
function: "invert".into(),
7272
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(1))],
73-
destination_value_types: vec![HeapValueType::Simple],
73+
destination_value_types: vec![HeapValueType::field()],
7474
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
75-
input_value_types: vec![HeapValueType::Simple],
75+
input_value_types: vec![HeapValueType::field()],
7676
},
7777
BrilligOpcode::Stop { return_data_offset: 0, return_data_size: 3 },
7878
],
@@ -120,8 +120,7 @@ fn inversion_brillig_oracle_equivalence() {
120120
assert_eq!(foreign_call_wait_info.inputs.len(), 1, "Should be waiting for a single input");
121121

122122
// As caller of VM, need to resolve foreign calls
123-
let foreign_call_result =
124-
Value::from(foreign_call_wait_info.inputs[0].unwrap_value().to_field().inverse());
123+
let foreign_call_result = foreign_call_wait_info.inputs[0].unwrap_field().inverse();
125124
// Alter Brillig oracle opcode with foreign call resolution
126125
acvm.resolve_pending_foreign_call(foreign_call_result.into());
127126

@@ -199,16 +198,16 @@ fn double_inversion_brillig_oracle() {
199198
BrilligOpcode::ForeignCall {
200199
function: "invert".into(),
201200
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(1))],
202-
destination_value_types: vec![HeapValueType::Simple],
201+
destination_value_types: vec![HeapValueType::field()],
203202
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
204-
input_value_types: vec![HeapValueType::Simple],
203+
input_value_types: vec![HeapValueType::field()],
205204
},
206205
BrilligOpcode::ForeignCall {
207206
function: "invert".into(),
208207
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(3))],
209-
destination_value_types: vec![HeapValueType::Simple],
208+
destination_value_types: vec![HeapValueType::field()],
210209
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(2))],
211-
input_value_types: vec![HeapValueType::Simple],
210+
input_value_types: vec![HeapValueType::field()],
212211
},
213212
BrilligOpcode::Stop { return_data_offset: 0, return_data_size: 5 },
214213
],
@@ -257,8 +256,7 @@ fn double_inversion_brillig_oracle() {
257256
acvm.get_pending_foreign_call().expect("should have a brillig foreign call request");
258257
assert_eq!(foreign_call_wait_info.inputs.len(), 1, "Should be waiting for a single input");
259258

260-
let x_plus_y_inverse =
261-
Value::from(foreign_call_wait_info.inputs[0].unwrap_value().to_field().inverse());
259+
let x_plus_y_inverse = foreign_call_wait_info.inputs[0].unwrap_field().inverse();
262260

263261
// Resolve Brillig foreign call
264262
acvm.resolve_pending_foreign_call(x_plus_y_inverse.into());
@@ -275,8 +273,7 @@ fn double_inversion_brillig_oracle() {
275273
acvm.get_pending_foreign_call().expect("should have a brillig foreign call request");
276274
assert_eq!(foreign_call_wait_info.inputs.len(), 1, "Should be waiting for a single input");
277275

278-
let i_plus_j_inverse =
279-
Value::from(foreign_call_wait_info.inputs[0].unwrap_value().to_field().inverse());
276+
let i_plus_j_inverse = foreign_call_wait_info.inputs[0].unwrap_field().inverse();
280277
assert_ne!(x_plus_y_inverse, i_plus_j_inverse);
281278

282279
// Alter Brillig oracle opcode
@@ -334,16 +331,16 @@ fn oracle_dependent_execution() {
334331
BrilligOpcode::ForeignCall {
335332
function: "invert".into(),
336333
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(1))],
337-
destination_value_types: vec![HeapValueType::Simple],
334+
destination_value_types: vec![HeapValueType::field()],
338335
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
339-
input_value_types: vec![HeapValueType::Simple],
336+
input_value_types: vec![HeapValueType::field()],
340337
},
341338
BrilligOpcode::ForeignCall {
342339
function: "invert".into(),
343340
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(3))],
344-
destination_value_types: vec![HeapValueType::Simple],
341+
destination_value_types: vec![HeapValueType::field()],
345342
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(2))],
346-
input_value_types: vec![HeapValueType::Simple],
343+
input_value_types: vec![HeapValueType::field()],
347344
},
348345
BrilligOpcode::Stop { return_data_offset: 0, return_data_size: 4 },
349346
],
@@ -389,8 +386,7 @@ fn oracle_dependent_execution() {
389386
assert_eq!(foreign_call_wait_info.inputs.len(), 1, "Should be waiting for a single input");
390387

391388
// Resolve Brillig foreign call
392-
let x_inverse =
393-
Value::from(foreign_call_wait_info.inputs[0].unwrap_value().to_field().inverse());
389+
let x_inverse = foreign_call_wait_info.inputs[0].unwrap_field().inverse();
394390
acvm.resolve_pending_foreign_call(x_inverse.into());
395391

396392
// After filling data request, continue solving
@@ -406,8 +402,7 @@ fn oracle_dependent_execution() {
406402
assert_eq!(foreign_call_wait_info.inputs.len(), 1, "Should be waiting for a single input");
407403

408404
// Resolve Brillig foreign call
409-
let y_inverse =
410-
Value::from(foreign_call_wait_info.inputs[0].unwrap_value().to_field().inverse());
405+
let y_inverse = foreign_call_wait_info.inputs[0].unwrap_field().inverse();
411406
acvm.resolve_pending_foreign_call(y_inverse.into());
412407

413408
// We've resolved all the brillig foreign calls so we should be able to complete execution now.
@@ -464,9 +459,9 @@ fn brillig_oracle_predicate() {
464459
BrilligOpcode::ForeignCall {
465460
function: "invert".into(),
466461
destinations: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(1))],
467-
destination_value_types: vec![HeapValueType::Simple],
462+
destination_value_types: vec![HeapValueType::field()],
468463
inputs: vec![ValueOrArray::MemoryAddress(MemoryAddress::from(0))],
469-
input_value_types: vec![HeapValueType::Simple],
464+
input_value_types: vec![HeapValueType::field()],
470465
},
471466
],
472467
predicate: Some(Expression::default()),

acvm-repo/acvm_js/src/foreign_call/inputs.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ pub(super) fn encode_foreign_call_inputs(
88
let inputs = js_sys::Array::default();
99
for input in foreign_call_inputs {
1010
let input_array = js_sys::Array::default();
11-
for value in input.values() {
12-
let hex_js_string = field_element_to_js_string(&value.to_field());
11+
for value in input.fields() {
12+
let hex_js_string = field_element_to_js_string(&value);
1313
input_array.push(&hex_js_string);
1414
}
1515
inputs.push(&input_array);

acvm-repo/acvm_js/src/foreign_call/outputs.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
use acvm::brillig_vm::brillig::{ForeignCallParam, ForeignCallResult, Value};
1+
use acvm::brillig_vm::brillig::{ForeignCallParam, ForeignCallResult};
22
use wasm_bindgen::JsValue;
33

44
use crate::js_witness_map::js_value_to_field_element;
55

66
fn decode_foreign_call_output(output: JsValue) -> Result<ForeignCallParam, String> {
77
if output.is_string() {
8-
let value = Value::from(js_value_to_field_element(output)?);
8+
let value = js_value_to_field_element(output)?;
99
Ok(ForeignCallParam::Single(value))
1010
} else if output.is_array() {
1111
let output = js_sys::Array::from(&output);
1212

13-
let mut values: Vec<Value> = Vec::with_capacity(output.length() as usize);
13+
let mut values: Vec<_> = Vec::with_capacity(output.length() as usize);
1414
for elem in output.iter() {
15-
values.push(Value::from(js_value_to_field_element(elem)?));
15+
values.push(js_value_to_field_element(elem)?);
1616
}
1717
Ok(ForeignCallParam::Array(values))
1818
} else {

acvm-repo/acvm_js/test/shared/complex_foreign_call.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@ import { WitnessMap } from '@noir-lang/acvm_js';
22

33
// See `complex_brillig_foreign_call` integration test in `acir/tests/test_program_serialization.rs`.
44
export const bytecode = Uint8Array.from([
5-
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 213, 84, 65, 14, 132, 32, 12, 108, 101, 117, 205, 222, 246, 7, 38, 187, 15, 96,
6-
247, 5, 254, 197, 120, 211, 232, 209, 231, 139, 113, 136, 181, 65, 47, 98, 162, 147, 52, 20, 24, 202, 164, 45, 48,
7-
205, 200, 157, 49, 124, 227, 44, 129, 207, 152, 75, 120, 94, 137, 209, 30, 195, 143, 227, 197, 178, 103, 105, 76, 110,
8-
160, 209, 156, 160, 209, 247, 195, 69, 235, 29, 179, 46, 81, 243, 103, 2, 239, 231, 225, 44, 117, 150, 97, 254, 196,
9-
152, 99, 157, 176, 87, 168, 188, 147, 224, 121, 20, 209, 180, 254, 109, 70, 75, 47, 178, 186, 251, 37, 116, 86, 93,
10-
219, 55, 245, 96, 20, 85, 75, 253, 8, 255, 171, 246, 121, 231, 220, 4, 249, 237, 132, 56, 28, 224, 109, 113, 223, 180,
11-
164, 50, 165, 0, 137, 17, 72, 139, 88, 97, 4, 173, 98, 132, 157, 33, 5, 0, 0,
5+
31, 139, 8, 0, 0, 0, 0, 0, 0, 255, 213, 84, 93, 10, 131, 48, 12, 78, 218, 233, 100, 111, 187, 193, 96, 59, 64, 231, 9,
6+
188, 139, 248, 166, 232, 163, 167, 23, 11, 126, 197, 24, 250, 34, 86, 208, 64, 72, 218, 252, 125, 36, 105, 153, 22,
7+
42, 60, 51, 116, 235, 217, 64, 103, 156, 37, 5, 191, 10, 210, 29, 163, 63, 167, 203, 229, 206, 194, 104, 110, 128,
8+
209, 158, 128, 49, 236, 195, 69, 231, 157, 114, 46, 73, 251, 103, 35, 239, 231, 225, 57, 243, 156, 227, 252, 132, 44,
9+
112, 79, 176, 125, 84, 223, 73, 248, 145, 152, 69, 149, 4, 107, 233, 114, 90, 119, 145, 85, 237, 151, 192, 89, 247,
10+
221, 208, 54, 163, 85, 174, 26, 234, 87, 232, 63, 101, 103, 21, 55, 169, 216, 73, 72, 249, 5, 197, 234, 132, 123, 179,
11+
35, 247, 155, 214, 246, 102, 20, 73, 204, 72, 168, 123, 191, 161, 25, 66, 136, 159, 187, 53, 5, 0, 0,
1212
]);
1313
export const initialWitnessMap: WitnessMap = new Map([
1414
[1, '0x0000000000000000000000000000000000000000000000000000000000000001'],

0 commit comments

Comments
 (0)