Skip to content

Eth RPC 1559 support for private transactions #839

@siladu

Description

@siladu

Following #769, this issue is to support 1559 in private transactions via eea_sendTransaction.

Draft PR already underway: #838 #950

A web3j bug was found which prevented EIP-1559 from being decoded which is why this issue was split out:
https://github.com/web3j/web3j/blob/2ad9a8b4b9411de13c6d09e8392a51213d8160f0/eea/src/main/java/org/web3j/protocol/eea/crypto/PrivateTransactionDecoder.java#L35-L39
Although the delegation to TransactionDecoder.decode() covers the 1559 decoding routine, the RlpDecoder.decode() method higher up relies on the all important stripping of the first byte happening before it is called...
final byte[] encodedTx = Arrays.copyOfRange(transaction, 1, transaction.length);

Tasks

  • Add additional fields to EthSendTransactionJsonParameters for maxFeePerGas and maxPriorityFeePerGas
  • Update EeaPrivateTransaction and BesuPrivateTransaction to create 1559 transactions and be used in the encoding
  • Update web3j PrivateTransactionDecoder to work for 1559
  • Integration/Acceptance tests:
    • eea_sendTransaction
      • EeaPrivateTransactionTest
      • 1559 version of SigningEeaSendTransactionIntegrationTest.signSendTransaction for EeaPrivateTransaction
      • 1559 version of SigningEeaSendTransactionIntegrationTest.signSendTransactionWithPrivacyGroupId for BesuPrivateTransaction

Metadata

Metadata

Assignees

No one assigned

    Labels

    TeamCerberusUnder active development by TeamCerberus @Consensys

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions