Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -247,7 +247,7 @@ private async Task<IReadOnlyList<ExecutionPayload>> ProduceBranchV4(IEngineRpcMo
ExecutionPayloadV3? getPayloadResult = await BuildAndGetPayloadOnBranchV4(rpc, chain, parentHeader,
parentBlock.Timestamp + 12,
random ?? TestItem.KeccakA, Address.Zero);
PayloadStatusV1 payloadStatusResponse = (await rpc.engine_newPayloadV4(getPayloadResult, [], Keccak.Zero, executionRequests: withRequests ? ExecutionRequestsProcessorMock.Requests : new byte[][] { [], [], [] })).Data;
PayloadStatusV1 payloadStatusResponse = (await rpc.engine_newPayloadV4(getPayloadResult, [], Keccak.Zero, executionRequests: withRequests ? ExecutionRequestsProcessorMock.Requests : new byte[][] { })).Data;
payloadStatusResponse.Status.Should().Be(PayloadStatus.Valid);
if (setHead)
{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,29 @@ public ValidationResult ValidateParams(IReleaseSpec spec, int version, out strin
if (ExecutionRequests.Length > ExecutionRequestExtensions.MaxRequestsCount)
{
error = $"Execution requests must have less than {ExecutionRequestExtensions.MaxRequestsCount} items";
return ValidationResult.Invalid;
return ValidationResult.Fail;
}

// verification of the requests
for (int i = 0; i < ExecutionRequests.Length; i++)
{
if (ExecutionRequests[i] == null || ExecutionRequests[i].Length <= 1)
{
error = "Execution request data must be longer than 1 byte";
return ValidationResult.Fail;
}

if (i > 0 && ExecutionRequests[i][0] <= ExecutionRequests[i - 1][0])
{
error = "Execution requests must be ordered by request_type in ascending order";
return ValidationResult.Fail;
}

if (ExecutionRequests.Skip(i + 1).Any(req => req != null && req[0] == ExecutionRequests[i][0]))
{
error = "Execution requests must not contain duplicate request_type";
return ValidationResult.Fail;
}
}

}
Expand Down