From ac93b9a99310fd9f1a63255cfde9df47bd63263f Mon Sep 17 00:00:00 2001 From: jangko Date: Tue, 28 May 2024 12:39:36 +0700 Subject: [PATCH] Add engine_getClientVersionV1 and ClientVersionV1 --- web3/conversions.nim | 1 + web3/engine_api.nim | 11 ++++++++++- web3/engine_api_types.nim | 7 +++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/web3/conversions.nim b/web3/conversions.nim index 3c1bb67..a3fb5bd 100644 --- a/web3/conversions.nim +++ b/web3/conversions.nim @@ -75,6 +75,7 @@ GetPayloadV2Response.useDefaultSerializationIn JrpcConv GetPayloadV2ResponseExact.useDefaultSerializationIn JrpcConv GetPayloadV3Response.useDefaultSerializationIn JrpcConv GetPayloadV4Response.useDefaultSerializationIn JrpcConv +ClientVersionV1.useDefaultSerializationIn JrpcConv #------------------------------------------------------------------------------ # execution_types diff --git a/web3/engine_api.nim b/web3/engine_api.nim index 90f501b..ec69314 100644 --- a/web3/engine_api.nim +++ b/web3/engine_api.nim @@ -44,6 +44,9 @@ createRpcSigsFromNim(RpcClient): # https://github.com/ethereum/execution-apis/blob/9301c0697e4c7566f0929147112f6d91f65180f6/src/engine/common.md proc engine_exchangeCapabilities(methods: seq[string]): seq[string] + # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/identification.md#engine_getclientversionv1 + proc engine_getClientVersionV1(version: ClientVersionV1): seq[ClientVersionV1] + # convenience apis proc engine_newPayloadV1(payload: ExecutionPayload): PayloadStatusV1 proc engine_newPayloadV2(payload: ExecutionPayload): PayloadStatusV1 @@ -134,4 +137,10 @@ template newPayload*( template exchangeCapabilities*( rpcClient: RpcClient, methods: seq[string]): Future[seq[string]] = - engine_exchangeCapabilities(rpcClient, methods) \ No newline at end of file + engine_exchangeCapabilities(rpcClient, methods) + +template getClientVersion*( + rpcClient: RpcClient, + version: ClientVersionV1): Future[seq[ClientVersionV1]] = + engine_getClientVersionV1(rpcClient, version) + \ No newline at end of file diff --git a/web3/engine_api_types.nim b/web3/engine_api_types.nim index 91332c4..2f75ef9 100644 --- a/web3/engine_api_types.nim +++ b/web3/engine_api_types.nim @@ -265,6 +265,13 @@ type GetPayloadV3Response | GetPayloadV4Response + # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/identification.md#engine_getclientversionv1 + ClientVersionV1* = object + code*: string # e.g. NB or BU + name*: string # Human-readable name of the client, e.g. Lighthouse or go-ethereum + version*: string # the version string of the current implementation e.g. v4.6.0 or 1.0.0-alpha.1 or 1.0.0+20130313144700 + commit*: FixedBytes[4] + const # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.3/src/engine/common.md#errors engineApiParseError* = -32700