Compare commits
2 Commits
720fa94b56
...
80c2493e80
Author | SHA1 | Date | |
---|---|---|---|
80c2493e80 | |||
4444ac0255 |
@ -19,8 +19,9 @@ const (
|
||||
poolDepositPrefix = "/api/v2/pool/deposit"
|
||||
poolSwapQoutePrefix = "/api/v2/pool/quote"
|
||||
poolSwapPrefix = "/api/v2/pool/swap"
|
||||
topPoolsPrefix = "/api/v1/pool/top"
|
||||
retrievePoolDetailsPrefix = "/api/v1/pool/reverse"
|
||||
topPoolsPrefix = "/api/v1/pool/top"
|
||||
retrievePoolDetailsPrefix = "/api/v1/pool/reverse"
|
||||
poolSwappableVouchersPrefix = "/api/v1/pool"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -30,20 +31,21 @@ var (
|
||||
)
|
||||
|
||||
var (
|
||||
CreateAccountURL string
|
||||
TrackStatusURL string
|
||||
BalanceURL string
|
||||
TrackURL string
|
||||
TokenTransferURL string
|
||||
VoucherHoldingsURL string
|
||||
VoucherTransfersURL string
|
||||
VoucherDataURL string
|
||||
CheckAliasURL string
|
||||
PoolDepositURL string
|
||||
PoolSwapQuoteURL string
|
||||
PoolSwapURL string
|
||||
TopPoolsURL string
|
||||
RetrievePoolDetailsURL string
|
||||
CreateAccountURL string
|
||||
TrackStatusURL string
|
||||
BalanceURL string
|
||||
TrackURL string
|
||||
TokenTransferURL string
|
||||
VoucherHoldingsURL string
|
||||
VoucherTransfersURL string
|
||||
VoucherDataURL string
|
||||
CheckAliasURL string
|
||||
PoolDepositURL string
|
||||
PoolSwapQuoteURL string
|
||||
PoolSwapURL string
|
||||
TopPoolsURL string
|
||||
RetrievePoolDetailsURL string
|
||||
PoolSwappableVouchersURL string
|
||||
)
|
||||
|
||||
func setBase() error {
|
||||
@ -84,6 +86,7 @@ func LoadConfig() error {
|
||||
PoolSwapURL, _ = url.JoinPath(custodialURLBase, poolSwapPrefix)
|
||||
TopPoolsURL, _ = url.JoinPath(dataURLBase, topPoolsPrefix)
|
||||
RetrievePoolDetailsURL, _ = url.JoinPath(dataURLBase, retrievePoolDetailsPrefix)
|
||||
PoolSwappableVouchersURL, _ = url.JoinPath(dataURLBase, poolSwappableVouchersPrefix)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
@ -339,13 +339,56 @@ func (as *HTTPAccountService) GetPoolSwapQuote(ctx context.Context, amount, from
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) GetPoolSwappableFromVouchers(ctx context.Context, poolAddress, publicKey string) ([]dataserviceapi.TokenHoldings, error) {
|
||||
svc := dev.NewDevAccountService(ctx, as.SS)
|
||||
return svc.GetPoolSwappableFromVouchers(ctx, poolAddress, publicKey)
|
||||
if as.UseApi {
|
||||
return as.getPoolSwappableFromVouchers(ctx, poolAddress, publicKey)
|
||||
} else {
|
||||
svc := dev.NewDevAccountService(ctx, as.SS)
|
||||
return svc.GetPoolSwappableFromVouchers(ctx, poolAddress, publicKey)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) getPoolSwappableFromVouchers(ctx context.Context, poolAddress, publicKey string) ([]dataserviceapi.TokenHoldings, error) {
|
||||
var r struct {
|
||||
PoolSwappableVouchers []dataserviceapi.TokenHoldings `json:"filtered"`
|
||||
}
|
||||
ep, err := url.JoinPath(config.PoolSwappableVouchersURL, poolAddress, "from", publicKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req, err := http.NewRequest("GET", ep, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = doRequest(ctx, req, &r)
|
||||
|
||||
return r.PoolSwappableVouchers, nil
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) GetPoolSwappableVouchers(ctx context.Context, poolAddress, publicKey string) ([]dataserviceapi.TokenHoldings, error) {
|
||||
svc := dev.NewDevAccountService(ctx, as.SS)
|
||||
return svc.GetPoolSwappableVouchers(ctx, poolAddress, publicKey)
|
||||
if as.UseApi {
|
||||
return as.getPoolSwappableFromVouchers(ctx, poolAddress, publicKey)
|
||||
} else {
|
||||
return svc.GetPoolSwappableVouchers(ctx, poolAddress, publicKey)
|
||||
}
|
||||
}
|
||||
|
||||
func (as HTTPAccountService) getPoolSwappableVouchers(ctx context.Context, poolAddress, publicKey string) ([]dataserviceapi.TokenHoldings, error) {
|
||||
var r struct {
|
||||
PoolSwappableVouchers []dataserviceapi.TokenHoldings `json:"filtered"`
|
||||
}
|
||||
|
||||
ep, err := url.JoinPath(config.PoolSwappableVouchersURL, poolAddress, "to", publicKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req, err := http.NewRequest("GET", ep, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = doRequest(ctx, req, &r)
|
||||
return r.PoolSwappableVouchers, nil
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) PoolSwap(ctx context.Context, amount, from, fromTokenAddress, poolAddress, toTokenAddress string) (*models.PoolSwapResult, error) {
|
||||
@ -376,8 +419,30 @@ func (as *HTTPAccountService) PoolSwap(ctx context.Context, amount, from, fromTo
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) GetSwapFromTokenMaxLimit(ctx context.Context, poolAddress, fromTokenAddress, toTokenAddress, publicKey string) (*models.MaxLimitResult, error) {
|
||||
svc := dev.NewDevAccountService(ctx, as.SS)
|
||||
return svc.GetSwapFromTokenMaxLimit(ctx, poolAddress, fromTokenAddress, toTokenAddress, publicKey)
|
||||
if as.UseApi {
|
||||
return as.getSwapFromTokenMaxLimit(ctx, poolAddress, fromTokenAddress, toTokenAddress, publicKey)
|
||||
} else {
|
||||
svc := dev.NewDevAccountService(ctx, as.SS)
|
||||
return svc.GetSwapFromTokenMaxLimit(ctx, poolAddress, fromTokenAddress, toTokenAddress, publicKey)
|
||||
}
|
||||
}
|
||||
|
||||
func (as *HTTPAccountService) getSwapFromTokenMaxLimit(ctx context.Context, poolAddress, fromTokenAddress, toTokeAddress, publicKey string) (*models.MaxLimitResult, error) {
|
||||
var r struct {
|
||||
MaxPoolLimitResult models.MaxLimitResult `json:"max"`
|
||||
}
|
||||
|
||||
ep, err := url.JoinPath(config.PoolSwappableVouchersURL, poolAddress, "limit", fromTokenAddress, toTokeAddress, publicKey)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
req, err := http.NewRequest("GET", ep, nil)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
_, err = doRequest(ctx, req, &r)
|
||||
|
||||
return &r.MaxPoolLimitResult, nil
|
||||
}
|
||||
|
||||
// TODO: Use actual custodial api to request available alias
|
||||
|
Loading…
Reference in New Issue
Block a user