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