Commit a9db1ee8 authored by obscuren's avatar obscuren

Replaced to return the td and throw a specific error on TD

parent 699dcaf6
...@@ -319,10 +319,7 @@ func (self *ChainManager) InsertChain(chain *BlockChain) { ...@@ -319,10 +319,7 @@ func (self *ChainManager) InsertChain(chain *BlockChain) {
} }
} }
func (self *ChainManager) TestChain(chain *BlockChain) (i int, err error) { func (self *ChainManager) TestChain(chain *BlockChain) (td *big.Int, err error) {
var (
td *big.Int
)
for e := chain.Front(); e != nil; e = e.Next() { for e := chain.Front(); e != nil; e = e.Next() {
var ( var (
l = e.Value.(*link) l = e.Value.(*link)
...@@ -355,9 +352,9 @@ func (self *ChainManager) TestChain(chain *BlockChain) (i int, err error) { ...@@ -355,9 +352,9 @@ func (self *ChainManager) TestChain(chain *BlockChain) (i int, err error) {
} }
if td.Cmp(self.TD) <= 0 { if td.Cmp(self.TD) <= 0 {
err = fmt.Errorf("incoming chain has a lower or equal TD (%v <= %v)", td, self.TD) err = &TDError{td, self.TD}
return return
} }
return i, nil return
} }
...@@ -114,3 +114,15 @@ func IsOutOfGasErr(err error) bool { ...@@ -114,3 +114,15 @@ func IsOutOfGasErr(err error) bool {
return ok return ok
} }
type TDError struct {
a, b *big.Int
}
func (self *TDError) Error() string {
return fmt.Sprintf("incoming chain has a lower or equal TD (%v <= %v)", self.a, self.b)
}
func IsTDError(e error) bool {
_, ok := err.(*TDError)
return ok
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment