base

package
v0.0.0-...-4ab53fc Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2021 License: MIT Imports: 5 Imported by: 0

README

GoCryptoTrader package Forexprovider

Build Status Software License GoDoc Coverage Status Go Report Card

This forexprovider package is part of the GoCryptoTrader codebase.

This is still in active development

You can track ideas, planned features and what's in progresss on this Trello board: https://trello.com/b/ZAhMhpOy/gocryptotrader.

Join our slack to discuss all things related to GoCryptoTrader! GoCryptoTrader Slack

Current Features for forexprovider

  • This package enforces standard variables and methods for the foreign exchange providers.
Please click GoDocs chevron above to view current GoDoc information for this package

Contribution

Please feel free to submit any pull requests or suggest any desired features to be added.

When submitting a PR, please abide by our coding guidelines:

  • Code must adhere to the official Go formatting guidelines (i.e. uses gofmt).
  • Code must be documented adhering to the official Go commentary guidelines.
  • Code must adhere to our coding style.
  • Pull requests need to be based on and opened against the master branch.

Donations

If this framework helped you in any way, or you would like to support the developers working on it, please donate Bitcoin to:

1F5zVDgNjorJ51oGebSvNCrSAHpwGkUdDB

Documentation

Index

Constants

View Source
const DefaultTimeOut = time.Second * 15

DefaultTimeOut is the default timeout for foreign exchange providers

Variables

This section is empty.

Functions

This section is empty.

Types

type Base

type Base struct {
	Settings `json:"settings"`
}

Base enforces standard variables across the provider packages

func (*Base) GetName

func (b *Base) GetName() string

GetName returns name of provider

func (*Base) IsEnabled

func (b *Base) IsEnabled() bool

IsEnabled returns true if enabled

func (*Base) IsPrimaryProvider

func (b *Base) IsPrimaryProvider() bool

IsPrimaryProvider returns true if primary provider

type FXHandler

type FXHandler struct {
	Primary Provider
	Support []Provider
	// contains filtered or unexported fields
}

FXHandler defines a full suite of FX data providers with failure backup with unsupported currency shunt procedure

func (*FXHandler) GetCurrencyData

func (f *FXHandler) GetCurrencyData(baseCurrency string, currencies []string) (map[string]float64, error)

GetCurrencyData returns currency data from enabled FX providers

type IFXProvider

type IFXProvider interface {
	Setup(config Settings) error
	GetRates(baseCurrency, symbols string) (map[string]float64, error)
	GetName() string
	IsEnabled() bool
	IsPrimaryProvider() bool
	GetSupportedCurrencies() ([]string, error)
}

IFXProvider enforces standard functions for all foreign exchange providers supported in GoCryptoTrader

type Provider

type Provider struct {
	Provider            IFXProvider
	SupportedCurrencies []string
}

Provider defines a singular foreign exchange provider with its supported currencies to cross reference request currencies and if not supported shunt request traffic to and from other providers so that we can maintain full currency list integration

func (Provider) CheckCurrencies

func (p Provider) CheckCurrencies(currencies []string) []string

CheckCurrencies cross references supplied currencies with exchange supported currencies, if there are any currencies not supported it returns a list to pass on to the next provider

func (*Provider) GetNewRate

func (p *Provider) GetNewRate(base string, currencies []string) (map[string]float64, error)

GetNewRate access rates by predetermined logic based on how a provider handles requests

type Settings

type Settings struct {
	Name             string        `json:"name"`
	Enabled          bool          `json:"enabled"`
	Verbose          bool          `json:"verbose"`
	RESTPollingDelay time.Duration `json:"restPollingDelay"`
	APIKey           string        `json:"apiKey"`
	APIKeyLvl        int           `json:"apiKeyLvl"`
	PrimaryProvider  bool          `json:"primaryProvider"`
}

Settings enforces standard variables across the provider packages

Jump to

Keyboard shortcuts

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