Documentation ¶
Overview ¶
Package relconfig contains the config yaml object for the relayer.
Index ¶
- Variables
- func SanitizeTokenID(id string) (sanitized string, err error)
- type ChainConfig
- type Config
- func (c Config) GetCCTPStartBlock(chainID int) (value uint64, err error)
- func (c Config) GetChains() map[int]ChainConfig
- func (c Config) GetConfirmations(chainID int) (value uint64, err error)
- func (c Config) GetDBSelectorInterval() time.Duration
- func (c Config) GetDatabase() DatabaseConfig
- func (c Config) GetDeadlineBuffer(chainID int) (seconds time.Duration, err error)
- func (c Config) GetDestGasEstimate(chainID int) (value int, err error)
- func (c Config) GetFeePricer() FeePricerConfig
- func (c Config) GetFixedFeeMultiplier(chainID int) (value float64, err error)
- func (c Config) GetHTTPTimeout() time.Duration
- func (c Config) GetInitialBalancePct(chainID int, tokenAddr string) (float64, error)
- func (c Config) GetL1FeeChainID(chainID int) (value uint32, err error)
- func (c Config) GetL1FeeDestGasEstimate(chainID int) (value int, err error)
- func (c Config) GetL1FeeOriginGasEstimate(chainID int) (value int, err error)
- func (c Config) GetL1FeeParams(chainID uint32, origin bool) (uint32, int, bool)
- func (c Config) GetMaintenanceBalancePct(chainID int, tokenAddr string) (float64, error)
- func (c Config) GetMaxRebalanceAmount(chainID int, addr common.Address) *big.Int
- func (c Config) GetMinGasToken(chainID int) (value *big.Int, err error)
- func (c Config) GetMinQuoteAmount(chainID int, addr common.Address) *big.Int
- func (c Config) GetMinRebalanceAmount(chainID int, addr common.Address) *big.Int
- func (c Config) GetNativeToken(chainID int) (value string, err error)
- func (c Config) GetOmniRPCURL() string
- func (c Config) GetOriginGasEstimate(chainID int) (value int, err error)
- func (c Config) GetQuotableTokens(token string) ([]string, error)
- func (c Config) GetQuoteOffsetBps(chainID int) (value float64, err error)
- func (c Config) GetQuotePct(chainID int) (value float64, err error)
- func (c Config) GetRFQAddress(chainID int) (value string, err error)
- func (c Config) GetRebalanceInterval() time.Duration
- func (c Config) GetRebalanceMethod(chainID int, tokenAddr string) (method RebalanceMethod, err error)
- func (c Config) GetRebalanceMethods() (methods map[RebalanceMethod]bool, err error)
- func (c Config) GetRfqAPIURL() string
- func (c Config) GetSigner() config.SignerConfig
- func (c Config) GetSynapseCCTPAddress(chainID int) (value string, err error)
- func (c Config) GetTokenDecimals(chainID uint32, token string) (uint8, error)
- func (c Config) GetTokenID(chain int, addr string) (string, error)
- func (c Config) GetTokenMessengerAddress(chainID int) (value string, err error)
- func (c Config) GetTokenName(chain uint32, addr string) (string, error)
- func (c Config) GetTokens(chainID uint32) (map[string]TokenConfig, error)
- type DatabaseConfig
- type FeePricerConfig
- type IConfig
- type RebalanceMethod
- type TokenConfig
Constants ¶
This section is empty.
Variables ¶
var DefaultChainConfig = ChainConfig{
DeadlineBufferSeconds: 600,
OriginGasEstimate: 160000,
DestGasEstimate: 100000,
MinGasToken: "100000000000000000",
QuotePct: 100,
QuoteOffsetBps: 0,
FixedFeeMultiplier: 1,
}
DefaultChainConfig is the default chain config.
Functions ¶
func SanitizeTokenID ¶ added in v0.0.36
SanitizeTokenID takes a raw string, makes sure it is a valid token ID, and returns the token ID as string with a checksummed address.
Types ¶
type ChainConfig ¶
type ChainConfig struct { // Bridge is the rfq bridge contract address. RFQAddress string `yaml:"rfq_address"` // SynapseCCTPAddress is the SynapseCCTP address. SynapseCCTPAddress string `yaml:"synapse_cctp_address"` // TokenMessengerAddress is the TokenMessenger address. TokenMessengerAddress string `yaml:"token_messenger_address"` // Confirmations is the number of required confirmations. Confirmations uint64 `yaml:"confirmations"` // Tokens is a map of token ID -> token config. Tokens map[string]TokenConfig `yaml:"tokens"` // NativeToken is the native token of the chain (pays gas). NativeToken string `yaml:"native_token"` // DeadlineBufferSeconds is the deadline buffer for relaying a transaction. DeadlineBufferSeconds int `yaml:"deadline_buffer_seconds"` // OriginGasEstimate is the gas estimate to use for origin transactions (this will override base gas estimates). OriginGasEstimate int `yaml:"origin_gas_estimate"` // DestGasEstimate is the gas estimate to use for destination transactions (this will override base gas estimates). DestGasEstimate int `yaml:"dest_gas_estimate"` // L1FeeChainID indicates the chain ID for the L1 fee (if needed, for example on optimism). L1FeeChainID uint32 `yaml:"l1_fee_chain_id"` // L1FeeOriginGasEstimate is the gas estimate for the L1 fee on origin. L1FeeOriginGasEstimate int `yaml:"l1_fee_origin_gas_estimate"` // L1FeeDestGasEstimate is the gas estimate for the L1 fee on destination. L1FeeDestGasEstimate int `yaml:"l1_fee_dest_gas_estimate"` // MinGasToken is minimum amount of gas that should be leftover after bridging a gas token. MinGasToken string `yaml:"min_gas_token"` // QuotePct is the percent of balance to quote. QuotePct float64 `yaml:"quote_pct"` // QuoteOffsetBps is the number of basis points to deduct from the dest amount. QuoteOffsetBps float64 `yaml:"quote_offset_bps"` // FixedFeeMultiplier is the multiplier for the fixed fee. FixedFeeMultiplier float64 `yaml:"fixed_fee_multiplier"` // CCTP start block is the block at which the chain listener will listen for CCTP events. CCTPStartBlock uint64 `yaml:"cctp_start_block"` }
ChainConfig represents the configuration for a chain.
type Config ¶
type Config struct { // Chains is a map of chainID -> chain config. Chains map[int]ChainConfig `yaml:"chains"` // BaseChainConfig applies to all chains except those values that are overridden in Chains. BaseChainConfig ChainConfig `yaml:"base_chain_config"` // OmniRPCURL is the URL of the OmniRPC server. OmniRPCURL string `yaml:"omnirpc_url"` // RfqAPIURL is the URL of the RFQ API. RfqAPIURL string `yaml:"rfq_url"` // RelayerAPIPort is the port of the relayer API. RelayerAPIPort string `yaml:"relayer_api_port"` // Database is the database config. Database DatabaseConfig `yaml:"database"` // QuotableTokens is a map of token -> list of quotable tokens. QuotableTokens map[string][]string `yaml:"quotable_tokens"` // Signer is the signer config. Signer config.SignerConfig `yaml:"signer"` // SubmitterConfig is the submitter config. SubmitterConfig submitterConfig.Config `yaml:"submitter_config"` // FeePricer is the fee pricer config. FeePricer FeePricerConfig `yaml:"fee_pricer"` // ScreenerAPIUrl is the TRM API url. ScreenerAPIUrl string `yaml:"screener_api_url"` // DBSelectorInterval is the interval for the db selector. DBSelectorInterval time.Duration `yaml:"db_selector_interval"` // RebalanceInterval is the interval for rebalancing. RebalanceInterval time.Duration `yaml:"rebalance_interval"` // CCTPRelayerConfig is the embedded cctp relayer config (optional). CCTPRelayerConfig *cctpConfig.Config `yaml:"cctp_relayer_config"` }
Config represents the configuration for the relayer. TODO: validation function.
func LoadConfig ¶
LoadConfig loads the config from the given path.
func (Config) GetCCTPStartBlock ¶ added in v0.0.54
GetCCTPStartBlock returns the CCTPStartBlock for the given chainID.
func (Config) GetChains ¶
func (c Config) GetChains() map[int]ChainConfig
GetChains returns the chains config.
func (Config) GetConfirmations ¶ added in v0.0.39
GetConfirmations returns the Confirmations for the given chainID.
func (Config) GetDBSelectorInterval ¶ added in v0.0.44
GetDBSelectorInterval returns the interval for the DB selector.
func (Config) GetDatabase ¶
func (c Config) GetDatabase() DatabaseConfig
GetDatabase returns the database config.
func (Config) GetDeadlineBuffer ¶ added in v0.0.23
GetDeadlineBuffer returns the DeadlineBuffer for the given chainID.
func (Config) GetDestGasEstimate ¶ added in v0.0.17
GetDestGasEstimate returns the DestGasEstimate for the given chainID.
func (Config) GetFeePricer ¶
func (c Config) GetFeePricer() FeePricerConfig
GetFeePricer returns the fee pricer config.
func (Config) GetFixedFeeMultiplier ¶ added in v0.0.6
GetFixedFeeMultiplier returns the FixedFeeMultiplier for the given chainID.
func (Config) GetHTTPTimeout ¶ added in v0.0.40
GetHTTPTimeout returns the HTTP timeout.
func (Config) GetInitialBalancePct ¶ added in v0.0.54
GetInitialBalancePct returns the initial balance percentage for the given chain and token address.
func (Config) GetL1FeeChainID ¶ added in v0.0.39
GetL1FeeChainID returns the L1FeeChainID for the given chainID.
func (Config) GetL1FeeDestGasEstimate ¶ added in v0.0.39
GetL1FeeDestGasEstimate returns the L1FeeDestGasEstimate for the given chainID.
func (Config) GetL1FeeOriginGasEstimate ¶ added in v0.0.39
GetL1FeeOriginGasEstimate returns the L1FeeOriginGasEstimate for the given chainID.
func (Config) GetL1FeeParams ¶ added in v0.0.17
GetL1FeeParams returns the L1 fee params for the given chain.
func (Config) GetMaintenanceBalancePct ¶ added in v0.0.54
GetMaintenanceBalancePct returns the maintenance balance percentage for the given chain and token address.
func (Config) GetMaxRebalanceAmount ¶ added in v0.0.54
GetMaxRebalanceAmount returns the max rebalance amount for the given chain and address. Note that this getter returns the value in native token decimals.
func (Config) GetMinGasToken ¶ added in v0.0.35
GetMinGasToken returns the MinGasToken for the given chainID.
func (Config) GetMinQuoteAmount ¶ added in v0.0.16
GetMinQuoteAmount returns the quote amount for the given chain and address. Note that this getter returns the value in native token decimals.
func (Config) GetMinRebalanceAmount ¶ added in v0.3.0
GetMinRebalanceAmount returns the min rebalance amount for the given chain and address. Note that this getter returns the value in native token decimals.
func (Config) GetNativeToken ¶
GetNativeToken returns the NativeToken for the given chainID.
func (Config) GetOmniRPCURL ¶
GetOmniRPCURL returns the OmniRPCURL.
func (Config) GetOriginGasEstimate ¶ added in v0.0.17
GetOriginGasEstimate returns the OriginGasEstimate for the given chainID.
func (Config) GetQuotableTokens ¶
GetQuotableTokens returns the quotable tokens for the given token.
func (Config) GetQuoteOffsetBps ¶ added in v0.0.31
GetQuoteOffsetBps returns the QuoteOffsetBps for the given chainID.
func (Config) GetQuotePct ¶ added in v0.0.16
GetQuotePct returns the QuotePct for the given chainID.
func (Config) GetRFQAddress ¶ added in v0.0.54
GetRFQAddress returns the RFQ address for the given chainID.
func (Config) GetRebalanceInterval ¶ added in v0.0.54
GetRebalanceInterval returns the interval for rebalancing.
func (Config) GetRebalanceMethod ¶ added in v0.0.54
func (c Config) GetRebalanceMethod(chainID int, tokenAddr string) (method RebalanceMethod, err error)
GetRebalanceMethod returns the rebalance method for the given chain and token address.
func (Config) GetRebalanceMethods ¶ added in v0.0.54
func (c Config) GetRebalanceMethods() (methods map[RebalanceMethod]bool, err error)
GetRebalanceMethods returns all rebalance methods present in the config.
func (Config) GetRfqAPIURL ¶
GetRfqAPIURL returns the RFQ API URL.
func (Config) GetSigner ¶
func (c Config) GetSigner() config.SignerConfig
GetSigner returns the signer config.
func (Config) GetSynapseCCTPAddress ¶ added in v0.5.0
GetSynapseCCTPAddress returns the SynapseCCTP address for the given chainID.
func (Config) GetTokenDecimals ¶
GetTokenDecimals returns the token decimals for the given chain and token.
func (Config) GetTokenID ¶
GetTokenID returns the tokenID for the given chain and address.
func (Config) GetTokenMessengerAddress ¶ added in v0.5.0
GetTokenMessengerAddress returns the TokenMessenger address for the given chainID.
func (Config) GetTokenName ¶
GetTokenName returns the token name for the given chain and address.
type DatabaseConfig ¶
type DatabaseConfig struct { Type string `yaml:"type"` DSN string `yaml:"dsn"` // Data Source Name }
DatabaseConfig represents the configuration for the database.
type FeePricerConfig ¶
type FeePricerConfig struct { // GasPriceCacheTTLSeconds is the TTL for the gas price cache. GasPriceCacheTTLSeconds int `yaml:"gas_price_cache_ttl"` // TokenPriceCacheTTLSeconds is the TTL for the token price cache. TokenPriceCacheTTLSeconds int `yaml:"token_price_cache_ttl"` // HTTPTimeoutMs is the number of milliseconds to timeout on a HTTP request. HTTPTimeoutMs int `yaml:"http_timeout_ms"` }
FeePricerConfig represents the configuration for the fee pricer.
type RebalanceMethod ¶ added in v0.0.54
type RebalanceMethod uint8
RebalanceMethod is the method to rebalance.
const ( // RebalanceMethodNone is the default rebalance method. RebalanceMethodNone RebalanceMethod = iota // RebalanceMethodSynapseCCTP is the rebalance method for CCTP. RebalanceMethodSynapseCCTP // RebalanceMethodCircleCCTP is the rebalance method for Circle CCTP. RebalanceMethodCircleCCTP // RebalanceMethodNative is the rebalance method for native bridge. RebalanceMethodNative )
func (RebalanceMethod) String ¶ added in v0.0.54
func (i RebalanceMethod) String() string
type TokenConfig ¶
type TokenConfig struct { // Address is the token address. Address string `yaml:"address"` // Decimals is the token decimals. Decimals uint8 `yaml:"decimals"` // For now, specify the USD price of the token in the config. PriceUSD float64 `yaml:"price_usd"` // MinQuoteAmount is the minimum amount to quote for this token in human-readable units. MinQuoteAmount string `yaml:"min_quote_amount"` // RebalanceMethod is the method to use for rebalancing. RebalanceMethod string `yaml:"rebalance_method"` // MaintenanceBalancePct is the percentage of the total balance under which a rebalance will be triggered. MaintenanceBalancePct float64 `yaml:"maintenance_balance_pct"` // InitialBalancePct is the percentage of the total balance to retain when triggering a rebalance. InitialBalancePct float64 `yaml:"initial_balance_pct"` // MinRebalanceAmount is the minimum amount to rebalance in human-readable units. // For USDC-through-cctp pairs this defaults to $1,000. MinRebalanceAmount string `yaml:"min_rebalance_amount"` // MaxRebalanceAmount is the maximum amount to rebalance in human-readable units. MaxRebalanceAmount string `yaml:"max_rebalance_amount"` }
TokenConfig represents the configuration for a token.