Proto commits in ExchangeUnion/xud

These commits are when the Protocol Buffers files have changed: (only the last 100 relevant commits are shown)

Commit:8007801
Author:Karl Ranna
Committer:Karl Ranna

feat(cli): add getethmnemonic

Commit:8b50d1a
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): OrderBook rpc call This creates a new `OrderBook` rpc call to return a depth chart for the xud order book. This repurposes the logic that previously existed only in the `xucli orderbook` call which groups orders into buckets according to rounded price and moves that to the rpc layer, so that consumers of the API can get an xud depth chart without needing to reimplement the depth chart/bucket logic. Closes #2048.

The documentation is generated from this commit.

Commit:1965731
Author:rsercano

fixed comment on proto

Commit:9705f1a
Author:rsercano

fixed proto

Commit:25b3954
Author:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feat/subscribealerts-rework  Conflicts:  lib/swaps/SwapClient.ts  test/simulation/xudrpc/xudrpc.pb.go

Commit:8a2e786
Author:Sercan Özdemir
Committer:GitHub

feat: exposes lnduris & connextIdentifier on listpeers grpc call (#2017) (#2025) * feat: exposes lnduris & connextIdentifier on listpeers grpc call (#2017) * rebased * fixed prettier issue * added connext identifier to grpc

Commit:1e28339
Author:Daniel McNally
Committer:Daniel McNally

feat: lnd multi path payments

Commit:0f95df4
Author:rsercano
Committer:rsercano

fixed typo

Commit:570ae4f
Author:rsercano

feat: exposes lnduris & connextIdentifier on listpeers grpc call (#2017) Signed-off-by: rsercano <ozdemirsercan27@gmail.com>

Commit:03c829f
Author:rsercano

fix: removeallorders won't be interrupted by a removeorder error anymore (#2030)

Commit:f7b7aab
Author:rsercano

fixed review

Commit:5c0f71c
Author:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feat/expose-lnd/connext-ids-listpeers  Conflicts:  test/simulation/xudrpc/xudrpc.pb.go

Commit:a58c1c6
Author:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feat/subscribealerts-rework  Conflicts:  test/simulation/xudrpc/xudrpc.pb.go

Commit:2ad6f11
Author:rsercano

feat: exposes lnduris & connextIdentifier on listpeers grpc call (#2017)

Commit:b7a77f6
Author:rsercano
Committer:rsercano

feat: new grpc call for subscribing alerts and low balance alert (#864)

Commit:d850f7e
Author:Karl Ranna
Committer:Karl Ranna

feat(connext): add v2 vector support

Commit:7ecdd7e
Author:Daniel McNally
Committer:GitHub

feat: change master password (#2007) * feat(db): migration framework This introduces a framework for tracking a database's version and migrating from one version to the next when the database schema needs to be modified. The migrations consist of an array of methods that each are responsible for upgrading from a particular version, and they are run in sequence when we detect that the current database version is lower than the latest version. * feat(db): migration to db v1 * refactor: cryptoUtils * test: cryptoUtils * feat: change master password This adds the ability to change the master password of an existing xud node. Changing the password re-encrypts the node key on disk and queues password changes for all lnd wallets. Lnd does not currently offer the ability to change the password of an unlocked, running instance. Instead lnd can only change its password right after being started while it is still locked. Xud therefore saves the old password for each lnd wallet to the xud database and encrypts the old password using the new passwords. On subsequent unlocks of xud, when we go to unlock lnd wallets we first check whether we have any old passwords in the database corresponding to any lnd wallets. If we do, we decrypt the old password and change the password for lnd, which in turn will unlock lnd. Closes #1981.

Commit:36de8c6
Author:Daniel McNally
Committer:Daniel McNally

feat: change master password This adds the ability to change the master password of an existing xud node. Changing the password re-encrypts the node key on disk and queues password changes for all lnd wallets. Lnd does not currently offer the ability to change the password of an unlocked, running instance. Instead lnd can only change its password right after being started while it is still locked. Xud therefore saves the old password for each lnd wallet to the xud database and encrypts the old password using the new passwords. On subsequent unlocks of xud, when we go to unlock lnd wallets we first check whether we have any old passwords in the database corresponding to any lnd wallets. If we do, we decrypt the old password and change the password for lnd, which in turn will unlock lnd. Closes #1981.

Commit:2644404
Author:Karl Ranna
Committer:Karl Ranna

feat(connext): add v2 vector support

Commit:eb40068
Author:Karl Ranna
Committer:Karl Ranna

feat(connext): add v2 vector support

Commit:b626a70
Author:rsercano

rebased

Commit:32945d7
Author:rsercano

resolves reviews

Commit:273dc5a
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): GetMnemonic This adds a new rpc call `GetMnemonic` that can be used to retrieve the master seed mnemonic for xud at runtime after an xud node has been created. Closes #1982.

Commit:c1a39c8
Author:rsercano

added low total balance alert

Commit:6e71b5f
Author:rsercano
Committer:rsercano

rebased

Commit:05471f1
Author:raladev
Committer:GitHub

Feat/subscribealerts (#1997) * feat: removeorder output changed to a more meaningful message (#1526) * fix(p2p): don't reconnect peers when pool closed (#1965) This ensures that we don't attempt to reconnect to peers that have disconnected from us after we have started closing the p2p pool. This may help prevent scenarios where we unintentionally attempt to reconnect to peers after shutting down xud. > Should be tested against [#1668 (comment)](https://github.com/ExchangeUnion/xud/issues/1668#issuecomment-684828808) @raladev re-connection after shutdown is disappeared, but my xud still can not be gracefully terminated, it waits something: ``` 28/10/2020 05:17:43.164 [CONNEXT] trace: sending request to /balance/0x69C3d485623bA3f382Fc0FB6756c4574d43C1618 ^C28/10/2020 05:17:44.087 [GLOBAL] info: XUD is shutting down 28/10/2020 05:17:44.088 [LND-BTC] info: new status: Disconnected 28/10/2020 05:17:44.089 [LND-LTC] info: new status: Disconnected 28/10/2020 05:17:44.090 [CONNEXT] info: new status: Disconnected 28/10/2020 05:17:44.093 [P2P] debug: Peer 03ece33a30db1dbce4b62fa96a5e9541138a24997ef5672eebed2d332270e39542 (OzoneYellow): closing socket. reason: Shutdown 28/10/2020 05:17:44.095 [HTTP] info: http server has closed 28/10/2020 05:17:44.096 [RPC] info: gRPC server completed shutdown 28/10/2020 05:17:44.097 [P2P] trace: Sent Disconnecting packet to 03ece33a30db1dbce4b62fa96a5e9541138a24997ef5672eebed2d332270e39542 (OzoneYellow): "{\"body\":{\"reason\":9},\"header\":{\"id\":\"95133be0-1917-11eb-b75b-73d0f0278756\"}}" 28/10/2020 05:17:44.109 [ORDERBOOK] debug: removed all orders for peer 03ece33a30db1dbce4b62fa96a5e9541138a24997ef5672eebed2d332270e39542 (OzoneYellow) 28/10/2020 05:17:44.118 [GLOBAL] info: XUD shutdown gracefully ``` * feat(lnd): change gRPC client options * fix(connext): not enough balance for closechannel (#1963) This introduces better error handling for Connext when using `closeChannel` to remove funds from a Connext channel and specifying an amount to remove that is greater than the available balance. * feat: reserved capacity checks on PlaceOrder (#1949) This rejects orders that would put our total reserved balance over our total capacity for either the outbound or inbound currency. The sum of the inbound & outbound amounts for a newly placed order are added to the amounts reserved by open orders, and if either of these amounts exceed the corresponding capacity then the request to place the order is rejected. An exception to this are inbound limits for Connext currencies, since we have the ability to dynamically request additional inbound collateral via our "lazy collateral" approach. It is still possible for market orders to cause our open orders to exceed our capacity. This is a difficult problem to avoid entirely, as the price that market orders will execute at is unknown until the execution is complete. Even if we simulate the matching routine, we won't know which matches will succeed until we attempt a swap. Instead, we generously assume that market orders will execute at the best quoted price for purposes of these capacity checks. For users that simultaneously place limit orders and market orders for the same currencies, it should be made clear that market orders may use up their available balance needed for their limit orders to succeed. Closes #1947. * fix(cli): openchannel assertion error for string amount (#1950) Fixes #1643. * feat(swapclient): auto init wallets on xud unlock (#1973) This adds a new feature to xud to automatically attempt to create a wallet for any new swap client configured after an xud node has been created. Effectively this only changes the behavior for lnd clients, as this is already the existing behavior for Connext. The process for initializing has now been standardized instead of the ad hoc approach used previously. If xud tries to unlock an lnd node and gets an error message indicating that the wallet has not been created, then it will generate a client & currency specific seed mnemonic using seedutil and call `InitWallet` with that seed and the existing xud password, such that the wallet funds and node identity for the new lnd client can be unlocked and restored along with the rest of lnd. Closes #1929. * feat(rpc): runtime addcurrency for lnd & connext (#1746) Co-authored-by: Le Premier Homme <interjoint1@gmail.com> * refactor(rpc): rename reserved TradingLimits fields This renames the `reservedOutbound` and `reservedInbound` fields on the `TradingLimits` call to `reservedSell` and `reservedBuy` respectively. * fix(rpc): no success if no channels to close (#1689) (#1942) Co-authored-by: rsercano <ozdemirsercan27@gmail.com> Co-authored-by: Daniel McNally <mcnallydp@gmail.com> * fix: tls certificate check on startup (#1510) * fix: alias missing in streamorders (#1725) (#1962) * fix(lnd): handling hold invoice check errors (#1969) This adds better error handling for when the test calls to verify lnd hold invoices are available fail due to connectivity reasons. Previously any error that occurred at this step would cause us to set lnd's status to `NoHoldInvoiceSupport` including connection issues. There was also a bug that caused us to try to set the status to connected even when a hold invoice status check failed. This could result in the unusual behavior of status going to `Disconnected` upon a call failing due to the grpc `UNAVAILABLE` error status, then being set to `NoHoldInvoiceSupport` and then to `ConnectionVerified`. Now we only set `NoHoldInvoiceSupport` when the test calls fail for a reason other than `UNAVAILABLE`, and we only set the status to `ConnectionVerified` when the hold invoice calls succeed. Closes #1968. * feat(lnd): SendPaymentV2 This migrates the call we use to send payments with lnd from the deprecated `SendPaymentSync` to `SendPaymentV2` which allows for multi path payments, among other improvements. As part of this change, the lnd proto files have been updated to their v0.11.x versions and the version of lnd used in simulation tests has been updated to v0.11.1 as well. Closes #1590. * Revert "feat: removeorder output changed to a more meaningful message (#1526)" * fix: use regtest instead of regnet arg This fixes a bug where the xud flag to set the network was incorrectly configured as `regnet` when it should be `regtest` to match what xud expects. * fix(lnd): don't calculate negative capacities This fixes a bug in the logic for calculating the inbound & outbound amount/capacity totals. We subtract the channel reserve amounts from the balances when determining how large a payment the channel could support, however we should not end up with a negative number. * feat: new grpc call for subscribring alerts such as low balance (#864) * fix: changes removeorder output to a more meaningful message (#1526) (#1986) Co-authored-by: rsercano <ozdemirsercan27@gmail.com> Co-authored-by: Daniel McNally <mcnallydp@gmail.com> Co-authored-by: Karl Ranna <karl@karlranna.com> Co-authored-by: Le Premier Homme <interjoint1@gmail.com>

Commit:43e7c8e
Author:Sercan Özdemir
Committer:GitHub

fix: changes removeorder output to a more meaningful message (#1526) (#1986)

Commit:72fdb85
Author:rsercano

fixed reviews and rebased from master

Commit:a448e24
Author:rsercano
Committer:rsercano

feat: new grpc call for subscribring alerts such as low balance (#864)

Commit:43e7e2f
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): add flag for connext to unlock response This adds a flag to the `UnlockNode` response to indicate whether a Connext client is connected and ready to accept calls. In the cli, `ETH` gets added to the list of wallets that are unlocked and ready when this new flag is true. Closes #1932.

Commit:1eabf6d
Author:Karl Ranna
Committer:GitHub

Revert "feat: removeorder output changed to a more meaningful message (#1526)"

Commit:51c60dc
Author:Daniel McNally
Committer:Daniel McNally

feat(lnd): SendPaymentV2 This migrates the call we use to send payments with lnd from the deprecated `SendPaymentSync` to `SendPaymentV2` which allows for multi path payments, among other improvements. As part of this change, the lnd proto files have been updated to their v0.11.x versions and the version of lnd used in simulation tests has been updated to v0.11.1 as well. Closes #1590.

Commit:98770f0
Author:rsercano

Rebased

Commit:721e098
Author:Daniel McNally
Committer:Daniel McNally

refactor(rpc): rename reserved TradingLimits fields This renames the `reservedOutbound` and `reservedInbound` fields on the `TradingLimits` call to `reservedSell` and `reservedBuy` respectively.

Commit:c37ac48
Author:Daniel McNally

feat(rpc): InitSwapClient This allows for xud to initialize a swap client after xud itself has already been initialized using a new rpc command `InitSwapClient`. The swap client must be configured properly and running before it can be initialized. The procedure for initializing is as follows. 1. A swap client type and (optionally) a currency is specified by the `InitSwapClient` request. 2. Xud extracts the deciphered seed from its decrypted node key, this contains the entropy used to generate the master seed/mnemonic. 3. Xud uses the seedutil to convert the deciphered seed back to a mnemonic. For Lnd, it uses this mnemonic to initialize the wallet. Closes #1929.

Commit:1dc4425
Author:rsercano
Committer:rsercano

Merge remote-tracking branch 'origin/master' into feature/removeorder-output-#1526

Commit:ba04193
Author:rsercano
Committer:rsercano

feat: removeorder output changed to a more meaningful message (#1526)

Commit:42308cd
Author:rsercano
Committer:rsercano

Rebased

Commit:8d10df0
Author:Daniel McNally
Committer:GitHub

feat(rpc): SetLogLevel (#1955) This adds a new rpc call to change the logging level of a running xud instance. Closes #835.

Commit:62383ee
Author:Karl Ranna
Committer:GitHub

Revert "refactor(rpc): rename reserved TradingLimits fields"

Commit:c42d58c
Author:rsercano
Committer:rsercano

Rebased

Commit:906857e
Author:Daniel McNally
Committer:Daniel McNally

refactor(rpc): rename reserved TradingLimits fields This renames the `reservedOutbound` and `reservedInbound` fields on the `TradingLimits` call to `reservedSell` and `reservedBuy` respectively.

Commit:e2ff8c2
Author:rsercano

Rebased

Commit:8f28b63
Author:rsercano
Committer:rsercano

Rebased from master

Commit:7e56011
Author:krr prr
Committer:krr prr

fix: rename tradinglimits reserved_inbound json_name

Commit:c958e86
Author:Sercan Özdemir
Committer:GitHub

feat: added new grpc method to easily cancel all orders (#1910) Signed-off-by: rsercano <ozdemirsercan27@gmail.com>

Commit:071fbd9
Author:rsercano

Rebased from master

Commit:7f7cd68
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): reserved order amount for TradingLimits This exposes the amounts reserved for open orders on the `TradingLimits` call and subtracts reserved amounts from the `maxSell` and `maxBuy` values returned by the call. It also removes reserved order amounts from GetBalance - reversing #1584. The logic to calculate max sell and buys is as follows: 1. Sum up all outbound and inbound balances across all channels, as well as the maximum balances for a single channel, as we still aren't expecting to use multi-path payments. For Connext there is a single channel so we only have a single inbound & outbound value per currency. 2. Subtract reserved order amounts from the total inbound and outbound balances calculated above. E.g. if we have outbound capacity of 1.2 ETH, but we have an order to sell 0.7 ETH, our max sell would be 0.5 ETH. 3. Return the smaller of the amount calculated in step 2 or the maximum single channel balance calculated in step 1. Resolves #1678.

Commit:1b02e78
Author:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feature/buy-sell-all-grpc  Conflicts:  test/simulation/xudrpc/xudrpc.pb.go

Commit:8b18dd7
Author:Daniel McNally
Committer:GitHub

feat(rpc): expose reserved balance for GetBalance (#1925) This adds a field to the `GetBalance` response to return the balance that is reserved for open orders.

Commit:8155d93
Author:rsercano
Committer:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feature/buy-sell-all-grpc

Commit:fedfa8f
Author:rsercano
Committer:rsercano

feat: adding new flag to trade all possible quantity for buy/sell Signed-off-by: rsercano <ozdemirsercan27@gmail.com>

Commit:1624f02
Author:rsercano
Committer:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feature/cancelallorders  Conflicts:  test/simulation/xudrpc/xudrpc.pb.go

Commit:b70e72d
Author:rsercano
Committer:rsercano

Merge branch 'master' of https://github.com/ExchangeUnion/xud into feature/cancelallorders  Conflicts:  test/simulation/xudrpc/xudrpc.pb.go

Commit:82e16a5
Author:Sercan Özdemir
Committer:GitHub

feat(rpc): show connext status on create/restore node (#1902)

Commit:26f89e6
Author:Yang Yang
Committer:GitHub

fix: xudrpc GetBalanceResponse json_name (#1909)

Commit:b56ad98
Author:Sercan Özdemir
Committer:GitHub

feat: sat_per_byte custom fee for openchannel (#1832) Resolves #1829. Co-authored-by: sercan.ozdemir <sercan.ozdemir@codespacedev.com>

Commit:d6b84af
Author:rsercano
Committer:rsercano

feat: added new grpc method to easily cancel all orders Signed-off-by: rsercano <ozdemirsercan27@gmail.com>

Commit:0669a3f
Author:rsercano
Committer:Daniel McNally

feat(rpc): add txid to open/close channel response Closes #1860.

Commit:bc90ffa
Author:sercan.ozdemir

fixes getbalance defaulting to 0

Commit:546c215
Author:sercan.ozdemir

under development

Commit:fb3d8ab
Author:sercan.ozdemir

added no_channels indicator to getbalance to format properly

Commit:9afe7d1
Author:Daniel McNally
Committer:GitHub

refactor: remove raiden support (#1824) Closes #1516. BREAKING CHANGE: removes raiden support & p2p packet fields

Commit:de691b2
Author:Daniel McNally
Committer:GitHub

feat(p2p): replace order in single packet (#1812) This modifies the procedure for replacing an order in the order book. Previously, it would go like this: 1. Remove old order & send order invalidation to peers. 2. Place new order and wait for matching to complete (which may take some time if it involves swap attempts). 3. Send new order to peers. Now it goes: 1. Put the old order on hold, preventing further swaps/matching. 2. Place the new order and wait for matching to complete. 3. Remove the old order from the order book. 4. Send a single packet to peers with new order info and old order id. 5. Peers that receive this packet will remove the old order and add the new one sequentially. By default, replaced orders will have the same local order id as the order they are replacing unless a different id is specified. Closes #1805. Closes #1806.

Commit:99adade
Author:Daniel McNally
Committer:GitHub

feat(rpc): subscribeSwapsAccepted (#1723) This introduces a new streaming call that notifies listeners when a swap is accepted. This allows market makers to anticipate when trades will be completed earlier, as there may be a delay of 15-30 seconds between when a swap is accepted and when it is completed. Closes #1662.

Commit:13157b0
Author:Karl Ranna
Committer:Karl Ranna

fix(p2p): change connext_address to connext_identifier BREAKING CHANGE: `connext_address` field in `NodeState` has been renamed to `connext_identifier`. Related: https://github.com/opendexnetwork/opendex/issues/28 Closes: https://github.com/ExchangeUnion/xud/issues/1611

Commit:ebb715e
Author:Daniel McNally
Committer:GitHub

feat(rpc/connext): deposit & openchannel calls (#1577) This refactors the `Deposit` and `OpenChannel` methods in `SwapClient` to make them generic and applicable to Connext. It implements this functionality for Connext, namely retrieiving an address for sending funds on-chain to the Connext wallet and depositing those funds into Connext channels. It also refactors the `CloseChannel` call similarly, however the Connext REST client does not currently implement a `/withdraw` endpoint for taking funds out of Connext channels. This adds dummy code to construct a withdraw payload and make a request. Withdrawing coins from the on-chain Connext wallet is not currently supported by the Connext client and so the `Withdraw` rpc call remains specific to lnd. Closes #1472. Closes #1473.

Commit:79bed74
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): TradeHistory This replaces the partially implemented `ListTrades` call with the more comprehensive and descriptive `TradeHistory`. This displays key info about every trade we have made. Closes #1232.

Commit:fb6ecfd
Author:Daniel McNally
Committer:Daniel McNally

feat: peer order match events & alias This enhances the details returned by the `PlaceOrder` call and output by the `placeorder` command to include events for when a peer order is matched and swapping routine begins as well as the alias of the peer whose order we matched with. Closes #1514.

Commit:466abf1
Author:Daniel McNally
Committer:Daniel McNally

refactor: remove SwapCompleted phase & packet This removes code related to the unnecessary "SwapComplete" packet and swap phase. This brings us in line with treating a swap as "complete" once we receive our funds, `PaymentReceived` is now treated as the final phase indicating a successful swap. Closes #1483.

Commit:c46bc2f
Author:Karl Ranna
Committer:GitHub

Connext fixes (#1512) * fix(connext): add support for Connext 6.3.7

Commit:c865f59
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): include aliases in ListOrders This adds an optional alias field on the orders returned by `ListOrders` and enables and displays aliases automatically on `xucli listorders`. Closes #643.

Commit:f69fa7c
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): CloseChannel call This introduces the ability to close channels through xud. Currently this is only implemented for lnd, and is implemented in a naive way that relies on the peer we are trying to close channels with being online and cooperative. Closes #1471. Follow-ups are #1472 and #1476.

Commit:94ecf85
Author:Karl Ranna
Committer:GitHub

Add Connext SwapClient support (#1488) * feat: add Connext SwapClient

Commit:5c81421
Author:Daniel McNally
Committer:Daniel McNally

refactor(rpc): unsigned ints for non-neg fields This changes several integer fields in the protobuf definition that can never be negative to unsigned integers for the sake of code consistency and more efficient encoding of rpc data.

Commit:c306ea3
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): deposit & withdraw calls using lnd This adds new rpc calls that allow to get new deposit addresses and withdraw coins via xud. Currently these calls only support lnd. Closes #1062.

Commit:5d0f626
Author:Daniel McNally
Committer:GitHub

Merge pull request #1475 from ExchangeUnion/correct-proto-comment docs: correct OpenChannel rpc description

Commit:4e3ecbe
Author:Daniel McNally

docs: use <node_identifier> in proto sample cmds

Commit:965ef27
Author:Daniel McNally
Committer:Daniel McNally

docs: correct OpenChannel rpc description

Commit:6bf82f9
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): push amount in OpenChannel call This adds a push amount parameter for the `OpenChannel` call which is passed to lnd as the `push_sats` parameter to specify a starting balance for the remote side in a channel. Closes #1464.

Commit:73e5665
Author:Hannah Atmer
Committer:GitHub

feat(rpc/cli): node aliases (#1362)

Commit:2918d5e
Author:Daniel McNally
Committer:Daniel McNally

chore: automatically generate sim test protos This automatically generates the Go protobufs used by the simulation tests every time `npm run proto` is run, ensuring that the protobuf code used by xud and by its simulation tests remain in sync without manual intervention.

Commit:8b0704e
Author:Krr Prr
Committer:Krr Prr

feat(rpc): add owner parameter for listorders This commit adds an optional `owner` parameter for the `listorders` command while removing `include_own_orders_parmeter` and replacing its functionality. The default value for the new parameter is `Both`, other options are `Own` and `Peer`. The commit also fixes a bug that caused a situation where sell orders were displayed instead of buy orders when the limit was set. Closes #1323

Commit:479ac61
Author:Daniel McNally
Committer:Daniel McNally

docs: add shell commands to proto definition This adds the shell commands to the comments for rpc calls that can be invoked via the xucli tool. It also alphabetizes rpc calls and messages in the proto definition.

Commit:9703c76
Author:Daniel McNally
Committer:Daniel McNally

feat: restore from backup This adds an rpm and cli call to allow restoring an xud instance from backups. This call restores the xud database and pubkey as well as the lnd wallets and eth keystore. Furthermore it restores from the lnd static channel backup file which attempts to reconnect to peers with which we had channels and force close channels, recovering our balance from the channel. Co-authored-by: Daniel McNally <mcnallydp@gmail.com> Co-authored-by: Karl Ranna <karl@karlranna.com>

Commit:8122f1d
Author:Karl Ranna
Committer:Karl Ranna

chore: update lnd protos to 0.8.2

Commit:7d768bb
Author:Daniel McNally
Committer:GitHub

feat(orderbook): immediate-or-cancel orders (#1344) feat(orderbook): immediate-or-cancel orders

Commit:c499d8b
Author:Daniel McNally
Committer:Daniel McNally

feat(orderbook): immediate-or-cancel orders This adds an "immediate-or-cancel" order type that prevents an order from entering the order book after matching is complete. It combines the immediate nature of a market order with the price requirement of a limit order. Closes #622.

Commit:4357adb
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): RestoreNode call to restore from seed This adds a new `RestoreNode` call that accepts a 24 word seed mnemonic to restore an xud key, lnd wallets, and a raiden keystore from the seed. This call can be extended to also restore lnd channel backups and xud db backups with additional parameters. The seedutil tool is extended to support an `encipher` subcommand that converts a mnemonic to the enciphered seed bytes, which is necessary for deriving an xud key from aezeed. Closes #1017. Closes #1020.

Commit:30f7629
Author:Karl Ranna
Committer:GitHub

Merge pull request #1341 from ExchangeUnion/tradinglimits feat(rpc): TradingLimits API call

Commit:bdcf121
Author:Daniel McNally
Committer:GitHub

Merge pull request #1322 from ExchangeUnion/rpc/unlock-failed feat(rpc): unlock returns list of locked wallets

Commit:8abcc78
Author:Le Premier Homme

TradingLimits API call

Commit:f8ba20a
Author:LePremierHomme
Committer:GitHub

PlaceOrder to support replacing a previous order (#1333)

Commit:2fd2b5d
Author:Daniel McNally
Committer:Daniel McNally

feat(rpc): unlock returns list of locked wallets This adds a response parameter for the `UnlockNode` call to include a list of enabled wallets that could not be unlocked. It also uses the existing `waitForLnd` method to wait briefly for lnd clients to come online which will help ensure lnd gets unlocked in cases where it is started near simultaneously with xud. Finally it enhances the `xucli unlock` output. Closes #1319.

Commit:1f0c3c5
Author:Krr Prr
Committer:Krr Prr

fix(rpc/cli): separate inactive channel balance in getbalance

Commit:fc984cb
Author:Krr Prr
Committer:Daniel McNally

feat(rpc): GetBalance enhancements (#1197)

Commit:6c5dae5
Author:Sercan Özdemir
Committer:Daniel McNally

feat(cli): getinfo enhancements (#1170) Closes #1059.

Commit:856f14a
Author:Daniel McNally
Committer:Daniel McNally

feat(swaps): recover crashed swap deals This commit attempts to recover swap deals that were interrupted due to a system or `xud` crash. In the case where we are the maker and have attempted to send payment for the second leg of the swap, we attempt to query the swap client for the preimage of that payment in case it went through. We can then use that preimage to try to claim the payment from the first leg of the swap. In case the payment is known to have failed, we simply attempt to close any open invoices and mark the swap deal as having errored. If an outgoing payment is still in flight and we do not have the preimage for it, we add it to a set of "pending" swaps and check on it on a scheduled interval until we can determine whether it has failed or succeeded. A new `SwapRecovery` class is introduced to contain the logic for recovering interrupted swap deals and for tracking swaps that are still pending. Any pending swaps are listed in the `GetInfo` response. Raiden currently does not expose an API call to push a preimage to claim an incoming payment or to reject an incoming payment, instead we print a warning to the log for now. The recovery attempts happen on `xud` startup by looking for any swap deals in the database that have an `Active` state. This commit includes a suite of test cases for the newly added functionality. Closes #1079.

Commit:3d716b6
Author:rsercano
Committer:Daniel McNally

feat(rpc): ListCurrencies enhancement Closes #1067.

Commit:a3e94f1
Author:Daniel McNally
Committer:Daniel McNally

feat(cli): enhance create output This improves the output of the `xucli create` command to provide clearer information to the user about how they should proceed and the outcome of the command. Closes #1210.