mcmsops

package
v0.0.0-...-11c4200 Latest Latest
Warning

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

Go to latest
Published: Feb 17, 2026 License: MIT Imports: 21 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AcceptMCMSOwnershipSequence = cld_ops.NewSequence(
	"sui-accept-mcms-ownership-seq",
	semver.MustParse("0.1.0"),
	"Generates the MCMS proposal to accept MCMS ownership via the timelock",
	acceptMCMSOwnership,
)
View Source
var AddModulesMCMSOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "package", "add_modules"),
	semver.MustParse("0.1.0"),
	"Add modules to the MCMS registry",
	addModulesHandler,
)

Exports every operation available so they can be registered to be used in dynamic changesets

View Source
var ConfigureMCMSSequence = cld_ops.NewSequence(
	"sui-configure-mcms-seq",
	semver.MustParse("0.1.0"),
	"Configures the MCMS package with the provided timelock roles configuration",
	configureMCMS,
)
View Source
var DeployMCMSOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "package", "deploy"),
	semver.MustParse("0.1.0"),
	"Deploys the MCMS contract",
	handler,
)
View Source
var DeployMCMSSequence = cld_ops.NewSequence(
	"sui-deploy-mcms-seq",
	semver.MustParse("0.1.0"),
	"Deploys the MCMS package, sets the initial configuration, init the ownership transfer to self and generates the proposal to accept the ownership",
	deployMCMS,
)
View Source
var MCMSAcceptOwnershipOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "mcms_account", "accept_ownership"),
	semver.MustParse("0.1.0"),
	"Accept ownership of the MCMS contract as MCMS",
	acceptOwnershipHandler,
)
View Source
var MCMSDynamicProposalGenerateSeq = cld_ops.NewSequence(
	sui_ops.NewSuiOperationName("mcms", "proposal", "generate"),
	semver.MustParse("0.1.0"),
	"Generates an MCMS timelock proposal that batches multiple operations based on the provided definitions and inputs",
	generateProposalHandler,
)
View Source
var MCMSExecuteTransferOwnershipOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "mcms_account", "execute_transfer_ownership"),
	semver.MustParse("0.1.0"),
	"Execute transfer ownership of the MCMS contract to itself",
	executeTransferOwnershipHandler,
)
View Source
var MCMSTransferOwnershipOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "mcms_account", "transfer_ownership"),
	semver.MustParse("0.1.0"),
	"Init the transfer ownership of the MCMS contract to itself",
	transferOwnershipHandler,
)
View Source
var SetConfigMCMSOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "mcms", "set_config"),
	semver.MustParse("0.1.0"),
	"Set config in the MCMS contract",
	setConfigMcmsHandler,
)
View Source
var UpgradeCCIPOp = cld_ops.NewOperation(
	sui_ops.NewSuiOperationName("mcms", "package", "upgrade"),
	semver.MustParse("0.1.0"),
	"Returns the MCMS proposal that upgrades a CCIP package",
	upgradeHandler,
)

Functions

This section is empty.

Types

type AcceptMCMSOwnershipSeqInput

type AcceptMCMSOwnershipSeqInput struct {
	ChainSelector             uint64 `json:"chainSelector" yaml:"chainSelector"`
	PackageId                 string `json:"packageId" yaml:"packageId"`
	McmsMultisigStateObjectId string `json:"mcmsMultisigStateObjectId" yaml:"mcmsMultisigStateObjectId"`
	TimelockObjectId          string `json:"timelockObjectId" yaml:"timelockObjectId"`
	McmsAccountStateObjectId  string `json:"mcmsAccountStateObjectId" yaml:"mcmsAccountStateObjectId"`
	McmsRegistryObjectId      string `json:"mcmsRegistryObjectId" yaml:"mcmsRegistryObjectId"`
	McmsDeployerStateObjectId string `json:"mcmsDeployerStateObjectId" yaml:"mcmsDeployerStateObjectId"`
}

type AddModulesMCMSInput

type AddModulesMCMSInput struct {
	MCMSPackageId     string
	MCMSRegistryObjId string
	AllowedModules    []string
}

type ConfigureMCMSSeqInput

type ConfigureMCMSSeqInput struct {
	ChainSelector               uint64 `yaml:"chainSelector"`
	PackageId                   string `yaml:"packageId"`
	McmsAccountOwnerCapObjectId string `yaml:"mcmsAccountOwnerCapObjectId"`
	McmsAccountStateObjectId    string `yaml:"mcmsAccountStateObjectId"`
	McmsMultisigStateObjectId   string `yaml:"mcmsMultisigStateObjectId"`

	// Optional configs for each timelock role
	// If nil, the role will not be configured
	Bypasser  *types.Config `yaml:"bypasser,omitempty"`
	Proposer  *types.Config `yaml:"proposer,omitempty"`
	Canceller *types.Config `yaml:"canceller,omitempty"`
}

ConfigureMCMSSeqInput defines the input for configuring MCMS

type ConfigureMCMSSeqOutput

type ConfigureMCMSSeqOutput struct {
	Reports []cld_ops.Report[any, any]
}

type DeployMCMSObjects

type DeployMCMSObjects struct {
	// MCMS
	McmsMultisigStateObjectId string
	TimelockObjectId          string
	// MCMS Deployer
	McmsDeployerStateObjectId string
	// MCMS Registry
	McmsRegistryObjectId string
	// MCMS Account
	McmsAccountStateObjectId    string
	McmsAccountOwnerCapObjectId string
}

type DeployMCMSSeqInput

type DeployMCMSSeqInput struct {
	ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`

	// Optional configs for each timelock role
	// If nil, the role will not be configured
	Bypasser  *types.Config `json:"bypasser,omitempty" yaml:"bypasser,omitempty"`
	Proposer  *types.Config `json:"proposer,omitempty" yaml:"proposer,omitempty"`
	Canceller *types.Config `json:"canceller,omitempty" yaml:"canceller,omitempty"`
}

DeployMCMSSeqInput defines the input for deploying MCMS with timelock roles configuration

type DeployMCMSSeqOutput

type DeployMCMSSeqOutput struct {
	AcceptOwnershipProposal mcms.TimelockProposal `json:"acceptOwnershipProposal"`
	PackageId               string                `json:"packageId"`
	Objects                 DeployMCMSObjects     `json:"objects"`
}

type MCMSAcceptOwnershipInput

type MCMSAcceptOwnershipInput struct {
	McmsPackageID   string `json:"mcmsPackageID"`
	AccountObjectID string `json:"accountObjectID"`
}

type MCMSExecuteTransferOwnershipInput

type MCMSExecuteTransferOwnershipInput struct {
	// MCMS related
	McmsPackageID         string `json:"mcmsPackageID"`
	OwnerCap              string `json:"ownerCap"`
	AccountObjectID       string `json:"accountObjectID"`
	RegistryObjectID      string `json:"registryObjectID"`
	DeployerStateObjectID string `json:"deployerStateObjectID"`
}

type MCMSSetConfigInput

type MCMSSetConfigInput struct {
	ChainSelector uint64 `yaml:"chainSelector"`
	// MCMS related
	McmsPackageID string `yaml:"mcmsPackageID"`
	OwnerCap      string `yaml:"ownerCap"`
	McmsObjectID  string `yaml:"mcmsObjectID"`
	// Timelock related
	Role suisdk.TimelockRole `yaml:"role"`
	// Config related
	Config    types.Config `yaml:"config"`
	ClearRoot bool         `yaml:"clearRoot"`
}

type MCMSTransferOwnershipInput

type MCMSTransferOwnershipInput struct {
	McmsPackageID   string `json:"mcmsPackageID"`
	OwnerCap        string `json:"ownerCap"`
	AccountObjectID string `json:"accountObjectID"`
}

type ProposalGenerateInput

type ProposalGenerateInput struct {
	// Ops Related
	// Order matters, each definition should correspond to the input at the same index
	Defs   []cld_ops.Definition
	Inputs []any // Each element should be the corresponding input type for its operation

	// MCMS related
	MmcsPackageID      string `json:"mcmsPackageID"`
	McmsStateObjID     string `json:"mcmsStateObjID"`
	TimelockObjID      string `json:"timelockObjID"`
	AccountObjID       string `json:"accountObjID"`
	RegistryObjID      string `json:"registryObjID"`
	DeployerStateObjID string `json:"deployerStateObjID"`

	// Chain related
	ChainSelector uint64 `json:"chainSelector"`

	// Timelock related
	TimelockConfig utils.TimelockConfig `json:"timelockConfig"`
}

type UpgradeCCIPInput

type UpgradeCCIPInput struct {
	PackageName     contracts.Package `json:"packageName" validate:"required"`
	TargetPackageId string            `json:"targetPackageId" validate:"required"`
	NamedAddresses  map[string]string `json:"namedAddresses"`

	// Chain related
	ChainSelector uint64 `json:"chainSelector"`

	// MCMS related
	MmcsPackageID      string `json:"mcmsPackageID"`
	McmsStateObjID     string `json:"mcmsStateObjID"`
	RegistryObjID      string `json:"registryObjID"`
	TimelockObjID      string `json:"timelockObjID"`
	AccountObjID       string `json:"accountObjID"`
	DeployerStateObjID string `json:"deployerStateObjID"`
	OwnerCapObjID      string `json:"ownerCapObjID"`

	// Timelock related
	TimelockConfig utils.TimelockConfig `json:"timelockConfig"`
}

Jump to

Keyboard shortcuts

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