nqsdbclient

package
v0.0.0-...-1305305 Latest Latest
Warning

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

Go to latest
Published: Jun 30, 2021 License: Apache-2.0 Imports: 10 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	QUOTESTATUS_PENDING   = 1
	QUOTESTATUS_UPDATED   = 2
	QUOTESTATUS_EXECUTING = 3
	QUOTESTATUS_EXECUTED  = 4
	QUOTESTATUS_FAILED    = 98
	QUOTESTATUS_CANCELLED = 99
)
View Source
var LOGGER = logging.MustGetLogger("nqsdbclient")

Functions

This section is empty.

Types

type Comparison

type Comparison struct {
	Threshold *interface{} `json:"threshold"`
	Operator  *string      `json:"operator"` //comparison operator
}

type DatabaseClient

type DatabaseClient interface {
	CreateConnection() error
	CloseConnection()
	CreateRequest(requestID string, ofiID string, LimitMaxOfi decimal.Decimal, LimitMinOfi decimal.Decimal, sourceAsset []byte, targetAsset []byte, timeRequest int64, timeExpireOfi int64) error
	GetRequest(requestID string, ofiID string) ([]RequestDB, error)
	CreateQuote(requestID string, quoteID string, rfiID string, ofiID string, maxLimit decimal.Decimal, minLimit decimal.Decimal, sourceAsset []byte, targetAsset []byte, timeOfRequest int64, quoteStatus int, timeExpireOfi int64) error
	GetQuotes(requestID string, ofiID string) ([]QuoteDB, error)
	GetQuotesByAttributes(query *Query) ([]QuoteDB, error)
	CancelQuotesByAttributes(query *Query, TimeCancel int64) ([]QuoteDB, error)
	UpdateQuote(quote QuoteDB, timeOfQuote int64) error
	CancelQuote(quoteID string, rfiID string, TimeCancel int64) error
	ExecutingQuote(quoteID string, ofiID string, quoteResponse []byte, executingTime int64, amount decimal.Decimal) error
	ExecutedQuote(quoteID string, ofiID string, timeExecute int64) error
	FailedQuote(quoteID string, ofiID string) error
	GetQuoteByQuoteID(QuoteID string, rfiID string) ([]QuoteDB, error)
}

type PostgreDatabaseClient

type PostgreDatabaseClient struct {
	Host     string
	Port     int
	User     string
	Password string
	Dbname   string
	// contains filtered or unexported fields
}

func (PostgreDatabaseClient) CancelQuote

func (dbc PostgreDatabaseClient) CancelQuote(quoteID string, rfiID string, timeCancel int64) error

TODO time

func (PostgreDatabaseClient) CancelQuotesByAttributes

func (dbc PostgreDatabaseClient) CancelQuotesByAttributes(query *Query, timeCancel int64) ([]QuoteDB, error)

called by rfi

func (*PostgreDatabaseClient) CloseConnection

func (dbc *PostgreDatabaseClient) CloseConnection()

CloseConnection closes DB connection

func (*PostgreDatabaseClient) CreateConnection

func (dbc *PostgreDatabaseClient) CreateConnection() error

CreateConnection opens DB connection

func (*PostgreDatabaseClient) CreateQuote

func (dbc *PostgreDatabaseClient) CreateQuote(requestID string, quoteID string, rfiID string, ofiID string, LimitMaxOfi decimal.Decimal, LimitMinOfi decimal.Decimal, sourceAsset []byte, targetAsset []byte, timeRequest int64, statusQuote int, timeExpireOfi int64) error

CreateQuote creates quote to DB

func (*PostgreDatabaseClient) CreateRequest

func (dbc *PostgreDatabaseClient) CreateRequest(requestID string, ofiID string, LimitMaxOfi decimal.Decimal, LimitMinOfi decimal.Decimal, sourceAsset []byte, targetAsset []byte, timeRequest int64, timeExpireOfi int64) error

Create quote request to DB

func (PostgreDatabaseClient) ExecutedQuote

func (dbc PostgreDatabaseClient) ExecutedQuote(quoteID string, rfiID string, timeExecuted int64) error

func (PostgreDatabaseClient) ExecutingQuote

func (dbc PostgreDatabaseClient) ExecutingQuote(quoteID string, ofiID string, quoteResponse []byte, timeExecuting int64, amount decimal.Decimal) error

TODO time

func (PostgreDatabaseClient) FailedQuote

func (dbc PostgreDatabaseClient) FailedQuote(quoteID string, rfiID string) error

func (PostgreDatabaseClient) GetQuoteByQuoteID

func (dbc PostgreDatabaseClient) GetQuoteByQuoteID(QuoteID string, rfiID string) ([]QuoteDB, error)

func (PostgreDatabaseClient) GetQuotes

func (dbc PostgreDatabaseClient) GetQuotes(requestID string, ofiID string) ([]QuoteDB, error)

Get Quote Response

func (PostgreDatabaseClient) GetQuotesByAttributes

func (dbc PostgreDatabaseClient) GetQuotesByAttributes(query *Query) ([]QuoteDB, error)

called by ofi

func (PostgreDatabaseClient) GetRequest

func (dbc PostgreDatabaseClient) GetRequest(requestID string, ofiID string) ([]RequestDB, error)

Get Quote Request

func (PostgreDatabaseClient) InsertQuote

func (dbc PostgreDatabaseClient) InsertQuote(quote QuoteDB) error

for testing purpose only

func (PostgreDatabaseClient) UpdateQuote

func (dbc PostgreDatabaseClient) UpdateQuote(quote QuoteDB, timequote int64) error

statusQuote : 1 = pending, 2 = updated, 3 = executing , 4 = executed, 98=failed, 99 = canceled

type Query

type Query struct {
	DeleteAllQuotes   *bool            `json:"delete_all_quotes,omitempty"`
	RequestID         *string          `json:"request_id,omitempty" db:"requestid"`
	QuoteID           *string          `json:"quote_id,omitempty"`
	RfiID             *string          `json:"rfi_id,omitempty"`
	OfiID             *string          `json:"ofi_id,omitempty"`
	LimitMaxOfi       *decimal.Decimal `json:"limit_max_ofi,omitempty"`
	LimitMinOfi       *decimal.Decimal `json:"limit_min_ofi,omitempty"`
	ExchangeRate      *Comparison      `json:"exchange_rate,omitempty"`
	SourceAsset       *types.JSONText  `json:"source_asset,omitempty"`
	TargetAsset       *types.JSONText  `json:"target_asset,omitempty"`
	TimeRequest       *int64           `json:"time_request,omitempty"`
	TimeQuote         *int64           `json:"time_quote,omitempty"`
	TimeExpireRfi     *Comparison      `json:"time_expire_rfi,omitempty"`
	StatusQuote       *Comparison      `json:"status_quote,omitempty"`
	TimeExecuted      *int64           `json:"time_executed,omitempty"`
	TimeCancel        *int64           `json:"time_cancel,omitempty"`
	AddressReceiveRfi *string          `json:"address_receive_rfi,omitempty"`
	AddressSendRfi    *string          `json:"address_send_rfi,omitempty"`
}

type QuoteDB

type QuoteDB struct {
	RequestID         *string          `json:"request_id,omitempty" db:"requestid"`
	QuoteID           *string          `json:"quote_id,omitempty" db:"quoteid"`
	RfiId             *string          `json:"rfi_id,omitempty" db:"rfiid"`
	OfiId             *string          `json:"ofi_id,omitempty" db:"ofiid"`
	LimitMaxOfi       *decimal.Decimal `json:"limit_max_ofi,omitempty" db:"limitmaxofi"`
	LimitMinOfi       *decimal.Decimal `json:"limit_min_ofi,omitempty" db:"limitminofi"`
	LimitMaxRfi       *decimal.Decimal `json:"limit_max_rfi,omitempty" db:"limitmaxrfi"`
	LimitMinRfi       *decimal.Decimal `json:"limit_min_rfi,omitempty" db:"limitminrfi"`
	Amount            *decimal.Decimal `json:"amount,omitempty" db:"amount"`
	ExchangeRate      *decimal.Decimal `json:"exchange_rate,omitempty" db:"exchangerate"`
	SourceAsset       *types.JSONText  `json:"source_asset,omitempty" db:"sourceasset"`
	TargetAsset       *types.JSONText  `json:"target_asset,omitempty" db:"targetasset"`
	TimeRequest       *int64           `json:"time_request,omitempty" db:"timerequest"`
	TimeQuote         *int64           `json:"time_quote,omitempty" db:"timequote"`
	TimeExpireOfi     *int64           `json:"time_expire_ofi,omitempty" db:"timeexpireofi"`
	TimeStartRfi      *int64           `json:"time_start_rfi,omitempty" db:"timestartrfi"`
	TimeExpireRfi     *int64           `json:"time_expire_rfi,omitempty" db:"timeexpirerfi"`
	StatusQuote       *int             `json:"status_quote,omitempty" db:"statusquote"`
	TimeExecuted      *int64           `json:"time_executed,omitempty" db:"timeexecuted"`
	TimeCancel        *int64           `json:"time_cancel,omitempty" db:"timecancel"`
	AddressReceiveRfi *string          `json:"address_receive_rfi,omitempty" db:"addressreceiverfi"`
	AddressSendRfi    *string          `json:"address_send_rfi,omitempty" db:"addresssendrfi"`
	// QuoteRequest           *types.JSONText `json:"quote_request,omitempty" db:"quoterequest"`
	QuoteRequestSignature  *string         `json:"quote_request_signature,omitempty" db:"quoterequestsignature"`
	QuoteResponse          *types.JSONText `json:"quote_response,omitempty" db:"quoteresponse"`
	QuoteResponseBase64    *string         `json:"quote_response_base64,omitempty" db:"quoteresponsebase64"`
	QuoteResponseSignature *string         `json:"quote_response_signature,omitempty" db:"quoteresponsesignature"`
}

type RequestDB

type RequestDB struct {
	RequestID     *string          `json:"request_id,omitempty" db:"requestid"`
	TimeExpireOfi *int64           `json:"time_expire_ofi,omitempty" db:"timeexpireofi"`
	LimitMaxOfi   *decimal.Decimal `json:"limit_max_rfi,omitempty" db:"limitmaxrfi"`
	LimitMinOfi   *decimal.Decimal `json:"limit_min_rfi,omitempty" db:"limitminrfi"`
	SourceAsset   *types.JSONText  `json:"source_asset,omitempty" db:"sourceasset"`
	TargetAsset   *types.JSONText  `json:"target_asset,omitempty" db:"targetasset"`
	TimeRequest   *int64           `json:"time_request,omitempty" db:"timerequest"`
	OfiId         *string          `json:"ofi_id,omitempty" db:"ofiid"`
}

Jump to

Keyboard shortcuts

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