deployer

package
v1.18.1 Latest Latest
Warning

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

Go to latest
Published: May 14, 2026 License: MIT Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	EnvVarPrefix             = flags.EnvVarPrefix
	L1RPCURLFlagName         = flags.L1RPCURLFlagName
	CacheDirFlagName         = flags.CacheDirFlagName
	L1ChainIDFlagName        = flags.L1ChainIDFlagName
	ArtifactsLocatorFlagName = flags.ArtifactsLocatorFlagName
	L2ChainIDsFlagName       = flags.L2ChainIDsFlagName
	WorkdirFlagName          = flags.WorkdirFlagName
	OutdirFlagName           = flags.OutdirFlagName
	PrivateKeyFlagName       = flags.PrivateKeyFlagName
	IntentTypeFlagName       = flags.IntentTypeFlagName
	VerifierAPIKeyFlagName   = flags.VerifierAPIKeyFlagName
	EtherscanAPIKeyFlagName  = flags.EtherscanAPIKeyFlagName // Deprecated: use VerifierAPIKeyFlagName
	InputFileFlagName        = flags.InputFileFlagName
	ContractNameFlagName     = flags.ContractNameFlagName
	VerifierTypeFlagName     = flags.VerifierTypeFlagName
	VerifierUrlFlagName      = flags.VerifierUrlFlagName
	UseForgeFlagName         = flags.UseForgeFlagName
)

Variables

View Source
var (
	Uint256Type = opcm.MustType("uint256")
	BytesType   = opcm.MustType("bytes")
	AddressType = opcm.MustType("address")
	Bytes32Type = opcm.MustType("bytes32")
)

Primitive ABI types primarily used with `abi.Arguments` to pack/unpack values when calling contract methods.

View Source
var (
	SepoliaChainID                  uint64         = 11155111
	DefaultL1ProxyAdminOwnerSepolia common.Address = common.HexToAddress("0x1Eb2fFc903729a0F03966B917003800b145F56E2")
	DefaultSystemConfigProxySepolia common.Address = common.HexToAddress("0x034edD2A225f7f429A63E0f1D2084B9E0A93b538")
)

Constants for Sepolia chain.

View Source
var (
	L1RPCURLFlag = &cli.StringFlag{
		Name: L1RPCURLFlagName,
		Usage: "RPC URL for the L1 chain. Must be set for live chains. " +
			"Must be blank for chains deploying to local allocs files.",
		EnvVars: []string{
			"L1_RPC_URL",
		},
	}
	ArtifactsLocatorFlag = &cli.StringFlag{
		Name:    ArtifactsLocatorFlagName,
		Usage:   "Locator for artifacts.",
		EnvVars: PrefixEnvVar("ARTIFACTS_LOCATOR"),
		Value:   artifacts.EmbeddedLocatorString,
	}
	CacheDirFlag = &cli.StringFlag{
		Name: CacheDirFlagName,
		Usage: "Cache directory. " +
			"If set, the deployer will attempt to cache downloaded artifacts in the specified directory.",
		EnvVars: PrefixEnvVar("CACHE_DIR"),
		Value:   flags.DefaultCacheDir(),
	}
	L1ChainIDFlag = &cli.Uint64Flag{
		Name:    L1ChainIDFlagName,
		Usage:   "Chain ID of the L1 chain.",
		EnvVars: PrefixEnvVar("L1_CHAIN_ID"),
		Value:   11155111,
	}
	L2ChainIDsFlag = &cli.StringFlag{
		Name:    L2ChainIDsFlagName,
		Usage:   "Comma-separated list of L2 chain IDs to deploy.",
		EnvVars: PrefixEnvVar("L2_CHAIN_IDS"),
	}
	WorkdirFlag = &cli.StringFlag{
		Name:    WorkdirFlagName,
		Usage:   "Directory storing intent and stage. Defaults to the current directory.",
		EnvVars: PrefixEnvVar("WORKDIR"),
		Value:   cwd(),
		Aliases: []string{
			OutdirFlagName,
		},
	}
	PrivateKeyFlag = &cli.StringFlag{
		Name:    PrivateKeyFlagName,
		Usage:   "Private key of the deployer account.",
		EnvVars: PrefixEnvVar("PRIVATE_KEY"),
	}
	DeploymentTargetFlag = &cli.StringFlag{
		Name:    "deployment-target",
		Usage:   fmt.Sprintf("Where to deploy L1 contracts. Options: %s, %s, %s, %s", DeploymentTargetLive, DeploymentTargetGenesis, DeploymentTargetCalldata, DeploymentTargetNoop),
		EnvVars: PrefixEnvVar("DEPLOYMENT_TARGET"),
		Value:   string(DeploymentTargetLive),
	}
	OpProgramSvcUrlFlag = &cli.StringFlag{
		Name:    "op-program-svc-url",
		Usage:   "URL of the OP Program SVC",
		EnvVars: PrefixEnvVar("OP_PROGRAM_SVC_URL"),
	}
	IntentTypeFlag = &cli.StringFlag{
		Name: IntentTypeFlagName,
		Usage: fmt.Sprintf("Intent config type to use. Options: %s (default), %s, %s",
			state.IntentTypeStandard,
			state.IntentTypeCustom,
			state.IntentTypeStandardOverrides),
		EnvVars: PrefixEnvVar("INTENT_TYPE"),
		Value:   string(state.IntentTypeStandard),
		Aliases: []string{
			"intent-config-type",
		},
	}
	VerifierAPIKeyFlag = &cli.StringFlag{
		Name:    VerifierAPIKeyFlagName,
		Usage:   "API key for contract verifier (etherscan, blockscout, etc.)",
		EnvVars: append(PrefixEnvVar("VERIFIER_API_KEY"), PrefixEnvVar("ETHERSCAN_API_KEY")...),
		Aliases: []string{EtherscanAPIKeyFlagName},
	}
	InputFileFlag = &cli.StringFlag{
		Name:    InputFileFlagName,
		Usage:   "filepath of input file for command",
		EnvVars: PrefixEnvVar("INPUT_FILE"),
	}
	ContractNameFlag = &cli.StringFlag{
		Name:    ContractNameFlagName,
		Usage:   "(optional) contract name matching a field within the input file",
		EnvVars: PrefixEnvVar("CONTRACT_NAME"),
	}
	VerifierFlag = &cli.StringFlag{
		Name:    VerifierTypeFlagName,
		Usage:   "contract verifier type(s) to use. Comma-separated for multiple verifiers. Options: etherscan (default), blockscout, custom. Example: etherscan,blockscout",
		EnvVars: PrefixEnvVar("VERIFIER_TYPE"),
		Value:   "etherscan",
	}
	VerifierUrlFlag = &cli.StringFlag{
		Name:    VerifierUrlFlagName,
		Usage:   "verifier URL (optional for blockscout, required for custom, ignored for etherscan)",
		EnvVars: PrefixEnvVar("VERIFIER_URL"),
	}
	AutoVerifyFlag = &cli.BoolFlag{
		Name:    "verify",
		Usage:   "automatically verify contracts after deployment",
		EnvVars: PrefixEnvVar("VERIFY"),
		Value:   false,
	}
	UseForgeFlag = &cli.BoolFlag{
		Name:    UseForgeFlagName,
		Usage:   "use Forge instead of script.Host for deployment scripts",
		EnvVars: PrefixEnvVar("USE_FORGE"),
		Value:   false,
	}
	ValidateFlag = &cli.StringFlag{
		Name:    "validate",
		Usage:   "automatically validate deployment after apply. Specify validator version (e.g., v2.0.0) or 'auto' to auto-detect from state.json. If not specified, validation is skipped.",
		EnvVars: PrefixEnvVar("VALIDATE"),
		Value:   "",
	}
)

Functions

func Apply

func Apply(ctx context.Context, cfg ApplyConfig) error

func ApplyCLI

func ApplyCLI() func(cliCtx *cli.Context) error

func ApplyPipeline

func ApplyPipeline(
	ctx context.Context,
	opts ApplyPipelineOpts,
) error

func ChainIDFromRPC

func ChainIDFromRPC(ctx context.Context, rpcURL string) (*big.Int, error)

func CreateCacheDir

func CreateCacheDir(cacheDir string) error

func Init

func Init(cfg InitConfig) error

func InitCLI

func InitCLI() func(ctx *cli.Context) error

func PrefixEnvVar

func PrefixEnvVar(name string) []string

Types

type ApplyConfig

type ApplyConfig struct {
	L1RPCUrl         string
	Workdir          string
	PrivateKey       string
	DeploymentTarget DeploymentTarget
	Logger           log.Logger
	CacheDir         string

	PreStateBuilder pipeline.PreStateBuilder
	UseForge        bool
	// contains filtered or unexported fields
}

func (*ApplyConfig) Check

func (a *ApplyConfig) Check() error

type ApplyPipelineOpts

type ApplyPipelineOpts struct {
	L1RPCUrl           string
	DeploymentTarget   DeploymentTarget
	DeployerPrivateKey *ecdsa.PrivateKey
	Intent             *state.Intent
	State              *state.State
	Logger             log.Logger
	StateWriter        pipeline.StateWriter
	CacheDir           string
	PreStateBuilder    pipeline.PreStateBuilder
	UseForge           bool
	PrivateKey         string
	Workdir            string
}

type DeploymentTarget

type DeploymentTarget string
const (
	DeploymentTargetLive     DeploymentTarget = "live"
	DeploymentTargetGenesis  DeploymentTarget = "genesis"
	DeploymentTargetCalldata DeploymentTarget = "calldata"
	DeploymentTargetNoop     DeploymentTarget = "noop"
)

func NewDeploymentTarget

func NewDeploymentTarget(s string) (DeploymentTarget, error)

type InitConfig

type InitConfig struct {
	IntentType state.IntentType
	L1ChainID  uint64
	Outdir     string
	L2ChainIDs []common.Hash
}

func (*InitConfig) Check

func (c *InitConfig) Check() error

Directories

Path Synopsis
cmd/mktar command
integration_test
cli
v3_0_0
Package v3_0_0 implements the upgrade to v3.0.0 (U14).
Package v3_0_0 implements the upgrade to v3.0.0 (U14).
v4_0_0
Package v4_0_0 implements the upgrade to v4.0.0 (U16).
Package v4_0_0 implements the upgrade to v4.0.0 (U16).
v4_1_0
Package v4_1_0 implements the upgrade to v4.1.0 (U16a).
Package v4_1_0 implements the upgrade to v4.1.0 (U16a).
v5_0_0
Package v5_0_0 implements the upgrade to v5.0.0 (U17).
Package v5_0_0 implements the upgrade to v5.0.0 (U17).

Jump to

Keyboard shortcuts

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