Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

addpair/addcurrency requires xud restart #1111

Closed
ghost opened this issue Jul 19, 2019 · 3 comments · Fixed by #1746
Closed

addpair/addcurrency requires xud restart #1111

ghost opened this issue Jul 19, 2019 · 3 comments · Fixed by #1746
Assignees
Labels
enhancement New feature or request help wanted Help wanted from the community P2 mid priority

Comments

@ghost
Copy link

ghost commented Jul 19, 2019

I just noticed that in our xud-docker setup we're adding the trading pairs after connecting to the test nodes. This results in a state where we have the trading pairs enabled, but have 0 orders for the new pairs. The current solution is to restart xud.

I'd love this to work without the need for xud restart.

xud_1     | 19/07/2019 08:12:05.003 [P2P] info: Connecting to simnet XU network
xud_1     | 19/07/2019 08:12:05.014 [P2P] info: p2p server listening on 0.0.0.0:8885
xud_1     | 19/07/2019 08:12:05.024 [P2P] debug: Verifying reachability of advertised address: 0.0.0.0:8885
xud_1     | 19/07/2019 08:12:05.039 [HTTP] info: http server listening on 0.0.0.0:8887
xud_1     | 19/07/2019 08:12:05.053 [RPC] debug: Could not load gRPC TLS certificate. Generating new one
xud_1     | 19/07/2019 08:12:08.910 [P2P] debug: Connected pre-handshake to peer 127.0.0.1:47574
xud_1     | 19/07/2019 08:12:09.434 [P2P] debug: Peer (036b27d570ea4b0be00b794d7f75dfd4bdc30fe8ec5c3002d3bedcc9061c868690): closing socket. reason: ConnectedToSelf
xud_1     | 19/07/2019 08:12:09.441 [P2P] warn: could not open connection to peer (036b27d570ea4b0be00b794d7f75dfd4bdc30fe8ec5c3002d3bedcc9061c868690): cannot attempt connection to self
xud_1     | 19/07/2019 08:12:09.470 [P2P] info: Peer 036b27d570ea4b0be00b794d7f75dfd4bdc30fe8ec5c3002d3bedcc9061c868690 socket closed
xud_1     | 19/07/2019 08:12:09.481 [RPC] debug: gRPC TLS certificate created
xud_1     | 19/07/2019 08:12:09.487 [RPC] info: gRPC server listening on 0.0.0.0:8886
xud_1     | 19/07/2019 08:12:09.503 [P2P] verbose: Verified reachability of advertised address: 0.0.0.0:8885
xud_1     | 19/07/2019 08:12:09.512 [P2P] info: Connecting to known / previously connected peers
xud_1     | 19/07/2019 08:12:09.625 [P2P] debug: Connected pre-handshake to peer xud1.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:09.650 [P2P] debug: Connected pre-handshake to peer xud3.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:09.662 [P2P] debug: Connected pre-handshake to peer xud2.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:09.731 [RAIDEN] info: trying to verify connection to raiden with uri: raiden:5001
xud_1     | 19/07/2019 08:12:09.758 [RAIDEN] debug: address is undefined
xud_1     | 19/07/2019 08:12:09.759 [RAIDEN] info: RaidenClient status: ConnectionVerified
xud_1     | 19/07/2019 08:12:09.775 [P2P] debug: Peer (xud1.test.exchangeunion.com:8885) session in-encryption enabled
xud_1     | 19/07/2019 08:12:09.856 [P2P] debug: Peer (02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6) session out-encryption enabled
xud_1     | 19/07/2019 08:12:09.857 [P2P] verbose: opened connection to 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6 at xud1.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:09.866 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:09.895 [P2P] debug: Peer (xud3.test.exchangeunion.com:8885) session in-encryption enabled
xud_1     | 19/07/2019 08:12:09.943 [P2P] debug: Peer (03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0) session out-encryption enabled
xud_1     | 19/07/2019 08:12:09.944 [P2P] verbose: opened connection to 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0 at xud3.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:09.951 [P2P] debug: Peer (xud2.test.exchangeunion.com:8885) session in-encryption enabled
xud_1     | 19/07/2019 08:12:10.000 [P2P] debug: Peer (028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a) session out-encryption enabled
xud_1     | 19/07/2019 08:12:10.001 [P2P] verbose: opened connection to 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a at xud2.test.exchangeunion.com:8885
xud_1     | 19/07/2019 08:12:10.065 [P2P] verbose: received 10 orders from 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6
xud_1     | 19/07/2019 08:12:10.066 [ORDERBOOK] debug: order added: {"id":"30de65e0-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0077,"quantity":350000000,"isBuy":true,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930066,"initialQuantity":350000000}
xud_1     | 19/07/2019 08:12:10.069 [ORDERBOOK] debug: order added: {"id":"30df2930-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0076,"quantity":1550000000,"isBuy":true,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930069,"initialQuantity":1550000000}
xud_1     | 19/07/2019 08:12:10.076 [ORDERBOOK] debug: order added: {"id":"30dfc570-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0075,"quantity":1800000000,"isBuy":true,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930076,"initialQuantity":1800000000}
xud_1     | 19/07/2019 08:12:10.076 [ORDERBOOK] debug: order added: {"id":"30e061b0-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0074,"quantity":2125000000,"isBuy":true,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930076,"initialQuantity":2125000000}
xud_1     | 19/07/2019 08:12:10.077 [ORDERBOOK] debug: order added: {"id":"30e0fdf0-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0073,"quantity":2400000000,"isBuy":true,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930077,"initialQuantity":2400000000}
xud_1     | 19/07/2019 08:12:10.078 [ORDERBOOK] debug: order added: {"id":"30e19a30-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0079,"quantity":190000000,"isBuy":false,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930078,"initialQuantity":190000000}
xud_1     | 19/07/2019 08:12:10.079 [ORDERBOOK] debug: order added: {"id":"30e25d80-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.008,"quantity":1300000000,"isBuy":false,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930079,"initialQuantity":1300000000}
xud_1     | 19/07/2019 08:12:10.079 [ORDERBOOK] debug: order added: {"id":"30e2f9c0-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0081,"quantity":1560000000,"isBuy":false,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930079,"initialQuantity":1560000000}
xud_1     | 19/07/2019 08:12:10.080 [ORDERBOOK] debug: order added: {"id":"30e39600-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0082,"quantity":1810000000,"isBuy":false,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930080,"initialQuantity":1810000000}
xud_1     | 19/07/2019 08:12:10.080 [ORDERBOOK] debug: order added: {"id":"30e43240-a975-11e9-a1f5-8da2255d491b","pairId":"LTC/BTC","price":0.0083,"quantity":2230000000,"isBuy":false,"peerPubKey":"02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6","createdAt":1563523930080,"initialQuantity":2230000000}
xud_1     | 19/07/2019 08:12:10.081 [P2P] verbose: received 5 orders from 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6
xud_1     | 19/07/2019 08:12:10.081 [P2P] verbose: received 5 orders from 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6
xud_1     | 19/07/2019 08:12:10.082 [P2P] verbose: received 5 orders from 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6
xud_1     | 19/07/2019 08:12:10.082 [P2P] verbose: received 0 nodes (0 new) from 02b66438730d1fcdf4a4ae5d3d73e847a272f160fee2938e132b52cab0a0d9cfc6
xud_1     | 19/07/2019 08:12:10.089 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:10.093 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:10.116 [P2P] info: Completed start-up connections to known peers
xud_1     | 19/07/2019 08:12:10.118 [P2P] verbose: received 0 orders from 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0
xud_1     | 19/07/2019 08:12:10.122 [P2P] verbose: received 0 orders from 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0
xud_1     | 19/07/2019 08:12:10.124 [P2P] verbose: received 0 orders from 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0
xud_1     | 19/07/2019 08:12:10.126 [P2P] verbose: received 0 orders from 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0
xud_1     | 19/07/2019 08:12:10.127 [P2P] verbose: received 0 nodes (0 new) from 03fd337659e99e628d0487e4f87acf93e353db06f754dccc402f2de1b857a319d0
xud_1     | 19/07/2019 08:12:10.136 [P2P] verbose: received 0 orders from 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a
xud_1     | 19/07/2019 08:12:10.137 [P2P] verbose: received 0 orders from 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a
xud_1     | 19/07/2019 08:12:10.138 [P2P] verbose: received 0 orders from 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a
xud_1     | 19/07/2019 08:12:10.139 [P2P] verbose: received 0 orders from 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a
xud_1     | 19/07/2019 08:12:10.140 [P2P] verbose: received 0 nodes (0 new) from 028599d05b18c0c3f8028915a17d603416f7276c822b6b2d20e71a3502bd0f9e0a
xud_1     | 19/07/2019 08:12:12.964 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:15.093 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:15.104 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:15.105 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:16.788 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:20.106 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:20.125 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:20.126 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:20.730 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:24.504 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:25.126 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:25.133 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:25.134 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:28.495 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:30.135 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:30.139 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:30.140 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:32.284 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:35.141 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:35.161 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:35.162 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:35.996 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:39.665 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:40.162 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:40.169 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:40.170 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:43.466 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:45.171 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:45.193 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:45.194 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:47.304 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:50.195 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:50.204 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:50.205 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:51.095 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:54.875 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:12:55.206 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:12:55.217 [LND-LTC] info: LndClient status: OutOfSync
xud_1     | 19/07/2019 08:12:55.218 [LND-LTC] warn: lnd is out of sync with chain, retrying in 5000 ms
xud_1     | 19/07/2019 08:12:58.385 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | 19/07/2019 08:13:00.218 [LND-LTC] info: trying to verify connection to lnd at lndltc:10009
xud_1     | 19/07/2019 08:13:00.224 [LND-LTC] info: LndClient status: ConnectionVerified
xud_1     | 19/07/2019 08:13:00.227 [LND-LTC] debug: pubkey is 03a08d36c79e9d9b507eb5a55e97dde46f0104fdfc3fa54f017da488677589775e
xud_1     | 19/07/2019 08:13:00.227 [LND-LTC] debug: no uris advertised
xud_1     | 19/07/2019 08:13:00.228 [LND-LTC] debug: chain is litecoin-simnet
xud_1     | 19/07/2019 08:13:01.839 [RPC] debug: received call /xudrpc.Xud/GetInfo
xud_1     | D0719 08:13:02.174329525     572 env_linux.cc:71]            Warning: insecure environment read function 'getenv' used
xud_1     | 19/07/2019 08:13:02.364 [RPC] debug: received call /xudrpc.Xud/ListPairs
xud_1     | 19/07/2019 08:13:02.804 [RPC] debug: received call /xudrpc.Xud/RemovePair
xud_1     | 19/07/2019 08:13:02.807 [RPC] error: trading pair WETH/BTC does not exist
xud_1     | 19/07/2019 08:13:03.243 [RPC] debug: received call /xudrpc.Xud/RemovePair
xud_1     | 19/07/2019 08:13:03.244 [RPC] error: trading pair BTC/DAI does not exist
xud_1     | 19/07/2019 08:13:03.689 [RPC] debug: received call /xudrpc.Xud/RemovePair
xud_1     | 19/07/2019 08:13:03.689 [RPC] error: trading pair LTC/DAI does not exist
xud_1     | 19/07/2019 08:13:04.148 [RPC] debug: received call /xudrpc.Xud/RemoveCurrency
xud_1     | 19/07/2019 08:13:04.150 [RPC] error: currency WETH does not exist
xud_1     | 19/07/2019 08:13:04.589 [RPC] debug: received call /xudrpc.Xud/RemoveCurrency
xud_1     | 19/07/2019 08:13:04.590 [RPC] error: currency DAI does not exist
xud_1     | 19/07/2019 08:13:04.986 [RPC] debug: received call /xudrpc.Xud/AddCurrency
xud_1     | 19/07/2019 08:13:05.434 [RPC] debug: received call /xudrpc.Xud/AddCurrency
xud_1     | 19/07/2019 08:13:05.830 [RPC] debug: received call /xudrpc.Xud/AddPair
xud_1     | 19/07/2019 08:13:06.249 [RPC] debug: received call /xudrpc.Xud/AddPair
xud_1     | 19/07/2019 08:13:06.673 [RPC] debug: received call /xudrpc.Xud/AddPair
xud_1     | D0719 08:13:06.943544278     750 env_linux.cc:71]            Warning: insecure environment read function 'getenv' used
xud_1     | 19/07/2019 08:13:07.118 [RPC] debug: received call /xudrpc.Xud/ListPairs
xud_1     | Trading Pairs:
xud_1     | ┌──────────────┐
xud_1     | │ Trading pair │
xud_1     | ├──────────────┤
xud_1     | │ LTC / BTC    │
xud_1     | ├──────────────┤
xud_1     | │ WETH / BTC   │
xud_1     | ├──────────────┤
xud_1     | │ BTC / DAI    │
xud_1     | ├──────────────┤
xud_1     | │ LTC / DAI    │
xud_1     | └──────────────┘
@ghost ghost added the bug Something isn't working label Jul 19, 2019
@ghost ghost self-assigned this Jul 19, 2019
@kilrau
Copy link
Contributor

kilrau commented Jul 19, 2019

Additionally, I think we should add

Trading pair: BTC/DAI
Trading pair: LTC/DAI
Trading pair: WETH/BTC

to the hardcoded standard pairs with the simnet/testnet & mainnet contract addresses.

EDIT: separated this into it's own issue (#1114) which we'll do first. Then we can postpone above logic.

@kilrau kilrau added the P1 top priority label Jul 22, 2019
@kilrau kilrau removed the P1 top priority label Jul 22, 2019
@kilrau kilrau added the P3 low priority label Oct 9, 2019
@kilrau kilrau unassigned ghost Feb 28, 2020
@kilrau kilrau added enhancement New feature or request and removed bug Something isn't working labels Feb 28, 2020
@kilrau kilrau changed the title addpair requires restart for orders addpair requires xud restart May 27, 2020
@ghost ghost added the help wanted Help wanted from the community label Jun 8, 2020
@kilrau kilrau changed the title addpair requires xud restart addpair/addcurrency requires xud restart Jun 8, 2020
@kilrau
Copy link
Contributor

kilrau commented Jun 8, 2020

This issue includes #1498.

@kilrau
Copy link
Contributor

kilrau commented Jul 8, 2020

Moshe is waiting for this feature to simplify simulation tests, so let's prioritize it

@kilrau kilrau added P2 mid priority and removed P3 low priority labels Jul 8, 2020
@kilrau kilrau removed the 51-100 XUC label Jul 8, 2020
sangaman added a commit that referenced this issue Jul 23, 2020
This PR allows for adding Connext and Lnd currencies via the
`AddCurrency` rpc call and have them available for trading immediately
without requiring a restart of xud.

In the case of Connext it merely registers the tokenaddress and currency
symbol for the new currency with the existing ConnextClient, as we had
previously done with Raiden.

In the case of Lnd, we read from the configuration and use that to
instantiate and initialize a new `LndClient` for the specified currency.

Closes #1111.
sangaman added a commit that referenced this issue Jul 24, 2020
This PR allows for adding Connext and Lnd currencies via the
`AddCurrency` rpc call and have them available for trading immediately
without requiring a restart of xud.

In the case of Connext it merely registers the tokenaddress and currency
symbol for the new currency with the existing ConnextClient, as we had
previously done with Raiden.

In the case of Lnd, we read from the configuration and use that to
instantiate and initialize a new `LndClient` for the specified currency.

Closes #1111.
@kilrau kilrau assigned rsercano and LePremierHomme and unassigned sangaman and rsercano Sep 30, 2020
sangaman added a commit that referenced this issue Oct 19, 2020
This PR allows for adding Connext and Lnd currencies via the
`AddCurrency` rpc call and have them available for trading immediately
without requiring a restart of xud.

In the case of Connext it merely registers the tokenaddress and currency
symbol for the new currency with the existing ConnextClient, as we had
previously done with Raiden.

In the case of Lnd, we read from the configuration and use that to
instantiate and initialize a new `LndClient` for the specified currency.

Closes #1111.

Co-authored-by: Le Premier Homme <interjoint1@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Help wanted from the community P2 mid priority
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants