Merge pull request #1502 from ethereum/canaryFix

Fixed canary to require 2+ nonzero, not sum 2+
This commit is contained in:
Jeffrey Wilcke 2015-07-20 16:17:48 -07:00
commit f1daed65b1
1 changed files with 14 additions and 7 deletions

View File

@ -34,11 +34,18 @@ var (
// If two or more are set to anything other than a 0 the canary // If two or more are set to anything other than a 0 the canary
// dies a horrible death. // dies a horrible death.
func Canary(statedb *state.StateDB) bool { func Canary(statedb *state.StateDB) bool {
r := new(big.Int) var r int
r.Add(r, statedb.GetState(jeff, common.Hash{}).Big()) if (statedb.GetState(jeff, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) {
r.Add(r, statedb.GetState(vitalik, common.Hash{}).Big()) r++
r.Add(r, statedb.GetState(christoph, common.Hash{}).Big()) }
r.Add(r, statedb.GetState(gav, common.Hash{}).Big()) if (statedb.GetState(gav, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) {
r++
return r.Cmp(big.NewInt(1)) > 0 }
if (statedb.GetState(christoph, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) {
r++
}
if (statedb.GetState(vitalik, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) {
r++
}
return r > 1
} }