From 99c07f6d0c590d1543cdd52394c39d2ee26fa20b Mon Sep 17 00:00:00 2001 From: bomanaps Date: Wed, 20 May 2026 18:32:49 +0100 Subject: [PATCH 1/3] eth: add fillTransaction, drop raw field --- src/eth/fill.yaml | 11 ++++++ src/eth/sign.yaml | 18 ++-------- src/schemas/transaction.yaml | 68 ++++++++++++++++++++++++++++++++++++ 3 files changed, 81 insertions(+), 16 deletions(-) create mode 100644 src/eth/fill.yaml diff --git a/src/eth/fill.yaml b/src/eth/fill.yaml new file mode 100644 index 000000000..aad77e44a --- /dev/null +++ b/src/eth/fill.yaml @@ -0,0 +1,11 @@ +- name: eth_fillTransaction + summary: Fills in missing transaction fields to be signed and submitted. + params: + - name: Transaction + required: true + schema: + $ref: '#/components/schemas/GenericTransaction' + result: + name: Transaction result + schema: + $ref: '#/components/schemas/FillTransactionResult' diff --git a/src/eth/sign.yaml b/src/eth/sign.yaml index 5ee2fa08d..7513fd5cc 100644 --- a/src/eth/sign.yaml +++ b/src/eth/sign.yaml @@ -31,20 +31,6 @@ schema: $ref: '#/components/schemas/GenericTransaction' result: - name: Encoded transaction + name: Transaction result schema: - $ref: '#/components/schemas/bytes' - examples: - - name: eth_signTransaction example - params: - - name: Transaction - value: - data: '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' - from: '0xb60e8dd61c5d32be8058bb8eb970870f07233155' - gas: '0x76c0' - gasPrice: '0x9184e72a000' - to: '0xd46e8dd67c5d32be8058bb8eb970870f07244567' - value: '0x9184e72a' - result: - name: Encoded transaction - value: '0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b' + $ref: '#/components/schemas/SignTransactionResult' diff --git a/src/schemas/transaction.yaml b/src/schemas/transaction.yaml index 78b58859f..069a6e7e0 100644 --- a/src/schemas/transaction.yaml +++ b/src/schemas/transaction.yaml @@ -155,6 +155,33 @@ Transaction4844Unsigned: title: chainId description: Chain ID that this transaction is valid on $ref: '#/components/schemas/uint' +Transaction4844UnsignedWithSidecar: + title: Unsigned 4844 transaction with sidecar + type: object + allOf: + - $ref: '#/components/schemas/Transaction4844Unsigned' + - title: EIP-4844 transaction signature properties. + required: + - blobs + - commitments + - proofs + properties: + blobs: + title: blobs + description: Raw blob data. + type: array + items: + $ref: '#/components/schemas/bytes' + commitments: + title: Blob commitments. + type: array + items: + $ref: '#/components/schemas/bytes' + proofs: + title: Blob proofs. + type: array + items: + $ref: '#/components/schemas/bytes' AccessListEntry: title: Access list entry type: object @@ -550,6 +577,18 @@ GenericTransaction: type: array items: $ref: '#/components/schemas/bytes' + commitments: + title: commitments + description: List of blob commitments as per EIP-4844. + type: array + items: + $ref: '#/components/schemas/bytes' + proofs: + title: proofs + description: List of blob proofs as per EIP-4844. + type: array + items: + $ref: '#/components/schemas/bytes' chainId: title: chainId description: Chain ID that this transaction is valid on. @@ -558,3 +597,32 @@ GenericTransaction: title: authorizationList description: EIP-7702 authorization list $ref: '#/components/schemas/AuthorizationList' +SignTransactionResult: + type: object + title: Encoded and raw signed transaction object. + required: + - raw + - tx + properties: + raw: + title: raw + $ref: '#/components/schemas/byte' + tx: + title: tx + $ref: '#/components/schemas/TransactionSigned' +FilledTransaction: + oneOf: + - $ref: '#/components/schemas/Transaction4844UnsignedWithSidecar' + - $ref: '#/components/schemas/Transaction4844Unsigned' + - $ref: '#/components/schemas/Transaction1559Unsigned' + - $ref: '#/components/schemas/Transaction2930Unsigned' + - $ref: '#/components/schemas/TransactionLegacyUnsigned' +FillTransactionResult: + type: object + title: Filled unsigned transaction object. + required: + - tx + properties: + tx: + title: tx + $ref: '#/components/schemas/FilledTransaction' From 280c3561f322f9295d6ac0f1ca4c0597f13851ae Mon Sep 17 00:00:00 2001 From: bomanaps Date: Sun, 31 May 2026 10:52:14 +0100 Subject: [PATCH 2/3] address review comments --- src/eth/sign.yaml | 15 +++++++++++++++ src/schemas/transaction.yaml | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/eth/sign.yaml b/src/eth/sign.yaml index 7513fd5cc..796df386f 100644 --- a/src/eth/sign.yaml +++ b/src/eth/sign.yaml @@ -34,3 +34,18 @@ name: Transaction result schema: $ref: '#/components/schemas/SignTransactionResult' + examples: + - name: eth_signTransaction example + params: + - name: Transaction + value: + data: '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' + from: '0xb60e8dd61c5d32be8058bb8eb970870f07233155' + gas: '0x76c0' + gasPrice: '0x9184e72a000' + to: '0xd46e8dd67c5d32be8058bb8eb970870f07244567' + value: '0x9184e72a' + result: + name: Transaction result + value: + raw: '0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b' diff --git a/src/schemas/transaction.yaml b/src/schemas/transaction.yaml index 069a6e7e0..832caa0a7 100644 --- a/src/schemas/transaction.yaml +++ b/src/schemas/transaction.yaml @@ -606,12 +606,13 @@ SignTransactionResult: properties: raw: title: raw - $ref: '#/components/schemas/byte' + $ref: '#/components/schemas/bytes' tx: title: tx $ref: '#/components/schemas/TransactionSigned' FilledTransaction: oneOf: + - $ref: '#/components/schemas/Transaction7702Unsigned' - $ref: '#/components/schemas/Transaction4844UnsignedWithSidecar' - $ref: '#/components/schemas/Transaction4844Unsigned' - $ref: '#/components/schemas/Transaction1559Unsigned' From 00eba3941bc2cad39bc4797e474048244e19ce1f Mon Sep 17 00:00:00 2001 From: bomanaps Date: Tue, 2 Jun 2026 14:56:27 +0100 Subject: [PATCH 3/3] address remaining review comments --- src/eth/sign.yaml | 21 +++++++++++++++++---- src/schemas/transaction.yaml | 3 ++- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/src/eth/sign.yaml b/src/eth/sign.yaml index 796df386f..807c9e9f8 100644 --- a/src/eth/sign.yaml +++ b/src/eth/sign.yaml @@ -39,13 +39,26 @@ params: - name: Transaction value: - data: '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' - from: '0xb60e8dd61c5d32be8058bb8eb970870f07233155' + from: '0x9d8a62f656a8d1615c1294fd71e9cfb3e4855a4f' + nonce: '0x9' + to: '0xd46e8dd67c5d32be8058bb8eb970870f07244567' gas: '0x76c0' gasPrice: '0x9184e72a000' - to: '0xd46e8dd67c5d32be8058bb8eb970870f07244567' value: '0x9184e72a' + input: '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' result: name: Transaction result value: - raw: '0xa3f20717a250c2b0b729b7e5becbff67fdaef7e0699da4de7ca5895b02a170a12d887fd3b17bfdce3481f10bea41f45ba9f709d39ce8325427b57afcfc994cee1b' + raw: '0xf892098609184e72a0008276c094d46e8dd67c5d32be8058bb8eb970870f07244567849184e72aa9d46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f07244567526a0839ebaab7774ffdae60d418fc8b4192d2cb861ac31acbb5fef26027d1b8f10aea015396a78493395691c10fccc33ec13f2eeb96a3ba2b4ca1652c91bb2b348d12b' + tx: + type: '0x0' + chainId: '0x1' + nonce: '0x9' + to: '0xd46e8dd67c5d32be8058bb8eb970870f07244567' + gas: '0x76c0' + gasPrice: '0x9184e72a000' + value: '0x9184e72a' + input: '0xd46e8dd67c5d32be8d46e8dd67c5d32be8058bb8eb970870f072445675058bb8eb970870f072445675' + v: '0x26' + r: '0x839ebaab7774ffdae60d418fc8b4192d2cb861ac31acbb5fef26027d1b8f10ae' + s: '0x15396a78493395691c10fccc33ec13f2eeb96a3ba2b4ca1652c91bb2b348d12b' diff --git a/src/schemas/transaction.yaml b/src/schemas/transaction.yaml index 832caa0a7..5f0f5ffd7 100644 --- a/src/schemas/transaction.yaml +++ b/src/schemas/transaction.yaml @@ -179,6 +179,7 @@ Transaction4844UnsignedWithSidecar: $ref: '#/components/schemas/bytes' proofs: title: Blob proofs. + description: Pre-PeerDAS this contains one KZG proof per blob (length == len(blobs)). Post-PeerDAS this contains cell proofs with length == 128 * len(blobs). type: array items: $ref: '#/components/schemas/bytes' @@ -585,7 +586,7 @@ GenericTransaction: $ref: '#/components/schemas/bytes' proofs: title: proofs - description: List of blob proofs as per EIP-4844. + description: List of blob proofs. Pre-PeerDAS this contains one KZG proof per blob (length == len(blobs)). Post-PeerDAS this contains cell proofs with length == 128 * len(blobs). type: array items: $ref: '#/components/schemas/bytes'