Documentation
¶
Overview ¶
Package operations hosts CLDF-style deployment operations for Stellar Soroban contracts (thin wrappers around generated bindings plus chain I/O).
Conventions, contract inventory, shared deploy helpers, and per-contract packages live in README.md in this directory.
Index ¶
Constants ¶
const ( // DestinationChainNotEnabledCode is FeeQuoter/Executor get_dest_chain_config // for a destination chain with no config. DestinationChainNotEnabledCode uint32 = 25 // DestinationChainNotSupportedCode is OnRamp get_dest_chain_config for a // destination chain with no config. DestinationChainNotSupportedCode uint32 = 37 // UnsupportedDestinationChainCode is Router get_onramp for a destination // chain with no OnRamp routed. UnsupportedDestinationChainCode uint32 = 63 // SourceChainNotEnabledCode is OffRamp get_source_chain_config for a source // chain with no config. SourceChainNotEnabledCode uint32 = 100 // SourceSignersNotConfiguredCode is CommitteeVerifier get_signature_config // for a source chain with no signature quorum configured. SourceSignersNotConfiguredCode uint32 = 19 )
Soroban contract error codes (contracts/common/error/src/lib.rs CCIPError) that read ops treat as "lane not configured". Reads must keep this list narrow: only the code the target contract's getter actually defines.
Variables ¶
var ContractDeploymentVersion = semver.MustParse("2.0.0")
ContractDeploymentVersion is the semver stamped on Stellar Soroban deployment operations in this tree until contract releases are versioned independently.
Functions ¶
func IsContractErrorCode ¶
IsContractErrorCode reports whether err carries the Soroban host's rendering of the given contract error code. The RPC client surfaces simulation diagnostics as "Error(Contract, #<code>)" inside the returned error's message; there is no typed error to unwrap, so a substring match on the rendered code is the established pattern (see adapters/ccv_committee_verifier_onchain.go, sourceSignersNotConfiguredCode).
Callers must keep the match narrow: pass the exact code and only treat a match as "not configured" for the contract/error pair that actually defines that code.
func NewDeployOperation ¶
func NewDeployOperation(id, description string) *cldfops.Operation[DeployInput, DeployOutput, stellardeps.StellarDeps]
NewDeployOperation returns a CLDF operation that deploys WASM using SorobanContractDeployer. Use a distinct id per contract family (e.g. "onramp:deploy", "router:deploy").
Types ¶
type DeployInput ¶
DeployInput is the standard input for uploading Soroban WASM with a salt.
type DeployOutput ¶
type DeployOutput struct {
ContractID string `json:"contract_id"`
}
DeployOutput carries the deployed contract address (StrKey).
Directories
¶
| Path | Synopsis |
|---|---|
|
Package lock_release_pool defines CLDF operations for the Soroban lock-release pool contract.
|
Package lock_release_pool defines CLDF operations for the Soroban lock-release pool contract. |
|
Package offramp defines CLDF operations for the Soroban OffRamp contract.
|
Package offramp defines CLDF operations for the Soroban OffRamp contract. |
|
Package operationstest provides shared stubs for unit-testing Soroban deployment operations without a live network: a recording invoker that captures every InvokeContract/SimulateContract call, a no-op fake deployer, and a test bundle builder.
|
Package operationstest provides shared stubs for unit-testing Soroban deployment operations without a live network: a recording invoker that captures every InvokeContract/SimulateContract call, a no-op fake deployer, and a test bundle builder. |