Everyone's welcome!
Please feel free to join whether you are an app builder, an Ethereum enthusiast, or a curious flaneur.
- Build a modified version of the nanoS+ Ethereum app
- Load the binary in Speculos, the Ledger OS device emulator.
- Simulate some transactions on EVM and print the result on the device screen.
We will run the simulations on the Ledger Ethereum Node for the workshop, but you can use a Quicknode setup or any provider supporting debug_traceCall
. Read this blog post for more information.
-
Build the app builder docker image. The app builder contains the environment mostly nano* SDKs and their dependencies:
docker build -f ledger-app-builder/Dockerfile<.m1> -t app-builder .
-
Run the app builder container, mounting the Ethereum nano application to build:
sudo docker run --rm -ti -v "$(pwd)/app-ethereum-oracle:/app" app-builder
-
Once inside the app-builder container, compile the nanos+ Ethereum app:
BOLOS_SDK=$NANOX_SDK make
-
Get the binary in your local machine, under the app folder of the Speculos repo:
sudo docker cp <container-id>:/app/bin/app.elf speculos/apps/nanos-eth-oracle.elf
-
Build Speculos container
docker build -t speculos speculos/
-
Run Speculos container, mounting the apps folder and running the Ethereum app
docker run --rm -it -v "$(pwd)"/speculos/apps:/speculos/apps -p 1234:1234 -p 5000:5000 -p 40000:40000 -p 41000:41000 speculos --model nanox ./apps/nanos-eth-oracle.elf --sdk 2.0 --seed "secret" --display headless --apdu-port 40000 --vnc-port 41000
-
Run locally the web3-insight project:
cd web3-insight && yarn install && pnpm run start:dev
-
Explore & Learn from the
devcon-workshop/transactions_simulation
python repository -
Download workshop dependencies:
pipenv sync
-
Play with simualtions:
pipenv run main.py