Use signed 256-bit integer for sstore gas refund substate (#9746)
* Add signed refund * Use signed 256-bit integer for sstore gas refund substate * Fix tests * Remove signed mod and use i128 directly * Fix evm test case casting * Fix jsontests ext signature
This commit is contained in:
@@ -16,7 +16,7 @@
|
||||
|
||||
//! Execution environment substate.
|
||||
use std::collections::HashSet;
|
||||
use ethereum_types::{U256, Address};
|
||||
use ethereum_types::Address;
|
||||
use log_entry::LogEntry;
|
||||
use evm::{Schedule, CleanDustMode};
|
||||
use super::CleanupMode;
|
||||
@@ -35,7 +35,7 @@ pub struct Substate {
|
||||
pub logs: Vec<LogEntry>,
|
||||
|
||||
/// Refund counter of SSTORE.
|
||||
pub sstore_clears_refund: U256,
|
||||
pub sstore_clears_refund: i128,
|
||||
|
||||
/// Created contracts.
|
||||
pub contracts_created: Vec<Address>,
|
||||
@@ -52,7 +52,7 @@ impl Substate {
|
||||
self.suicides.extend(s.suicides);
|
||||
self.touched.extend(s.touched);
|
||||
self.logs.extend(s.logs);
|
||||
self.sstore_clears_refund = self.sstore_clears_refund + s.sstore_clears_refund;
|
||||
self.sstore_clears_refund += s.sstore_clears_refund;
|
||||
self.contracts_created.extend(s.contracts_created);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user