diff options
author | zelig <viktor.tron@gmail.com> | 2015-03-03 03:13:41 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-03-03 03:13:41 +0800 |
commit | af6971f823431e091142dc81f1b252f681d086cf (patch) | |
tree | 2b34e0f42adaeebcf28c955249934f7dc5270792 /state/state_object.go | |
parent | a60a18b080197cad836f18f9d093bba3bcb6cef8 (diff) | |
parent | 65cad14f9b27db396d036f47814d4843d947ac43 (diff) | |
download | go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.gz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.bz2 go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.lz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.xz go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.tar.zst go-tangerine-af6971f823431e091142dc81f1b252f681d086cf.zip |
Merge remote-tracking branch 'upstream/develop' into blockpool2
Diffstat (limited to 'state/state_object.go')
-rw-r--r-- | state/state_object.go | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/state/state_object.go b/state/state_object.go index 477b912a1..487952a02 100644 --- a/state/state_object.go +++ b/state/state_object.go @@ -19,6 +19,14 @@ func (self Code) String() string { type Storage map[string]*ethutil.Value +func (self Storage) String() (str string) { + for key, value := range self { + str += fmt.Sprintf("%X : %X\n", key, value.Bytes()) + } + + return +} + func (self Storage) Copy() Storage { cpy := make(Storage) for key, value := range self { @@ -119,10 +127,9 @@ func (self *StateObject) GetStorage(key *big.Int) *ethutil.Value { } func (self *StateObject) SetStorage(key *big.Int, value *ethutil.Value) { self.SetState(key.Bytes(), value) - self.dirty = true } -func (self *StateObject) Storage() map[string]*ethutil.Value { +func (self *StateObject) Storage() Storage { return self.storage } @@ -172,20 +179,22 @@ func (c *StateObject) AddBalance(amount *big.Int) { statelogger.Debugf("%x: #%d %v (+ %v)\n", c.Address(), c.nonce, c.balance, amount) } -func (c *StateObject) AddAmount(amount *big.Int) { c.AddBalance(amount) } func (c *StateObject) SubBalance(amount *big.Int) { c.SetBalance(new(big.Int).Sub(c.balance, amount)) statelogger.Debugf("%x: #%d %v (- %v)\n", c.Address(), c.nonce, c.balance, amount) } -func (c *StateObject) SubAmount(amount *big.Int) { c.SubBalance(amount) } func (c *StateObject) SetBalance(amount *big.Int) { c.balance = amount c.dirty = true } +func (c *StateObject) St() Storage { + return c.storage +} + // // Gas setters and getters // @@ -198,7 +207,7 @@ func (c *StateObject) ConvertGas(gas, price *big.Int) error { return fmt.Errorf("insufficient amount: %v, %v", c.balance, total) } - c.SubAmount(total) + c.SubBalance(total) c.dirty = true @@ -221,7 +230,7 @@ func (self *StateObject) BuyGas(gas, price *big.Int) error { rGas := new(big.Int).Set(gas) rGas.Mul(rGas, price) - self.AddAmount(rGas) + self.AddBalance(rGas) self.dirty = true |