Skip to content

Commit

Permalink
Chore: Small refactor.
Browse files Browse the repository at this point in the history
  • Loading branch information
vldm committed Jan 12, 2022
1 parent 6f00b30 commit d157e35
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 43 deletions.
55 changes: 13 additions & 42 deletions core/src/evm_rpc_impl/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,10 @@ impl StateRootWithBank {
meta: &JsonRpcRequestProcessor,
address: H160,
) -> Result<Option<AccountState>, Error> {
assert!(self.state_root.is_some());
ensure!(
self.state_root.is_some(),
BlockNotFound { block: self.block }
);

let root = *self.state_root.as_ref().unwrap();
if let Some(bank) = &self.bank {
Expand All @@ -57,7 +60,11 @@ impl StateRootWithBank {
address: H160,
idx: H256,
) -> Result<Option<H256>, Error> {
assert!(self.state_root.is_some());
ensure!(
self.state_root.is_some(),
BlockNotFound { block: self.block }
);

let root = *self.state_root.as_ref().unwrap();
if let Some(bank) = &self.bank {
let evm = bank.evm_state.read().unwrap();
Expand Down Expand Up @@ -283,12 +290,6 @@ impl BasicERPC for BasicErpcImpl {
block: Option<BlockId>,
) -> Result<Hex<U256>, Error> {
let state = block_to_state_root(block, &meta);
ensure!(
state.state_root.is_some(),
BlockNotFound {
block: block.unwrap_or_default()
}
);

let account = state
.get_account_state_at(&meta, address.0)?
Expand All @@ -304,12 +305,7 @@ impl BasicERPC for BasicErpcImpl {
block: Option<BlockId>,
) -> Result<Hex<H256>, Error> {
let state = block_to_state_root(block, &meta);
ensure!(
state.state_root.is_some(),
BlockNotFound {
block: block.unwrap_or_default()
}
);

let storage = state
.get_storage_at(&meta, address.0, data.0)?
.unwrap_or_default();
Expand All @@ -323,12 +319,7 @@ impl BasicERPC for BasicErpcImpl {
block: Option<BlockId>,
) -> Result<Hex<U256>, Error> {
let state = block_to_state_root(block, &meta);
ensure!(
state.state_root.is_some(),
BlockNotFound {
block: block.unwrap_or_default()
}
);

let account = state
.get_account_state_at(&meta, address.0)?
.unwrap_or_default();
Expand All @@ -342,12 +333,7 @@ impl BasicERPC for BasicErpcImpl {
block: Option<BlockId>,
) -> Result<Bytes, Error> {
let state = block_to_state_root(block, &meta);
ensure!(
state.state_root.is_some(),
BlockNotFound {
block: block.unwrap_or_default()
}
);

let account = state
.get_account_state_at(&meta, address.0)?
.unwrap_or_default();
Expand Down Expand Up @@ -485,12 +471,6 @@ impl BasicERPC for BasicErpcImpl {
.map_err(|e| into_native_error(e, false))?;
let saved_state = block_to_state_root(block, &meta);

if saved_state.state_root.is_none() {
return Err(Error::BlockNotFound {
block: block.unwrap_or_default(),
});
}

let result = call(meta, tx, saved_state, meta_keys)?;
Ok(Bytes(result.exit_data))
}
Expand Down Expand Up @@ -523,11 +503,7 @@ impl BasicERPC for BasicErpcImpl {
block: Option<BlockId>,
) -> Result<Vec<evm_rpc::trace::TraceResultsWithTransactionHash>, Error> {
let saved_state = block_to_state_root(block, &meta);
if saved_state.state_root.is_none() {
return Err(Error::BlockNotFound {
block: block.unwrap_or_default(),
});
}

let mut txs = Vec::new();
let mut txs_meta = Vec::new();

Expand Down Expand Up @@ -640,11 +616,6 @@ impl BasicERPC for BasicErpcImpl {
.collect::<Result<Vec<_>, _>>()
.map_err(|e| into_native_error(e, false))?;
let saved_state = block_to_state_root(block, &meta);
if saved_state.state_root.is_none() {
return Err(Error::BlockNotFound {
block: block.unwrap_or_default(),
});
}
let result = call(meta, tx, saved_state, meta_keys)?;
Ok(Hex(result.used_gas.into()))
}
Expand Down
2 changes: 1 addition & 1 deletion core/src/evm_services/state_recorder.rs
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ impl EvmStateRecorderService {
storage: &Storage,
evm_records_receiver: &EvmStateRecorderReceiver,
) -> Result<(), RecvTimeoutError> {
// TODO2: merge snapshot to archive after load
// TODO: use changed nodes as state_updates, instead of changed accounts (to avoid recalculation of hashes)

let (state_root, state_updates) =
evm_records_receiver.recv_timeout(Duration::from_secs(1))?;
Expand Down

0 comments on commit d157e35

Please sign in to comment.