forked from cerc-io/plugeth
light: implemented VMState.Empty() (#3357)
This commit is contained in:
parent
e4bf004560
commit
665bb43a4c
@ -201,14 +201,19 @@ func (self *StateObject) Copy() *StateObject {
|
|||||||
// Attribute accessors
|
// Attribute accessors
|
||||||
//
|
//
|
||||||
|
|
||||||
|
// empty returns whether the account is considered empty.
|
||||||
|
func (self *StateObject) empty() bool {
|
||||||
|
return self.nonce == 0 && self.balance.BitLen() == 0 && bytes.Equal(self.codeHash, emptyCodeHash)
|
||||||
|
}
|
||||||
|
|
||||||
// Balance returns the account balance
|
// Balance returns the account balance
|
||||||
func (self *StateObject) Balance() *big.Int {
|
func (self *StateObject) Balance() *big.Int {
|
||||||
return self.balance
|
return self.balance
|
||||||
}
|
}
|
||||||
|
|
||||||
// Address returns the address of the contract/account
|
// Address returns the address of the contract/account
|
||||||
func (c *StateObject) Address() common.Address {
|
func (self *StateObject) Address() common.Address {
|
||||||
return c.address
|
return self.address
|
||||||
}
|
}
|
||||||
|
|
||||||
// Code returns the contract code
|
// Code returns the contract code
|
||||||
|
@ -263,6 +263,13 @@ func (s *VMState) Exist(addr common.Address) bool {
|
|||||||
return res
|
return res
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Empty returns true if the account at the given address is considered empty
|
||||||
|
func (s *VMState) Empty(addr common.Address) bool {
|
||||||
|
so, err := s.state.GetStateObject(s.ctx, addr)
|
||||||
|
s.errHandler(err)
|
||||||
|
return so == nil || so.empty()
|
||||||
|
}
|
||||||
|
|
||||||
// HasSuicided returns true if the given account has been marked for deletion
|
// HasSuicided returns true if the given account has been marked for deletion
|
||||||
// or false if the account does not exist
|
// or false if the account does not exist
|
||||||
func (s *VMState) HasSuicided(addr common.Address) bool {
|
func (s *VMState) HasSuicided(addr common.Address) bool {
|
||||||
|
Loading…
Reference in New Issue
Block a user