forked from cerc-io/plugeth
Replaced to return the td and throw a specific error on TD
This commit is contained in:
parent
699dcaf65c
commit
a9db1ee8d4
@ -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) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
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 {
|
|||||||
|
|
||||||
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
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user