Skip to content
This repository has been archived by the owner on Jul 5, 2024. It is now read-only.

Commit

Permalink
Don't unwrap in non-test code
Browse files Browse the repository at this point in the history
  • Loading branch information
ed255 committed Nov 25, 2022
1 parent ddc5750 commit 51f681b
Show file tree
Hide file tree
Showing 10 changed files with 24 additions and 21 deletions.
8 changes: 4 additions & 4 deletions zkevm-circuits/src/copy_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -853,28 +853,28 @@ mod tests {
#[test]
fn copy_circuit_valid_calldatacopy() {
let builder = gen_calldatacopy_data();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_copy_circuit(14, block), Ok(()));
}

#[test]
fn copy_circuit_valid_codecopy() {
let builder = gen_codecopy_data();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_copy_circuit(10, block), Ok(()));
}

#[test]
fn copy_circuit_valid_sha3() {
let builder = gen_sha3_data();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_copy_circuit(20, block), Ok(()));
}

#[test]
fn copy_circuit_tx_log() {
let builder = gen_tx_log_data();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_copy_circuit(10, block), Ok(()));
}

Expand Down
4 changes: 2 additions & 2 deletions zkevm-circuits/src/evm_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -392,7 +392,7 @@ pub mod test {
builder
.handle_block(&block.eth_block, &block.geth_traces)
.unwrap();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
run_test_circuit(block)
}

Expand All @@ -405,7 +405,7 @@ pub mod test {
builder
.handle_block(&block.eth_block, &block.geth_traces)
.unwrap();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
run_test_circuit(block)
}

Expand Down
2 changes: 1 addition & 1 deletion zkevm-circuits/src/evm_circuit/execution/end_block.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ mod test {
.unwrap();

// build a witness block from trace result
let mut block = crate::witness::block_convert(&builder.block, &builder.code_db);
let mut block = crate::witness::block_convert(&builder.block, &builder.code_db).unwrap();
block.evm_circuit_pad_to = evm_circuit_pad_to;

// finish required tests using this witness block
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -426,7 +426,7 @@ mod test {
builder
.handle_block(&block_data.eth_block, &block_data.geth_traces)
.unwrap();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(run_test_circuit(block), Ok(()));
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -290,7 +290,7 @@ mod test {
builder
.handle_block(&block_data.eth_block, &block_data.geth_traces)
.unwrap();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(run_test_circuit(block), Ok(()));
}

Expand Down
2 changes: 1 addition & 1 deletion zkevm-circuits/src/evm_circuit/execution/gas.rs
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ mod test {
builder
.handle_block(&block.eth_block, &block.geth_traces)
.expect("could not handle block tx");
let mut block = block_convert(&builder.block, &builder.code_db);
let mut block = block_convert(&builder.block, &builder.code_db).unwrap();

// The above block has 2 steps (GAS and STOP). We forcefully assign a
// wrong `gas_left` value for the second step, to assert that
Expand Down
4 changes: 2 additions & 2 deletions zkevm-circuits/src/exp_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -497,14 +497,14 @@ mod tests {
fn test_ok(base: Word, exponent: Word, k: Option<u32>) {
let code = gen_code_single(base, exponent);
let builder = gen_data(code);
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_exp_circuit(k.unwrap_or(10), block), Ok(()));
}

fn test_ok_multiple(args: Vec<(Word, Word)>) {
let code = gen_code_multiple(args);
let builder = gen_data(code);
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
assert_eq!(test_exp_circuit(20, block), Ok(()));
}

Expand Down
2 changes: 1 addition & 1 deletion zkevm-circuits/src/super_circuit.rs
Original file line number Diff line number Diff line change
Expand Up @@ -329,7 +329,7 @@ impl<const MAX_TXS: usize, const MAX_CALLDATA: usize, const MAX_RWS: usize>
pub fn build_from_circuit_input_builder(
builder: &CircuitInputBuilder,
) -> Result<(u32, Self, Vec<Vec<Fr>>), bus_mapping::Error> {
let mut block = block_convert(&builder.block, &builder.code_db);
let mut block = block_convert(&builder.block, &builder.code_db).unwrap();
block.randomness = Fr::from(MOCK_RANDOMNESS);

let fixed_table_tags: Vec<FixedTableTag> = FixedTableTag::iter().collect();
Expand Down
6 changes: 3 additions & 3 deletions zkevm-circuits/src/test_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ pub fn run_test_circuits<const NACC: usize, const NTX: usize>(
.unwrap();

// build a witness block from trace result
let block = crate::witness::block_convert(&builder.block, &builder.code_db);
let block = crate::witness::block_convert(&builder.block, &builder.code_db).unwrap();

// finish required tests according to config using this witness block
test_circuits_witness_block(block, config.unwrap_or_default())
Expand All @@ -76,7 +76,7 @@ pub fn run_test_circuits_with_params<const NACC: usize, const NTX: usize>(
.unwrap();

// build a witness block from trace result
let block = crate::witness::block_convert(&builder.block, &builder.code_db);
let block = crate::witness::block_convert(&builder.block, &builder.code_db).unwrap();

// finish required tests according to config using this witness block
test_circuits_witness_block(block, config.unwrap_or_default())
Expand All @@ -90,7 +90,7 @@ pub fn test_circuits_block_geth_data_default(block: GethData) -> Result<(), Vec<
builder
.handle_block(&block.eth_block, &block.geth_traces)
.unwrap();
let block = block_convert(&builder.block, &builder.code_db);
let block = block_convert(&builder.block, &builder.code_db).unwrap();
test_circuits_witness_block(block, BytecodeTestConfig::default())
}

Expand Down
13 changes: 8 additions & 5 deletions zkevm-circuits/src/witness/block.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
use std::collections::HashMap;

use crate::{evm_circuit::util::RandomLinearCombination, table::BlockContextFieldTag};
use bus_mapping::circuit_input_builder::{self, CircuitsParams, CopyEvent, ExpEvent};
use bus_mapping::{
circuit_input_builder::{self, CircuitsParams, CopyEvent, ExpEvent},
Error,
};
use eth_types::{Address, Field, ToLittleEndian, ToScalar, Word};
use halo2_proofs::halo2curves::bn256::Fr;
use itertools::Itertools;
Expand Down Expand Up @@ -163,8 +166,8 @@ impl From<&circuit_input_builder::Block> for BlockContext {
pub fn block_convert(
block: &circuit_input_builder::Block,
code_db: &bus_mapping::state_db::CodeDB,
) -> Block<Fr> {
Block {
) -> Result<Block<Fr>, Error> {
Ok(Block {
// randomness: Fr::from(0xcafeu64), // TODO: Uncomment
randomness: Fr::from(0x100), // Special value to reveal elements after RLC
context: block.into(),
Expand Down Expand Up @@ -200,7 +203,7 @@ pub fn block_convert(
evm_circuit_pad_to: <usize>::default(),
exp_circuit_pad_to: <usize>::default(),
prev_state_root: block.prev_state_root,
keccak_inputs: circuit_input_builder::keccak_inputs(block, code_db).unwrap(),
keccak_inputs: circuit_input_builder::keccak_inputs(block, code_db)?,
eth_block: block.eth_block.clone(),
}
})
}

0 comments on commit 51f681b

Please sign in to comment.