Documentation
¶
Overview ¶
Package ccip holds Stellar CCIP deployment helpers: datastore contract types, lane/onramp config, topology conversion, the CCIPDevenvHost surface for Soroban devenv, post-deploy token pool (DeployLockReleaseTestTokenPool), CLDF-backed devenv host (NewCLDFStellarCCIPDevenvHost), and stellarutil/. Full-stack deploy entrypoints that merge CCV topology and run github.com/smartcontractkit/chainlink-stellar/deployment/sequences.RunStellarCCIPFullDeploy live in package sequences (github.com/smartcontractkit/chainlink-stellar/deployment/sequences.RunStellarCCIPFullDeployForCCV, github.com/smartcontractkit/chainlink-stellar/deployment/sequences.DeployStellarCCIPContracts). Those entrypoints require a non-nil CCV environment topology so committee verifier signature quorum can be configured from offchain NOP/committee data.
Index ¶
- Constants
- func AddressBytesHex(ref datastore.AddressRef, selector uint64) ([]byte, error)
- func AddressBytesLength(selector uint64) (uint32, error)
- func ApplyFeeQuoterTokenConfig(ctx context.Context, feeQuoterClient *fee_quoter.FeeQuoterClient, ...) error
- func BuildOffRampSourceConfigs(ds datastore.DataStore, remoteSelectors []uint64, vvrContractID string, ...) ([]offrampbindings.SourceChainConfigArgs, error)
- func CCVEnvironmentTopologyToOffchain(t *ccvdeployment.EnvironmentTopology) (*offchain.EnvironmentTopology, error)
- func CanonicalSourceOnRampBytes(ref datastore.AddressRef, selector uint64) ([]byte, error)
- func DefaultStellarDeployZerolog() zerolog.Logger
- func DeployDevenvSACToken(p DevenvSACTokenParams) (contractID string, issuerKP *keypair.Full, err error)
- func DeployLockReleaseTestTokenPool(ctx context.Context, opBundle cldfops.Bundle, host CCIPDevenvHost) error
- func DevenvTokenPoolsAddressRefDataStore(chainSelector uint64, ...) (datastore.DataStore, error)
- func FundAccountViaFriendbot(friendbotURL, address string, lg *zerolog.Logger) error
- func GetCommitteeVerifierStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetFeeQuoterStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetOffRampStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetOnRampStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetRMNProxyStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetRMNRemoteStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetRampRegistryStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetRouterStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetTokenAdminRegistryStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func GetVVRStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func LockReleasePoolAddressRefDataStore(chainSelector uint64, poolContractID, tokenContractID string) (datastore.DataStore, error)
- func LookupAddressRef(ds datastore.DataStore, selector uint64, contractType datastore.ContractType, ...) (datastore.AddressRef, error)
- func LookupStellarContractStrkey(ds datastore.DataStore, selector uint64, contractType datastore.ContractType, ...) (string, error)
- func MergeExistingAddressRefs(ds *datastore.MemoryDataStore, refs []datastore.AddressRef) error
- func RecordCCIPReceiver(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordCommitteeVerifier(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordFeeQuoter(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordLockReleasePool(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordOffRamp(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordOnRamp(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordRMNProxy(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordRMNRemote(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordRampRegistry(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordRouter(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordSiloedLockReleasePool(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordTokenAdminRegistry(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordTokenLockBox(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func RecordVVR(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- func UpsertDeployedStrKey(ds *datastore.MemoryDataStore, chainSelector uint64, ...) error
- type CCIPDevenvHost
- type CLDFStellarCCIPDevenvHost
- func (h *CLDFStellarCCIPDevenvHost) CreateFeeToken(ctx context.Context, friendbotURL string) (string, error)
- func (h *CLDFStellarCCIPDevenvHost) CreateTestToken(ctx context.Context, friendbotURL string) (string, error)
- func (h *CLDFStellarCCIPDevenvHost) Deployer() *stellardeployment.Deployer
- func (h *CLDFStellarCCIPDevenvHost) DeployerKeypair() *keypair.Full
- func (h *CLDFStellarCCIPDevenvHost) FeeQuoterClient() *fqbindings.FeeQuoterClient
- func (h *CLDFStellarCCIPDevenvHost) FeeTokenContractID() string
- func (h *CLDFStellarCCIPDevenvHost) FriendbotURL() string
- func (h *CLDFStellarCCIPDevenvHost) LatestLedgerSequence(ctx context.Context) (uint32, error)
- func (h *CLDFStellarCCIPDevenvHost) Logger() *zerolog.Logger
- func (h *CLDFStellarCCIPDevenvHost) NetworkPassphrase() string
- func (h *CLDFStellarCCIPDevenvHost) OffRampClient() *offrampbindings.OffRampClient
- func (h *CLDFStellarCCIPDevenvHost) OnRampClient() *onrampbindings.OnRampClient
- func (h *CLDFStellarCCIPDevenvHost) RampRegistryContractID() string
- func (h *CLDFStellarCCIPDevenvHost) RmnProxyContractID() string
- func (h *CLDFStellarCCIPDevenvHost) RouterContractID() string
- func (h *CLDFStellarCCIPDevenvHost) SetCV(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetFeeQuoter(client *fqbindings.FeeQuoterClient)
- func (h *CLDFStellarCCIPDevenvHost) SetFeeToken(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetLegacyLockReleasePool(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetOffRamp(contractID string, client *offrampbindings.OffRampClient)
- func (h *CLDFStellarCCIPDevenvHost) SetOnRamp(contractID string, client *onrampbindings.OnRampClient)
- func (h *CLDFStellarCCIPDevenvHost) SetRampRegistry(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetReceiver(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetRmnProxy(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetRouter(contractID string, client *routerbindings.RouterClient)
- func (h *CLDFStellarCCIPDevenvHost) SetTestToken(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetTokenAdminRegistry(contractID string, client *tarbindings.TokenAdminRegistryClient)
- func (h *CLDFStellarCCIPDevenvHost) SetTokenLockBox(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) SetTokenPool(contractID string, client *tokenpoolbindings.TokenPoolClient)
- func (h *CLDFStellarCCIPDevenvHost) SetVVR(contractID string)
- func (h *CLDFStellarCCIPDevenvHost) TestTokenContractID() string
- func (h *CLDFStellarCCIPDevenvHost) TokenAdminRegistryClient() *tarbindings.TokenAdminRegistryClient
- type DatastoreSorobanContractRef
- func AdvancedPoolHooksDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func AdvancedPoolHooksExtractorDatastoreRef() DatastoreSorobanContractRef
- func BnmTokenDatastoreRef() DatastoreSorobanContractRef
- func BurnMintPoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func BurnMintPoolDevenvDatastoreRef() DatastoreSorobanContractRef
- func CCIPReceiverDatastoreRef() DatastoreSorobanContractRef
- func CCIPReceiverDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
- func CatalogBurnMintPoolDevenvDatastoreRef() DatastoreSorobanContractRef
- func CommitteeVerifierDatastoreRef() DatastoreSorobanContractRef
- func CommitteeVerifierDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
- func DefaultExecutorDatastoreRef() DatastoreSorobanContractRef
- func DevenvTestTokenDatastoreRef() DatastoreSorobanContractRef
- func ExecutorDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
- func ExecutorProxyDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func FeeQuoterDatastoreRef() DatastoreSorobanContractRef
- func LegacyLockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
- func LinkTokenDatastoreRef() DatastoreSorobanContractRef
- func LockReleasePoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func LockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
- func OffRampDatastoreRef() DatastoreSorobanContractRef
- func OnRampDatastoreRef() DatastoreSorobanContractRef
- func RMNProxyDatastoreRef() DatastoreSorobanContractRef
- func RMNRemoteDatastoreRef() DatastoreSorobanContractRef
- func RampRegistryDatastoreRef() DatastoreSorobanContractRef
- func RouterDatastoreRef() DatastoreSorobanContractRef
- func SiloedLockReleasePoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func SiloedLockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
- func TokenAdminRegistryDatastoreRef() DatastoreSorobanContractRef
- func TokenLockBoxDatastoreRef(qualifier string) DatastoreSorobanContractRef
- func TokenLockBoxDevenvDatastoreRef() DatastoreSorobanContractRef
- func VVRDatastoreRef() DatastoreSorobanContractRef
- func VVRDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
- func (r DatastoreSorobanContractRef) AddressRefKey(chainSelector uint64) datastore.AddressRefKey
- func (r DatastoreSorobanContractRef) FullAddressRef(chainSelector uint64, addressHex string) datastore.AddressRef
- func (r DatastoreSorobanContractRef) LaneAddressRef(chainSelector uint64) datastore.AddressRef
- func (r DatastoreSorobanContractRef) LookupAddressRef(ds datastore.DataStore, chainSelector uint64) (datastore.AddressRef, error)
- func (r DatastoreSorobanContractRef) LookupStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
- func (r DatastoreSorobanContractRef) PartialAddressRef() datastore.AddressRef
- func (r DatastoreSorobanContractRef) UpsertDeployedStrKey(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
- type DevenvSACTokenParams
Constants ¶
const ( CcipReceiverContractType = "CcipReceiverExample" // TokenAdminRegistryContractType matches the EVM datastore type (and the ops // constant): a single vocabulary, no boundary translation. TokenAdminRegistryContractType = "TokenAdminRegistry" TestTokenContractType = "sac_token" // DevenvTestTokenPoolQualifier is the datastore qualifier for the siloed test pool used in E2E transfers. DevenvTestTokenPoolQualifier = "TEST" // DevenvLegacyLockReleasePoolQualifier is the datastore qualifier for the legacy lock-release pool // deployed alongside the siloed pool (e.g. MCMS / lock-release-specific tests). DevenvLegacyLockReleasePoolQualifier = "LEGACY_LR" // DevenvBnmPoolQualifier is the datastore qualifier for the lane's stellar // BnM burn-mint pool (and its ccv-catalog mirror row). DevenvBnmPoolQualifier = "BnM" // DevenvCatalogBurnMintTokenPoolType mirrors // chainlink-ccv/build/devenv/common.BurnMintTokenPoolType. Duplicated locally // because this module stays free of the chainlink-ccv dependency DevenvCatalogBurnMintTokenPoolType = "BurnMintTokenPool" // DevenvCatalogLockReleaseTokenPoolType mirrors // chainlink-ccv/build/devenv/common.LockReleaseTokenPoolType. Duplicated // locally for the same reason. DevenvCatalogLockReleaseTokenPoolType = "LockReleaseTokenPool" )
Datastore contract type strings for Stellar CCIP deployments.
const ( RMNRemoteContractType = "RMNRemote" RMNRemoteContractVersion = "1.6.0" )
RMNRemote's canonical (type, version) pair used to be importable from chainlink-ccip/chains/evm/deployment/v1_6_0/operations/rmn_remote. That package was removed; upstream now keeps the type string private (chains/evm/deployment/utils/rmn.go `rmnRemoteContractType`) and resolves it by datastore lookup. These constants preserve the exact values that package exported so existing Stellar datastore refs keep resolving. The Stellar-local ops constant (deployment/operations/rmn_remote.ContractType) carries the same "RMNRemote" string: one vocabulary, no boundary translation.
const ( DefaultCommitteeVerifierQualifier = "default" DefaultExecutorQualifier = "default" )
Default datastore qualifiers for committee-verifier and executor contract refs. These mirror chainlink-ccv/build/devenv/common's DefaultCommitteeVerifierQualifier and DefaultExecutorQualifier (both "default") exactly so existing Stellar datastore refs keep resolving. They are duplicated locally to keep the root production module free of the chainlink-ccv/build/devenv dependency (and the transitive chainlink-testing-framework pull it would otherwise cause). If devenv ever changes these values, update both constants here to match.
const ( SecondaryCommitteeVerifierQualifier = "secondary" TertiaryCommitteeVerifierQualifier = "tertiary" SecondaryReceiverQualifier = "secondary" TertiaryReceiverQualifier = "tertiary" QuaternaryReceiverQualifier = "quaternary" )
Devenv committee and receiver qualifiers beyond the default instances, mirroring chainlink-ccv/build/devenv/common (SecondaryCommitteeVerifierQualifier, TertiaryCommitteeVerifierQualifier, SecondaryReceiverQualifier, TertiaryReceiverQualifier, QuaternaryReceiverQualifier). Duplicated locally for the same reason as the default qualifiers above; if devenv changes these values, update them here to match.
const StellarAddressByteLen = 32
StellarAddressByteLen is the canonical length (bytes) for Stellar contract/account IDs in lane configs.
Variables ¶
This section is empty.
Functions ¶
func AddressBytesHex ¶
func AddressBytesHex(ref datastore.AddressRef, selector uint64) ([]byte, error)
AddressBytesHex decodes a datastore address hex string to raw bytes and validates length for selector.
func AddressBytesLength ¶
AddressBytesLength returns the expected encoded address length for a CCIP chain selector.
func ApplyFeeQuoterTokenConfig ¶
func ApplyFeeQuoterTokenConfig( ctx context.Context, feeQuoterClient *fee_quoter.FeeQuoterClient, priceUpdater string, token string, allSelectors []uint64, ) error
ApplyFeeQuoterTokenConfig sets oracle price and per-destination token transfer fee configs for a 7-decimal lane token (the devenv SAC test token or the BnM token) on FeeQuoter. priceUpdater must be an address in FeeQuoter's authorized-callers set and must match the invoker's auth.
func BuildOffRampSourceConfigs ¶
func BuildOffRampSourceConfigs( ds datastore.DataStore, remoteSelectors []uint64, vvrContractID string, routerContractID string, ) ([]offrampbindings.SourceChainConfigArgs, error)
BuildOffRampSourceConfigs builds datastore-backed OffRamp source configs. The remote chain's OnRamp must already be deployed and recorded: the OffRamp rejects an all-zero onramp entry with `ZeroAddressNotAllowed` (#808, EVM `OffRamp.applySourceChainConfigUpdates` parity), so there is deliberately no zero-address placeholder mode here — lane wiring fails loudly when a remote OnRamp is not yet in the datastore.
func CCVEnvironmentTopologyToOffchain ¶
func CCVEnvironmentTopologyToOffchain(t *ccvdeployment.EnvironmentTopology) (*offchain.EnvironmentTopology, error)
CCVEnvironmentTopologyToOffchain converts a chainlink-ccv topology to the chainlink-ccip offchain topology type used by DeployChainContracts. Struct layouts are aligned; JSON round-trip avoids manual field mapping.
func CanonicalSourceOnRampBytes ¶
func CanonicalSourceOnRampBytes(ref datastore.AddressRef, selector uint64) ([]byte, error)
CanonicalSourceOnRampBytes returns the remote OnRamp bytes the local OffRamp whitelists in its source chain config, in the form the source OnRamp actually writes into its messages (the OffRamp matches them by hashing those message bytes): left-padded 32 bytes for EVM, the 40-byte Address::to_xdr envelope for Stellar.
func DefaultStellarDeployZerolog ¶
DefaultStellarDeployZerolog returns a stderr console logger for Stellar deploy sequences when no environment-specific logger is wired.
func DeployDevenvSACToken ¶
func DeployDevenvSACToken(p DevenvSACTokenParams) (contractID string, issuerKP *keypair.Full, err error)
DeployDevenvSACToken creates a deterministic issuer, optional friendbot funding, trust + payment, and SAC deploy.
func DeployLockReleaseTestTokenPool ¶
func DeployLockReleaseTestTokenPool(ctx context.Context, opBundle cldfops.Bundle, host CCIPDevenvHost) error
DeployLockReleaseTestTokenPool deploys legacy lock-release and siloed lock-release (+ lock box) test pools. E2E token transfers use the siloed pool; the legacy pool remains available for lock-release-specific tests. Intended to run from PostDeployContractsForSelector.
func DevenvTokenPoolsAddressRefDataStore ¶
func DevenvTokenPoolsAddressRefDataStore( chainSelector uint64, siloedPoolContractID, legacyPoolContractID, lockBoxContractID, tokenContractID string, ) (datastore.DataStore, error)
DevenvTokenPoolsAddressRefDataStore returns a sealed datastore with siloed pool (E2E), legacy lock-release pool, token lock box, and optional test token refs for devenv.
func FundAccountViaFriendbot ¶
FundAccountViaFriendbot funds a Stellar account using Friendbot with retries (devenv).
func GetCommitteeVerifierStrkey ¶
GetCommitteeVerifierStrkey resolves the Committee Verifier strkey for a chain from the datastore.
func GetFeeQuoterStrkey ¶
GetFeeQuoterStrkey resolves the FeeQuoter contract strkey for a chain from the datastore.
func GetOffRampStrkey ¶
GetOffRampStrkey resolves the local OffRamp contract strkey for a chain from the datastore.
func GetOnRampStrkey ¶
GetOnRampStrkey resolves the local OnRamp contract strkey for a chain from the datastore.
func GetRMNProxyStrkey ¶
GetRMNProxyStrkey resolves the RMN Proxy strkey for a chain from the datastore. Pools store the RMN proxy immutably at initialize (EVM `immutable i_rmnProxy` parity), so post-deploy pool initialization must rehydrate it from the datastore.
func GetRMNRemoteStrkey ¶
GetRMNRemoteStrkey resolves RMN Remote strkey for a chain from the datastore.
func GetRampRegistryStrkey ¶
GetRampRegistryStrkey resolves the RampRegistry strkey for a chain from the datastore.
func GetRouterStrkey ¶
GetRouterStrkey resolves the local Router contract strkey for a chain from the datastore.
func GetTokenAdminRegistryStrkey ¶
GetTokenAdminRegistryStrkey resolves TokenAdminRegistry for a chain from the datastore.
func GetVVRStrkey ¶
GetVVRStrkey resolves the Versioned Verifier Resolver strkey for a chain from the datastore.
func LockReleasePoolAddressRefDataStore ¶
func LockReleasePoolAddressRefDataStore(chainSelector uint64, poolContractID, tokenContractID string) (datastore.DataStore, error)
LockReleasePoolAddressRefDataStore returns a sealed datastore containing the legacy lock-release pool AddressRef and, when tokenContractID is non-empty, the test token AddressRef for devenv (qualifier DevenvLegacyLockReleasePoolQualifier).
func LookupAddressRef ¶
func LookupAddressRef(ds datastore.DataStore, selector uint64, contractType datastore.ContractType, version *semver.Version, qualifier string) (datastore.AddressRef, error)
LookupAddressRef loads an address ref from the datastore.
func LookupStellarContractStrkey ¶
func LookupStellarContractStrkey(ds datastore.DataStore, selector uint64, contractType datastore.ContractType, version *semver.Version, qualifier string) (string, error)
LookupStellarContractStrkey resolves a datastore entry to a Soroban contract strkey.
func MergeExistingAddressRefs ¶
func MergeExistingAddressRefs(ds *datastore.MemoryDataStore, refs []datastore.AddressRef) error
MergeExistingAddressRefs upserts CCIP / environment address refs into the in-memory deploy datastore (EVM-style ExistingAddresses seeding).
func RecordCCIPReceiver ¶
func RecordCCIPReceiver(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordCCIPReceiver records the CCIP receiver example in the datastore.
func RecordCommitteeVerifier ¶
func RecordCommitteeVerifier(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordCommitteeVerifier records the Committee Verifier in the datastore.
func RecordFeeQuoter ¶
func RecordFeeQuoter(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordFeeQuoter records a FeeQuoter deployment in the datastore.
func RecordLockReleasePool ¶
func RecordLockReleasePool(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordLockReleasePool records the legacy lock-release pool in the datastore.
func RecordOffRamp ¶
func RecordOffRamp(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordOffRamp records an OffRamp deployment in the datastore.
func RecordOnRamp ¶
func RecordOnRamp(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordOnRamp records an OnRamp deployment in the datastore.
func RecordRMNProxy ¶
func RecordRMNProxy(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordRMNProxy records an RMN Proxy deployment in the datastore. Pools store the RMN proxy immutably at initialize (EVM `immutable i_rmnProxy` parity), so post-deploy pool initialization rehydrates it from the datastore via GetRMNProxyStrkey.
func RecordRMNRemote ¶
func RecordRMNRemote(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordRMNRemote records an RMN Remote deployment in the datastore.
func RecordRampRegistry ¶
func RecordRampRegistry(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordRampRegistry records the RampRegistry in the datastore.
func RecordRouter ¶
func RecordRouter(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordRouter records a Router deployment in the datastore.
func RecordSiloedLockReleasePool ¶
func RecordSiloedLockReleasePool(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordSiloedLockReleasePool records the siloed lock-release pool in the datastore.
func RecordTokenAdminRegistry ¶
func RecordTokenAdminRegistry(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordTokenAdminRegistry records TokenAdminRegistry in the datastore.
func RecordTokenLockBox ¶
func RecordTokenLockBox(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordTokenLockBox records the token lock box in the datastore.
func RecordVVR ¶
func RecordVVR(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
RecordVVR records the Versioned Verifier Resolver in the datastore.
func UpsertDeployedStrKey ¶
func UpsertDeployedStrKey( ds *datastore.MemoryDataStore, chainSelector uint64, typ datastore.ContractType, version *semver.Version, qualifier string, contractStrkey string, ) error
UpsertDeployedStrKey records a deployed Soroban contract strkey in the datastore.
Types ¶
type CCIPDevenvHost ¶
type CCIPDevenvHost interface {
Logger() *zerolog.Logger
Deployer() *stellardeployment.Deployer
DeployerKeypair() *keypair.Full
NetworkPassphrase() string
FriendbotURL() string
SetOnRamp(contractID string, client *onrampbindings.OnRampClient)
OnRampClient() *onrampbindings.OnRampClient
FeeQuoterClient() *fqbindings.FeeQuoterClient
SetFeeQuoter(client *fqbindings.FeeQuoterClient)
SetTokenAdminRegistry(contractID string, client *tarbindings.TokenAdminRegistryClient)
TokenAdminRegistryClient() *tarbindings.TokenAdminRegistryClient
SetTokenPool(contractID string, client *tokenpoolbindings.TokenPoolClient)
SetLegacyLockReleasePool(contractID string)
SetTokenLockBox(contractID string)
LatestLedgerSequence(ctx context.Context) (uint32, error)
SetTestToken(contractID string)
TestTokenContractID() string
SetOffRamp(contractID string, client *offrampbindings.OffRampClient)
OffRampClient() *offrampbindings.OffRampClient
SetRouter(contractID string, client *routerbindings.RouterClient)
RouterContractID() string
SetRampRegistry(contractID string)
RampRegistryContractID() string
SetRmnProxy(contractID string)
RmnProxyContractID() string
SetVVR(contractID string)
SetCV(contractID string)
SetReceiver(contractID string)
SetFeeToken(contractID string)
FeeTokenContractID() string
CreateFeeToken(ctx context.Context, friendbotURL string) (string, error)
CreateTestToken(ctx context.Context, friendbotURL string) (string, error)
}
CCIPDevenvHost is the runtime surface Stellar CCIP devenv deploy needs (implemented by ccv/chain). Kept in deployment/ccip so deployment/sequences can depend on it without importing ccv/chain.
type CLDFStellarCCIPDevenvHost ¶
type CLDFStellarCCIPDevenvHost struct {
// contains filtered or unexported fields
}
CLDFStellarCCIPDevenvHost implements CCIPDevenvHost from a CLDF cldfstellar.Chain (BlockChains entry), so DeployChainContracts does not need a side-registered *ccvchain.Chain.
func NewCLDFStellarCCIPDevenvHost ¶
func NewCLDFStellarCCIPDevenvHost(ch cldfstellar.Chain, lg zerolog.Logger, dep *stellardeployment.Deployer) (*CLDFStellarCCIPDevenvHost, error)
NewCLDFStellarCCIPDevenvHost builds a devenv host backed by CLDF Stellar chain metadata and RPC.
func (*CLDFStellarCCIPDevenvHost) CreateFeeToken ¶
func (*CLDFStellarCCIPDevenvHost) CreateTestToken ¶
func (*CLDFStellarCCIPDevenvHost) Deployer ¶
func (h *CLDFStellarCCIPDevenvHost) Deployer() *stellardeployment.Deployer
func (*CLDFStellarCCIPDevenvHost) DeployerKeypair ¶
func (h *CLDFStellarCCIPDevenvHost) DeployerKeypair() *keypair.Full
func (*CLDFStellarCCIPDevenvHost) FeeQuoterClient ¶
func (h *CLDFStellarCCIPDevenvHost) FeeQuoterClient() *fqbindings.FeeQuoterClient
func (*CLDFStellarCCIPDevenvHost) FeeTokenContractID ¶
func (h *CLDFStellarCCIPDevenvHost) FeeTokenContractID() string
func (*CLDFStellarCCIPDevenvHost) FriendbotURL ¶
func (h *CLDFStellarCCIPDevenvHost) FriendbotURL() string
func (*CLDFStellarCCIPDevenvHost) LatestLedgerSequence ¶
func (h *CLDFStellarCCIPDevenvHost) LatestLedgerSequence(ctx context.Context) (uint32, error)
func (*CLDFStellarCCIPDevenvHost) Logger ¶
func (h *CLDFStellarCCIPDevenvHost) Logger() *zerolog.Logger
func (*CLDFStellarCCIPDevenvHost) NetworkPassphrase ¶
func (h *CLDFStellarCCIPDevenvHost) NetworkPassphrase() string
func (*CLDFStellarCCIPDevenvHost) OffRampClient ¶
func (h *CLDFStellarCCIPDevenvHost) OffRampClient() *offrampbindings.OffRampClient
func (*CLDFStellarCCIPDevenvHost) OnRampClient ¶
func (h *CLDFStellarCCIPDevenvHost) OnRampClient() *onrampbindings.OnRampClient
func (*CLDFStellarCCIPDevenvHost) RampRegistryContractID ¶
func (h *CLDFStellarCCIPDevenvHost) RampRegistryContractID() string
func (*CLDFStellarCCIPDevenvHost) RmnProxyContractID ¶
func (h *CLDFStellarCCIPDevenvHost) RmnProxyContractID() string
func (*CLDFStellarCCIPDevenvHost) RouterContractID ¶
func (h *CLDFStellarCCIPDevenvHost) RouterContractID() string
func (*CLDFStellarCCIPDevenvHost) SetCV ¶
func (h *CLDFStellarCCIPDevenvHost) SetCV(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetFeeQuoter ¶
func (h *CLDFStellarCCIPDevenvHost) SetFeeQuoter(client *fqbindings.FeeQuoterClient)
func (*CLDFStellarCCIPDevenvHost) SetFeeToken ¶
func (h *CLDFStellarCCIPDevenvHost) SetFeeToken(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetLegacyLockReleasePool ¶
func (h *CLDFStellarCCIPDevenvHost) SetLegacyLockReleasePool(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetOffRamp ¶
func (h *CLDFStellarCCIPDevenvHost) SetOffRamp(contractID string, client *offrampbindings.OffRampClient)
func (*CLDFStellarCCIPDevenvHost) SetOnRamp ¶
func (h *CLDFStellarCCIPDevenvHost) SetOnRamp(contractID string, client *onrampbindings.OnRampClient)
func (*CLDFStellarCCIPDevenvHost) SetRampRegistry ¶
func (h *CLDFStellarCCIPDevenvHost) SetRampRegistry(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetReceiver ¶
func (h *CLDFStellarCCIPDevenvHost) SetReceiver(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetRmnProxy ¶
func (h *CLDFStellarCCIPDevenvHost) SetRmnProxy(contractID string)
SetRmnProxy records the RMN proxy contract ID on the host (deploy-time bookkeeping). Pools store it immutably at initialize (EVM `immutable i_rmnProxy` parity — no set_rmn_proxy entrypoint) and consult it for curse checks in lock_or_burn/release_or_mint, so post-deploy pool initialization must pass it through (same proxy the Router was initialized with).
func (*CLDFStellarCCIPDevenvHost) SetRouter ¶
func (h *CLDFStellarCCIPDevenvHost) SetRouter(contractID string, client *routerbindings.RouterClient)
func (*CLDFStellarCCIPDevenvHost) SetTestToken ¶
func (h *CLDFStellarCCIPDevenvHost) SetTestToken(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetTokenAdminRegistry ¶
func (h *CLDFStellarCCIPDevenvHost) SetTokenAdminRegistry(contractID string, client *tarbindings.TokenAdminRegistryClient)
func (*CLDFStellarCCIPDevenvHost) SetTokenLockBox ¶
func (h *CLDFStellarCCIPDevenvHost) SetTokenLockBox(contractID string)
func (*CLDFStellarCCIPDevenvHost) SetTokenPool ¶
func (h *CLDFStellarCCIPDevenvHost) SetTokenPool(contractID string, client *tokenpoolbindings.TokenPoolClient)
func (*CLDFStellarCCIPDevenvHost) SetVVR ¶
func (h *CLDFStellarCCIPDevenvHost) SetVVR(contractID string)
func (*CLDFStellarCCIPDevenvHost) TestTokenContractID ¶
func (h *CLDFStellarCCIPDevenvHost) TestTokenContractID() string
func (*CLDFStellarCCIPDevenvHost) TokenAdminRegistryClient ¶
func (h *CLDFStellarCCIPDevenvHost) TokenAdminRegistryClient() *tarbindings.TokenAdminRegistryClient
type DatastoreSorobanContractRef ¶
type DatastoreSorobanContractRef struct {
Type datastore.ContractType
Version *semver.Version
Qualifier string
}
DatastoreSorobanContractRef is the (Type, Version, Qualifier) triple used when recording or resolving Soroban contracts in the CLDF deployment datastore. All Stellar CCIP writers and readers must use these constructors so keys stay aligned with Record* / UpsertDeployedStrKey.
func AdvancedPoolHooksDatastoreRef ¶
func AdvancedPoolHooksDatastoreRef(qualifier string) DatastoreSorobanContractRef
func AdvancedPoolHooksExtractorDatastoreRef ¶
func AdvancedPoolHooksExtractorDatastoreRef() DatastoreSorobanContractRef
func BnmTokenDatastoreRef ¶
func BnmTokenDatastoreRef() DatastoreSorobanContractRef
func BurnMintPoolDatastoreRef ¶
func BurnMintPoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
func BurnMintPoolDevenvDatastoreRef ¶
func BurnMintPoolDevenvDatastoreRef() DatastoreSorobanContractRef
BurnMintPoolDevenvDatastoreRef returns the stellar-native lane BnM pool ref.
func CCIPReceiverDatastoreRef ¶
func CCIPReceiverDatastoreRef() DatastoreSorobanContractRef
func CCIPReceiverDatastoreRefWithQualifier ¶
func CCIPReceiverDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
CCIPReceiverDatastoreRefWithQualifier returns the ccip_receiver ref for one receiver instance. An empty qualifier keeps the existing unqualified ref, so existing refs and salts keep resolving.
func CatalogBurnMintPoolDevenvDatastoreRef ¶
func CatalogBurnMintPoolDevenvDatastoreRef() DatastoreSorobanContractRef
CatalogBurnMintPoolDevenvDatastoreRef returns the ccv-catalog-typed row (BurnMintTokenPool 2.0.0) for the same pool, so tcapi pair resolution (TokenCombinationsFromPoolPairs, exact type+version+qualifier lookup) finds the stellar leg; the stellar AddressResolver maps the catalog type to the BnM token and ignores the qualifier.
func CommitteeVerifierDatastoreRef ¶
func CommitteeVerifierDatastoreRef() DatastoreSorobanContractRef
func CommitteeVerifierDatastoreRefWithQualifier ¶
func CommitteeVerifierDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
CommitteeVerifierDatastoreRefWithQualifier returns the committee-verifier ref for one instance. An empty qualifier keeps the default instance, so existing refs and salts keep resolving.
func DefaultExecutorDatastoreRef ¶
func DefaultExecutorDatastoreRef() DatastoreSorobanContractRef
func DevenvTestTokenDatastoreRef ¶
func DevenvTestTokenDatastoreRef() DatastoreSorobanContractRef
func ExecutorDatastoreRefWithQualifier ¶
func ExecutorDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
ExecutorDatastoreRefWithQualifier returns the executor contract row for the given qualifier (empty means the default instance).
func ExecutorProxyDatastoreRef ¶
func ExecutorProxyDatastoreRef(qualifier string) DatastoreSorobanContractRef
ExecutorProxyDatastoreRef returns the executor proxy row for the given qualifier (typically DefaultExecutorQualifier).
func FeeQuoterDatastoreRef ¶
func FeeQuoterDatastoreRef() DatastoreSorobanContractRef
func LegacyLockReleasePoolDevenvDatastoreRef ¶
func LegacyLockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
func LinkTokenDatastoreRef ¶
func LinkTokenDatastoreRef() DatastoreSorobanContractRef
func LockReleasePoolDatastoreRef ¶
func LockReleasePoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
func LockReleasePoolDevenvDatastoreRef ¶
func LockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
func OffRampDatastoreRef ¶
func OffRampDatastoreRef() DatastoreSorobanContractRef
func OnRampDatastoreRef ¶
func OnRampDatastoreRef() DatastoreSorobanContractRef
func RMNProxyDatastoreRef ¶
func RMNProxyDatastoreRef() DatastoreSorobanContractRef
RMNProxyDatastoreRef uses the stellar-ops type and the stellar deployment version. The proxy has no family-agnostic readers (the EVM "ARMProxy" type exists only for EVM's legacy records), so there is no reason to inherit EVM's pre-rename name — and the pre-unification pair (ARMProxy/1.0.0) matched nothing the ops world resolves (RmnProxy/2.0.0), which forced hand-corrected datastore rows in the staging pipelines.
func RMNRemoteDatastoreRef ¶
func RMNRemoteDatastoreRef() DatastoreSorobanContractRef
func RampRegistryDatastoreRef ¶
func RampRegistryDatastoreRef() DatastoreSorobanContractRef
func RouterDatastoreRef ¶
func RouterDatastoreRef() DatastoreSorobanContractRef
func SiloedLockReleasePoolDatastoreRef ¶
func SiloedLockReleasePoolDatastoreRef(qualifier string) DatastoreSorobanContractRef
func SiloedLockReleasePoolDevenvDatastoreRef ¶
func SiloedLockReleasePoolDevenvDatastoreRef() DatastoreSorobanContractRef
func TokenAdminRegistryDatastoreRef ¶
func TokenAdminRegistryDatastoreRef() DatastoreSorobanContractRef
func TokenLockBoxDatastoreRef ¶
func TokenLockBoxDatastoreRef(qualifier string) DatastoreSorobanContractRef
func TokenLockBoxDevenvDatastoreRef ¶
func TokenLockBoxDevenvDatastoreRef() DatastoreSorobanContractRef
func VVRDatastoreRef ¶
func VVRDatastoreRef() DatastoreSorobanContractRef
func VVRDatastoreRefWithQualifier ¶
func VVRDatastoreRefWithQualifier(qualifier string) DatastoreSorobanContractRef
VVRDatastoreRefWithQualifier returns the VVR ref for one committee instance. An empty qualifier keeps the default instance, so existing refs and salts keep resolving.
func (DatastoreSorobanContractRef) AddressRefKey ¶
func (r DatastoreSorobanContractRef) AddressRefKey(chainSelector uint64) datastore.AddressRefKey
AddressRefKey returns the datastore key for this ref on a chain.
func (DatastoreSorobanContractRef) FullAddressRef ¶
func (r DatastoreSorobanContractRef) FullAddressRef(chainSelector uint64, addressHex string) datastore.AddressRef
FullAddressRef returns a complete AddressRef for Upsert/Add.
func (DatastoreSorobanContractRef) LaneAddressRef ¶
func (r DatastoreSorobanContractRef) LaneAddressRef(chainSelector uint64) datastore.AddressRef
LaneAddressRef returns an AddressRef template including ChainSelector (Address unset).
func (DatastoreSorobanContractRef) LookupAddressRef ¶
func (r DatastoreSorobanContractRef) LookupAddressRef(ds datastore.DataStore, chainSelector uint64) (datastore.AddressRef, error)
LookupAddressRef loads the raw AddressRef row from the datastore.
func (DatastoreSorobanContractRef) LookupStrkey ¶
func (r DatastoreSorobanContractRef) LookupStrkey(ds datastore.DataStore, chainSelector uint64) (string, error)
LookupStrkey resolves this ref to a Soroban contract strkey.
func (DatastoreSorobanContractRef) PartialAddressRef ¶
func (r DatastoreSorobanContractRef) PartialAddressRef() datastore.AddressRef
PartialAddressRef returns Type, Version, and Qualifier for datastore queries (e.g. FindAndFormatRef) where ChainSelector is supplied separately.
func (DatastoreSorobanContractRef) UpsertDeployedStrKey ¶
func (r DatastoreSorobanContractRef) UpsertDeployedStrKey(ds *datastore.MemoryDataStore, chainSelector uint64, contractStrkey string) error
UpsertDeployedStrKey records a deployed Soroban contract strkey under this ref.
type DevenvSACTokenParams ¶
type DevenvSACTokenParams struct {
Ctx context.Context
RPCClient *rpcclient.Client
MainDeployer *stellardeployment.Deployer
OwnerKeypair *keypair.Full
NetworkPassphrase string
FriendbotURL string
IssuerSeedLabel string // e.g. "fee-token-issuer-" + passphrase
AssetCode string
Logger *zerolog.Logger
}
DevenvSACTokenParams configures classic-asset + SAC deploy used for CCIP fee and test tokens in devenv.