TracerReseult, ScopeContext, and StateDB changes to interfaces

This commit is contained in:
philip-morlier 2021-09-08 13:58:53 -07:00
parent 1fb2754193
commit 27afdc9ff3
No known key found for this signature in database
GPG Key ID: 0323A143B7B6F663

View File

@ -66,7 +66,34 @@ type TracerResult interface {
CaptureState(pc uint64, op OpCode, gas, cost uint64, scope ScopeContext, rData []byte, depth int, err error)
CaptureFault(pc uint64, op OpCode, gas, cost uint64, scope ScopeContext, depth int, err error)
CaptureEnd(output []byte, gasUsed uint64, t time.Duration, err error)
Result() interface{}
Result() (interface{}, error)
}
type StateDB interface {
GetBalance(Address) *big.Int
GetNonce(Address) uint64
GetCodeHash(Address) Hash
GetCode(Address) []byte
GetCodeSize(Address) int
GetRefund() uint64
GetCommittedState(Address, Hash) Hash
GetState(Address, Hash) Hash
HasSuicided(Address) bool
// Exist reports whether the given account exists in state.
// Notably this should also return true for suicided accounts.
Exist(Address) bool
// Empty returns whether the given account is empty. Empty
// is defined according to EIP161 (balance = nonce = code = 0).
Empty(Address) bool
AddressInAccessList(addr Address) bool
SlotInAccessList(addr Address, slot Hash) (addressOk bool, slotOk bool)
}
type ScopeContext interface {