api

package
v0.0.0-...-da19eeb Latest Latest
Warning

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

Go to latest
Published: Apr 24, 2019 License: MIT Imports: 13 Imported by: 8

Documentation

Index

Constants

View Source
const (
	InvalidAPIID         = -1
	AssetsListAll        = -1
	AssetsMaxBatchSize   = 100
	GetCallOrdersLimit   = 100
	GetLimitOrdersLimit  = 100
	GetSettleOrdersLimit = 100
	GetTradeHistoryLimit = 100
)

Variables

View Source
var (
	EmptyParams = []interface{}{}
)

Functions

func ConstructTransaction

func ConstructTransaction(p DatabaseAPI, feeAsset objects.GrapheneObject, ops ...objects.Operation) (*objects.Transaction, error)

func LoadAccounts

func LoadAccounts(rpc DatabaseAPI, handler FullAccountHandler) error

func SignAndBroadcast

func SignAndBroadcast(api BitsharesAPI, keys map[string]*btcec.PrivateKey, feeAsset objects.GrapheneObject, ops ...objects.Operation) (*objects.Transaction, error)

func SignTransaction

func SignTransaction(p DatabaseAPI, pvtKeys map[string]*btcec.PrivateKey, tx *objects.Transaction) error

Types

type APINotifyFunc

type APINotifyFunc func(params []json.RawMessage) error

type AssetCache

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

func NewAssetCache

func NewAssetCache(api DatabaseAPI) *AssetCache

func (*AssetCache) GetAsset

func (c *AssetCache) GetAsset(nameOrID string) *objects.Asset

func (*AssetCache) GetByID

func (c *AssetCache) GetByID(id *objects.GrapheneID) *objects.Asset

func (*AssetCache) GetBySymbol

func (c *AssetCache) GetBySymbol(name string) *objects.Asset

type BitsharesAPI

type BitsharesAPI interface {
	OnLogin(fn func())
	OnLogout(fn func())

	DatabaseAPI() (DatabaseAPI, error)
	BroadcastAPI() (BroadcastAPI, error)
	HistoryAPI() (HistoryAPI, error)
	NetworkNodeAPI() (NetworkNodeAPI, error)
	CryptoAPI() (CryptoAPI, error)
}

func New

func New(wsConnection BitsharesAPIConnection, params Params) BitsharesAPI

New creates a new BitsharesAPI interface.

type BitsharesAPIConnEvent

type BitsharesAPIConnEvent int
const (
	BitsharesAPIConnEventUnknown BitsharesAPIConnEvent = iota
	BitsharesAPIConnEventEstablished
	BitsharesAPIConnEventClosed
)

type BitsharesAPIConnection

type BitsharesAPIConnection interface {
	Connect() error
	Close() error
	OnError(func(error))
	OnNotify(subscriberID int, handler APINotifyFunc)
	Call(apiID interface{}, method string, result interface{}, args ...interface{}) error
	RegisterCallback(fn func(BitsharesAPIConnEvent))
}

func NewConnection

func NewConnection(wsEndpointURL string) BitsharesAPIConnection

NewConnection creates new websocket connection with Bitshares API.

type BitsharesWalletAPI

type BitsharesWalletAPI interface {
	//wallet API
	Close() error
	Connect() error
	//Transfer(from, to objects.GrapheneObject, amount objects.AssetAmount) (interface{}, error)
	ListAccountBalances(account objects.GrapheneObject) ([]objects.AssetAmount, error)
	WalletLock() error
	WalletUnlock(password string) error
	WalletIsLocked() (bool, error)
	Buy(account objects.GrapheneObject, base, quote objects.GrapheneObject, rate string, amount string, broadcast bool) (*objects.Transaction, error)
	BuyEx(account objects.GrapheneObject, base, quote objects.GrapheneObject, rate float64, amount float64, broadcast bool) (*objects.Transaction, error)
	Sell(account objects.GrapheneObject, base, quote objects.GrapheneObject, rate string, amount string, broadcast bool) (*objects.Transaction, error)
	SellEx(account objects.GrapheneObject, base, quote objects.GrapheneObject, rate float64, amount float64, broadcast bool) (*objects.Transaction, error)
	SellAsset(account objects.GrapheneObject, amountToSell string, symbolToSell objects.GrapheneObject, minToReceive string, symbolToReceive objects.GrapheneObject, timeout uint32, fillOrKill bool, broadcast bool) (*objects.Transaction, error)
}

func NewWallet

func NewWallet(rpcEndpointURL string) BitsharesWalletAPI

NewWallet creates a new BitsharesWalletAPI interface.

type BlockAppliedHandler

type BlockAppliedHandler func(objects.BlockID)

type BroadcastAPI

type BroadcastAPI interface {
	BroadcastTransaction(tx *objects.Transaction) error
}

BroadcastAPI implements

type Builder

type Builder interface {
	Node(endpoint string) Builder
	Credentials(login, password string) Builder
	BlockHandler(handler BlockAppliedHandler) Builder
	LoginHandler(login func()) Builder
	LogoutHandler(close func()) Builder
	Build() (BitsharesAPIConnection, BitsharesAPI)
}

Builder interface provides a clever and convinient way to perform Bitshares API connection initial setup routine

func NewBuilder

func NewBuilder() Builder

NewBuilder constructs Builder object

type CryptoAPI

type CryptoAPI interface {
}

CryptoAPI interface is intended to produce some low level OTN cryptography operations

type DatabaseAPI

type DatabaseAPI interface {
	// Objects
	GetObjects(objectIDs ...objects.GrapheneObject) ([]interface{}, error)
	ListAssets(lowerBoundSymbol string, limit int) ([]objects.Asset, error)
	GetTicker(base, quote string) (*objects.MarketTicker, error)

	// Subscriptions
	SubscribeBlockApplied(BlockAppliedHandler) error
	CancelAllSubscriptions() error

	// Blocks & transactions
	GetBlock(number uint64) (*objects.Block, error)
	GetRecentTransactionByID(tx objects.TxID) (*objects.Transaction, error)

	// Globals
	GetChainID() objects.ChainID
	GetDynamicGlobalProperties() (*objects.DynamicGlobalProperties, error)

	// Accounts
	GetAccountBalances(account objects.GrapheneObject, assets ...objects.GrapheneObject) ([]objects.AssetAmount, error)
	GetAccountByName(name string) (*objects.Account, error)
	GetAccounts(accountIDs ...objects.GrapheneObject) ([]objects.Account, error)
	GetAccountCount() (uint64, error)
	GetFullAccounts(subscribe bool, accountIDs ...objects.GrapheneObject) ([]*objects.FullAccountResult, error)

	// Markets
	CancelOrder(orderID objects.GrapheneObject, broadcast bool) (*objects.Transaction, error)
	GetMarginPositions(accountID objects.GrapheneObject) ([]objects.CallOrder, error)
	GetCallOrders(assetID objects.GrapheneObject, limit int) ([]objects.CallOrder, error)
	GetLimitOrders(base, quote objects.GrapheneObject, limit int) (objects.LimitOrders, error)
	GetSettleOrders(assetID objects.GrapheneObject, limit int) ([]objects.SettleOrder, error)
	GetTradeHistory(base, quote objects.GrapheneObject, toTime, fromTime time.Time, limit int) ([]objects.MarketTrade, error)

	// Autority/Validation
	GetRequiredFees(ops objects.Operations, feeAsset objects.GrapheneObject) ([]objects.AssetAmount, error)
	GetPotentialSignatures(tx *objects.Transaction) ([]objects.PublicKey, error)
	GetRequiredSignatures(tx *objects.Transaction, keys []objects.PublicKey) ([]objects.PublicKey, error)
}

type FullAccountHandler

type FullAccountHandler func(acc *objects.FullAccount) error

type HistoryAPI

type HistoryAPI interface {
	GetAccountHistory(account objects.GrapheneObject, stop objects.GrapheneObject, start objects.GrapheneObject, limit int) ([]objects.OperationHistory, error)
	GetChronoRelativeHistory(account objects.GrapheneObject, start uint32, limit int) ([]objects.OperationHistory, error)
}

HistoryAPI implements

type NetworkNodeAPI

type NetworkNodeAPI interface {
	GetNetworkNodeInfo() (objects.NetworkNodeInfo, error)
	GetConnectedPeers() ([]objects.PeerStatus, error)
	GetAdvancedNodeParameters() (objects.AdvancedNodeParameters, error)
	GetPotentialPeers() ([]objects.PotentialPeerRecord, error)
}

NetworkNodeAPI interface provides access to internal OTN blockchain networking information

type Params

type Params struct {
	Username string `json:"username"`
	Password string `json:"password"`
}

Params specifies some API connection options

Jump to

Keyboard shortcuts

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