From 8160b8618d788802e943fbf6c8ef8bbf98501807 Mon Sep 17 00:00:00 2001 From: Vitalik Buterin Date: Thu, 2 Jul 2015 06:36:32 -0400 Subject: [PATCH] Fixed canary to require 2+ nonzero, not sum 2+ --- core/canary.go | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/core/canary.go b/core/canary.go index 710e315309..b69621a6aa 100644 --- a/core/canary.go +++ b/core/canary.go @@ -34,11 +34,18 @@ var ( // If two or more are set to anything other than a 0 the canary // dies a horrible death. func Canary(statedb *state.StateDB) bool { - r := new(big.Int) - r.Add(r, statedb.GetState(jeff, common.Hash{}).Big()) - r.Add(r, statedb.GetState(vitalik, common.Hash{}).Big()) - r.Add(r, statedb.GetState(christoph, common.Hash{}).Big()) - r.Add(r, statedb.GetState(gav, common.Hash{}).Big()) - - return r.Cmp(big.NewInt(1)) > 0 + var r int + if (statedb.GetState(jeff, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) { + r++ + } + if (statedb.GetState(gav, common.Hash{}).Big().Cmp(big.NewInt(0)) > 0) { + r++ + } + 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 }