Fixed consensus issue for refunding
* Refund should _always_ go to the origin
This commit is contained in:
@ -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
|
||||
|
||||
|
Reference in New Issue
Block a user