From 3c8282bebe65b493ffb55fe9bce81ffd34fe7975 Mon Sep 17 00:00:00 2001 From: Determinant Date: Sun, 20 Sep 2020 14:37:49 -0400 Subject: minor change to properly journal the IsMultiCoin flag --- core/state/journal.go | 2 +- core/state/state_object.go | 28 ++++++++++++++-------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/core/state/journal.go b/core/state/journal.go index be27493..0cc556b 100644 --- a/core/state/journal.go +++ b/core/state/journal.go @@ -185,7 +185,7 @@ func (ch balanceChange) dirtied() *common.Address { } func (ch multiCoinEnable) revert(s *StateDB) { - //s.getStateObject(*ch.account).data.IsMultiCoin = false + s.getStateObject(*ch.account).data.IsMultiCoin = false } func (ch multiCoinEnable) dirtied() *common.Address { diff --git a/core/state/state_object.go b/core/state/state_object.go index bbfff1d..f5c2ff3 100644 --- a/core/state/state_object.go +++ b/core/state/state_object.go @@ -430,7 +430,7 @@ func (s *stateObject) SubBalanceMultiCoin(coinID common.Hash, amount *big.Int, d } func (s *stateObject) SetBalanceMultiCoin(coinID common.Hash, amount *big.Int, db Database) { - s.data.IsMultiCoin = true + s.EnableMultiCoin() NormalizeCoinID(&coinID) s.SetState(db, coinID, common.BigToHash(amount)) } @@ -439,9 +439,9 @@ func (s *stateObject) setBalance(amount *big.Int) { s.data.Balance = amount } -//func (s *stateObject) enableMultiCoin() { -// s.data.IsMultiCoin = true -//} +func (s *stateObject) enableMultiCoin() { + s.data.IsMultiCoin = true +} // Return the gas back to the origin. Used by the Virtual machine or Closures func (s *stateObject) ReturnGas(gas *big.Int) {} @@ -556,16 +556,16 @@ func (s *stateObject) BalanceMultiCoin(coinID common.Hash, db Database) *big.Int return s.GetState(db, coinID).Big() } -//func (s *stateObject) EnableMultiCoin() bool { -// if s.data.IsMultiCoin { -// return false -// } -// s.db.journal.append(multiCoinEnable{ -// account: &s.address, -// }) -// s.enableMultiCoin() -// return true -//} +func (s *stateObject) EnableMultiCoin() bool { + if s.data.IsMultiCoin { + return false + } + s.db.journal.append(multiCoinEnable{ + account: &s.address, + }) + s.enableMultiCoin() + return true +} //func (s *stateObject) IsMultiCoin() bool { // return s.data.IsMultiCoin -- cgit v1.2.3-70-g09d2