Skip to content

Commit

Permalink
op-deployer: Update OPCM bootstrap command (#13238)
Browse files Browse the repository at this point in the history
* op-deployer: Update OPCM bootstrap command

Updates the OPCM bootstrap command to allow bootstrapping Holocene.

* fix merge artifact
  • Loading branch information
mslipper authored and sigma committed Dec 19, 2024
1 parent 0403a40 commit 5699044
Show file tree
Hide file tree
Showing 12 changed files with 460 additions and 157 deletions.
10 changes: 9 additions & 1 deletion op-deployer/justfile
Original file line number Diff line number Diff line change
@@ -1,2 +1,10 @@
build:
go build -o bin/op-deployer cmd/op-deployer/main.go
go build -o bin/op-deployer cmd/op-deployer/main.go

download-artifacts checksum outfile:
curl -o {{outfile}} -L https://storage.googleapis.com/oplabs-contract-artifacts/artifacts-v1-{{checksum}}.tar.gz

calculate-artifacts-hash checksum:
just download-artifacts {{checksum}} /tmp/artifact.tgz
sha256sum /tmp/artifact.tgz
rm /tmp/artifact.tgz
25 changes: 3 additions & 22 deletions op-deployer/pkg/deployer/bootstrap/asterisc.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,6 @@ import (
"fmt"
"strings"

"github.com/ethereum-optimism/optimism/op-chain-ops/script"
"github.com/ethereum-optimism/optimism/op-chain-ops/script/forking"
"github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer/artifacts"
"github.com/ethereum/go-ethereum/common"

Expand Down Expand Up @@ -145,35 +143,18 @@ func Asterisc(ctx context.Context, cfg AsteriscConfig) error {
return fmt.Errorf("failed to connect to L1 RPC: %w", err)
}

l1Host, err := env.DefaultScriptHost(
l1Host, err := env.DefaultForkedScriptHost(
ctx,
bcaster,
lgr,
chainDeployer,
artifactsFS,
script.WithForkHook(func(cfg *script.ForkConfig) (forking.ForkSource, error) {
src, err := forking.RPCSourceByNumber(cfg.URLOrAlias, l1RPC, *cfg.BlockNumber)
if err != nil {
return nil, fmt.Errorf("failed to create RPC fork source: %w", err)
}
return forking.Cache(src), nil
}),
l1RPC,
)
if err != nil {
return fmt.Errorf("failed to create script host: %w", err)
}

latest, err := l1Client.HeaderByNumber(ctx, nil)
if err != nil {
return fmt.Errorf("failed to get latest block: %w", err)
}

if _, err := l1Host.CreateSelectFork(
script.ForkWithURLOrAlias("main"),
script.ForkWithBlockNumberU256(latest.Number),
); err != nil {
return fmt.Errorf("failed to select fork: %w", err)
}

dgo, err := opcm.DeployAsterisc(
l1Host,
opcm.DeployAsteriscInput{
Expand Down
24 changes: 22 additions & 2 deletions op-deployer/pkg/deployer/bootstrap/flags.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
package bootstrap

import (
"errors"

"github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer"
"github.com/ethereum-optimism/optimism/op-deployer/pkg/deployer/standard"
"github.com/ethereum-optimism/optimism/op-service/cliapp"
Expand Down Expand Up @@ -30,6 +32,7 @@ const (
ProposerFlagName = "proposer"
ChallengerFlagName = "challenger"
PreimageOracleFlagName = "preimage-oracle"
ReleaseFlagName = "release"
)

var (
Expand Down Expand Up @@ -153,18 +156,26 @@ var (
EnvVars: deployer.PrefixEnvVar("PREIMAGE_ORACLE"),
Value: common.Address{}.Hex(),
}
ReleaseFlag = &cli.StringFlag{
Name: ReleaseFlagName,
Usage: "Release to deploy.",
EnvVars: deployer.PrefixEnvVar("RELEASE"),
}
)

var OPCMFlags = []cli.Flag{
deployer.L1RPCURLFlag,
deployer.PrivateKeyFlag,
ArtifactsLocatorFlag,
ReleaseFlag,
}

var ImplementationsFlags = []cli.Flag{
MIPSVersionFlag,
WithdrawalDelaySecondsFlag,
MinProposalSizeBytesFlag,
ChallengePeriodSecondsFlag,
ProofMaturityDelaySecondsFlag,
DisputeGameFinalityDelaySecondsFlag,
MIPSVersionFlag,
}

var DelayedWETHFlags = []cli.Flag{
Expand Down Expand Up @@ -212,6 +223,15 @@ var Commands = []*cli.Command{
Flags: cliapp.ProtectFlags(OPCMFlags),
Action: OPCMCLI,
},
{
Name: "implementations",
Usage: "Bootstraps implementations.",
Flags: cliapp.ProtectFlags(ImplementationsFlags),
Action: func(context *cli.Context) error {
return errors.New("not implemented yet")
},
Hidden: true,
},
{
Name: "delayedweth",
Usage: "Bootstrap an instance of DelayedWETH.",
Expand Down
Loading

0 comments on commit 5699044

Please sign in to comment.