Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
1e2ac9b
refactor(gateway): unused Arc'ed tokio runtime
mempirate Dec 9, 2025
b02c95f
feat(rpc): initial mev API skeleton
mempirate Dec 10, 2025
fee5d61
feat(common): add bundle type
mempirate Dec 10, 2025
cbf4c42
feat(rpc): bundle decoding and related errors
mempirate Dec 10, 2025
b527628
feat(common): add order enum
mempirate Dec 10, 2025
4c77944
feat(rpc): bundle validation, clean up
mempirate Dec 10, 2025
04f5e7b
feat(common): update spine with new order type
mempirate Dec 10, 2025
9fb93e3
feat(rpc): update RPC with new order type
mempirate Dec 10, 2025
2620974
feat(rpc): move supervisor validation into RPC
mempirate Dec 12, 2025
f94c759
refactor: rm supervisor from sequencer, change order type
mempirate Dec 14, 2025
b3d5d2e
refactor: finish Order type change
mempirate Dec 14, 2025
3376d17
feat(common): fix tx type in bundle
mempirate Dec 15, 2025
b53a788
wip
mempirate Dec 15, 2025
12deb2f
feat(txpool): refactor into order pool
mempirate Dec 16, 2025
2386e98
feat(txpool): more refactoring
mempirate Dec 16, 2025
643ab88
feat: checkpoint
mempirate Dec 17, 2025
cdfff7b
fix: handle sender nonces for bundles
mempirate Dec 17, 2025
21e8c92
chore: rm leftover todo comments
mempirate Dec 17, 2025
e7ae4a3
feat: fix telemetry for bundles
mempirate Dec 17, 2025
0135a33
chore: clippy
mempirate Dec 17, 2025
5b7fb53
chore: ignore failing test
mempirate Dec 18, 2025
a970a81
feat: update bundle telemetry
mempirate Dec 18, 2025
2397028
feat: txspammer send bundle
BrycePy Dec 22, 2025
ebd99e7
fix: more robust wallet keys
Karrq Dec 29, 2025
eaefe15
feat: add log
mempirate Dec 30, 2025
8f108bd
fix: nonce issue
mempirate Dec 30, 2025
e54ec00
fix: dropped bundle issues
mempirate Dec 30, 2025
374f3df
chore: fmt Justfile
mempirate Dec 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
97 changes: 48 additions & 49 deletions Justfile
Original file line number Diff line number Diff line change
@@ -1,138 +1,137 @@
set dotenv-load
set dotenv-load := true

export LOCAL_DATA := canonicalize(env("LOCAL_DATA", shell('mkdir -p .local && realpath .local')))

# dev = use locally built images
# prod = use releases
export BASED_ENV := env("BASED_ENV", "prod")

export BASED_ENV := env("BASED_ENV", "prod")
self := "just -f " + justfile()
deps := "just -f " + join(justfile_directory(), "deps", "Justfile")

# Verifies that system dependencies are present
@check:
echo "jq: {{require('jq')}}"
echo "docker: {{require('docker')}}"
echo "cast: {{require('cast')}}"
echo "rustup: {{require('rustup')}}"
echo "python: {{require('python')}}"
echo "jq: {{ require('jq') }}"
echo "docker: {{ require('docker') }}"
echo "cast: {{ require('cast') }}"
echo "rustup: {{ require('rustup') }}"
echo "python: {{ require('python') }}"

# Prepare the local environment: fetch deps, build them, setup toolchains...
@prepare:
{{deps}} fetch
{{ deps }} fetch
cd docs && npm i
cd based && rustup toolchain install
cd based && rustup toolchain install

# 🏗️ Build
build:
build:
#!/usr/bin/env bash
set -euo pipefail
{{deps}} build &

{{ deps }} build &
just -f based/docker/Justfile all &

wait

# 📚 Build local docs
docs:
just -f docs/Justfile serve

# Build and link rabby in the configured output folder
rabby out="./dist":
just -f deps/rabby.just build
ln -s deps/rabby/dist {{out}}/rabby
ln -s deps/rabby/dist-mv2 {{out}}/rabby-mv2
ln -s deps/rabby/dist {{ out }}/rabby
ln -s deps/rabby/dist-mv2 {{ out }}/rabby-mv2

## Component access (component verb)

# Run recipes from scripts/spamoor.just
spamoor *args=("start ./spamoor-config.yml"):
just -f scripts/spamoor.just {{args}}
just -f scripts/spamoor.just {{ args }}

# Run recipes from scripts/overseer.just
overseer *args=("start"):
just -f based/overseer.just {{args}}
just -f based/overseer.just {{ args }}

# Run recipes from based/portal.just
portal *args:
just -f based/portal.just {{args}}
just -f based/portal.just {{ args }}

# Run recipes from based/registry.just
registry *args:
just -f based/registry.just {{args}}
just -f based/registry.just {{ args }}

# Run recipes from based/main-node.just
main-node *args:
just -f based/main-node.just {{args}}
just -f based/main-node.just {{ args }}

# Run recipes from based/follower-node.just
follower-node *args:
just -f based/follower-node.just {{args}}
just -f based/follower-node.just {{ args }}

# Run recipes from based/monitoring.just
monitoring *args:
just -f scripts/monitoring.just {{args}}
just -f scripts/monitoring.just {{ args }}

## Action access (verb component)

# View logs for the given service
logs name:
just -f scripts/logs.just {{name}}
just -f scripts/logs.just {{ name }}

# Start the given service
# Start the given service
start name:
{{self}} {{name}} start
# Stop the given service
{{ self }} {{ name }} start

# Stop the given service
stop name:
{{self}} {{name}} stop
{{ self }} {{ name }} stop

# Run a test recipe described in scripts/test.just
test name:
just -f scripts/test.just {{name}}
just -f scripts/test.just {{ name }}

# Cleanup all the local state of the project
reset:
{{self}} main-node reset
{{self}} follower-node reset
{{ self }} main-node reset
{{ self }} follower-node reset
rm -rf $LOCAL_DATA

# Run a recipe from scripts/ci.just
ci *args:
just -f scripts/ci.just {{args}}
just -f scripts/ci.just {{ args }}

# TODO: consider some sort of interactive config if needed
quick-start:
{{self}} main-node config-with-deploy
{{self}} main-node start
{{self}} follower-node create-config
{{self}} follower-node start-dev
{{ self }} main-node config-with-deploy
{{ self }} main-node start
{{ self }} follower-node create-config
{{ self }} follower-node start-dev

echo "Waiting for 10 seconds before starting the overseer" && sleep 10
{{self}} overseer start

{{ self }} overseer start

# Cleanup all local state
reset-and-start-full-stack-local:
reset-and-start-full-stack-local:
#!/usr/bin/env bash
set -euo pipefail

export PUBLIC_IP=127.0.0.1

echo "Ensuring required environment variables are available..."
echo 'OP_BATCHER_KEY={{env("OP_BATCHER_KEY")}}'
echo 'OP_PROPOSER_KEY={{env("OP_PROPOSER_KEY")}}'
echo 'OP_SEQUENCER_KEY={{env("OP_SEQUENCER_KEY")}}'
echo 'OP_BATCHER_KEY={{ env("OP_BATCHER_KEY") }}'
echo 'OP_PROPOSER_KEY={{ env("OP_PROPOSER_KEY") }}'
echo 'OP_SEQUENCER_KEY={{ env("OP_SEQUENCER_KEY") }}'

echo "Resetting configuration and deploying new L2 from scratch"
{{self}} reset || true
{{ self }} reset || true

{{self}} main-node config-with-deploy
{{self}} main-node start
{{self}} follower-node create-config
{{self}} follower-node start-dev
{{ self }} main-node config-with-deploy
{{ self }} main-node start
{{ self }} follower-node create-config
{{ self }} follower-node start-dev

echo "Waiting for 15 seconds before triggering peering and starting the overseer" && sleep 15

python peering.py
{{self}} start overseer
# {{ self }} start overseer
46 changes: 31 additions & 15 deletions based/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading