Documentation ¶
Index ¶
- func ConvertFloat64ToString(num float64) string
- func ExtractFirstStringFromSliceField(strToSliceMap map[string]interface{}, fieldName string) (string, error)
- func GetApiResponseValidator() (*validator.Validate, error)
- func GetInnerMapFromMap(responseJson map[string]interface{}, key string) (map[string]interface{}, error)
- func GetMedianPricesFromTickers[T Ticker](tickers []T, tickerToExponent map[string]int32, medianizer lib.Medianizer) (tickerToPrice map[string]uint64, unavailableTickers map[string]error, ...)
- func GetOnlyTickerAndExponent(tickerToExponent map[string]int32, exchange string) (string, int32, error)
- func GetStringOrFloatValuesFromMap[V string | float64](responseJson map[string]interface{}, keys []string) ([]V, error)
- func GetUint64MedianFromReverseShiftedBigFloatValues(bigFloatSlice []*big.Float, exponent int32, medianizer lib.Medianizer) (uint64, error)
- func IsGenericExchangeError(err error) bool
- func ReverseShiftBigFloat(value *big.Float, exponent int32) *big.Float
- type ExchangeError
- type ExchangeErrorImpl
- type Ticker
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ConvertFloat64ToString ¶
ConvertFloat64ToString converts a `float64` to `string`.
func ExtractFirstStringFromSliceField ¶
func ExtractFirstStringFromSliceField(strToSliceMap map[string]interface{}, fieldName string) (string, error)
ExtractFirstStringFromSliceField takes a generic unmarshalled JSON object, interprets it as a slice of strings, and returns the first element.
func GetApiResponseValidator ¶
func GetApiResponseValidator() (*validator.Validate, error)
GetApiResponseValidator returns a validator with custom logic registered to validate fields returned by various exchange API responses.
func GetInnerMapFromMap ¶
func GetInnerMapFromMap( responseJson map[string]interface{}, key string, ) (map[string]interface{}, error)
GetInnerMapFromMap returns JSON map that correspond to the specific key from a JSON map.
func GetMedianPricesFromTickers ¶
func GetMedianPricesFromTickers[T Ticker]( tickers []T, tickerToExponent map[string]int32, medianizer lib.Medianizer, ) (tickerToPrice map[string]uint64, unavailableTickers map[string]error, err error)
GetMedianPricesFromTickers processes through a list of `tickers` and calculates a median price (from `LastPrice`, `AskPrice`, and `BidPrice`) for each ticker in `tickerToExponent` and marks a ticker as unavailable if it's not present in `tickers` or its ticker's validation or calculation fails.
func GetOnlyTickerAndExponent ¶
func GetOnlyTickerAndExponent( tickerToExponent map[string]int32, exchange string, ) (string, int32, error)
GetOnlyTickerAndExponent returns the only ticker and exponent in the provided `tickerToExponent` map. If the map contains more than one key, an error is returned.
func GetStringOrFloatValuesFromMap ¶
func GetStringOrFloatValuesFromMap[V string | float64]( responseJson map[string]interface{}, keys []string, ) ([]V, error)
GetStringOrFloatValuesFromMap returns string or float64 values that correspond to the specified keys from a JSON map.
func GetUint64MedianFromReverseShiftedBigFloatValues ¶
func GetUint64MedianFromReverseShiftedBigFloatValues( bigFloatSlice []*big.Float, exponent int32, medianizer lib.Medianizer, ) (uint64, error)
GetUint64MedianFromReverseShiftedBigFloatValues shifts all values in a slice of floats by an exponent, converts the shifted slice values to uint64 and then returns the median of the slice. 1) Verify length of slice is > 0. 2) Reverse shift big float price values by the exponent for the market. 3) Convert big float values to uint64 values. 4) Get the median value from the uint64 price values and return.
func IsGenericExchangeError ¶
IsGenericExchangeError returns true if the error message has been positively identified as being due to an exchange side error. These errors could occur on any exchange.
func ReverseShiftBigFloat ¶
ReverseShiftBigFloat shifts the given float by exponent in the reverse direction. If the exponent is 0, then do nothing (i.e. `123.456` -> `123.456`) If the exponent is positive, then shift to the right (i.e. exponent = 1, `123.456` -> `12.3456`) If the exponent is negative, then shift to the left (i.e. exponent = -1, `123.456` -> `1234.56`)
Types ¶
type ExchangeError ¶
type ExchangeError interface { error GetExchangeId() types.ExchangeId }
func NewExchangeError ¶
func NewExchangeError(exchangeId types.ExchangeId, msg string) ExchangeError
type ExchangeErrorImpl ¶
type ExchangeErrorImpl struct {
// contains filtered or unexported fields
}
func (*ExchangeErrorImpl) Error ¶
func (e *ExchangeErrorImpl) Error() string
func (*ExchangeErrorImpl) GetExchangeId ¶
func (e *ExchangeErrorImpl) GetExchangeId() types.ExchangeId