Skip to content

Commit

Permalink
debug intrinsic gas
Browse files Browse the repository at this point in the history
  • Loading branch information
blckngm committed Jun 17, 2022
1 parent 371f656 commit 269b932
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 5 deletions.
6 changes: 4 additions & 2 deletions crates/generator/src/error.rs
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
use std::borrow::Cow;

use ckb_vm::Error as VMError;
use gw_common::{error::Error as StateError, sparse_merkle_tree::error::Error as SMTError, H256};
use gw_types::packed::Byte32;
Expand Down Expand Up @@ -155,8 +157,8 @@ pub enum TransactionError {
NoCost,
#[error("Nonce Overflow")]
NonceOverflow,
#[error("Intrinsic gas")]
IntrinsicGas,
#[error("Intrinsic gas: {0}")]
IntrinsicGas(Cow<'static, str>),
}

impl From<VMError> for TransactionError {
Expand Down
18 changes: 15 additions & 3 deletions crates/generator/src/verification/transaction.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,10 +82,22 @@ impl<'a, S: State + CodeStore> TransactionVerifier<'a, S> {
}
// Intrinsic Gas
if let TypedRawTransaction::Polyjuice(tx) = typed_tx {
let p = tx.parser().ok_or(TransactionError::IntrinsicGas)?;
let intrinsic_gas = tx.intrinsic_gas().ok_or(TransactionError::IntrinsicGas)?;
let p = tx
.parser()
.ok_or_else(|| TransactionError::IntrinsicGas("parser".into()))?;
let intrinsic_gas = tx
.intrinsic_gas()
.ok_or_else(|| TransactionError::IntrinsicGas("intrinsic gas".into()))?;
if p.gas() < intrinsic_gas {
return Err(TransactionError::IntrinsicGas.into());
return Err(TransactionError::IntrinsicGas(
format!(
"gas < intrinsic_gas, gas: {}, intrinsic gas: {}",
p.gas(),
intrinsic_gas
)
.into(),
)
.into());
}
}

Expand Down

0 comments on commit 269b932

Please sign in to comment.