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) 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) GetQuoteFixedFeeMultiplier(chainID int) (value float64, err error)
- func (c Config) GetQuoteOffsetBps(chainID int, tokenName string, isOrigin bool) (value float64, err error)
- func (c Config) GetQuotePct(chainID int) (value float64, err error)
- func (c Config) GetQuoteSubmissionTimeout() time.Duration
- func (c Config) GetQuoteWidthBps(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) GetRelayFixedFeeMultiplier(chainID int) (value float64, 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)
- func (c Config) Validate() (err error)
- type DatabaseConfig
- type FeePricerConfig
- type RebalanceMethod
- type TokenConfig
Constants ¶
This section is empty.
Variables ¶
var DefaultChainConfig = ChainConfig{
DeadlineBufferSeconds: 600,
OriginGasEstimate: 160000,
DestGasEstimate: 100000,
MinGasToken: "100000000000000000",
QuotePct: 100,
QuoteWidthBps: 0,
QuoteFixedFeeMultiplier: 1,
RelayFixedFeeMultiplier: 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 name -> 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"` // QuoteWidthBps is the number of basis points to deduct from the dest amount. // Note that this parameter is applied on a chain level and must be positive. QuoteWidthBps float64 `yaml:"quote_width_bps"` // QuoteFixedFeeMultiplier is the multiplier for the fixed fee, applied when generating quotes. QuoteFixedFeeMultiplier float64 `yaml:"quote_fixed_fee_multiplier"` // RelayFixedFeeMultiplier is the multiplier for the fixed fee, applied when relaying. RelayFixedFeeMultiplier float64 `yaml:"relay_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"` // QuoteSubmissionTimeout is the timeout for submitting a quote. QuoteSubmissionTimeout time.Duration `yaml:"quote_submission_timeout"` // CCTPRelayerConfig is the embedded cctp relayer config (optional). CCTPRelayerConfig *cctpConfig.Config `yaml:"cctp_relayer_config"` }
Config represents the configuration for the relayer.
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) 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) GetQuoteFixedFeeMultiplier ¶ added in v0.23.1
GetQuoteFixedFeeMultiplier returns the QuoteFixedFeeMultiplier for the given chainID.
func (Config) GetQuoteOffsetBps ¶ added in v0.0.31
func (c Config) GetQuoteOffsetBps(chainID int, tokenName string, isOrigin bool) (value float64, err error)
GetQuoteOffsetBps returns the QuoteOffsetBps for the given chainID and tokenAddr. If the chainID corresponds to the origin of a quote, we flip the sign.
func (Config) GetQuotePct ¶ added in v0.0.16
GetQuotePct returns the QuotePct for the given chainID.
func (Config) GetQuoteSubmissionTimeout ¶ added in v0.13.0
GetQuoteSubmissionTimeout returns the timeout for submitting quotes.
func (Config) GetQuoteWidthBps ¶ added in v0.15.1
GetQuoteWidthBps returns the QuoteWidthBps 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 path and token address. This method will error if there is a rebalance method mismatch, and neither methods correspond to RebalanceMethodNone.
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) GetRelayFixedFeeMultiplier ¶ added in v0.23.1
GetRelayFixedFeeMultiplier returns the RelayFixedFeeMultiplier for the given chainID.
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 RebalanceMethodFromString ¶ added in v0.16.0
func RebalanceMethodFromString(str string) (RebalanceMethod, error)
RebalanceMethodFromString converts a string to a RebalanceMethod.
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"` // QuoteOffsetBps is the number of basis points to deduct from the dest amount, // and add to the origin amount for a given token, // Note that this value can be positive or negative; if positive it effectively increases the quoted price // of the given token, and vice versa. QuoteOffsetBps float64 `yaml:"quote_offset_bps"` }
TokenConfig represents the configuration for a token.