You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
Lucas Soriano del Pino 7cb3c4f2c7
Treat InvalidOrderId from maker as Rejected
3 years ago
.cargo Build for aarch64 which is needed for RPi4 3 years ago
.github Bump actions/checkout from 2.3.4 to 2.3.5 3 years ago
cfd_protocol Propose settlement based on the payout curve and current BitMex price 3 years ago
daemon Treat InvalidOrderId from maker as Rejected 3 years ago
docs Sequence diagram blockchain monitoring and cfd actor 3 years ago
frontend Move key to the toplevel child hierarchy elem 3 years ago
.dockerignore Provide dockerfile and build during release 3 years ago
.gitignore Allow application to run on mainnet or testnet 3 years ago
Cargo.lock Print git tag when starting maker/taker 3 years ago
Cargo.toml Use MessageChannel instead of send_to_socket::Actor 3 years ago
Dockerfile Fix docker image build 3 years ago
README.md Update README.md 3 years ago
bors.toml Update bors file to include new ci targets 3 years ago
dprint.json Have dprint format TypeScript and JavaScript files 3 years ago
rust-toolchain.toml Build for aarch64 which is needed for RPi4 3 years ago
start_all.sh Fix startup script 3 years ago

README.md

Project Hermes

Bors enabled

CFD trading on Bitcoin.

Details coming soon.

Quickstart

All the components can be started at once by running the following script:

./start_all.sh

Note: Before first run, you need to run cd frontend; yarn install command to ensure that all dependencies get installed.

The script combines the logs from all binaries inside a single terminal so it might not be ideal for all cases, but it is convenient for quick regression testing.

Pressing Ctrl + c once stops all the processes.

The script also enables backtraces by setting RUST_BACKTRACE=1 env variable.

Starting the maker and taker daemon

The maker and taker frontend depend on the respective daemon running.

At the moment the maker daemon has to be started first:

cargo run --bin maker

Once the maker is started you can start the taker:

cargo run --bin taker

Upon startup the taker daemon will connect to the (hardcoded) maker and retrieve the current order.

Note: The sqlite databases for maker and taker are currently created in the project root.

Starting the maker and taker frontend

We use a single react project for hosting both the taker and the maker frontends. However, the development environment still needs to be start twice! Which frontend to start is configured via the APP environment variable.

cd frontend
yarn install
APP=taker yarn dev
APP=maker yarn dev

Bundling the web frontend and serving it from the respective daemon is yet to be configured. At the moment you will need a browser extension to allow CORS headers like CORS Everywhere (Firefox Extension) to use the frontends.

Linting

To run eslint, use:

cd frontend && yarn run eslint