Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
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
9 changes: 9 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -269,6 +269,15 @@ DevNet management commands:
| `stop --project.name` | Stops the specific project's devnet |
| `stop --port` | Stops the specific port e.g.: `stop --port 8545` |


Alternatively, `devnet` can be started against an already running forked environment (eg, local anvil instances or from remote BuildBear sandboxes). This will allow you to interact with a testnet without spinning up or spinning down the onchain environment each iteration.

Start/create your own forked sepolia instances and in your project directory, set the appropriate `rpc_urls` in your context and run:

```bash
devkit avs devnet start --skip-forking
```

### 7️⃣ Simulate Task Execution (`devkit avs call`)

Triggers task execution through your AVS, simulating how a task would be submitted, processed, and validated. Useful for testing end-to-end behavior of your logic in a local environment.
Expand Down
66 changes: 66 additions & 0 deletions config/contexts/migrations/v0.1.1-v0.1.2.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
package contextMigrations

import (
"strings"

"github.com/Layr-Labs/devkit-cli/pkg/common/devnet"
"github.com/Layr-Labs/devkit-cli/pkg/migration"
"gopkg.in/yaml.v3"
)

func Migration_0_1_1_to_0_1_2(user, old, new *yaml.Node) (*yaml.Node, error) {
// Update fork block heights to match ponos project
engine := migration.PatchEngine{
Old: old,
New: new,
User: user,
Rules: []migration.PatchRule{
// Remove transporter keys
{
Path: []string{"context", "transporter", "private_key"},
Condition: migration.Always{},
Remove: true,
},
{
Path: []string{"context", "transporter", "bls_private_key"},
Condition: migration.Always{},
Remove: true,
},
},
}
if err := engine.Apply(); err != nil {
return nil, err
}

// Get the contexts name
contextName := migration.ResolveNode(user, []string{"context", "name"})

// If contextName contains devnet, insert mnemonic
if strings.Contains(contextName.Value, devnet.DEVNET_CONTEXT) {
// Insert mnemonic into yaml after chains
_ = migration.InsertAfterKeyWithComment(
user,
[]string{"context"},
"chains",
"mnemonic",
&yaml.Node{
Kind: yaml.ScalarNode,
Style: yaml.DoubleQuotedStyle,
Value: devnet.DEFAULT_MNEMONIC,
},
"Devnet mnemonic for unlocked accounts",
false,
)
}

if err := engine.Apply(); err != nil {
return nil, err
}

// Upgrade the version
if v := migration.ResolveNode(user, []string{"version"}); v != nil {
v.Value = "0.1.2"
}

return user, nil
}
13 changes: 12 additions & 1 deletion config/contexts/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import (
)

// Set the latest version
const LatestVersion = "0.1.1"
const LatestVersion = "0.1.2"

// Array of default contexts to create in project
var DefaultContexts = [...]string{
Expand Down Expand Up @@ -59,6 +59,9 @@ var v0_1_0_default []byte
//go:embed v0.1.1.yaml
var v0_1_1_default []byte

//go:embed v0.1.2.yaml
var v0_1_2_default []byte

// Map of context name -> content
var ContextYamls = map[string][]byte{
"0.0.1": v0_0_1_default,
Expand All @@ -72,6 +75,7 @@ var ContextYamls = map[string][]byte{
"0.0.9": v0_0_9_default,
"0.1.0": v0_1_0_default,
"0.1.1": v0_1_1_default,
"0.1.2": v0_1_2_default,
}

// Map of sequential migrations
Expand Down Expand Up @@ -146,6 +150,13 @@ var MigrationChain = []migration.MigrationStep{
OldYAML: v0_1_0_default,
NewYAML: v0_1_1_default,
},
{
From: "0.1.1",
To: "0.1.2",
Apply: contextMigrations.Migration_0_1_1_to_0_1_2,
OldYAML: v0_1_1_default,
NewYAML: v0_1_2_default,
},
}

func MigrateContexts(logger iface.Logger) (int, error) {
Expand Down
184 changes: 184 additions & 0 deletions config/contexts/v0.1.2.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
# Devnet context to be used for local deployments against Anvil chain
version: 0.1.2
context:
# Name of the context
name: "devnet"
# Chains available to this context
chains:
l1:
chain_id: 31337
rpc_url: "http://localhost:8545"
fork:
block: 9259079
url: ""
block_time: 3
l2:
chain_id: 31338
rpc_url: "http://localhost:9545"
fork:
block: 31408197
url: ""
block_time: 3
# Devnet mnemonic for unlocked accounts
mnemonic: "test test test test test test test test test test test junk"
# Stake Root Transporter configuration
transporter:
schedule: "0 */2 * * *"
active_stake_roots: []
# All key material (BLS and ECDSA) within this file should be used for local testing ONLY
# ECDSA keys used are from Anvil's private key set
# BLS keystores are deterministically pre-generated and embedded. These are NOT derived from a secure seed
# Available private keys for deploying
deployer_private_key: "0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80" # Anvil Private Key 0
app_private_key: "0x5de4111afa1a4b94908f83103eb1f1706367c2e68ca870fc3fb9a804cdab365a" # Anvil Private Key 2
# List of stakers and their delegations
stakers:
- address: "0x23618e81E3f5cdF7f54C3d65f7FBc0aBf5B21E8f"
ecdsa_key: "0xdbda1821b80551c9d65939329250298aa3472ba22feea921c0cf5d620ea67b97" # Anvil 8
deposits:
- strategy_address: "0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574"
name: "stETH_Strategy"
deposit_amount: "5ETH" # depositIntoStrategy amount
operator: "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65" # Operator to delegate the stake via delegationManager.delegateTo()
- address: "0xa0Ee7A142d267C1f36714E4a8F75612F20a79720"
ecdsa_key: "0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6"
deposits:
- strategy_address: "0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574"
name: "stETH_Strategy"
deposit_amount: "5ETH" # depositIntoStrategy amount
operator: "0x90F79bf6EB2c4f870365E785982E1f101E93b906"
# List of Operators and their private keys / stake details
operators:
- address: "0x90F79bf6EB2c4f870365E785982E1f101E93b906"
ecdsa_key: "0x7c852118294e51e653712a81e05800f419141751be58f605c371e15141b007a6"
keystores:
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 0
ecdsa_keystore_path: "keystores/operator1.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator1.bls.keystore.json"
bls_keystore_password: "testpass"
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 1
ecdsa_keystore_path: "keystores/operator1.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator1.bls.keystore.json"
bls_keystore_password: "testpass"
allocations:
- strategy_address: "0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574"
name: "stETH_Strategy"
# Only allocate if these operator set IDs exist in the deployed operator_sets
operator_set_allocations:
- operator_set: "0"
allocation_in_wads: "500000000000000000" # 5e17 i.e 50% of max allocation
- operator_set: "1"
allocation_in_wads: "500000000000000000" # 5e17 i.e 50% of max allocation
- address: "0x15d34AAf54267DB7D7c367839AAf71A00a2C6A65"
ecdsa_key: "0x47e179ec197488593b187f80a00eb0da91f1b9d0b13f8733639f19c30a34926a" # Anvil Private Key 4
keystores:
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 0
ecdsa_keystore_path: "keystores/operator2.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator2.bls.keystore.json"
bls_keystore_password: "testpass"
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 1
ecdsa_keystore_path: "keystores/operator2.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator2.bls.keystore.json"
bls_keystore_password: "testpass"
allocations:
- strategy_address: "0x8b29d91e67b013e855EaFe0ad704aC4Ab086a574"
name: "stETH_Strategy"
# Only allocate if these operator set IDs exist in the deployed operator_sets
operator_set_allocations:
- operator_set: "0"
allocation_in_wads: "500000000000000000" # 5e17 i.e 50% of max allocation
- operator_set: "1"
allocation_in_wads: "500000000000000000" # 5e17 i.e 50% of max allocation
- address: "0x9965507D1a55bcC2695C58ba16FB37d819B0A4dc"
ecdsa_key: "0x8b3a350cf5c34c9194ca85829a2df0ec3153be0318b5e2d3348e872092edffba" # Anvil Private Key 5
keystores:
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 0
ecdsa_keystore_path: "keystores/operator3.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator3.bls.keystore.json"
bls_keystore_password: "testpass"
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 1
ecdsa_keystore_path: "keystores/operator3.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator3.bls.keystore.json"
bls_keystore_password: "testpass"
- address: "0x976EA74026E726554dB657fA54763abd0C3a0aa9"
ecdsa_key: "0x92db14e403b83dfe3df233f83dfa3a0d7096f21ca9b0d6d6b8d88b2b4ec1564e" # Anvil Private Key 6
keystores:
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 0
ecdsa_keystore_path: "keystores/operator4.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator4.bls.keystore.json"
bls_keystore_password: "testpass"
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 1
ecdsa_keystore_path: "keystores/operator4.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator4.bls.keystore.json"
bls_keystore_password: "testpass"
- address: "0x14dC79964da2C08b23698B3D3cc7Ca32193d9955"
ecdsa_key: "0x4bbbf85ce3377467afe5d46f804f221813b2bb87f24d81f60f1fcdbf7cbf4356" # Anvil Private Key 7
keystores:
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 0
ecdsa_keystore_path: "keystores/operator5.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator5.bls.keystore.json"
bls_keystore_password: "testpass"
- avs: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
operatorSet: 1
ecdsa_keystore_path: "keystores/operator5.ecdsa.keystore.json"
ecdsa_keystore_password: "testpass"
bls_keystore_path: "keystores/operator5.bls.keystore.json"
bls_keystore_password: "testpass"
# AVS configuration
avs:
address: "0x70997970C51812dc3A010C7d01b50e0d17dc79C8"
avs_private_key: "0x59c6995e998f97a5a0044966f0945389dc9e86dae88c7a8412f4603b6b78690d" # Anvil Private Key 1
metadata_url: "https://my-org.com/avs/metadata.json"
registrar_address: "0x0123456789abcdef0123456789ABCDEF01234567"
# Core EigenLayer contract addresses
eigenlayer:
l1:
allocation_manager: "0x42583067658071247ec8CE0A516A58f682002d07"
delegation_manager: "0xD4A7E1Bd8015057293f0D0A557088c286942e84b"
strategy_manager: "0x2E3D6c0744b10eb0A4e6F679F71554a39Ec47a5D"
bn254_table_calculator: "0xa19E3B00cf4aC46B5e6dc0Bbb0Fb0c86D0D65603"
ecdsa_table_calculator: "0xaCB5DE6aa94a1908E6FA577C2ade65065333B450"
cross_chain_registry: "0x287381B1570d9048c4B4C7EC94d21dDb8Aa1352a"
key_registrar: "0xA4dB30D08d8bbcA00D40600bee9F029984dB162a"
release_manager: "0xd9Cb89F1993292dEC2F973934bC63B0f2A702776"
operator_table_updater: "0xB02A15c6Bd0882b35e9936A9579f35FB26E11476"
task_mailbox: "0xB99CC53e8db7018f557606C2a5B066527bF96b26"
permission_controller: "0x44632dfBdCb6D3E21EF613B0ca8A6A0c618F5a37"
l2:
bn254_certificate_verifier: "0xff58A373c18268F483C1F5cA03Cf885c0C43373a"
operator_table_updater: "0xB02A15c6Bd0882b35e9936A9579f35FB26E11476"
ecdsa_certificate_verifier: "0xb3Cd1A457dEa9A9A6F6406c6419B1c326670A96F"
task_mailbox: "0xB99CC53e8db7018f557606C2a5B066527bF96b26"
# L1 Contracts deployed on `devnet start`
deployed_l1_contracts: []
# L2 Contracts deployed on `devnet start`
deployed_l2_contracts: []
# Operator Sets registered on `devnet start`
operator_sets: []
# Operators registered on `devnet start`
operator_registrations: []
# Release artifact
artifact:
artifactId: ""
component: ""
digest: ""
registry: ""
version: ""
4 changes: 4 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@ require (
)

require (
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e // indirect
github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec // indirect
github.com/Microsoft/go-winio v0.6.2 // indirect
github.com/aws/aws-sdk-go v1.55.7 // indirect
github.com/aymanbagabas/go-osc52/v2 v2.0.1 // indirect
Expand Down Expand Up @@ -81,6 +83,8 @@ require (
github.com/supranational/blst v0.3.15 // indirect
github.com/tklauser/go-sysconf v0.3.15 // indirect
github.com/tklauser/numcpus v0.10.0 // indirect
github.com/tyler-smith/go-bip32 v1.0.0 // indirect
github.com/tyler-smith/go-bip39 v1.1.0 // indirect
github.com/wealdtech/go-merkletree/v2 v2.6.1 // indirect
github.com/xo/terminfo v0.0.0-20220910002029-abceb7e1c41e // indirect
github.com/yusufpapurcu/wmi v1.2.4 // indirect
Expand Down
12 changes: 12 additions & 0 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,10 @@ github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEK
github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E=
github.com/DataDog/zstd v1.4.5 h1:EndNeuB0l9syBZhut0wns3gV1hL8zX8LIu6ZiVHWLIQ=
github.com/DataDog/zstd v1.4.5/go.mod h1:1jcaCB/ufaK+sKp1NBhlGmpz41jOoPQ35bpF36t7BBo=
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e h1:ahyvB3q25YnZWly5Gq1ekg6jcmWaGj/vG/MhF4aisoc=
github.com/FactomProject/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:kGUqhHd//musdITWjFvNTHn90WG9bMLBEPQZ17Cmlpw=
github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec h1:1Qb69mGp/UtRPn422BH4/Y4Q3SLUrD9KHuDkm8iodFc=
github.com/FactomProject/btcutilecc v0.0.0-20130527213604-d3a63a5752ec/go.mod h1:CD8UlnlLDiqb36L110uqiP2iSflVjx9g/3U9hCI4q2U=
github.com/Layr-Labs/crypto-libs v0.0.4 h1:FV/staDn/1CzYmmbP/o2+fPc9Z1NotPBP9dW/xisx94=
github.com/Layr-Labs/crypto-libs v0.0.4/go.mod h1:PWjHsuxgk5MNopPr3QLhpP/RJerbjh98qCCSivnVPHE=
github.com/Layr-Labs/eigenlayer-contracts v1.8.0-testnet-final.0.20250922221242-73644e201541 h1:QQp6CMOhOA2L9bsA1NTRYmTT0/mmxnD/7/WgD10XH54=
Expand Down Expand Up @@ -42,6 +46,7 @@ github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd h1:vy0G
github.com/charmbracelet/x/cellbuf v0.0.13-0.20250311204145-2c3ea96c31dd/go.mod h1:xe0nKWGd3eJgtqZRaN9RjMtK7xUYchjzPr7q6kcvCCs=
github.com/charmbracelet/x/term v0.2.1 h1:AQeHeLZ1OqSXhrAWpYUtZyX1T3zVxfpZuEQMIQaGIAQ=
github.com/charmbracelet/x/term v0.2.1/go.mod h1:oQ4enTYFV7QN4m0i9mzHrViD7TQKvNEEkHUMCmsxdUg=
github.com/cmars/basen v0.0.0-20150613233007-fe3947df716e/go.mod h1:P13beTBKr5Q18lJe1rIoLUqjM+CB1zYrRg44ZqGuQSA=
github.com/cockroachdb/errors v1.11.3 h1:5bA+k2Y6r+oz/6Z/RFlNeVCesGARKuC6YymtcDrbC/I=
github.com/cockroachdb/errors v1.11.3/go.mod h1:m4UIW4CDjx+R5cybPsNrRbreomiFqt8o1h1wUVazSd8=
github.com/cockroachdb/fifo v0.0.0-20240606204812-0bbfbd93a7ce h1:giXvy4KSc/6g/esnpM7Geqxka4WSqI1SZc7sMJFd3y4=
Expand Down Expand Up @@ -278,6 +283,7 @@ github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVs
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.1.5-0.20170601210322-f6abca593680/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
Expand All @@ -290,6 +296,10 @@ github.com/tklauser/go-sysconf v0.3.15 h1:VE89k0criAymJ/Os65CSn1IXaol+1wrsFHEB8O
github.com/tklauser/go-sysconf v0.3.15/go.mod h1:Dmjwr6tYFIseJw7a3dRLJfsHAMXZ3nEnL/aZY+0IuI4=
github.com/tklauser/numcpus v0.10.0 h1:18njr6LDBk1zuna922MgdjQuJFjrdppsZG60sHGfjso=
github.com/tklauser/numcpus v0.10.0/go.mod h1:BiTKazU708GQTYF4mB+cmlpT2Is1gLk7XVuEeem8LsQ=
github.com/tyler-smith/go-bip32 v1.0.0 h1:sDR9juArbUgX+bO/iblgZnMPeWY1KZMUC2AFUJdv5KE=
github.com/tyler-smith/go-bip32 v1.0.0/go.mod h1:onot+eHknzV4BVPwrzqY5OoVpyCvnwD7lMawL5aQupE=
github.com/tyler-smith/go-bip39 v1.1.0 h1:5eUemwrMargf3BSLRRCalXT93Ns6pQJIjYQN2nyfOP8=
github.com/tyler-smith/go-bip39 v1.1.0/go.mod h1:gUYDtqQw1JS3ZJ8UWVcGTGqqr6YIN3CWg+kkNaLt55U=
github.com/urfave/cli/v2 v2.27.6 h1:VdRdS98FNhKZ8/Az8B7MTyGQmpIr36O1EHybx/LaZ4g=
github.com/urfave/cli/v2 v2.27.6/go.mod h1:3Sevf16NykTbInEnD0yKkjDAeZDS0A6bzhBH5hrMvTQ=
github.com/wealdtech/go-merkletree/v2 v2.6.1 h1:EKrzJep7JXHk1bYQAHtEcBvScqW1xgI86aF5y6iPAm0=
Expand Down Expand Up @@ -327,6 +337,7 @@ go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20170613210332-850760c427c5/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
Expand Down Expand Up @@ -410,6 +421,7 @@ gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gotest.tools/v3 v3.5.2 h1:7koQfIKdy+I8UTetycgUqXWSDwpgv193Ka+qRsmBY8Q=
gotest.tools/v3 v3.5.2/go.mod h1:LtdLGcnqToBH83WByAAi/wiwSFCArdFIUV/xxN4pcjA=
launchpad.net/gocheck v0.0.0-20140225173054-000000000087/go.mod h1:hj7XX3B/0A+80Vse0e+BUHsHMTEhd0O4cpUHr/e/BUM=
oras.land/oras-go/v2 v2.3.1 h1:lUC6q8RkeRReANEERLfH86iwGn55lbSWP20egdFHVec=
oras.land/oras-go/v2 v2.3.1/go.mod h1:5AQXVEu1X/FKp1F9DMOb5ZItZBOa0y5dha0yCm4NR9c=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
Expand Down
5 changes: 5 additions & 0 deletions pkg/commands/devnet.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,11 @@ var DevnetCommand = &cli.Command{
Usage: "Specify a custom port for local devnet L2",
Value: 9545,
},
&cli.BoolFlag{
Name: "skip-forking",
Usage: "Skip forking L1 & L2 and deploy against provided RPCs",
Value: false,
},
&cli.BoolFlag{
Name: "skip-avs-run",
Usage: "Skip starting offchain AVS components",
Expand Down
Loading
Loading