diff --git a/exchanges/okx/okx_types.go b/exchanges/okx/okx_types.go index 75be135c..d87d3124 100644 --- a/exchanges/okx/okx_types.go +++ b/exchanges/okx/okx_types.go @@ -978,16 +978,16 @@ type LightningDepositItem struct { // CurrencyDepositResponseItem represents the deposit address information item. type CurrencyDepositResponseItem struct { - Tag string `json:"tag"` - Chain string `json:"chain"` - ContractAddress string `json:"ctAddr"` - Currency string `json:"ccy"` - ToBeneficiaryAccount string `json:"to"` - Address string `json:"addr"` - Selected bool `json:"selected"` - Memo string `json:"memo"` - DepositAddressAttachment string `json:"addrEx"` - PaymentID string `json:"pmtId"` + Tag string `json:"tag"` + Chain string `json:"chain"` + ContractAddress string `json:"ctAddr"` + Currency string `json:"ccy"` + ToBeneficiaryAccount string `json:"to"` + Address string `json:"addr"` + Selected bool `json:"selected"` + Memo string `json:"memo"` + DepositAddressAttachment map[string]string `json:"addrEx"` + PaymentID string `json:"pmtId"` } // DepositHistoryResponseItem deposit history response item. diff --git a/exchanges/okx/okx_wrapper.go b/exchanges/okx/okx_wrapper.go index 445cfc05..253c601e 100644 --- a/exchanges/okx/okx_wrapper.go +++ b/exchanges/okx/okx_wrapper.go @@ -1453,7 +1453,13 @@ func (ok *Okx) GetAvailableTransferChains(ctx context.Context, cryptocurrency cu } chains := make([]string, 0, len(currencyChains)) for x := range currencyChains { - if !cryptocurrency.IsEmpty() && !strings.EqualFold(cryptocurrency.String(), currencyChains[x].Currency) { + if (!cryptocurrency.IsEmpty() && !strings.EqualFold(cryptocurrency.String(), currencyChains[x].Currency)) || + (!currencyChains[x].CanDeposit && !currencyChains[x].CanWithdraw) || + // Lightning network is currently not supported by transfer chains + // as it is an invoice string which is generated per request and is + // not a static address. TODO: Add a hook to generate a new invoice + // string per request. + (currencyChains[x].Chain != "" && currencyChains[x].Chain == "BTC-Lightning") { continue } chains = append(chains, currencyChains[x].Chain)