diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 24b1269..9ab87eb 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -25,7 +25,7 @@ jobs: cpu: arm64 - os: windows cpu: amd64 - branch: [version-2-0, version-2-2, devel] + branch: [devel] include: - target: os: linux diff --git a/web3/engine_api.nim b/web3/engine_api.nim index 5404db5..02acc1b 100644 --- a/web3/engine_api.nim +++ b/web3/engine_api.nim @@ -38,6 +38,7 @@ createRpcSigsFromNim(RpcClient): proc engine_getPayloadV4(payloadId: Bytes8): GetPayloadV4Response proc engine_getPayloadBodiesByHashV1(hashes: seq[Hash32]): seq[Opt[ExecutionPayloadBodyV1]] proc engine_getPayloadBodiesByRangeV1(start: Quantity, count: Quantity): seq[Opt[ExecutionPayloadBodyV1]] + proc engine_getBlobsV1(blob_versioned_hashes: Bytes32): GetBlobsV1Response # https://github.com/ethereum/execution-apis/blob/9301c0697e4c7566f0929147112f6d91f65180f6/src/engine/common.md proc engine_exchangeCapabilities(methods: seq[string]): seq[string] @@ -107,6 +108,13 @@ template getPayload*( payloadId: Bytes8): Future[GetPayloadV4Response] = engine_getPayloadV4(rpcClient, payloadId) +template getBlobs*( + rpcClient: RpcClient, + T: type GetBlobsV1Response, + blob_versioned_hashes: Bytes32): + Future[GetBlobsV1Response] = + engine_getBlobsV1(rpcClient, blob_versioned_hashes) + template newPayload*( rpcClient: RpcClient, payload: ExecutionPayloadV1): Future[PayloadStatusV1] = diff --git a/web3/engine_api_types.nim b/web3/engine_api_types.nim index bb08d3e..1e86646 100644 --- a/web3/engine_api_types.nim +++ b/web3/engine_api_types.nim @@ -127,6 +127,10 @@ type proofs*: seq[KzgProof] blobs*: seq[Blob] + BlobAndProofV1* = object + blob*: Blob + proof*: KzgProof + # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/shanghai.md#executionpayloadbodyv1 # For optional withdrawals field, see: # https://github.com/ethereum/execution-apis/blob/v1.0.0-beta.4/src/engine/shanghai.md#engine_getpayloadbodiesbyhashv1 @@ -223,6 +227,9 @@ type shouldOverrideBuilder*: bool executionRequests*: seq[seq[byte]] + GetBlobsV1Response* = object + blobAndProof*: BlobAndProofV1 + SomeGetPayloadResponse* = ExecutionPayloadV1 | GetPayloadV2Response |