mirror of
https://github.com/hl-archive-node/nanoreth.git
synced 2025-12-06 10:59:55 +00:00
chore: use B160, B256 and U256 coming from revm and ruint (#676)
* use B256, B160 and U256 from revm * fix U256 from_str * use U256::ZERO * use temporary commit for revm and interpreter * more U256::ZERO * more changes for revm/ruint types * clippy * change revm and revm-interpreter repo * remove H160 wrap * minor cleanup * remove unused * fix MIN_PROTOCOL_BASE_FEE
This commit is contained in:
@ -17,6 +17,7 @@ no_codec = ["codecs-derive/no_codec"]
|
||||
bytes = "1.2.1"
|
||||
codecs-derive = { version = "0.1.0", path = "./derive", default-features = false }
|
||||
ethers-core = { git = "https://github.com/gakonst/ethers-rs", default-features = false }
|
||||
revm-interpreter = { git = "https://github.com/bluealloy/revm", rev = "3a13c9c8a0cda728941f1b26db0beb1025744ea9", features = ["with-serde"] }
|
||||
|
||||
[dev-dependencies]
|
||||
serde = "1.0"
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
use bytes::{Buf, Bytes};
|
||||
pub use codecs_derive::*;
|
||||
use ethers_core::types::{Bloom, H160, H256, U256};
|
||||
use ethers_core::types::Bloom;
|
||||
use revm_interpreter::{B160 as H160, B256 as H256, U256};
|
||||
|
||||
/// Trait that implements the `Compact` codec.
|
||||
///
|
||||
@ -188,9 +189,8 @@ where
|
||||
|
||||
impl Compact for U256 {
|
||||
fn to_compact(self, buf: &mut impl bytes::BufMut) -> usize {
|
||||
let mut inner = vec![0; 32];
|
||||
self.to_big_endian(&mut inner);
|
||||
let size = 32 - (self.leading_zeros() / 8) as usize;
|
||||
let inner: [u8; 32] = self.to_be_bytes();
|
||||
let size = 32 - (self.leading_zeros() / 8);
|
||||
buf.put_slice(&inner[32 - size..]);
|
||||
size
|
||||
}
|
||||
@ -200,10 +200,10 @@ impl Compact for U256 {
|
||||
let mut arr = [0; 32];
|
||||
arr[(32 - len)..].copy_from_slice(&buf[..len]);
|
||||
buf.advance(len);
|
||||
return (U256::from_big_endian(&arr), buf)
|
||||
return (U256::from_be_bytes(arr), buf)
|
||||
}
|
||||
|
||||
(U256::zero(), buf)
|
||||
(U256::ZERO, buf)
|
||||
}
|
||||
}
|
||||
|
||||
@ -281,7 +281,9 @@ impl Compact for bool {
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::*;
|
||||
use ethers_core::types::Address;
|
||||
use revm_interpreter::B160;
|
||||
|
||||
pub type Address = B160;
|
||||
|
||||
#[test]
|
||||
fn compact_bytes() {
|
||||
@ -397,9 +399,9 @@ mod tests {
|
||||
fn compact_u256() {
|
||||
let mut buf = vec![];
|
||||
|
||||
assert_eq!(U256::zero().to_compact(&mut buf), 0);
|
||||
assert_eq!(U256::ZERO.to_compact(&mut buf), 0);
|
||||
assert!(buf.is_empty());
|
||||
assert_eq!(U256::from_compact(&buf, 0), (U256::zero(), vec![].as_slice()));
|
||||
assert_eq!(U256::from_compact(&buf, 0), (U256::ZERO, vec![].as_slice()));
|
||||
|
||||
assert_eq!(U256::from(2).to_compact(&mut buf), 1);
|
||||
assert_eq!(buf, vec![2u8]);
|
||||
@ -443,7 +445,7 @@ mod tests {
|
||||
fn default() -> Self {
|
||||
TestStruct {
|
||||
f_u64: 1u64, // 4 bits | 1 byte
|
||||
f_u256: 1u64.into(), // 6 bits | 1 byte
|
||||
f_u256: U256::from(1u64), // 6 bits | 1 byte
|
||||
f_bool_f: false, // 1 bit | 0 bytes
|
||||
f_bool_t: true, // 1 bit | 0 bytes
|
||||
f_option_none: None, // 1 bit | 0 bytes
|
||||
|
||||
Reference in New Issue
Block a user