- Run all tests:
cargo test --release -- --nocapture - Test specific package:
cargo test --release -p NAME_OF_PACKAGE -- --nocapture
To run the integration flow, while also preparing the configuration and running the Synchronizer and the App, the script full-flow.sh contains all the necessary logic to run everything automatically.
Required software: curl, git, rust, go, tmux, jq.
Copy the .env.default file into .env, and set the PRIV_KEY (corresponding to an address which holds some Sepolia ETH) and RPC_URL values.
Once having the .env file ready with the PRIV_KEY and RPC_URL properly filled, to run the Synchronizer and the cli app that crafts & commits the objects, together with a bash script that handles their interaction, run the following command:
./full-flow.sh
This will generate all the needed files, and it will open a new tmux session with 2 panels; one for the Synchronizer and one to run the cli app which will be crafting and committing the materials.
Requires the same "Requirements" as "Full flow testing". Make sure you fulfill them.
Run the synchronizer in the background:
./flow-synchronizer.sh
Start the gui app and begin crafting, committing, vieweing and verifying items
RUST_LOG=app_gui=debug,info cargo run --release -p app_gui
Requires docker.
Linux specific:
wget 'https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/1.12.1/kurtosis-cli_1.12.1_linux_amd64.tar.gz'
tar xf kurtosis-cli_1.12.1_linux_amd64.tar.gz
MacOS specific:
brew install kurtosis-tech/tap/kurtosis-cli
./kurtosis analytics disable
./kurtosis --enclave local-testnet run github.com/ethpandaops/ethereum-package@b0f4fabf9d2958d7b67e56a2e0dc91ef26c2dd9a --args-file network.yml
Find the CL and EL rpc ports with:
./kurtosis enclave inspect local-testnet | grep " http: 4000" # BEACON_URL (XXX)
./kurtosis enclave inspect local-testnet | grep " rpc: 8545" # RPC_URL (YYY)
Use this template for the .env and replace the BEACON_URL and RPC_URL pots for the correct ones:
# Local testnet
BEACON_URL="http://127.0.0.1:XXX"
RPC_URL="http://127.0.0.1:YYY"
REQUEST_RATE="0"
# Address = 0x8943545177806ED17B9F23F0a21ee5948eCaa776 (first pre_funded_accounts)
PRIV_KEY="bcdf20249abf0ed6d944c0288fad489e33f66b3960d9e6229c1cd214ed3bbe31"
DO_GENESIS_SLOT="0"
Do not use the flow-synchronizer.sh script which will override the GENESIS_SLOT to a high number and cause updates to be missed. Instead run this command directly:
RUST_LOG=synchronizer=debug,info cargo run --release -p synchronizer
./kurtosis engine stop
./kurtosis enclave rm -f local-testnet
The files in app_gui/assets are distributed under the Flaticon License:
axe.png: Axe icons created by Freepik - Flaticonbronze.png: Bronze icons created by Freepik - Flaticoncopper.png: Copper icons created by Freepik - Flaticonempty.png: 3d cube icons created by Freepik - Flaticontin.png: Tin icons created by Freepik - Flaticonwood.png: Wood icons created by Freepik - Flaticonwater.png: Shark icons created by Freepik - Flaticoncoal.png: Coal icons created by Freepik - Flaticoneucalyptus.png: Koala icon created by surang - Flaticonstone.png: Coal icons created by Freepik - Flaticonwooden-axe.png: Wood icons created by Nsit - Flaticontree-house.png: Tree house icons created by Nsit - Flaticonuranium.png: Uranium icons created by Freepik - Flaticontomato.png: Tomato icons created by PixelPerfect - Flaticonsteel-sword.png: Steel sword icons created by Assia Benkerroum - Flaticon