mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2024-12-22 11:32:09 +00:00
chore(execution): Clean up unreachable code; use new(big.Int) instead of big.NewInt(0) (#13715)
* refactor with builtin min/max * use new(big.Int) for more efficiency
This commit is contained in:
parent
9d3af41acb
commit
800f3b572f
@ -110,7 +110,7 @@ func (s *Service) BlockByTimestamp(ctx context.Context, time uint64) (*types.Hea
|
|||||||
return nil, errors.Wrap(errBlockTimeTooLate, fmt.Sprintf("(%d > %d)", time, latestBlkTime))
|
return nil, errors.Wrap(errBlockTimeTooLate, fmt.Sprintf("(%d > %d)", time, latestBlkTime))
|
||||||
}
|
}
|
||||||
// Initialize a pointer to eth1 chain's history to start our search from.
|
// Initialize a pointer to eth1 chain's history to start our search from.
|
||||||
cursorNum := big.NewInt(0).SetUint64(latestBlkHeight)
|
cursorNum := new(big.Int).SetUint64(latestBlkHeight)
|
||||||
cursorTime := latestBlkTime
|
cursorTime := latestBlkTime
|
||||||
|
|
||||||
var numOfBlocks uint64
|
var numOfBlocks uint64
|
||||||
@ -156,15 +156,15 @@ func (s *Service) BlockByTimestamp(ctx context.Context, time uint64) (*types.Hea
|
|||||||
return s.retrieveHeaderInfo(ctx, cursorNum.Uint64())
|
return s.retrieveHeaderInfo(ctx, cursorNum.Uint64())
|
||||||
}
|
}
|
||||||
if cursorTime > time {
|
if cursorTime > time {
|
||||||
return s.findMaxTargetEth1Block(ctx, big.NewInt(0).SetUint64(estimatedBlk), time)
|
return s.findMaxTargetEth1Block(ctx, new(big.Int).SetUint64(estimatedBlk), time)
|
||||||
}
|
}
|
||||||
return s.findMinTargetEth1Block(ctx, big.NewInt(0).SetUint64(estimatedBlk), time)
|
return s.findMinTargetEth1Block(ctx, new(big.Int).SetUint64(estimatedBlk), time)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Performs a search to find a target eth1 block which is earlier than or equal to the
|
// Performs a search to find a target eth1 block which is earlier than or equal to the
|
||||||
// target time. This method is used when head.time > targetTime
|
// target time. This method is used when head.time > targetTime
|
||||||
func (s *Service) findMaxTargetEth1Block(ctx context.Context, upperBoundBlk *big.Int, targetTime uint64) (*types.HeaderInfo, error) {
|
func (s *Service) findMaxTargetEth1Block(ctx context.Context, upperBoundBlk *big.Int, targetTime uint64) (*types.HeaderInfo, error) {
|
||||||
for bn := upperBoundBlk; ; bn = big.NewInt(0).Sub(bn, big.NewInt(1)) {
|
for bn := upperBoundBlk; ; bn = new(big.Int).Sub(bn, big.NewInt(1)) {
|
||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
return nil, ctx.Err()
|
return nil, ctx.Err()
|
||||||
}
|
}
|
||||||
@ -181,7 +181,7 @@ func (s *Service) findMaxTargetEth1Block(ctx context.Context, upperBoundBlk *big
|
|||||||
// Performs a search to find a target eth1 block which is just earlier than or equal to the
|
// Performs a search to find a target eth1 block which is just earlier than or equal to the
|
||||||
// target time. This method is used when head.time < targetTime
|
// target time. This method is used when head.time < targetTime
|
||||||
func (s *Service) findMinTargetEth1Block(ctx context.Context, lowerBoundBlk *big.Int, targetTime uint64) (*types.HeaderInfo, error) {
|
func (s *Service) findMinTargetEth1Block(ctx context.Context, lowerBoundBlk *big.Int, targetTime uint64) (*types.HeaderInfo, error) {
|
||||||
for bn := lowerBoundBlk; ; bn = big.NewInt(0).Add(bn, big.NewInt(1)) {
|
for bn := lowerBoundBlk; ; bn = new(big.Int).Add(bn, big.NewInt(1)) {
|
||||||
if ctx.Err() != nil {
|
if ctx.Err() != nil {
|
||||||
return nil, ctx.Err()
|
return nil, ctx.Err()
|
||||||
}
|
}
|
||||||
@ -201,7 +201,7 @@ func (s *Service) findMinTargetEth1Block(ctx context.Context, lowerBoundBlk *big
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *Service) retrieveHeaderInfo(ctx context.Context, bNum uint64) (*types.HeaderInfo, error) {
|
func (s *Service) retrieveHeaderInfo(ctx context.Context, bNum uint64) (*types.HeaderInfo, error) {
|
||||||
bn := big.NewInt(0).SetUint64(bNum)
|
bn := new(big.Int).SetUint64(bNum)
|
||||||
exists, info, err := s.headerCache.HeaderInfoByHeight(bn)
|
exists, info, err := s.headerCache.HeaderInfoByHeight(bn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
@ -298,9 +298,7 @@ func (s *Service) processPastLogs(ctx context.Context) error {
|
|||||||
// Start from the deployment block if our last requested block
|
// Start from the deployment block if our last requested block
|
||||||
// is behind it. This is as the deposit logs can only start from the
|
// is behind it. This is as the deposit logs can only start from the
|
||||||
// block of the deployment of the deposit contract.
|
// block of the deployment of the deposit contract.
|
||||||
if deploymentBlock > currentBlockNum {
|
currentBlockNum = max(currentBlockNum, deploymentBlock)
|
||||||
currentBlockNum = deploymentBlock
|
|
||||||
}
|
|
||||||
// To store all blocks.
|
// To store all blocks.
|
||||||
headersMap := make(map[uint64]*types.HeaderInfo)
|
headersMap := make(map[uint64]*types.HeaderInfo)
|
||||||
rawLogCount, err := s.depositContractCaller.GetDepositCount(&bind.CallOpts{})
|
rawLogCount, err := s.depositContractCaller.GetDepositCount(&bind.CallOpts{})
|
||||||
@ -384,15 +382,13 @@ func (s *Service) processBlockInBatch(ctx context.Context, currentBlockNum uint6
|
|||||||
end := currentBlockNum + batchSize
|
end := currentBlockNum + batchSize
|
||||||
// Appropriately bound the request, as we do not
|
// Appropriately bound the request, as we do not
|
||||||
// want request blocks beyond the current follow distance.
|
// want request blocks beyond the current follow distance.
|
||||||
if end > latestFollowHeight {
|
end = min(end, latestFollowHeight)
|
||||||
end = latestFollowHeight
|
|
||||||
}
|
|
||||||
query := ethereum.FilterQuery{
|
query := ethereum.FilterQuery{
|
||||||
Addresses: []common.Address{
|
Addresses: []common.Address{
|
||||||
s.cfg.depositContractAddr,
|
s.cfg.depositContractAddr,
|
||||||
},
|
},
|
||||||
FromBlock: big.NewInt(0).SetUint64(start),
|
FromBlock: new(big.Int).SetUint64(start),
|
||||||
ToBlock: big.NewInt(0).SetUint64(end),
|
ToBlock: new(big.Int).SetUint64(end),
|
||||||
}
|
}
|
||||||
remainingLogs := logCount - uint64(s.lastReceivedMerkleIndex+1)
|
remainingLogs := logCount - uint64(s.lastReceivedMerkleIndex+1)
|
||||||
// only change the end block if the remaining logs are below the required log limit.
|
// only change the end block if the remaining logs are below the required log limit.
|
||||||
@ -400,7 +396,7 @@ func (s *Service) processBlockInBatch(ctx context.Context, currentBlockNum uint6
|
|||||||
withinLimit := remainingLogs < depositLogRequestLimit
|
withinLimit := remainingLogs < depositLogRequestLimit
|
||||||
aboveFollowHeight := end >= latestFollowHeight
|
aboveFollowHeight := end >= latestFollowHeight
|
||||||
if withinLimit && aboveFollowHeight {
|
if withinLimit && aboveFollowHeight {
|
||||||
query.ToBlock = big.NewInt(0).SetUint64(latestFollowHeight)
|
query.ToBlock = new(big.Int).SetUint64(latestFollowHeight)
|
||||||
end = latestFollowHeight
|
end = latestFollowHeight
|
||||||
}
|
}
|
||||||
logs, err := s.httpLogger.FilterLogs(ctx, query)
|
logs, err := s.httpLogger.FilterLogs(ctx, query)
|
||||||
@ -482,11 +478,11 @@ func (s *Service) requestBatchedHeadersAndLogs(ctx context.Context) error {
|
|||||||
}
|
}
|
||||||
for i := s.latestEth1Data.LastRequestedBlock + 1; i <= requestedBlock; i++ {
|
for i := s.latestEth1Data.LastRequestedBlock + 1; i <= requestedBlock; i++ {
|
||||||
// Cache eth1 block header here.
|
// Cache eth1 block header here.
|
||||||
_, err := s.BlockHashByHeight(ctx, big.NewInt(0).SetUint64(i))
|
_, err := s.BlockHashByHeight(ctx, new(big.Int).SetUint64(i))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
err = s.ProcessETH1Block(ctx, big.NewInt(0).SetUint64(i))
|
err = s.ProcessETH1Block(ctx, new(big.Int).SetUint64(i))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
@ -415,14 +415,11 @@ func (s *Service) batchRequestHeaders(startBlock, endBlock uint64) ([]*types.Hea
|
|||||||
requestRange := (endBlock - startBlock) + 1
|
requestRange := (endBlock - startBlock) + 1
|
||||||
elems := make([]gethRPC.BatchElem, 0, requestRange)
|
elems := make([]gethRPC.BatchElem, 0, requestRange)
|
||||||
headers := make([]*types.HeaderInfo, 0, requestRange)
|
headers := make([]*types.HeaderInfo, 0, requestRange)
|
||||||
if requestRange == 0 {
|
|
||||||
return headers, nil
|
|
||||||
}
|
|
||||||
for i := startBlock; i <= endBlock; i++ {
|
for i := startBlock; i <= endBlock; i++ {
|
||||||
header := &types.HeaderInfo{}
|
header := &types.HeaderInfo{}
|
||||||
elems = append(elems, gethRPC.BatchElem{
|
elems = append(elems, gethRPC.BatchElem{
|
||||||
Method: "eth_getBlockByNumber",
|
Method: "eth_getBlockByNumber",
|
||||||
Args: []interface{}{hexutil.EncodeBig(big.NewInt(0).SetUint64(i)), false},
|
Args: []interface{}{hexutil.EncodeBig(new(big.Int).SetUint64(i)), false},
|
||||||
Result: header,
|
Result: header,
|
||||||
Error: error(nil),
|
Error: error(nil),
|
||||||
})
|
})
|
||||||
@ -675,9 +672,7 @@ func (s *Service) cacheBlockHeaders(start, end uint64) error {
|
|||||||
// the allotted limit.
|
// the allotted limit.
|
||||||
endReq -= 1
|
endReq -= 1
|
||||||
}
|
}
|
||||||
if endReq > end {
|
endReq = min(endReq, end)
|
||||||
endReq = end
|
|
||||||
}
|
|
||||||
// We call batchRequestHeaders for its header caching side-effect, so we don't need the return value.
|
// We call batchRequestHeaders for its header caching side-effect, so we don't need the return value.
|
||||||
_, err := s.batchRequestHeaders(startReq, endReq)
|
_, err := s.batchRequestHeaders(startReq, endReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user