Fix the versioning of v4 requests

This commit is contained in:
Pawan Dhananjay
2024-05-07 14:42:51 -07:00
parent befaf09aeb
commit fffa130aa7

View File

@@ -937,7 +937,6 @@ impl HttpJsonRpc {
| ForkName::Altair | ForkName::Altair
| ForkName::Bellatrix | ForkName::Bellatrix
| ForkName::Capella | ForkName::Capella
// TODO(pawan): make sure electra should not support getpayloadv3
| ForkName::Electra => Err(Error::UnsupportedForkVariant(format!( | ForkName::Electra => Err(Error::UnsupportedForkVariant(format!(
"called get_payload_v3 with {}", "called get_payload_v3 with {}",
fork_name fork_name
@@ -953,16 +952,6 @@ impl HttpJsonRpc {
let params = json!([JsonPayloadIdRequest::from(payload_id)]); let params = json!([JsonPayloadIdRequest::from(payload_id)]);
match fork_name { match fork_name {
ForkName::Deneb => {
let response: JsonGetPayloadResponseV3<E> = self
.rpc_request(
ENGINE_GET_PAYLOAD_V4,
params,
ENGINE_GET_PAYLOAD_TIMEOUT * self.execution_timeout_multiplier,
)
.await?;
Ok(JsonGetPayloadResponse::V3(response).into())
}
ForkName::Electra => { ForkName::Electra => {
let response: JsonGetPayloadResponseV4<E> = self let response: JsonGetPayloadResponseV4<E> = self
.rpc_request( .rpc_request(
@@ -973,9 +962,14 @@ impl HttpJsonRpc {
.await?; .await?;
Ok(JsonGetPayloadResponse::V4(response).into()) Ok(JsonGetPayloadResponse::V4(response).into())
} }
ForkName::Base | ForkName::Altair | ForkName::Bellatrix | ForkName::Capella => Err( ForkName::Base
Error::UnsupportedForkVariant(format!("called get_payload_v4 with {}", fork_name)), | ForkName::Altair
), | ForkName::Bellatrix
| ForkName::Capella
| ForkName::Deneb => Err(Error::UnsupportedForkVariant(format!(
"called get_payload_v4 with {}",
fork_name
))),
} }
} }
@@ -1235,11 +1229,11 @@ impl HttpJsonRpc {
} }
} }
NewPayloadRequest::Electra(new_payload_request_electra) => { NewPayloadRequest::Electra(new_payload_request_electra) => {
if engine_capabilities.new_payload_v3 { if engine_capabilities.new_payload_v4 {
self.new_payload_v4_electra(new_payload_request_electra) self.new_payload_v4_electra(new_payload_request_electra)
.await .await
} else { } else {
Err(Error::RequiredMethodUnsupported("engine_newPayloadV3")) Err(Error::RequiredMethodUnsupported("engine_newPayloadV4"))
} }
} }
} }
@@ -1263,13 +1257,18 @@ impl HttpJsonRpc {
Err(Error::RequiredMethodUnsupported("engine_getPayload")) Err(Error::RequiredMethodUnsupported("engine_getPayload"))
} }
} }
ForkName::Deneb | ForkName::Electra => { ForkName::Deneb => {
if engine_capabilities.get_payload_v4 { if engine_capabilities.get_payload_v3 {
self.get_payload_v4(fork_name, payload_id).await
} else if engine_capabilities.get_payload_v3 {
self.get_payload_v3(fork_name, payload_id).await self.get_payload_v3(fork_name, payload_id).await
} else { } else {
Err(Error::RequiredMethodUnsupported("engine_getPayloadV3")) Err(Error::RequiredMethodUnsupported("engine_getPayloadv3"))
}
}
ForkName::Electra => {
if engine_capabilities.get_payload_v4 {
self.get_payload_v4(fork_name, payload_id).await
} else {
Err(Error::RequiredMethodUnsupported("engine_getPayloadv4"))
} }
} }
ForkName::Base | ForkName::Altair => Err(Error::UnsupportedForkVariant(format!( ForkName::Base | ForkName::Altair => Err(Error::UnsupportedForkVariant(format!(