diff --git a/dev/api.go b/dev/api.go index d879869..43e525b 100644 --- a/dev/api.go +++ b/dev/api.go @@ -870,7 +870,6 @@ func (das *DevAccountService) GetPoolSwappableVouchers(ctx context.Context, pool } func (das *DevAccountService) GetSwapFromTokenMaxLimit(ctx context.Context, poolAddress, fromTokenAddress, toTokenAddress, publicKey string) (*models.MaxLimitResult, error) { - p, ok := das.pools[poolAddress] if !ok { return nil, fmt.Errorf("Pool address: %v not found ", poolAddress) @@ -884,3 +883,9 @@ func (das *DevAccountService) GetSwapFromTokenMaxLimit(ctx context.Context, pool Max: limit, }, nil } + +func (das *DevAccountService) CheckTokenInPool(ctx context.Context, poolAddress, tokenAddress string) (*models.TokenInPoolResult, error) { + return &models.TokenInPoolResult{ + CanSwapFrom: true, + }, nil +} diff --git a/remote/http/service.go b/remote/http/service.go index d69b5ae..c8431b0 100644 --- a/remote/http/service.go +++ b/remote/http/service.go @@ -469,6 +469,33 @@ func (as *HTTPAccountService) getSwapFromTokenMaxLimit(ctx context.Context, pool return &r.MaxPoolLimitResult, nil } +func (as *HTTPAccountService) CheckTokenInPool(ctx context.Context, poolAddress, tokenAddress string) (*models.TokenInPoolResult, error) { + if as.UseApi { + return as.checkTokenInPool(ctx, poolAddress, tokenAddress) + } else { + svc := dev.NewDevAccountService(ctx, as.SS) + return svc.CheckTokenInPool(ctx, poolAddress, tokenAddress) + } +} + +func (as *HTTPAccountService) checkTokenInPool(ctx context.Context, poolAddress, tokenAddress string) (*models.TokenInPoolResult, error) { + var r struct { + TokenInPoolResult models.TokenInPoolResult `json:"canSwapFrom"` + } + + ep, err := url.JoinPath(config.PoolSwappableVouchersURL, poolAddress, "check", tokenAddress) + 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.TokenInPoolResult, nil +} + // TODO: Use actual custodial api to request available alias func (as *HTTPAccountService) RequestAlias(ctx context.Context, publicKey string, hint string) (*models.RequestAliasResult, error) { if as.SS == nil {