Enhance config init
This commit is contained in:
parent
8659671381
commit
47465acf13
|
@ -3,6 +3,7 @@ package config
|
|||
import (
|
||||
"bytes"
|
||||
"fmt"
|
||||
"math"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
|
@ -126,6 +127,14 @@ func (cfg *Config) init() error {
|
|||
if len(bridge.Foreign.ErcToNativeTokens) == 0 {
|
||||
return fmt.Errorf("empty foreign token address list in ERC_TO_NATIVE mode")
|
||||
}
|
||||
for i, tokenCfg := range bridge.Foreign.ErcToNativeTokens {
|
||||
if tokenCfg.StartBlock == 0 {
|
||||
bridge.Foreign.ErcToNativeTokens[i].StartBlock = bridge.Foreign.StartBlock
|
||||
}
|
||||
if tokenCfg.EndBlock == 0 {
|
||||
bridge.Foreign.ErcToNativeTokens[i].EndBlock = math.MaxUint32
|
||||
}
|
||||
}
|
||||
case BridgeModeArbitraryMessage:
|
||||
default:
|
||||
bridge.BridgeMode = BridgeModeArbitraryMessage
|
||||
|
@ -152,10 +161,7 @@ func (cfg *BridgeSideConfig) ContractAddresses(fromBlock, toBlock uint) []common
|
|||
func (cfg *BridgeSideConfig) ErcToNativeTokenAddresses(fromBlock, toBlock uint) []common.Address {
|
||||
addresses := make([]common.Address, 0, len(cfg.ErcToNativeTokens))
|
||||
for _, token := range cfg.ErcToNativeTokens {
|
||||
if token.StartBlock > 0 && toBlock < token.StartBlock {
|
||||
continue
|
||||
}
|
||||
if token.EndBlock > 0 && fromBlock > token.EndBlock {
|
||||
if toBlock < token.StartBlock || fromBlock > token.EndBlock {
|
||||
continue
|
||||
}
|
||||
addresses = append(addresses, token.Address)
|
||||
|
|
|
@ -261,10 +261,7 @@ func (m *ContractMonitor) buildFilterQueries(blocksRange *BlocksRange) []ethereu
|
|||
queries = append(queries, q)
|
||||
if m.bridgeCfg.BridgeMode == config.BridgeModeErcToNative {
|
||||
for _, token := range m.cfg.ErcToNativeTokens {
|
||||
if token.StartBlock > 0 && blocksRange.To < token.StartBlock {
|
||||
continue
|
||||
}
|
||||
if token.EndBlock > 0 && blocksRange.From > token.EndBlock {
|
||||
if blocksRange.To < token.StartBlock || blocksRange.From > token.EndBlock {
|
||||
continue
|
||||
}
|
||||
q = ethereum.FilterQuery{
|
||||
|
@ -276,10 +273,10 @@ func (m *ContractMonitor) buildFilterQueries(blocksRange *BlocksRange) []ethereu
|
|||
if blocksRange.Topic != nil {
|
||||
q.Topics[0] = []common.Hash{*blocksRange.Topic}
|
||||
}
|
||||
if token.StartBlock > 0 && token.StartBlock > blocksRange.From {
|
||||
if token.StartBlock > blocksRange.From {
|
||||
q.FromBlock = big.NewInt(int64(token.StartBlock))
|
||||
}
|
||||
if token.EndBlock > 0 && token.EndBlock < blocksRange.To {
|
||||
if token.EndBlock < blocksRange.To {
|
||||
q.ToBlock = big.NewInt(int64(token.EndBlock))
|
||||
}
|
||||
queries = append(queries, q)
|
||||
|
|
Loading…
Reference in New Issue