bootstrap

package
v1.13.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 1, 2025 License: MIT Imports: 28 Imported by: 1

Documentation

Index

Constants

View Source
const (
	OutfileFlagName                         = "outfile"
	WithdrawalDelaySecondsFlagName          = "withdrawal-delay-seconds"
	MinProposalSizeBytesFlagName            = "min-proposal-size-bytes"
	ChallengePeriodSecondsFlagName          = "challenge-period-seconds"
	ProofMaturityDelaySecondsFlagName       = "proof-maturity-delay-seconds"
	DisputeGameFinalityDelaySecondsFlagName = "dispute-game-finality-delay-seconds"
	MIPSVersionFlagName                     = "mips-version"
	ProxyOwnerFlagName                      = "proxy-owner"
	SuperchainProxyAdminOwnerFlagName       = "superchain-proxy-admin-owner"
	L1ContractsReleaseFlagName              = "l1-contracts-release"
	ProtocolVersionsOwnerFlagName           = "protocol-versions-owner"
	GuardianFlagName                        = "guardian"
	PausedFlagName                          = "paused"
	RequiredProtocolVersionFlagName         = "required-protocol-version"
	RecommendedProtocolVersionFlagName      = "recommended-protocol-version"
)

Variables

View Source
var (
	OutfileFlag = &cli.StringFlag{
		Name:    OutfileFlagName,
		Usage:   "Output file. Use - for stdout.",
		EnvVars: deployer.PrefixEnvVar("OUTFILE"),
		Value:   "-",
	}
	WithdrawalDelaySecondsFlag = &cli.Uint64Flag{
		Name:    WithdrawalDelaySecondsFlagName,
		Usage:   "Withdrawal delay in seconds.",
		EnvVars: deployer.PrefixEnvVar("WITHDRAWAL_DELAY_SECONDS"),
		Value:   standard.WithdrawalDelaySeconds,
	}
	MinProposalSizeBytesFlag = &cli.Uint64Flag{
		Name:    MinProposalSizeBytesFlagName,
		Usage:   "PreimageOracle minimum proposal size in bytes.",
		EnvVars: deployer.PrefixEnvVar("MIN_PROPOSAL_SIZE_BYTES"),
		Value:   standard.MinProposalSizeBytes,
	}
	ChallengePeriodSecondsFlag = &cli.Uint64Flag{
		Name:    ChallengePeriodSecondsFlagName,
		Usage:   "PreimageOracle challenge period in seconds.",
		EnvVars: deployer.PrefixEnvVar("CHALLENGE_PERIOD_SECONDS"),
		Value:   standard.ChallengePeriodSeconds,
	}
	ProofMaturityDelaySecondsFlag = &cli.Uint64Flag{
		Name:    ProofMaturityDelaySecondsFlagName,
		Usage:   "Proof maturity delay in seconds.",
		EnvVars: deployer.PrefixEnvVar("PROOF_MATURITY_DELAY_SECONDS"),
		Value:   standard.ProofMaturityDelaySeconds,
	}
	DisputeGameFinalityDelaySecondsFlag = &cli.Uint64Flag{
		Name:    DisputeGameFinalityDelaySecondsFlagName,
		Usage:   "Dispute game finality delay in seconds.",
		EnvVars: deployer.PrefixEnvVar("DISPUTE_GAME_FINALITY_DELAY_SECONDS"),
		Value:   standard.DisputeGameFinalityDelaySeconds,
	}
	MIPSVersionFlag = &cli.Uint64Flag{
		Name:    MIPSVersionFlagName,
		Usage:   "MIPS version.",
		EnvVars: deployer.PrefixEnvVar("MIPS_VERSION"),
		Value:   standard.MIPSVersion,
	}
	ProxyOwnerFlag = &cli.StringFlag{
		Name:    ProxyOwnerFlagName,
		Usage:   "Proxy owner address.",
		EnvVars: deployer.PrefixEnvVar("PROXY_OWNER"),
		Value:   common.Address{}.Hex(),
	}
	SuperchainProxyAdminOwnerFlag = &cli.StringFlag{
		Name:    SuperchainProxyAdminOwnerFlagName,
		Usage:   "Owner address for the superchain proxy admin",
		EnvVars: deployer.PrefixEnvVar("SUPERCHAIN_PROXY_ADMIN_OWNER"),
		Value:   common.Address{}.Hex(),
	}
	ProtocolVersionsOwnerFlag = &cli.StringFlag{
		Name:    ProtocolVersionsOwnerFlagName,
		Usage:   "Owner address for protocol versions",
		EnvVars: deployer.PrefixEnvVar("PROTOCOL_VERSIONS_OWNER"),
		Value:   common.Address{}.Hex(),
	}
	GuardianFlag = &cli.StringFlag{
		Name:    GuardianFlagName,
		Usage:   "Guardian address",
		EnvVars: deployer.PrefixEnvVar("GUARDIAN"),
		Value:   common.Address{}.Hex(),
	}
	PausedFlag = &cli.BoolFlag{
		Name:    PausedFlagName,
		Usage:   "Initial paused state",
		EnvVars: deployer.PrefixEnvVar("PAUSED"),
	}
	RequiredProtocolVersionFlag = &cli.StringFlag{
		Name:    RequiredProtocolVersionFlagName,
		Usage:   "Required protocol version (semver)",
		EnvVars: deployer.PrefixEnvVar("REQUIRED_PROTOCOL_VERSION"),
	}
	RecommendedProtocolVersionFlag = &cli.StringFlag{
		Name:    RecommendedProtocolVersionFlagName,
		Usage:   "Recommended protocol version (semver)",
		EnvVars: deployer.PrefixEnvVar("RECOMMENDED_PROTOCOL_VERSION"),
	}
	L1ContractsReleaseFlag = &cli.StringFlag{
		Name:    L1ContractsReleaseFlagName,
		Usage:   "Release version to set OPCM implementations for, of the format `op-contracts/vX.Y.Z`.",
		EnvVars: deployer.PrefixEnvVar("L1_CONTRACTS_RELEASE"),
	}
	SuperchainConfigProxyFlag = &cli.StringFlag{
		Name:    "superchain-config-proxy",
		Usage:   "Superchain config proxy.",
		EnvVars: deployer.PrefixEnvVar("SUPERCHAIN_CONFIG_PROXY"),
	}
	ProtocolVersionsProxyFlag = &cli.StringFlag{
		Name:    "protocol-versions-proxy",
		Usage:   "Protocol versions proxy.",
		EnvVars: deployer.PrefixEnvVar("PROTOCOL_VERSIONS_PROXY"),
	}
	UpgradeControllerFlag = &cli.StringFlag{
		Name:    "upgrade-controller",
		Usage:   "Upgrade controller.",
		EnvVars: deployer.PrefixEnvVar("UPGRADE_CONTROLLER"),
	}
	UseInteropFlag = &cli.BoolFlag{
		Name:    "use-interop",
		Usage:   "If true, deploy Interop implementations.",
		EnvVars: deployer.PrefixEnvVar("USE_INTEROP"),
	}
	ConfigFileFlag = &cli.StringFlag{
		Name:    "config",
		Usage:   "Path to a JSON file",
		EnvVars: deployer.PrefixEnvVar("CONFIG"),
	}
)
View Source
var Commands = []*cli.Command{
	{
		Name:   "implementations",
		Usage:  "Bootstraps implementations.",
		Flags:  cliapp.ProtectFlags(ImplementationsFlags),
		Action: ImplementationsCLI,
	},
	{
		Name:   "proxy",
		Usage:  "Bootstrap a ERC-1967 Proxy without an implementation set.",
		Flags:  cliapp.ProtectFlags(ProxyFlags),
		Action: ProxyCLI,
	},
	{
		Name:   "superchain",
		Usage:  "Bootstrap the Superchain configuration",
		Flags:  cliapp.ProtectFlags(SuperchainFlags),
		Action: SuperchainCLI,
	},
	{
		Name:   "validator",
		Usage:  "Bootstrap the StandardValidator contracts",
		Flags:  cliapp.ProtectFlags(ValidatorFlags),
		Action: ValidatorCLI,
	},
}

Functions

func Implementations added in v1.11.0

func ImplementationsCLI added in v1.11.0

func ImplementationsCLI(cliCtx *cli.Context) error

func Proxy added in v1.11.0

func ProxyCLI added in v1.11.0

func ProxyCLI(cliCtx *cli.Context) error

func Superchain added in v1.11.0

func SuperchainCLI added in v1.11.0

func SuperchainCLI(cliCtx *cli.Context) error

func ValidatorCLI added in v1.11.2

func ValidatorCLI(cliCtx *cli.Context) error

Types

type ImplementationsConfig added in v1.11.0

type ImplementationsConfig struct {
	L1RPCUrl                        string             `cli:"l1-rpc-url"`
	PrivateKey                      string             `cli:"private-key"`
	ArtifactsLocator                *artifacts.Locator `cli:"artifacts-locator"`
	L1ContractsRelease              string             `cli:"l1-contracts-release"`
	MIPSVersion                     int                `cli:"mips-version"`
	WithdrawalDelaySeconds          uint64             `cli:"withdrawal-delay-seconds"`
	MinProposalSizeBytes            uint64             `cli:"min-proposal-size-bytes"`
	ChallengePeriodSeconds          uint64             `cli:"challenge-period-seconds"`
	ProofMaturityDelaySeconds       uint64             `cli:"proof-maturity-delay-seconds"`
	DisputeGameFinalityDelaySeconds uint64             `cli:"dispute-game-finality-delay-seconds"`
	SuperchainConfigProxy           common.Address     `cli:"superchain-config-proxy"`
	ProtocolVersionsProxy           common.Address     `cli:"protocol-versions-proxy"`
	UpgradeController               common.Address     `cli:"upgrade-controller"`
	UseInterop                      bool               `cli:"use-interop"`
	CacheDir                        string             `cli:"cache-dir"`

	Logger log.Logger
	// contains filtered or unexported fields
}

func (*ImplementationsConfig) Check added in v1.11.0

func (c *ImplementationsConfig) Check() error

type ProxyConfig added in v1.11.0

type ProxyConfig struct {
	L1RPCUrl         string
	PrivateKey       string
	Logger           log.Logger
	ArtifactsLocator *artifacts.Locator
	CacheDir         string

	Owner common.Address
	// contains filtered or unexported fields
}

func (*ProxyConfig) Check added in v1.11.0

func (c *ProxyConfig) Check() error

type SuperchainConfig added in v1.11.0

type SuperchainConfig struct {
	L1RPCUrl         string
	PrivateKey       string
	Logger           log.Logger
	ArtifactsLocator *artifacts.Locator
	CacheDir         string

	SuperchainProxyAdminOwner  common.Address
	ProtocolVersionsOwner      common.Address
	Guardian                   common.Address
	Paused                     bool
	RequiredProtocolVersion    params.ProtocolVersion
	RecommendedProtocolVersion params.ProtocolVersion
	// contains filtered or unexported fields
}

func (*SuperchainConfig) Check added in v1.11.0

func (c *SuperchainConfig) Check() error

type ValidatorConfig added in v1.11.2

type ValidatorConfig struct {
	L1RPCUrl         string
	PrivateKey       string
	Logger           log.Logger
	ArtifactsLocator *artifacts.Locator
	Input            ValidatorInput
	CacheDir         string
	// contains filtered or unexported fields
}

func (*ValidatorConfig) Check added in v1.11.2

func (c *ValidatorConfig) Check() error

type ValidatorInput added in v1.11.2

type ValidatorInput struct {
	Release                          string         `json:"release"`
	SuperchainConfig                 common.Address `json:"superchainConfig"`
	L1PAOMultisig                    common.Address `json:"l1PAOMultisig"`
	MIPS                             common.Address `json:"mips" evm:"mips"`
	Challenger                       common.Address `json:"challenger"`
	SuperchainConfigImpl             common.Address `json:"superchainConfigImpl"`
	ProtocolVersionsImpl             common.Address `json:"protocolVersionsImpl"`
	L1ERC721BridgeImpl               common.Address `json:"l1ERC721BridgeImpl"`
	OptimismPortalImpl               common.Address `json:"optimismPortalImpl"`
	ETHLockboxImpl                   common.Address `json:"ethLockboxImpl" evm:"ethLockboxImpl"`
	SystemConfigImpl                 common.Address `json:"systemConfigImpl"`
	OptimismMintableERC20FactoryImpl common.Address `json:"optimismMintableERC20FactoryImpl"`
	L1CrossDomainMessengerImpl       common.Address `json:"l1CrossDomainMessengerImpl"`
	L1StandardBridgeImpl             common.Address `json:"l1StandardBridgeImpl"`
	DisputeGameFactoryImpl           common.Address `json:"disputeGameFactoryImpl"`
	AnchorStateRegistryImpl          common.Address `json:"anchorStateRegistryImpl"`
	DelayedWETHImpl                  common.Address `json:"delayedWETHImpl"`
	MIPSImpl                         common.Address `json:"mipsImpl" evm:"mipsImpl"`
	WithdrawalDelaySeconds           uint64         `json:"withdrawalDelaySeconds"`
}

type ValidatorOutput added in v1.11.2

type ValidatorOutput struct {
	Validator common.Address `json:"validator"`
}

func Validator added in v1.11.2

func Validator(ctx context.Context, cfg ValidatorConfig) (ValidatorOutput, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL