fix(wallet)_: reduce block range size for eth_getLogs request for

Sepolia
This commit is contained in:
Ivan Belyakov 2024-05-15 13:33:26 +02:00 committed by IvanBelyakoff
parent c0e922f0af
commit 5be610e653
2 changed files with 36 additions and 37 deletions

View File

@ -14,16 +14,18 @@ const (
type ChainID uint64 type ChainID uint64
const ( const (
UnknownChainID uint64 = 0 UnknownChainID uint64 = 0
EthereumMainnet uint64 = 1 EthereumMainnet uint64 = 1
EthereumGoerli uint64 = 5 EthereumGoerli uint64 = 5
EthereumSepolia uint64 = 11155111 EthereumSepolia uint64 = 11155111
OptimismMainnet uint64 = 10 OptimismMainnet uint64 = 10
OptimismGoerli uint64 = 420 OptimismGoerli uint64 = 420
OptimismSepolia uint64 = 11155420 OptimismSepolia uint64 = 11155420
ArbitrumMainnet uint64 = 42161 ArbitrumMainnet uint64 = 42161
ArbitrumGoerli uint64 = 421613 ArbitrumGoerli uint64 = 421613
ArbitrumSepolia uint64 = 421614 ArbitrumSepolia uint64 = 421614
BinanceChainID uint64 = 56 // obsolete?
BinanceTestChainID uint64 = 97 // obsolete?
) )
type ContractType byte type ContractType byte

View File

@ -47,16 +47,14 @@ const (
var ( var (
// This will work only for binance testnet as mainnet doesn't support // This will work only for binance testnet as mainnet doesn't support
// archival request. // archival request.
binanceChainErc20BatchSize = big.NewInt(5000) binanceChainErc20BatchSize = big.NewInt(5000)
goerliErc20BatchSize = big.NewInt(100000) goerliErc20BatchSize = big.NewInt(100000)
goerliErc20ArbitrumBatchSize = big.NewInt(10000) goerliErc20ArbitrumBatchSize = big.NewInt(10000)
goerliErc20OptimismBatchSize = big.NewInt(10000) goerliErc20OptimismBatchSize = big.NewInt(10000)
erc20BatchSize = big.NewInt(500000) sepoliaErc20BatchSize = big.NewInt(100000)
binancChainID = uint64(56) sepoliaErc20ArbitrumBatchSize = big.NewInt(10000)
goerliChainID = uint64(5) sepoliaErc20OptimismBatchSize = big.NewInt(10000)
goerliArbitrumChainID = uint64(421613) erc20BatchSize = big.NewInt(100000)
goerliOptimismChainID = uint64(420)
binanceTestChainID = uint64(97)
transfersRetryInterval = 5 * time.Second transfersRetryInterval = 5 * time.Second
) )
@ -134,23 +132,26 @@ func (c *erc20HistoricalCommand) Command() async.Command {
} }
func getErc20BatchSize(chainID uint64) *big.Int { func getErc20BatchSize(chainID uint64) *big.Int {
if isBinanceChain(chainID) { switch chainID {
return binanceChainErc20BatchSize case w_common.EthereumSepolia:
} return sepoliaErc20BatchSize
case w_common.OptimismSepolia:
if chainID == goerliChainID { return sepoliaErc20OptimismBatchSize
case w_common.ArbitrumSepolia:
return sepoliaErc20ArbitrumBatchSize
case w_common.EthereumGoerli:
return goerliErc20BatchSize return goerliErc20BatchSize
} case w_common.OptimismGoerli:
if chainID == goerliOptimismChainID {
return goerliErc20OptimismBatchSize return goerliErc20OptimismBatchSize
} case w_common.ArbitrumGoerli:
if chainID == goerliArbitrumChainID {
return goerliErc20ArbitrumBatchSize return goerliErc20ArbitrumBatchSize
case w_common.BinanceChainID:
return binanceChainErc20BatchSize
case w_common.BinanceTestChainID:
return binanceChainErc20BatchSize
default:
return erc20BatchSize
} }
return erc20BatchSize
} }
func (c *erc20HistoricalCommand) Run(ctx context.Context) (err error) { func (c *erc20HistoricalCommand) Run(ctx context.Context) (err error) {
@ -608,10 +609,6 @@ func loadTransfers(ctx context.Context, blockDAO *BlockDAO, db *Database,
return nil return nil
} }
func isBinanceChain(chainID uint64) bool {
return chainID == binancChainID || chainID == binanceTestChainID
}
// Ensure 1 DBHeader per Block Hash // Ensure 1 DBHeader per Block Hash
func uniqueHeaderPerBlockHash(allHeaders []*DBHeader) []*DBHeader { func uniqueHeaderPerBlockHash(allHeaders []*DBHeader) []*DBHeader {
uniqHeadersByHash := map[common.Hash]*DBHeader{} uniqHeadersByHash := map[common.Hash]*DBHeader{}