ruimarinho / bitcoin-core

A modern Bitcoin Core REST and RPC client.
477 stars 186 forks source link

Added support for default wallet functions in multiwallet environment #117

Closed wleev closed 1 year ago

wleev commented 4 years ago

As is the library can not access the default wallet when multiple wallets are loaded. It keeps using the URL format: host:port/ as RPC endpoint when it should be using host:port/wallet.

This solution adds a parameter so that the host:port/wallet URL will always be used, since this will work regardless of whether multiple wallets are loaded or not.

The expected failing test showcases this, but you can also verify this with bitcoin-cli like so ( assuming you start from a state where not other wallets are loaded ): ./bitcoin-cli -rpcuser=testuser -rpcpassword=testpassword -regtest getbalance ./bitcoin-cli -rpcuser=testuser -rpcpassword=testpassword -regtest loadwallet anotherWallet ./bitcoin-cli -rpcuser=testuser -rpcpassword=testpassword -regtest getbalance

After loading a new wallet the getbalance call will fail and should be changed to: ./bitcoin-cli -rpcwallet -rpcuser=testuser -rpcpassword=testpassword -regtest getbalance Which is the same as adding /wallet to the RPC endpoint.

pedrobranco commented 1 year ago

Thanks for the fix. I've replaced the variable with a more explicit name allowDefaultWallet and fixed the approach. Please amend the commit @wleev.

0x107D commented 1 year ago

Hi guys it's a breaking change for those who don't have build btc core with wallet support