Documentation
¶
Index ¶
- Constants
- Variables
- type Balance
- type BalanceWithFee
- type BlockchainListener
- type Fee
- type Market
- type MarketInfo
- type MarketStrategy
- type MarketWithFee
- type MarketWithPrice
- type OperatorService
- type Price
- type PriceWithFee
- type ReportMarketFee
- type SendToManyRequest
- type SwapInfo
- type TradeService
- type TxOut
- type WalletService
- type WithdrawMarketReq
Constants ¶
View Source
const ( TradeBuy = iota TradeSell )
View Source
const RegtestExplorerAPI = "http://127.0.0.1:3001"
RegtestExplorerAPI ...
Variables ¶
View Source
var ( // ErrWalletNotFunded ... ErrWalletNotFunded = fmt.Errorf("wallet not funded") // ErrWalletIsSyncing ... ErrWalletIsSyncing = fmt.Errorf( "wallet is syncing data from blockchain. All functionalities are " + "disabled until this operation is completed", ) // ErrWalletNotInitialized ... ErrWalletNotInitialized = fmt.Errorf("wallet not initialized") )
View Source
var ErrCrawlerDoesNotObserveFeeAccount = errors.New("fee account needs to be funded to open a market")
ErrCrawlerDoesNotObserveAddresses occurs when the crawler does not observe any address
Functions ¶
This section is empty.
Types ¶
type BalanceWithFee ¶
type BlockchainListener ¶
type BlockchainListener interface {
ObserveBlockchain()
StopObserveBlockchain()
}
BlockchainListener defines the needed method sto start and stop a blockchain listener
func NewBlockchainListener ¶
func NewBlockchainListener( unspentRepository domain.UnspentRepository, marketRepository domain.MarketRepository, vaultRepository domain.VaultRepository, crawlerSvc crawler.Service, explorerSvc explorer.Service, dbManager ports.DbManager, ) BlockchainListener
NewBlockchainListener returns a BlockchainListener with all the needed services
type MarketInfo ¶
MarketInfo is the data struct returned by ListMarket RPC.
type MarketStrategy ¶
type MarketStrategy struct {
Market
Strategy domain.StrategyType
}
type MarketWithFee ¶
type MarketWithPrice ¶
type OperatorService ¶
type OperatorService interface {
DepositMarket(
ctx context.Context,
baseAsset string,
quoteAsset string,
) (string, error)
DepositFeeAccount(
ctx context.Context,
) (address string, blindingKey string, err error)
OpenMarket(
ctx context.Context,
baseAsset string,
quoteAsset string,
) error
CloseMarket(
ctx context.Context,
baseAsset string,
quoteAsset string,
) error
UpdateMarketFee(
ctx context.Context,
req MarketWithFee,
) (*MarketWithFee, error)
UpdateMarketPrice(
ctx context.Context,
req MarketWithPrice,
) error
UpdateMarketStrategy(
ctx context.Context,
req MarketStrategy,
) error
ListSwaps(
ctx context.Context,
) ([]SwapInfo, error)
ListMarketExternalAddresses(
ctx context.Context,
req Market,
) ([]string, error)
WithdrawMarketFunds(
ctx context.Context,
req WithdrawMarketReq,
) (
[]byte,
error,
)
FeeAccountBalance(ctx context.Context) (
int64,
error,
)
ListMarket(
ctx context.Context,
) ([]MarketInfo, error)
GetCollectedMarketFee(
ctx context.Context,
market Market,
) (*ReportMarketFee, error)
}
OperatorService defines the methods of the application layer for the operator service.
func NewOperatorService ¶
func NewOperatorService( marketRepository domain.MarketRepository, vaultRepository domain.VaultRepository, tradeRepository domain.TradeRepository, unspentRepository domain.UnspentRepository, explorerSvc explorer.Service, crawlerSvc crawler.Service, ) OperatorService
NewOperatorService is a constructor function for OperatorService.
type PriceWithFee ¶
type ReportMarketFee ¶
type SendToManyRequest ¶
type SwapInfo ¶
type SwapInfo struct {
Status int32
AmountP uint64
AssetP string
AmountR uint64
AssetR string
MarketFee Fee
RequestTimeUnix uint64
AcceptTimeUnix uint64
CompleteTimeUnix uint64
ExpiryTimeUnix uint64
}
SwapInfo is the data struct returned by ListSwap RPC.
type TradeService ¶
type TradeService interface {
GetTradableMarkets(ctx context.Context) ([]MarketWithFee, error)
GetMarketPrice(
ctx context.Context,
market Market,
tradeType int,
amount uint64,
) (*PriceWithFee, error)
TradePropose(
ctx context.Context,
market Market,
tradeType int,
swapRequest *pb.SwapRequest,
) (*pb.SwapAccept, *pb.SwapFail, uint64, error)
TradeComplete(
ctx context.Context,
swapComplete *pb.SwapComplete,
swapFail *pb.SwapFail,
) (string, *pb.SwapFail, error)
GetMarketBalance(
ctx context.Context,
market Market,
) (*BalanceWithFee, error)
}
func NewTradeService ¶
func NewTradeService( marketRepository domain.MarketRepository, tradeRepository domain.TradeRepository, vaultRepository domain.VaultRepository, unspentRepository domain.UnspentRepository, explorerSvc explorer.Service, crawlerSvc crawler.Service, ) TradeService
type WalletService ¶
type WalletService interface {
GenSeed(ctx context.Context) ([]string, error)
InitWallet(
ctx context.Context,
mnemonic []string,
passphrase string,
) error
UnlockWallet(
ctx context.Context,
passphrase string,
) error
ChangePassword(
ctx context.Context,
currentPassphrase string,
newPassphrase string) error
GenerateAddressAndBlindingKey(
ctx context.Context,
) (address string, blindingKey string, err error)
GetWalletBalance(
ctx context.Context,
) (map[string]domain.BalanceInfo, error)
SendToMany(
ctx context.Context,
req SendToManyRequest,
) ([]byte, error)
}
func NewWalletService ¶
func NewWalletService( vaultRepository domain.VaultRepository, unspentRepository domain.UnspentRepository, crawlerService crawler.Service, explorerService explorer.Service, blockchainListener BlockchainListener, ) WalletService
Click to show internal directories.
Click to hide internal directories.