Documentation
¶
Overview ¶
Package changesets exports one CLDF ChangeSetV2 per Stellar CCIP component (deploy + initialize together), wrapping the per-component sequences in deployment/sequences. Each changeset resolves its dependency strkeys from the environment datastore, so a chain is built by applying them in dependency order:
tier 0: RMN Remote, TokenAdminRegistry, RampRegistry,
VersionedVerifierResolver, Executor
tier 1: RMN Proxy (needs RMN Remote);
FeeQuoter (needs the fee-token strkey in its config)
tier 2: OnRamp (TokenAdminRegistry + RMN Proxy + FeeQuoter);
OffRamp (RMN Proxy + TokenAdminRegistry);
Router (RMN Proxy);
CommitteeVerifier (RMN Proxy + StorageLocations in its config)
tier 3: ccip_receiver_example (Router)
VerifyPreconditions returns "deploy <X> first" when a dependency ref is missing from the datastore.
Apply builds the deployer from the chain's signer, so no raw keypair is required and KMS-backed signers work; the address used to predict contract IDs is the signer's own address, so a predicted ID can never diverge from the key that signs the deploy. Owner defaults to that signer address (the configs accept another owner for custom workflows). These changesets never transfer ownership or emit MCMS proposals; ownership moves later through the transfer-ownership changesets.
Rerun safety comes from the component sequences' three-layer skip (datastore ref, predicted contract ID + WASM hash, owner()): re-applying an already-deployed component sends no transactions and records no new refs.
Report size: each component changeset appends one sequence report plus at most one deploy and one initialize op report (two op reports on a fresh deploy, zero on a rerun). Op reports embed the absolute WASM path and are deleted from durable pipeline storage after 30 days, so they are a crash-resume aid, not the idempotency mechanism — the skip layers are.
Index ¶
- type DeployCCIPReceiver
- type DeployCCIPReceiverConfig
- type DeployCommitteeVerifier
- type DeployCommitteeVerifierConfig
- type DeployExecutor
- type DeployExecutorConfig
- type DeployFeeQuoter
- type DeployFeeQuoterConfig
- type DeployOffRamp
- type DeployOffRampConfig
- type DeployOnRamp
- type DeployOnRampConfig
- type DeployRMNProxy
- type DeployRMNProxyConfig
- type DeployRMNRemote
- type DeployRMNRemoteConfig
- type DeployRampRegistry
- type DeployRampRegistryConfig
- type DeployRouter
- type DeployRouterConfig
- type DeployTokenAdminRegistry
- type DeployTokenAdminRegistryConfig
- type DeployVVR
- type DeployVVRConfig
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DeployCCIPReceiver ¶
type DeployCCIPReceiver struct{}
DeployCCIPReceiver deploys and initializes the ccip_receiver_example contract on one Stellar chain. Requires Router.
func (DeployCCIPReceiver) Apply ¶
func (DeployCCIPReceiver) Apply(e cldf.Environment, cfg DeployCCIPReceiverConfig) (cldf.ChangesetOutput, error)
func (DeployCCIPReceiver) VerifyPreconditions ¶
func (DeployCCIPReceiver) VerifyPreconditions(e cldf.Environment, cfg DeployCCIPReceiverConfig) error
type DeployCCIPReceiverConfig ¶
type DeployCCIPReceiverConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployCCIPReceiverConfig is the input of the ccip_receiver_example deploy changeset. The Router strkey is resolved from the environment datastore, not configured here. Enabling remote chains is a config op and stays with the orchestrator.
type DeployCommitteeVerifier ¶
type DeployCommitteeVerifier struct{}
DeployCommitteeVerifier deploys and initializes the CommitteeVerifier contract on one Stellar chain. Requires RMN Proxy.
func (DeployCommitteeVerifier) Apply ¶
func (DeployCommitteeVerifier) Apply(e cldf.Environment, cfg DeployCommitteeVerifierConfig) (cldf.ChangesetOutput, error)
func (DeployCommitteeVerifier) VerifyPreconditions ¶
func (DeployCommitteeVerifier) VerifyPreconditions(e cldf.Environment, cfg DeployCommitteeVerifierConfig) error
type DeployCommitteeVerifierConfig ¶
type DeployCommitteeVerifierConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
StorageLocations [][]byte `json:"storageLocations" yaml:"storageLocations"`
AllowlistAdmin string `json:"allowlistAdmin,omitempty" yaml:"allowlistAdmin,omitempty"`
FeeAggregator string `json:"feeAggregator,omitempty" yaml:"feeAggregator,omitempty"`
VersionTag [4]byte `json:"versionTag" yaml:"versionTag"`
}
DeployCommitteeVerifierConfig is the input of the CommitteeVerifier deploy changeset. StorageLocations is a required input: the deploy never invents one. AllowlistAdmin and FeeAggregator default to the owner and VersionTag to the default committee-verifier tag. The RmnProxy strkey is resolved from the environment datastore, not configured here.
type DeployExecutor ¶
type DeployExecutor struct{}
DeployExecutor deploys and initializes the source-side Executor contract on one Stellar chain. No dependencies.
func (DeployExecutor) Apply ¶
func (DeployExecutor) Apply(e cldf.Environment, cfg DeployExecutorConfig) (cldf.ChangesetOutput, error)
func (DeployExecutor) VerifyPreconditions ¶
func (DeployExecutor) VerifyPreconditions(e cldf.Environment, cfg DeployExecutorConfig) error
type DeployExecutorConfig ¶
type DeployExecutorConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
MaxCCVsPerMsg uint32 `json:"maxCCVsPerMsg,omitempty" yaml:"maxCCVsPerMsg,omitempty"`
AllowedFinalityConfig uint32 `json:"allowedFinalityConfig,omitempty" yaml:"allowedFinalityConfig,omitempty"`
CcvAllowlistEnabled bool `json:"ccvAllowlistEnabled,omitempty" yaml:"ccvAllowlistEnabled,omitempty"`
FeeAggregator string `json:"feeAggregator,omitempty" yaml:"feeAggregator,omitempty"`
}
DeployExecutorConfig is the input of the Executor deploy changeset. MaxCCVsPerMsg defaults to 2, AllowedFinalityConfig to 0, CcvAllowlistEnabled to false and FeeAggregator to the owner. The changeset records both the executor and executor-proxy rows: Soroban has no delegate proxy, so both point at the same contract.
type DeployFeeQuoter ¶
type DeployFeeQuoter struct{}
DeployFeeQuoter deploys and initializes the FeeQuoter contract on one Stellar chain.
func (DeployFeeQuoter) Apply ¶
func (DeployFeeQuoter) Apply(e cldf.Environment, cfg DeployFeeQuoterConfig) (cldf.ChangesetOutput, error)
func (DeployFeeQuoter) VerifyPreconditions ¶
func (DeployFeeQuoter) VerifyPreconditions(e cldf.Environment, cfg DeployFeeQuoterConfig) error
type DeployFeeQuoterConfig ¶
type DeployFeeQuoterConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
FeeToken string `json:"feeToken" yaml:"feeToken"`
MaxFeeJuelsPerMsg *big.Int `json:"maxFeeJuelsPerMsg,omitempty" yaml:"maxFeeJuelsPerMsg,omitempty"`
AuthorizedCallers []string `json:"authorizedCallers,omitempty" yaml:"authorizedCallers,omitempty"`
}
DeployFeeQuoterConfig is the input of the FeeQuoter deploy changeset. FeeToken is the strkey of the SAC used for fee payments, a required input: the deploy never derives it. MaxFeeJuelsPerMsg defaults to 1e18 and AuthorizedCallers to [owner]. No datastore dependencies.
type DeployOffRamp ¶
type DeployOffRamp struct{}
DeployOffRamp deploys and initializes the OffRamp contract on one Stellar chain. Requires RMN Proxy and TokenAdminRegistry.
func (DeployOffRamp) Apply ¶
func (DeployOffRamp) Apply(e cldf.Environment, cfg DeployOffRampConfig) (cldf.ChangesetOutput, error)
func (DeployOffRamp) VerifyPreconditions ¶
func (DeployOffRamp) VerifyPreconditions(e cldf.Environment, cfg DeployOffRampConfig) error
type DeployOffRampConfig ¶
type DeployOffRampConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployOffRampConfig is the input of the OffRamp deploy changeset. The RmnProxy and TokenAdminRegistry strkeys are resolved from the environment datastore, not configured here.
type DeployOnRamp ¶
type DeployOnRamp struct{}
DeployOnRamp deploys and initializes the OnRamp contract on one Stellar chain. Requires TokenAdminRegistry, RMN Proxy and FeeQuoter.
func (DeployOnRamp) Apply ¶
func (DeployOnRamp) Apply(e cldf.Environment, cfg DeployOnRampConfig) (cldf.ChangesetOutput, error)
func (DeployOnRamp) VerifyPreconditions ¶
func (DeployOnRamp) VerifyPreconditions(e cldf.Environment, cfg DeployOnRampConfig) error
type DeployOnRampConfig ¶
type DeployOnRampConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
MaxUsdCentsPerMessage uint32 `json:"maxUsdCentsPerMessage,omitempty" yaml:"maxUsdCentsPerMessage,omitempty"`
FeeAggregator string `json:"feeAggregator,omitempty" yaml:"feeAggregator,omitempty"`
}
DeployOnRampConfig is the input of the OnRamp deploy changeset. The TokenAdminRegistry, RmnProxy and FeeQuoter strkeys are resolved from the environment datastore, not configured here. MaxUsdCentsPerMessage defaults to 500000 ($5000) and FeeAggregator to the owner.
type DeployRMNProxy ¶
type DeployRMNProxy struct{}
DeployRMNProxy deploys and initializes the RMN Proxy contract on one Stellar chain. Requires RMN Remote.
func (DeployRMNProxy) Apply ¶
func (DeployRMNProxy) Apply(e cldf.Environment, cfg DeployRMNProxyConfig) (cldf.ChangesetOutput, error)
func (DeployRMNProxy) VerifyPreconditions ¶
func (DeployRMNProxy) VerifyPreconditions(e cldf.Environment, cfg DeployRMNProxyConfig) error
type DeployRMNProxyConfig ¶
type DeployRMNProxyConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployRMNProxyConfig is the input of the RMN Proxy deploy changeset. The RmnRemote strkey is resolved from the environment datastore, not configured here.
type DeployRMNRemote ¶
type DeployRMNRemote struct{}
DeployRMNRemote deploys and initializes the RMN Remote contract on one Stellar chain. No dependencies.
func (DeployRMNRemote) Apply ¶
func (DeployRMNRemote) Apply(e cldf.Environment, cfg DeployRMNRemoteConfig) (cldf.ChangesetOutput, error)
func (DeployRMNRemote) VerifyPreconditions ¶
func (DeployRMNRemote) VerifyPreconditions(e cldf.Environment, cfg DeployRMNRemoteConfig) error
type DeployRMNRemoteConfig ¶
type DeployRMNRemoteConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
CurseAdmins []string `json:"curseAdmins,omitempty" yaml:"curseAdmins,omitempty"`
EnableFastCurse bool `json:"enableFastCurse,omitempty" yaml:"enableFastCurse,omitempty"`
FastCurseQualifier string `json:"fastCurseQualifier,omitempty" yaml:"fastCurseQualifier,omitempty"`
}
DeployRMNRemoteConfig is the input of the RMN Remote deploy changeset. CurseAdmins default to none; EnableFastCurse prepends the fast-curse timelock resolved from the datastore (qualifier FastCurseQualifier, default the Ultra Fast Curse qualifier).
type DeployRampRegistry ¶
type DeployRampRegistry struct{}
DeployRampRegistry deploys and initializes the RampRegistry contract on one Stellar chain.
func (DeployRampRegistry) Apply ¶
func (DeployRampRegistry) Apply(e cldf.Environment, cfg DeployRampRegistryConfig) (cldf.ChangesetOutput, error)
func (DeployRampRegistry) VerifyPreconditions ¶
func (DeployRampRegistry) VerifyPreconditions(e cldf.Environment, cfg DeployRampRegistryConfig) error
type DeployRampRegistryConfig ¶
type DeployRampRegistryConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployRampRegistryConfig is the input of the RampRegistry deploy changeset. The ramp map updates are config ops and stay with the orchestrator. No dependencies.
type DeployRouter ¶
type DeployRouter struct{}
DeployRouter deploys and initializes the Router contract on one Stellar chain. Requires RMN Proxy.
func (DeployRouter) Apply ¶
func (DeployRouter) Apply(e cldf.Environment, cfg DeployRouterConfig) (cldf.ChangesetOutput, error)
func (DeployRouter) VerifyPreconditions ¶
func (DeployRouter) VerifyPreconditions(e cldf.Environment, cfg DeployRouterConfig) error
type DeployRouterConfig ¶
type DeployRouterConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployRouterConfig is the input of the Router deploy changeset. The RmnProxy strkey is resolved from the environment datastore, not configured here.
type DeployTokenAdminRegistry ¶
type DeployTokenAdminRegistry struct{}
DeployTokenAdminRegistry deploys and initializes the TokenAdminRegistry contract on one Stellar chain.
func (DeployTokenAdminRegistry) Apply ¶
func (DeployTokenAdminRegistry) Apply(e cldf.Environment, cfg DeployTokenAdminRegistryConfig) (cldf.ChangesetOutput, error)
func (DeployTokenAdminRegistry) VerifyPreconditions ¶
func (DeployTokenAdminRegistry) VerifyPreconditions(e cldf.Environment, cfg DeployTokenAdminRegistryConfig) error
type DeployTokenAdminRegistryConfig ¶
type DeployTokenAdminRegistryConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
}
DeployTokenAdminRegistryConfig is the input of the TokenAdminRegistry deploy changeset. No params beyond owner, and no dependencies.
type DeployVVR ¶
type DeployVVR struct{}
DeployVVR deploys and initializes the VersionedVerifierResolver contract on one Stellar chain.
func (DeployVVR) Apply ¶
func (DeployVVR) Apply(e cldf.Environment, cfg DeployVVRConfig) (cldf.ChangesetOutput, error)
func (DeployVVR) VerifyPreconditions ¶
func (DeployVVR) VerifyPreconditions(e cldf.Environment, cfg DeployVVRConfig) error
type DeployVVRConfig ¶
type DeployVVRConfig struct {
ChainSelector uint64 `json:"chainSelector" yaml:"chainSelector"`
Owner string `json:"owner,omitempty" yaml:"owner,omitempty"`
WasmPath string `json:"wasmPath,omitempty" yaml:"wasmPath,omitempty"`
FeeAggregator string `json:"feeAggregator,omitempty" yaml:"feeAggregator,omitempty"`
}
DeployVVRConfig is the input of the VersionedVerifierResolver deploy changeset. FeeAggregator defaults to the owner. No dependencies.