microservice-ethereum-application-server

command
v0.0.0-...-2ac5be2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2024 License: GPL-3.0 Imports: 15 Imported by: 0

README

microservice-ethereum-application-server

Receives and processes logs for supported applications, then returns them to the worker with additional information attached.

Supported contracts:

  • Uniswap V2
  • Balancer V2 (Swap)
  • OneInch
    • LP V1
    • LP V2
    • Fixed Rate Swap
    • Mooniswap

Integrating a new application

Update the list above with the name of the application! Then, there are two files/folders that need to be updated:

  • common/ethereum/applications/applications.go

Add Application<name> to the Application Enum, and any relevant const values such as log topics.

Update GetApplicationFee and GetApplicationTransferParties to include the new application.

Expand the switch case in ClassifyApplicationLogTopic to determine whether a given log corresponds to the application.

  • common/ethereum/applications/<application name>

Should contain functions necessary for supporting the application (finding fees, contract calls/ABI, etc.).

Environment variables

Name Description
FLU_WORKER_ID Worker ID used to identify the application in logging and to the AMQP queue.
FLU_DEBUG Toggle debug messages produced by any application using the debug logger.
FLU_AMQP_QUEUE_ADDR AMQP queue address connected to to receive and send messages down.
FLU_SENTRY_URL String that may be optionally set with a Sentry URL to log app.
FLU_REDIS_ADDR Hostname to connect to for the Redis (state) codebase.
FLU_ETHEREUM_CONTRACT_ADDR Address of the application contract.
FLU_ETHEREUM_HTTP_URL URL to use to chat to an Ethereum RPC node.
FLU_ETHEREUM_UNDERLYING_TOKEN_NAME Name of underlying token. Used to create user actions.
FLU_ETHEREUM_UNDERLYING_TOKEN_DECIMALS Underlying token decimals in place (18 for DAI, 6 for USDT and USDC, etc).
FLU_ETHEREUM_APPLICATION_CONTRACTS List of supported application contracts to calculate fees from.
FLU_ETHEREUM_UTILITY_CONTRACTS List of supported utility contracts tag transactions for utility mining.
FLU_ETHEREUM_WORK_QUEUE Name of queue to send server work down.
FLU_ETHEREUM_NETWORK Id of underlying network, used to create user actions.

Building

make build

Testing

make test

Docker

make docker

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL