eth/catalyst: make getPayloadBodiesByRange take hex inputs (#26624)
Co-authored-by: Martin Holst Swende <martin@swende.se> Co-authored-by: Marius van der Wijden <m.vanderwijden@live.de>
This commit is contained in:
		
							parent
							
								
									9842301376
								
							
						
					
					
						commit
						0c9eb8c9a4
					
				| @ -772,18 +772,18 @@ func (api *ConsensusAPI) GetPayloadBodiesByHashV1(hashes []common.Hash) []*engin | ||||
| 
 | ||||
| // GetPayloadBodiesByRangeV1 implements engine_getPayloadBodiesByRangeV1 which allows for retrieval of a range
 | ||||
| // of block bodies by the engine api.
 | ||||
| func (api *ConsensusAPI) GetPayloadBodiesByRangeV1(start, count uint64) ([]*engine.ExecutionPayloadBodyV1, error) { | ||||
| func (api *ConsensusAPI) GetPayloadBodiesByRangeV1(start, count hexutil.Uint64) ([]*engine.ExecutionPayloadBodyV1, error) { | ||||
| 	if start == 0 || count == 0 || count > 1024 { | ||||
| 		return nil, engine.InvalidParams.With(fmt.Errorf("invalid start or count, start: %v count: %v", start, count)) | ||||
| 	} | ||||
| 	// limit count up until current
 | ||||
| 	current := api.eth.BlockChain().CurrentBlock().NumberU64() | ||||
| 	end := start + count | ||||
| 	if end > current { | ||||
| 		end = current | ||||
| 	last := uint64(start) + uint64(count) - 1 | ||||
| 	if last > current { | ||||
| 		last = current | ||||
| 	} | ||||
| 	var bodies []*engine.ExecutionPayloadBodyV1 | ||||
| 	for i := start; i < end; i++ { | ||||
| 	bodies := make([]*engine.ExecutionPayloadBodyV1, 0, uint64(count)) | ||||
| 	for i := uint64(start); i <= last; i++ { | ||||
| 		block := api.eth.BlockChain().GetBlockByNumber(i) | ||||
| 		bodies = append(bodies, getBody(block)) | ||||
| 	} | ||||
|  | ||||
| @ -1311,9 +1311,14 @@ func TestGetBlockBodiesByRange(t *testing.T) { | ||||
| 
 | ||||
| 	tests := []struct { | ||||
| 		results []*types.Body | ||||
| 		start   uint64 | ||||
| 		count   uint64 | ||||
| 		start   hexutil.Uint64 | ||||
| 		count   hexutil.Uint64 | ||||
| 	}{ | ||||
| 		{ | ||||
| 			results: []*types.Body{blocks[9].Body()}, | ||||
| 			start:   10, | ||||
| 			count:   1, | ||||
| 		}, | ||||
| 		// Genesis
 | ||||
| 		{ | ||||
| 			results: []*types.Body{blocks[0].Body()}, | ||||
| @ -1334,14 +1339,25 @@ func TestGetBlockBodiesByRange(t *testing.T) { | ||||
| 		}, | ||||
| 		// unavailable block
 | ||||
| 		{ | ||||
| 			results: []*types.Body{blocks[18].Body()}, | ||||
| 			results: []*types.Body{blocks[18].Body(), blocks[19].Body()}, | ||||
| 			start:   19, | ||||
| 			count:   3, | ||||
| 		}, | ||||
| 		// after range
 | ||||
| 		// unavailable block
 | ||||
| 		{ | ||||
| 			results: []*types.Body{blocks[19].Body()}, | ||||
| 			start:   20, | ||||
| 			count:   2, | ||||
| 		}, | ||||
| 		{ | ||||
| 			results: []*types.Body{blocks[19].Body()}, | ||||
| 			start:   20, | ||||
| 			count:   1, | ||||
| 		}, | ||||
| 		// whole range unavailable
 | ||||
| 		{ | ||||
| 			results: make([]*types.Body, 0), | ||||
| 			start:   20, | ||||
| 			start:   22, | ||||
| 			count:   2, | ||||
| 		}, | ||||
| 	} | ||||
| @ -1354,11 +1370,11 @@ func TestGetBlockBodiesByRange(t *testing.T) { | ||||
| 		if len(result) == len(test.results) { | ||||
| 			for i, r := range result { | ||||
| 				if !equalBody(test.results[i], r) { | ||||
| 					t.Fatalf("test %v: invalid response: expected %+v got %+v", k, test.results[i], r) | ||||
| 					t.Fatalf("test %d: invalid response: expected \n%+v\ngot\n%+v", k, test.results[i], r) | ||||
| 				} | ||||
| 			} | ||||
| 		} else { | ||||
| 			t.Fatalf("invalid length want %v got %v", len(test.results), len(result)) | ||||
| 			t.Fatalf("test %d: invalid length want %v got %v", k, len(test.results), len(result)) | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| @ -1369,8 +1385,8 @@ func TestGetBlockBodiesByRangeInvalidParams(t *testing.T) { | ||||
| 	defer node.Close() | ||||
| 
 | ||||
| 	tests := []struct { | ||||
| 		start uint64 | ||||
| 		count uint64 | ||||
| 		start hexutil.Uint64 | ||||
| 		count hexutil.Uint64 | ||||
| 	}{ | ||||
| 		// Genesis
 | ||||
| 		{ | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user