This module is a standalone HTTP service enabling to submit Ethereum transactions. Supported transactions are the following:
- legacy Ethereum transactions
- EIP-1559 Ethereum transactions
This component aims to help with the development of EIP-1559 since there are no wallet providers nor web3
libraries supporting new format transactions.
Don't use it in production and use only debug private keys.
The HTTP service accepts non signed Ethereum transactions and submit them to a configured Ethereum client. The process is the following:
- receive Ethereum transactions parameter through the REST API
- encode transactions according to RLP definition
- sign transactions
- submit transactions to the Ethereum client using
eth_sendRawTransaction
RPC endpoint
- Java 11
./gradlew assemble
java -jar java -jar build/libs/tx-api-gw.jar --rpc-url=http://127.0.0.1:8545
OR
./gradlew bootRun --args="--rpc-url=http://127.0.0.1:8545"
We use Google's Java coding conventions for the project. To reformat code, run:
./gradlew spotlessApply
Code style is checked automatically during a build.
Go to http://localhost:8080 to see the API definition in a web browser.
API docs specification are available at http://localhost:8080/v3/api-docs
Online version of the API can be found at http://eip1559-tx.ops.pegasys.tech:8080
docker build -t $IMAGE_NAME .
./gradlew bootBuildImage --imageName=$IMAGE_NAME
docker run -p 8080:8080 -t $IMAGE_NAME
docker run -p 8080:8080 abdelhamidbakhtaconsensys/tx-api-gw:latest