| 3557 | } |
| 3558 | |
| 3559 | func checkParams(exchName string, e exchange.IBotExchange, a asset.Item, p currency.Pair) error { |
| 3560 | if e == nil { |
| 3561 | return fmt.Errorf("%s %w", exchName, errExchangeNotLoaded) |
| 3562 | } |
| 3563 | if !e.IsEnabled() { |
| 3564 | return fmt.Errorf("%s %w", exchName, errExchangeNotEnabled) |
| 3565 | } |
| 3566 | if a.IsValid() { |
| 3567 | b := e.GetBase() |
| 3568 | if b == nil { |
| 3569 | return fmt.Errorf("%s %w", exchName, errExchangeBaseNotFound) |
| 3570 | } |
| 3571 | err := b.CurrencyPairs.IsAssetEnabled(a) |
| 3572 | if err != nil { |
| 3573 | return err |
| 3574 | } |
| 3575 | } |
| 3576 | if p.IsEmpty() { |
| 3577 | return nil |
| 3578 | } |
| 3579 | enabledPairs, err := e.GetEnabledPairs(a) |
| 3580 | if err != nil { |
| 3581 | return err |
| 3582 | } |
| 3583 | if enabledPairs.Contains(p, true) { |
| 3584 | return nil |
| 3585 | } |
| 3586 | availablePairs, err := e.GetAvailablePairs(a) |
| 3587 | if err != nil { |
| 3588 | return err |
| 3589 | } |
| 3590 | if availablePairs.Contains(p, true) { |
| 3591 | return fmt.Errorf("%v %w", p, errCurrencyNotEnabled) |
| 3592 | } |
| 3593 | return fmt.Errorf("%v %w", p, errCurrencyPairInvalid) |
| 3594 | } |
| 3595 | |
| 3596 | func parseMultipleEvents(ret []*withdraw.Response) *gctrpc.WithdrawalEventsByExchangeResponse { |
| 3597 | v := &gctrpc.WithdrawalEventsByExchangeResponse{} |