Community version of EthTx transaction decoder
https://ethtx.info
This project represents usage of EthTx decoding library in form of a website. If you are looking for implementation of the said decoding functionalities, please refer to EthTx repository.
Here is a list of steps to recreate local environment on Ubuntu distribution.
-
Install needed packages using
apt
apt install docker-compose python3-pip pipenv make
-
Run
pipenv install
. This will create newvenv
with all required packages installed, includingethtx
library -
Copy
.env_sample
to.env
and fill required field according to description
# Proper nodes are required to run ethtx, provide connection strings for chains which will be used.
MAINNET_NODE_URL=https://geth-erigon-node:8545
# KOVAN_NODE_URL=
# RINKEBY_NODE_URL=
# EthTx supports multiple nodes, if one is unavailable, it will use others. You only need to specify them with a comma
# Example: MAINNET_NODE_URL=https://geth-erigon-node:8545,https://geth1-erigon-node:8545
# Etherscan API is used to get contract source code, required for decoding process
# You can get free key here https://etherscan.io/apis
ETHERSCAN_KEY=
# Optional. Those represent data required for connecting to mongoDB. It's used for caching semantics
# used in decoding process. But, it's not neccessary for running, If you don't want to use permanent
# db or setup mongo, leave those values, mongomock package is used to simulate in-memory mongo.
MONGO_CONNECTION_STRING=mongomock://localhost
MONGODB_DB=ethtx
# Optional. Credentials for accessing semantics editor page, available under '/semantics/<str:address>'
ETHTX_ADMIN_USERNAME=admin
ETHTX_ADMIN_PASSWORD=admin
# Optional. Api key used for exposing
API_KEY=
# Optional. Valid values are ['production', 'staging', 'development']. Those mainly
# dictate what options are used for flask debugging and logging
ENV=development
- Run
pipenv run python3 wsgi.py
formake run-local
. This will setup new server on host 0.0.0.0 port 5000. - Now
ethtx_ce
should be accessible through link http://localhost:5000
Use can also provided docker-compose
for running this locally:
docker-compose up
Note, this also need proper .env
file to function properly.
For proper functioning, .env
file is required containing all database and 3rd party providers configuration.
.env_sample
file is provided in repository with example values.
Parameters [CHAIN_ID]_NODE_URL
should hold valid urls to ethereum nodes; Parameter ETHERSCAN_KEY
should be equal to
Etherscan API key assigned to user.
The EthTx APIs are provided as a community service and without warranty, so please use what you need and no more. We
support GET
requests.
-
Decode transaction
Returns decoded EthTx transaction, based on
chain_id
and transaction hashtx_hash
- URL
/api/transactions/CHAIN_ID/TX_HASH
- Method
GET
- Authorization
- Required:
header:
x-api-key=[string]
OR query parameter:api_key=[string]
- Required:
header:
- URL Params
- Required:
chain_id=[string]
,tx_hash=[string]
- Required:
- Example
curl --location --request GET 'http://0.0.0.0:5000/api/transactions/dsad/asd' \ --header 'x-api-key: 05a2212d-9985-48d2-b54f-0fbc5ba28766'
- URL
-
Get Raw Semantic
Returns raw semantic based on
chain_id
and sender/receiveraddress
- URL
/api/semantics/CHAIN_ID/ADDRESS
- Method
GET
- Authorization
- Required:
header:
x-api-key=[string]
OR query parameter:api_key=[string]
- Required:
header:
- URL Params
- Required:
chain_id=[string]
,address=[string]
- Required:
- Example
curl --location --request GET 'http://0.0.0.0:5000/api/semantics/dsad/asd' \ --header 'x-api-key: 05a2212d-9985-48d2-b54f-0fbc5ba28766'
- URL