btcpayserver / btcTransmuter

A self-hosted ,modular IFTTT-inspired system for bitcoin services written in C#
https://btcpayserver.org
77 stars 22 forks source link

Unable to connect to exchange API #97

Open Grorvald opened 2 years ago

Grorvald commented 2 years ago

I am trying to set up an Exchange External Service using my Kraken account, but I get the following error:

"Could not connect with current settings. Transmuter tests against fetching your balance amount from the exchange so you would need to enable that option if available"

My Kraken account is verified, and the API key I generated has all permissions set to true.

Is there a log with more information about this error?

Grorvald commented 2 years ago

So I applied the latest update. According to the notes,

Authorize API key page was broken when trying to select specific stores (#2858) @ubolator

I applied the update by going to the page /server/maintenance/

I also rebuilt BTCTransmuter by rerunning the deployment instructions found https://docs.btcpayserver.org/Transmuter/

Not sure if that did anything.

In either case, now the exchange box is empty. Can't select any exchange. So when I save my API key without any exchange name, it throws the exception:

ApplicationException: Failed to get type from exchange name ExchangeSharp.ExchangeName.GetExchangeType(string exchangeName) ExchangeSharp.ExchangeAPI.GetExchangeAPIAsync(string exchangeName) BtcTransmuter.Extension.Exchange.ExternalServices.Exchange.ExchangeService.ConstructClient() in ExchangeService.cs BtcTransmuter.Extension.Exchange.ExternalServices.Exchange.ExchangeService.TestAccess() in ExchangeService.cs [...]

Did I fail to apply the update properly? Do I need to rebuilt Transmuter from scratch? Is this an active bug?

Grorvald commented 2 years ago

Ran the update again today - my 2nd post's error is gone so I can select an exchange again. However the original error is back:

Could not connect with current settings. Transmuter tests against fetching your balance amount from the exchange so you would need to enable that option if available

I have confirmed that my API key works, I can query my balance using a basic python script.

Grorvald commented 2 years ago

I added some XMR to my account, and now it works!

The Balance request api call returns an empty value if there's no wallet with some funds in your account. The Status would still be 200 though, so it is a valid request.

Because the External Exchange Service seems to be testing the api by making a balance call, at least for Kraken it seems to fail when parsing out the reply. It might assume that the return value will always contain a value, and just throws an exception when it fails to retrieve any data, as opposed to just looking at the status of the reply.