services

package
v0.0.0-...-2c32341 Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2019 License: MIT Imports: 20 Imported by: 8

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrAccountExists = errors.New("Account already Exists")
View Source
var ErrAccountNotFound = errors.New("Account not found")
View Source
var ErrBaseTokenNotFound = errors.New("BaseToken not found")
View Source
var ErrNoContractCode = errors.New("Contract not found at given address")
View Source
var ErrPairExists = errors.New("Pairs already exists")
View Source
var ErrPairNotFound = errors.New("Pair not found")
View Source
var ErrQuoteTokenInvalid = errors.New("Quote Token Invalid (not a quote)")
View Source
var ErrQuoteTokenNotFound = errors.New("QuoteToken not found")
View Source
var ErrTokenExists = errors.New("Token already exists")

Functions

This section is empty.

Types

type AccountService

type AccountService struct {
	AccountDao interfaces.AccountDao
	TokenDao   interfaces.TokenDao
}

func NewAccountService

func NewAccountService(
	AccountDao interfaces.AccountDao,
	TokenDao interfaces.TokenDao,
) *AccountService

NewAddressService returns a new instance of accountService

func (*AccountService) Create

func (s *AccountService) Create(a *types.Account) error

func (*AccountService) FindOrCreate

func (s *AccountService) FindOrCreate(addr common.Address) (*types.Account, error)

func (*AccountService) GetAll

func (s *AccountService) GetAll() ([]types.Account, error)

func (*AccountService) GetByAddress

func (s *AccountService) GetByAddress(a common.Address) (*types.Account, error)

func (*AccountService) GetByID

func (s *AccountService) GetByID(id bson.ObjectId) (*types.Account, error)

func (*AccountService) GetTokenBalance

func (s *AccountService) GetTokenBalance(owner common.Address, token common.Address) (*types.TokenBalance, error)

func (*AccountService) GetTokenBalances

func (s *AccountService) GetTokenBalances(owner common.Address) (map[common.Address]*types.TokenBalance, error)

type InfoService

type InfoService struct {
	// contains filtered or unexported fields
}

func NewInfoService

func NewInfoService(
	pairDao interfaces.PairDao,
	tokenDao interfaces.TokenDao,
	tradeDao interfaces.TradeDao,
	orderDao interfaces.OrderDao,
	priceService interfaces.PriceService,
) *InfoService

func (*InfoService) GetExchangeData

func (s *InfoService) GetExchangeData() (*types.ExchangeData, error)

func (*InfoService) GetExchangeStats

func (s *InfoService) GetExchangeStats() (*types.ExchangeStats, error)

func (*InfoService) GetPairStats

func (s *InfoService) GetPairStats() (*types.PairStats, error)

type OHLCVService

type OHLCVService struct {
	// contains filtered or unexported fields
}

func NewOHLCVService

func NewOHLCVService(TradeDao interfaces.TradeDao) *OHLCVService

func (*OHLCVService) GetOHLCV

func (s *OHLCVService) GetOHLCV(pairs []types.PairAddresses, duration int64, unit string, timeInterval ...int64) ([]*types.Tick, error)

GetOHLCV fetches OHLCV data using pairName: can be "" for fetching data for all pairs duration: in integer unit: sec,min,hour,day,week,month,yr timeInterval: 0-2 entries (0 argument: latest data,1st argument: from timestamp, 2nd argument: to timestamp)

func (*OHLCVService) Subscribe

func (s *OHLCVService) Subscribe(conn *ws.Client, p *types.SubscriptionPayload)

Subscribe handles all the subscription messages for ticks corresponding to a pair It calls the corresponding channel's subscription method and sends trade history back on the connection

func (*OHLCVService) Unsubscribe

func (s *OHLCVService) Unsubscribe(conn *ws.Client)

Unsubscribe handles all the unsubscription messages for ticks corresponding to a pair

func (*OHLCVService) UnsubscribeChannel

func (s *OHLCVService) UnsubscribeChannel(conn *ws.Client, p *types.SubscriptionPayload)

Unsubscribe handles all the unsubscription messages for ticks corresponding to a pair

type OrderBookService

type OrderBookService struct {
	// contains filtered or unexported fields
}

PairService struct with daos required, responsible for communicating with daos. PairService functions are responsible for interacting with daos and implements business logics.

func NewOrderBookService

func NewOrderBookService(
	pairDao interfaces.PairDao,
	tokenDao interfaces.TokenDao,
	orderDao interfaces.OrderDao,
	eng interfaces.Engine,
) *OrderBookService

NewPairService returns a new instance of balance service

func (*OrderBookService) GetOrderBook

func (s *OrderBookService) GetOrderBook(bt, qt common.Address) (map[string]interface{}, error)

GetOrderBook

func (*OrderBookService) GetRawOrderBook

func (s *OrderBookService) GetRawOrderBook(bt, qt common.Address) (*types.RawOrderBook, error)

GetRawOrderBook fetches complete orderbook from engine

func (*OrderBookService) SubscribeOrderBook

func (s *OrderBookService) SubscribeOrderBook(c *ws.Client, bt, qt common.Address)

SubscribeOrderBook is responsible for handling incoming orderbook subscription messages It makes an entry of connection in pairSocket corresponding to pair,unit and duration

func (*OrderBookService) SubscribeRawOrderBook

func (s *OrderBookService) SubscribeRawOrderBook(c *ws.Client, bt, qt common.Address)

SubscribeRawOrderBook is responsible for handling incoming orderbook subscription messages It makes an entry of connection in pairSocket corresponding to pair,unit and duration

func (*OrderBookService) UnsubscribeOrderBook

func (s *OrderBookService) UnsubscribeOrderBook(c *ws.Client)

UnsubscribeOrderBook is responsible for handling incoming orderbook unsubscription messages

func (*OrderBookService) UnsubscribeOrderBookChannel

func (s *OrderBookService) UnsubscribeOrderBookChannel(c *ws.Client, bt, qt common.Address)

func (*OrderBookService) UnsubscribeRawOrderBook

func (s *OrderBookService) UnsubscribeRawOrderBook(c *ws.Client)

UnsubscribeRawOrderBook is responsible for handling incoming orderbook unsubscription messages

func (*OrderBookService) UnsubscribeRawOrderBookChannel

func (s *OrderBookService) UnsubscribeRawOrderBookChannel(c *ws.Client, bt, qt common.Address)

type OrderService

type OrderService struct {
	// contains filtered or unexported fields
}

OrderService

func NewOrderService

func NewOrderService(
	orderDao interfaces.OrderDao,
	pairDao interfaces.PairDao,
	accountDao interfaces.AccountDao,
	tradeDao interfaces.TradeDao,
	engine interfaces.Engine,
	validator interfaces.ValidatorService,
	broker *rabbitmq.Connection,
) *OrderService

NewOrderService returns a new instance of orderservice

func (*OrderService) CancelOrder

func (s *OrderService) CancelOrder(oc *types.OrderCancel) error

CancelOrder handles the cancellation order requests. Only Orders which are OPEN or NEW i.e. Not yet filled/partially filled can be cancelled

func (*OrderService) GetByHash

func (s *OrderService) GetByHash(hash common.Hash) (*types.Order, error)

GetByHash fetches all trades corresponding to a trade hash

func (*OrderService) GetByHashes

func (s *OrderService) GetByHashes(hashes []common.Hash) ([]*types.Order, error)

func (*OrderService) GetByID

func (s *OrderService) GetByID(id bson.ObjectId) (*types.Order, error)

GetByID fetches the details of an order using order's mongo ID

func (*OrderService) GetByUserAddress

func (s *OrderService) GetByUserAddress(addr common.Address, limit ...int) ([]*types.Order, error)

GetByUserAddress fetches all the orders placed by passed user address

func (*OrderService) GetCurrentByUserAddress

func (s *OrderService) GetCurrentByUserAddress(addr common.Address, limit ...int) ([]*types.Order, error)

GetCurrentByUserAddress function fetches list of open/partial orders from order collection based on user address. Returns array of Order type struct

func (*OrderService) GetHistoryByUserAddress

func (s *OrderService) GetHistoryByUserAddress(addr common.Address, limit ...int) ([]*types.Order, error)

GetHistoryByUserAddress function fetches list of orders which are not in open/partial order status from order collection based on user address. Returns array of Order type struct

func (*OrderService) HandleEngineResponse

func (s *OrderService) HandleEngineResponse(res *types.EngineResponse) error

HandleEngineResponse listens to messages incoming from the engine and handles websocket responses and database updates accordingly

func (*OrderService) HandleOperatorMessages

func (s *OrderService) HandleOperatorMessages(msg *types.OperatorMessage) error

func (*OrderService) NewOrder

func (s *OrderService) NewOrder(o *types.Order) error

NewOrder validates if the passed order is valid or not based on user's available funds and order data. If valid: Order is inserted in DB with order status as new and order is publiched on rabbitmq queue for matching engine to process the order

type PairService

type PairService struct {
	// contains filtered or unexported fields
}

PairService struct with daos required, responsible for communicating with daos. PairService functions are responsible for interacting with daos and implements business logics.

func NewPairService

func NewPairService(
	pairDao interfaces.PairDao,
	tokenDao interfaces.TokenDao,
	tradeDao interfaces.TradeDao,
	orderDao interfaces.OrderDao,
	eng interfaces.Engine,
	provider interfaces.EthereumProvider,
) *PairService

NewPairService returns a new instance of balance service

func (*PairService) Create

func (s *PairService) Create(pair *types.Pair) error

Create function is responsible for inserting new pair in DB. It checks for existence of tokens in DB first

func (*PairService) CreatePairs

func (s *PairService) CreatePairs(addr common.Address) ([]*types.Pair, error)

func (*PairService) GetAll

func (s *PairService) GetAll() ([]types.Pair, error)

GetAll is reponsible for fetching all the pairs in the DB

func (*PairService) GetAllExactTokenPairData

func (s *PairService) GetAllExactTokenPairData() ([]*types.PairData, error)

func (*PairService) GetAllSimplifiedTokenPairData

func (s *PairService) GetAllSimplifiedTokenPairData() ([]*types.SimplifiedPairAPIData, error)

func (*PairService) GetAllTokenPairData

func (s *PairService) GetAllTokenPairData() ([]*types.PairAPIData, error)

Return a simplified version of the pair data

func (*PairService) GetByID

func (s *PairService) GetByID(id bson.ObjectId) (*types.Pair, error)

GetByID fetches details of a pair using its mongo ID

func (*PairService) GetByTokenAddress

func (s *PairService) GetByTokenAddress(bt, qt common.Address) (*types.Pair, error)

GetByTokenAddress fetches details of a pair using contract address of its constituting tokens

func (*PairService) GetListedPairs

func (s *PairService) GetListedPairs() ([]types.Pair, error)

func (*PairService) GetTokenPairData

func (s *PairService) GetTokenPairData(bt, qt common.Address) ([]*types.Tick, error)

func (*PairService) GetUnlistedPairs

func (s *PairService) GetUnlistedPairs() ([]types.Pair, error)

type PriceService

type PriceService struct{}

func NewPriceService

func NewPriceService() *PriceService

func (*PriceService) GetDollarMarketPrices

func (s *PriceService) GetDollarMarketPrices(baseCurrencies []string) (map[string]float64, error)

func (*PriceService) GetMultipleMarketPrices

func (s *PriceService) GetMultipleMarketPrices(baseCurrencies []string, quoteCurrencies []string) (map[string]map[string]float64, error)

type TokenService

type TokenService struct {
	// contains filtered or unexported fields
}

TokenService struct with daos required, responsible for communicating with daos. TokenService functions are responsible for interacting with daos and implements business logics.

func NewTokenService

func NewTokenService(tokenDao interfaces.TokenDao) *TokenService

NewTokenService returns a new instance of TokenService

func (*TokenService) Create

func (s *TokenService) Create(token *types.Token) error

Create inserts a new token into the database

func (*TokenService) GetAll

func (s *TokenService) GetAll() ([]types.Token, error)

GetAll fetches all the tokens from db

func (*TokenService) GetBaseTokens

func (s *TokenService) GetBaseTokens() ([]types.Token, error)

GetBase fetches all the quote tokens from db

func (*TokenService) GetByAddress

func (s *TokenService) GetByAddress(addr common.Address) (*types.Token, error)

GetByAddress fetches the detailed document of a token using its contract address

func (*TokenService) GetByID

func (s *TokenService) GetByID(id bson.ObjectId) (*types.Token, error)

GetByID fetches the detailed document of a token using its mongo ID

func (*TokenService) GetListedBaseTokens

func (s *TokenService) GetListedBaseTokens() ([]types.Token, error)

func (*TokenService) GetListedTokens

func (s *TokenService) GetListedTokens() ([]types.Token, error)

func (*TokenService) GetQuoteTokens

func (s *TokenService) GetQuoteTokens() ([]types.Token, error)

GetQuote fetches all the quote tokens from db

func (*TokenService) GetUnlistedTokens

func (s *TokenService) GetUnlistedTokens() ([]types.Token, error)

type TradeService

type TradeService struct {
	// contains filtered or unexported fields
}

TradeService struct with daos required, responsible for communicating with daos. TradeService functions are responsible for interacting with daos and implements business logics.

func NewTradeService

func NewTradeService(TradeDao interfaces.TradeDao) *TradeService

NewTradeService returns a new instance of TradeService

func (*TradeService) GetAllTradesByPairAddress

func (s *TradeService) GetAllTradesByPairAddress(bt, qt common.Address) ([]*types.Trade, error)

GetByPairAddress fetches all the trades corresponding to a pair using pair's token address

func (*TradeService) GetByHash

func (s *TradeService) GetByHash(h common.Hash) (*types.Trade, error)

GetByHash fetches all trades corresponding to a trade hash

func (*TradeService) GetByMakerOrderHash

func (s *TradeService) GetByMakerOrderHash(h common.Hash) ([]*types.Trade, error)

func (*TradeService) GetByOrderHashes

func (s *TradeService) GetByOrderHashes(hashes []common.Hash) ([]*types.Trade, error)

func (*TradeService) GetByPairName

func (s *TradeService) GetByPairName(p string) ([]*types.Trade, error)

GetByPairName fetches all the trades corresponding to a pair using pair's name

func (*TradeService) GetByTakerOrderHash

func (s *TradeService) GetByTakerOrderHash(h common.Hash) ([]*types.Trade, error)

func (*TradeService) GetByUserAddress

func (s *TradeService) GetByUserAddress(a common.Address) ([]*types.Trade, error)

GetByUserAddress fetches all the trades corresponding to a user address

func (*TradeService) GetSortedTrades

func (s *TradeService) GetSortedTrades(bt, qt common.Address, n int) ([]*types.Trade, error)

func (*TradeService) GetSortedTradesByUserAddress

func (s *TradeService) GetSortedTradesByUserAddress(a common.Address, limit ...int) ([]*types.Trade, error)

func (*TradeService) Subscribe

func (s *TradeService) Subscribe(c *ws.Client, bt, qt common.Address)

Subscribe

func (*TradeService) Unsubscribe

func (s *TradeService) Unsubscribe(c *ws.Client)

Unsubscribe

func (*TradeService) UnsubscribeChannel

func (s *TradeService) UnsubscribeChannel(c *ws.Client, bt, qt common.Address)

Unsubscribe

func (*TradeService) UpdatePendingTrade

func (s *TradeService) UpdatePendingTrade(t *types.Trade, txh common.Hash) (*types.Trade, error)

func (*TradeService) UpdateSuccessfulTrade

func (s *TradeService) UpdateSuccessfulTrade(t *types.Trade) (*types.Trade, error)

func (*TradeService) UpdateTradeTxHash

func (s *TradeService) UpdateTradeTxHash(tr *types.Trade, txh common.Hash) error

type TxService

type TxService struct {
	WalletDao interfaces.WalletDao
	Wallet    *types.Wallet
}

WalletService struct with daos required, responsible for communicating with daos

func NewTxService

func NewTxService(dao interfaces.WalletDao, w *types.Wallet) *TxService

func (*TxService) GetCustomTxSendOptions

func (s *TxService) GetCustomTxSendOptions(w *types.Wallet) *bind.TransactOpts

func (*TxService) GetTxCallOptions

func (s *TxService) GetTxCallOptions() *bind.CallOpts

func (*TxService) GetTxDefaultSendOptions

func (s *TxService) GetTxDefaultSendOptions() (*bind.TransactOpts, error)

func (*TxService) GetTxSendOptions

func (s *TxService) GetTxSendOptions() (*bind.TransactOpts, error)

func (*TxService) SetTxSender

func (s *TxService) SetTxSender(w *types.Wallet)

type ValidatorService

type ValidatorService struct {
	// contains filtered or unexported fields
}

func NewValidatorService

func NewValidatorService(
	ethereumProvider interfaces.EthereumProvider,
	accountDao interfaces.AccountDao,
	orderDao interfaces.OrderDao,
	pairDao interfaces.PairDao,
) *ValidatorService

func (*ValidatorService) ValidateAvailableBalance

func (s *ValidatorService) ValidateAvailableBalance(o *types.Order) error

func (*ValidatorService) ValidateBalance

func (s *ValidatorService) ValidateBalance(o *types.Order) error

type WalletService

type WalletService struct {
	WalletDao interfaces.WalletDao
}

WalletService struct with daos required, responsible for communicating with daos

func NewWalletService

func NewWalletService(walletDao interfaces.WalletDao) *WalletService

func (*WalletService) CreateAdminWallet

func (s *WalletService) CreateAdminWallet(a common.Address) (*types.Wallet, error)

func (*WalletService) GetAll

func (s *WalletService) GetAll() ([]types.Wallet, error)

func (*WalletService) GetByAddress

func (s *WalletService) GetByAddress(a common.Address) (*types.Wallet, error)

func (*WalletService) GetDefaultAdminWallet

func (s *WalletService) GetDefaultAdminWallet() (*types.Wallet, error)

func (*WalletService) GetOperatorAddresses

func (s *WalletService) GetOperatorAddresses() ([]common.Address, error)

func (*WalletService) GetOperatorWallets

func (s *WalletService) GetOperatorWallets() ([]*types.Wallet, error)

Jump to

Keyboard shortcuts

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