relconfig

package
v0.24.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 6, 2024 License: MIT Imports: 16 Imported by: 0

Documentation

Overview

Package relconfig contains the config yaml object for the relayer.

Index

Constants

This section is empty.

Variables

View Source
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

func SanitizeTokenID(id string) (sanitized string, err error)

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

func LoadConfig(path string) (config Config, err error)

LoadConfig loads the config from the given path.

func (Config) GetCCTPStartBlock added in v0.0.54

func (c Config) GetCCTPStartBlock(chainID int) (value uint64, err error)

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

func (c Config) GetConfirmations(chainID int) (value uint64, err error)

GetConfirmations returns the Confirmations for the given chainID.

func (Config) GetDBSelectorInterval added in v0.0.44

func (c Config) GetDBSelectorInterval() time.Duration

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

func (c Config) GetDeadlineBuffer(chainID int) (seconds time.Duration, err error)

GetDeadlineBuffer returns the DeadlineBuffer for the given chainID.

func (Config) GetDestGasEstimate added in v0.0.17

func (c Config) GetDestGasEstimate(chainID int) (value int, err error)

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

func (c Config) GetHTTPTimeout() time.Duration

GetHTTPTimeout returns the HTTP timeout.

func (Config) GetInitialBalancePct added in v0.0.54

func (c Config) GetInitialBalancePct(chainID int, tokenAddr string) (float64, error)

GetInitialBalancePct returns the initial balance percentage for the given chain and token address.

func (Config) GetL1FeeChainID added in v0.0.39

func (c Config) GetL1FeeChainID(chainID int) (value uint32, err error)

GetL1FeeChainID returns the L1FeeChainID for the given chainID.

func (Config) GetL1FeeDestGasEstimate added in v0.0.39

func (c Config) GetL1FeeDestGasEstimate(chainID int) (value int, err error)

GetL1FeeDestGasEstimate returns the L1FeeDestGasEstimate for the given chainID.

func (Config) GetL1FeeOriginGasEstimate added in v0.0.39

func (c Config) GetL1FeeOriginGasEstimate(chainID int) (value int, err error)

GetL1FeeOriginGasEstimate returns the L1FeeOriginGasEstimate for the given chainID.

func (Config) GetL1FeeParams added in v0.0.17

func (c Config) GetL1FeeParams(chainID uint32, origin bool) (uint32, int, bool)

GetL1FeeParams returns the L1 fee params for the given chain.

func (Config) GetMaintenanceBalancePct added in v0.0.54

func (c Config) GetMaintenanceBalancePct(chainID int, tokenAddr string) (float64, error)

GetMaintenanceBalancePct returns the maintenance balance percentage for the given chain and token address.

func (Config) GetMaxRebalanceAmount added in v0.0.54

func (c Config) GetMaxRebalanceAmount(chainID int, addr common.Address) *big.Int

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

func (c Config) GetMinGasToken(chainID int) (value *big.Int, err error)

GetMinGasToken returns the MinGasToken for the given chainID.

func (Config) GetMinQuoteAmount added in v0.0.16

func (c Config) GetMinQuoteAmount(chainID int, addr common.Address) *big.Int

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

func (c Config) GetMinRebalanceAmount(chainID int, addr common.Address) *big.Int

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

func (c Config) GetNativeToken(chainID int) (value string, err error)

GetNativeToken returns the NativeToken for the given chainID.

func (Config) GetOmniRPCURL

func (c Config) GetOmniRPCURL() string

GetOmniRPCURL returns the OmniRPCURL.

func (Config) GetOriginGasEstimate added in v0.0.17

func (c Config) GetOriginGasEstimate(chainID int) (value int, err error)

GetOriginGasEstimate returns the OriginGasEstimate for the given chainID.

func (Config) GetQuotableTokens

func (c Config) GetQuotableTokens(token string) ([]string, error)

GetQuotableTokens returns the quotable tokens for the given token.

func (Config) GetQuoteFixedFeeMultiplier added in v0.23.1

func (c Config) GetQuoteFixedFeeMultiplier(chainID int) (value float64, err error)

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

func (c Config) GetQuotePct(chainID int) (value float64, err error)

GetQuotePct returns the QuotePct for the given chainID.

func (Config) GetQuoteSubmissionTimeout added in v0.13.0

func (c Config) GetQuoteSubmissionTimeout() time.Duration

GetQuoteSubmissionTimeout returns the timeout for submitting quotes.

func (Config) GetQuoteWidthBps added in v0.15.1

func (c Config) GetQuoteWidthBps(chainID int) (value float64, err error)

GetQuoteWidthBps returns the QuoteWidthBps for the given chainID.

func (Config) GetRFQAddress added in v0.0.54

func (c Config) GetRFQAddress(chainID int) (value string, err error)

GetRFQAddress returns the RFQ address for the given chainID.

func (Config) GetRebalanceInterval added in v0.0.54

func (c Config) GetRebalanceInterval() time.Duration

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

func (c Config) GetRelayFixedFeeMultiplier(chainID int) (value float64, err error)

GetRelayFixedFeeMultiplier returns the RelayFixedFeeMultiplier for the given chainID.

func (Config) GetRfqAPIURL

func (c Config) GetRfqAPIURL() string

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

func (c Config) GetSynapseCCTPAddress(chainID int) (value string, err error)

GetSynapseCCTPAddress returns the SynapseCCTP address for the given chainID.

func (Config) GetTokenDecimals

func (c Config) GetTokenDecimals(chainID uint32, token string) (uint8, error)

GetTokenDecimals returns the token decimals for the given chain and token.

func (Config) GetTokenID

func (c Config) GetTokenID(chain int, addr string) (string, error)

GetTokenID returns the tokenID for the given chain and address.

func (Config) GetTokenMessengerAddress added in v0.5.0

func (c Config) GetTokenMessengerAddress(chainID int) (value string, err error)

GetTokenMessengerAddress returns the TokenMessenger address for the given chainID.

func (Config) GetTokenName

func (c Config) GetTokenName(chain uint32, addr string) (string, error)

GetTokenName returns the token name for the given chain and address.

func (Config) GetTokens

func (c Config) GetTokens(chainID uint32) (map[string]TokenConfig, error)

GetTokens returns the tokens for the given chain.

func (Config) Validate added in v0.13.1

func (c Config) Validate() (err error)

Validate validates the config.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL