changesets

package
v0.3.0 Latest Latest
Warning

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

Go to latest
Published: May 8, 2026 License: MIT Imports: 32 Imported by: 0

Documentation

Overview

Package changesets provides reusable MCMS changesets.

Index

Constants

This section is empty.

Variables

View Source
var (

	// GrantRoleInTimeLock grants proposer, canceller, bypasser, executor, admin roles to the timelock contract with corresponding addresses if the
	// roles are not already set with the same addresses.
	// It creates a proposal if deployer key is not admin of the timelock contract.
	// otherwise it executes the transactions directly.
	// If neither timelock, nor the deployer key is the admin of the timelock contract, it returns an error.
	GrantRoleInTimeLock = cldf.CreateChangeSet(grantRoleLogic, grantRolePreconditions)
)

Functions

func DeployMCMSWithTimelockV2

func DeployMCMSWithTimelockV2(
	env cldf.Environment, cfgByChain map[uint64]cldfproposalutils.MCMSWithTimelockConfig,
) (cldf.ChangesetOutput, error)

DeployMCMSWithTimelockV2 deploys and initializes the MCM and Timelock contracts

func ValidateOwnership

func ValidateOwnership(ctx context.Context, mcms bool, deployerKey, timelock common.Address, contract evm.Ownable) error

func ValidateOwnershipSolanaCommon

func ValidateOwnershipSolanaCommon(mcms bool, deployerKey solana.PublicKey, timelockSignerPDA solana.PublicKey, programOwner solana.PublicKey) error

Types

type AmountsToTransfer

type AmountsToTransfer struct {
	ProposeMCM   uint64
	CancellerMCM uint64
	BypasserMCM  uint64
	Timelock     uint64
}

type FireDrillConfig

type FireDrillConfig struct {
	TimelockCfg cldfproposalutils.TimelockConfig `json:"timelockCfg"`
	Selectors   []uint64                         `json:"selectors,omitempty"`
}

FireDrillConfig selects chains and MCMS timelock routing for a signing fire drill.

func (FireDrillConfig) ResolvedSelectors

func (cfg FireDrillConfig) ResolvedSelectors(e cldf.Environment) []uint64

ResolvedSelectors returns the chain selectors VerifyPreconditions and the fire-drill operation will use. When cfg.Selectors is empty, it defaults to every Solana chain in the environment followed by every EVM chain.

type FundMCMSignerConfig

type FundMCMSignerConfig struct {
	AmountsPerChain map[uint64]AmountsToTransfer
}

type FundMCMSignersChangeset

type FundMCMSignersChangeset struct{}

FundMCMSignersChangeset is a changeset that funds the MCMS signers on each chain. It will find the signer PDA for the proposer, canceller and bypasser MCM as well as the timelock signer PDA and send the amount of SOL specified in the config to each of them.

func (FundMCMSignersChangeset) Apply

Apply funds the MCMS signers on each chain.

func (FundMCMSignersChangeset) VerifyPreconditions

func (f FundMCMSignersChangeset) VerifyPreconditions(e cldf.Environment, config FundMCMSignerConfig) error

VerifyPreconditions checks if the deployer has enough SOL to fund the MCMS signers on each chain.

type GrantRoleInput

type GrantRoleInput struct {
	ExistingProposerByChain map[uint64]common.Address // if needed in the future, need to add bypasser and canceller here
	MCMS                    *cldfproposalutils.TimelockConfig
	GasBoostConfigPerChain  map[uint64]cldfproposalutils.GasBoostConfig
}

type GrantRoleTimelockSolana

type GrantRoleTimelockSolana struct{}

GrantRoleTimelockSolana grants the given accounts access to the given role on the timelock

func (GrantRoleTimelockSolana) Apply

func (GrantRoleTimelockSolana) VerifyPreconditions

func (t GrantRoleTimelockSolana) VerifyPreconditions(
	env cldf.Environment, config GrantRoleTimelockSolanaConfig,
) error

type GrantRoleTimelockSolanaConfig

type GrantRoleTimelockSolanaConfig struct {
	Accounts map[uint64][]solana.PublicKey // chain selector to accounts mapping
	Role     timelockbindings.Role
	MCMS     *cldfproposalutils.TimelockConfig
}

type MCMSSignFireDrillChangeset

type MCMSSignFireDrillChangeset struct{}

MCMSSignFireDrillChangeset creates an MCMS signing fire-drill proposal with noop operations per chain. It exercises signing and execution pipelines without mutating on-chain configuration.

func (MCMSSignFireDrillChangeset) Apply

Apply builds the fire-drill proposal via the operations API (with force execute for repeatable drills).

func (MCMSSignFireDrillChangeset) VerifyPreconditions

func (MCMSSignFireDrillChangeset) VerifyPreconditions(e cldf.Environment, cfg FireDrillConfig) error

VerifyPreconditions ensures each target chain exists and MCMS timelock state satisfies the configured action.

Jump to

Keyboard shortcuts

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