EIP2929 with journaling + Yolov3 (#79)
This commit is contained in:
@@ -20,6 +20,7 @@ use ethereum_types::Address;
|
||||
use evm::{CleanDustMode, Schedule};
|
||||
use std::collections::HashSet;
|
||||
use types::log_entry::LogEntry;
|
||||
use vm::access_list::AccessList;
|
||||
|
||||
/// State changes which should be applied in finalize,
|
||||
/// after transaction is fully executed.
|
||||
@@ -39,6 +40,9 @@ pub struct Substate {
|
||||
|
||||
/// Created contracts.
|
||||
pub contracts_created: Vec<Address>,
|
||||
|
||||
/// List of accesses addresses and slots
|
||||
pub access_list: AccessList,
|
||||
}
|
||||
|
||||
impl Substate {
|
||||
@@ -46,6 +50,17 @@ impl Substate {
|
||||
pub fn new() -> Self {
|
||||
Substate::default()
|
||||
}
|
||||
/// Creates a new substate from an access list
|
||||
pub fn from_access_list(access_list: &AccessList) -> Self {
|
||||
Self {
|
||||
suicides: HashSet::default(),
|
||||
touched: HashSet::default(),
|
||||
logs: Vec::default(),
|
||||
sstore_clears_refund: 0,
|
||||
contracts_created: Vec::default(),
|
||||
access_list: access_list.clone(),
|
||||
}
|
||||
}
|
||||
|
||||
/// Merge secondary substate `s` into self, accruing each element correspondingly.
|
||||
pub fn accrue(&mut self, s: Substate) {
|
||||
|
||||
Reference in New Issue
Block a user