You can use the following SDKs to integrate with the Express Relay APIs and contracts:
pre-commit is a tool that checks and fixes simple issues (formatting, ...) before each commit.
You can install it by following their website.
In order to enable checks for this repo run pre-commit install
from command-line in the root of this repo.
The checks are also performed in the CI to ensure the code follows consistent formatting.
Since express relay is a multi-service project, we use Tilt to manage the development environment.
It is a great tool for local development and testing.
Tilt requires anvil
, forge
, poetry
, rust
, pnpm
, and the Solana CLI
to be installed on your machine.
Here are the installation instructions for each:
- Rust: https://www.rust-lang.org/tools/install
- Foundry (anvil,forge,cast, etc.): https://book.getfoundry.sh/getting-started/installation
- Poetry: https://python-poetry.org/docs/#installation
- Tilt: https://docs.tilt.dev/install.html
- Pnpm: https://pnpm.io/installation
- Solana CLI: https://docs.solanalabs.com/cli/install
Note that for the Solana CLI, you may need to alter your terminal's PATH
variable to include the Solana programs. To make this work with Tilt, you should include the PATH
update in your ~/.bashrc
or ~/.zshrc
file depending on which shell your machine uses.
Run tilt up
in the root of the repo to start the development environment. Make sure you installed and build all of the dependencies. Most of them will be installed using pnpm install
and pnpm -r build
commands in the project root.
You can access the ui at http://localhost:10350/
.
Here is what tilt up
does in order:
- [EVM] Starts
anvil
: local EVM chain to test the contracts with - [EVM] Deploy express relay contracts
- [SVM] Builds SVM programs
- [SVM] Starts
solana-test-validator
: Solana localnet to test the programs with - [SVM] Airdrops SOL to searcher, admin, and relayer signer wallet
- [SVM] Initializes the SVM programs on the localnet
- Start the auction server
- [EVM] Start the liquidation monitor
- [EVM] Start the simple searcher
- [SVM] Submits an SVM transaction bid to the auction server
There are some useful gadgets in Tilt ui for creating new vaults and checking the vault status. You can use them to test the system end to end.
You can modify the services and restart the resources as necessary.
The primary license for source codes available in this repo is the Apache 2.0 (Apache-2.0
), see LICENSE. Minus the following exceptions:
- Express Relay Auction Server has a
BUSL-1.1
license