Skip to content

Releases: decred/dcrdex

dcrdex v0.5.3

26 Sep 18:33
Compare
Choose a tag to compare

DCRDEX v0.5.3

IMPORTANT: Use the v0.5.4 patch release (or newer) instead. There is a critical bug fix related to Bitcoin block parsing.

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

NOTE: This release includes an experimental downloadable executable for Windows, the dexc-tray archive, which starts the DEX client with no terminal, and with a system tray icon. For Windows users, this should feel more natural. See #1828 for more info.

dex-tray-w11

Features

  • Add translations for de-DE. (d8c6ce3)
  • Native BTC wallets now have an option to obtain a current network fee rate from an external source. (1af28ea)
  • Decred wallets now have the ability to change certain settings without requiring a full restart of the wallet. This allows the user to change certain minor settings such as the option to use the external fee rate source while trades are active. However, it is still recommended to keep wallet settings unchanged while trades are active. (2ac43de)

Fixes

  • Concurrent login requests are handled in sequence now, preventing certain bugs when the user attempts to login again while a previous login request is being handled. (5084446)
  • The password fields on the wallet configuration forms are generated with the autocomplete = 'off' attribute. This improves privacy by preventing the browser from remembering the values entered. (3d365d7)
  • The network fees paid for a swap redemption were incorrectly shown on the order details page. The correct fees are now shown. (11ce1ff)
  • Various frontend fixes. (b01d81c)
  • More thorough handling of epoch status orders when network connectivity is interrupted and restored. This may resolve a variety of uncancellable orders, as well as perpetual locking of funds, which was previously only resolvable by restarting the DEX client. (942e594)
  • The default RPC port is removed from the Electrum wallet configuration form since there is no default. (e9ca06d)

Server

  • The server now sends a revoke_order notification after a preimage miss to assist with epoch order status resolution with clients that had lost connectivity at the time of the preimage request, but regained connectivity before the end of that epoch's match cycle. (26fa5a1)

Code Summary

11 commits, 46 files changed, 3,670 insertions(+), and 323 deletions(-)

v0.5.2...v0.5.3

5 contributors

dcrdex v0.5.2

29 Aug 20:57
Compare
Choose a tag to compare

DCRDEX v0.5.2

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Fixes

Set the version strings in the command line applications, and packaging script.

Code Summary

1 commits, 4 files changed, 4 insertions(+), and 4 deletions(-)

v0.5.1...v0.5.2

1 contributors

dcrdex v0.5.1

29 Aug 20:55
Compare
Choose a tag to compare

DCRDEX v0.5.1

This patch release includes a required fix for Windows users.

Please read the v0.5.0 release notes for a full list of changes since v0.4.

For important information and an introduction to DCRDEX, read the initial release (v0.1.0) notes.

Client (dexc)

Fixes

  • The embedded site resources for the user interface were not loading correctly on Windows systems. This uses the correct path construction for embedded file systems. (078b129)
  • When using --no-embed-site, a developer setting, it no longer takes two page refreshes to see the effect of a changed on-disk html template. (2e625e0)
  • Fix being unable to change a DEX host name if the DEX server is not connected. (5eb68c5)

Server (dcrdex)

There are no server changes.

Code Summary

3 commits, 3 files changed, 34 insertions(+), and 14 deletions(-)

v0.5.0...v0.5.1

2 contributors

dcrdex v0.5.0

29 Aug 18:28
Compare
Choose a tag to compare

DCRDEX v0.5.0

Aug 23, 2022

For a high level introduction to DCRDEX, please read the initial release's notes.

Retrieve binaries for the latest release. Just download the one for your system, extract it, and run the dexc executable in a terminal / command prompt. It will start up and display a link that you should open in the web browser of your choice. Keep the terminal with dexc opened until you are done and have signed out from the browser window. Hit CTRL+C in the terminal to shut it down.

Windows users must use v0.5.1 or newer, which contains an important fix for the user interface.

Important Notices

No Decred wallet is required with this release, but if using dcrwallet or Decrediton, the latest 1.7 release is required.

If upgrading from v0.2, read the Upgrading section of the v0.4.0 release notes for important information. If upgrading from v0.4, read the Upgrading section of this document.

Always record the "seed" that is generated by the DEX client on initialization (when you set your password the first time in the browser window). This is a string of characters that is used to derive DEX account identities and initialize any native/built-in wallets you create in the DEX client. You must have this seed to recover funds that you receive in such wallets if your lose access to your DEX client's data folder.

Although DCRDEX looks and feels like a regular exchange, the decentralized aspect brings an expanded role to the client. Please take the time to read and understand the following:

  • Never shutdown your external wallets with dexc running. When shutting down, always stop dexc before stopping your wallets.
  • If you have to restart dexc with active orders or swaps, you must immediately login again with your app password when dexc starts up.
  • There is an "inaction timeout" when it becomes your client's turn to broadcast a transaction, so be sure not to stop dexc or lose connectivity for too long or you risk having your active orders and swaps/matches revoked. If you do have to restart dexc, just remember to login as soon as you start it up again.
  • Only one dexc process should be running for a given user account at any time. For example, if you have identical dexc configurations on two computers and you run dexc and login on both, neither dexc instance will be adequately connected to successfully negotiate swaps.
  • Order history is not synchronized between different client installations.

Upgrading

Client (dexc)

The new native DCR wallet built into the DEX client can be used by changing the wallet type to "SPV" in the wallet settings view. If using Decrediton, it is recommended to continue using Decrediton's wallet instead of the native wallet. Funds do not automatically move between wallet types if you change it; you should send any funds first.

The native BTC wallet that was introduced in v0.4, but if you are still using and external Bitcoin Core wallet, v0.20 is no longer supported. Supported versions are v0.21, v22, and v23. Descriptor wallets may now be used with v22 and v23, but it is advised to use legacy (bdb) format wallets.

Server (dcrdex)

Bitcoin Core v0.20 is no longer supported.

Highlights

This is a major release. Please read the Important Notices before upgrading.

The most notable new features are:

  • Decred native/built-in wallet, just like the BTC native wallet that we already have. Using dcrwallet or Decrediton in SPV mode (not full node) was already supported, but now no external wallet software is even required to trade DCR. However, users should continue with their existing Decred wallet software that has all the governance features that makes Decred great. (#1633, #1759, #1773)

  • Support for ZCash (ZEC), using zcashd in this release to start, but we are looking at light wallet solutions. Unshielded addresses used for trades. (#1570, #1693)

  • Electrum light wallet support is added, with LTC and BTC to start, a common SPV wallet with forks for many different assets. The BCH wallet fork (Electron Cash) still requires a small update, which we hope will make it usable by DEX soon. (#1607)

  • Support for the latest Litecoin Core software (v0.21) that introduced MWEB (private addresses). Regular addresses are used for trades. (#1536)

  • DCRDEX can now work with mixed account configurations when using dcrwallet or Decrediton as the external DCR wallet, allowing Decred's privacy features to be used automatically when trading. (#1498)

  • Swap options may be set at time of placement of each order rather than in the wallet settings. This includes pre-sizing funds to avoid overlocking of UTXOs, and specifying higher network fee rates. (#1170, #1669)

  • Improved send/withdraw controls, allowing a complete sweep of the wallet minus transaction fees, or sending a precise amount like most wallets. (#1611)

  • Bitcoin swap acceleration using CPFP transactions to increase the swap fee rate in the event of a network fee spike. This has not been in demand much recently, but we have encountered rapid increases in Bitcoin fee rates in the past where this is valuable. (#1555)

  • Fiat currency value display. When enabled by the user, current USD exchange rates for all assets will be used to show equivalent fiat values on the UI. (#1600)

  • QR code display for wallet receiving addresses. (#1483)

  • There is now a "copy" button next to the wallet's receiving address. (#1639, #1675)

  • Rescan and recover functionality for the native BTC SPV wallet. You may also now reconfigure the native BTC wallet’s “birthday” to change the scope of the rescan. (#1507, #1439)

  • Add the option to obtain Decred network fee rates from dcrdata when the client wallet is unable. (#1654)

  • Bitcoin “descriptor” wallets are now supported. This only applies to users of the Bitcoin Core software, not the native BTC wallet, who also choose to create this type of wallet that is becoming the default in future versions of Bitcoin Core. Support for Bitcoin Core v23, dropped support for v0.19. (#1659, #1735)

  • A DEX server's host name and TLS certificates may now be updated. (#1605, #1602)

  • When a wallet regains peers after having lost connectivity, a notification is displayed. (#1701, #1719)

  • Reconfiguring BTC wallets is now less disruptive as it only requires an internal restart of the wallet and chain service when absolutely required. (#1686)

  • The user interface files are now embedded in the "dexc" executable. To use the DEX client, only the one file is required. Any "site" folders left from previous versions may be deleted. (#1710)

  • The optional dexcctl command line control application now has a version command to ensure compatibility with dexc. (#1645)

NOTE: While Ethereum trading is not in production yet, the native ETH wallet can be used if built from source with the -tags lgpl switch.
The built-in ETH wallet’s account private key can be exported, for import into other wallets like MetaMask or MEW. The ETH wallet is a “light” wallet that uses the native LES protocol. Unfortunately, we are waiting on an update to the go-ethereum light client software to support The Merge.

All the pieces for ETH and ERC20 trading are in place, however, The Merge upcoming in September requires the upstream light client package from go-ethereum to be updated before we can continue. In addition The Merge creates a need for the full node for the server to run an additional consensus layer node on the server. The ETH release will hopefully be in several weeks.

Server changes

  • The server will check that a node's transaction indexes are enabled, when possible. (#1549)

  • Fee rate estimation now has a median-based backup estimation method when the nodes fail to return a rate. (#1597, #1655)

  • The transaction search code is now smarter and blocks other routines less. (#1623)

  • Confirmation checks are now throttled for fast blocks. (#1629)

  • The server now begins signing untruncated messages, and ceases to recognize signatures created on truncated messages. (#1530) This follows #1528 in v0.4.2 in which both client and server began recognizing signatures of the full messages, and <https://github.com/decred/dcrdex/...

Read more

dcrdex v0.4.3

09 Aug 18:17
Compare
Choose a tag to compare

DCRDEX v0.4.3

Apr 29, 2022

For a high level introduction to DCRDEX, please read the initial release's notes.

This is a patch release.

Highlights

Features

  • Dogecoin support via dogecoind, the reference full-node. (c0a9f5e, 30a561f, 0192b3b)
  • Add a Tor listener to the server. A ".onion" address may be specified with --hiddenservice. (eb5f3cd)
  • Add an onion proxy option (--onion) to the client. This proxy is used only for ".onion" server hosts, in contrast to the existing --torproxy option that is used for all hosts. (5e3b755)
  • Do not reject confirmed swap transactions on account of a low transaction fee (57d3f0e, f7aa461)
  • Litecoin now requires segwit outputs, bumping its asset version to 1. (a5b371b)
  • The taker now checks for a fresh swap fee rate before making their contract transaction. This is helpful for the taker, who acts second, and thus potentially long after the match was made. (b4c47fe, 4ffe965, 666703d)
  • Additional server logging for init and redeem handling. (9094faa)

Fixes

  • The server proactively revoke matches based on contract expiry. This includes where any known swap contracts are expired, or in the case of MakerSwapCast where the expected taker contract would be created with a lock time in the past. These scenarios are possible if a transaction takes an extremely long time to reach the required number of confirmations. (b46796f)
  • The server rejects any provided contracts that are already expired. (45f9b15)
  • The client double checks expiry of their and the counterparty's contracts before acting to prevent needlessly locking funds or redeeming very close to contract expiry, which is risky. (79ccdd8)
  • Various frontend fixes (d0cd27c, c1833e4, e5a9250, 5150979)
  • The server will now continue to process init and redeem requests past the broadcast timeout, which is preferred since match revocation happens in a different goroutine. (de83991)
  • The client begins signing an appropriate sighash in comms and asset packages rather than truncated data. The server began recognizing such signatures in the last patch release. (6aad310, f1f22fe)
  • The html template builder now ignores extraneous files, only processing files with the .tmpl extension. (6d9da29)
  • Better error handling when checking counterparty swap transaction confirmations. (4d0e726)

Developer

  • Contract audits on Bitcion and Decred may be attempted with empty "txdata". (8d1ab32, 918e9be)

Important Notices

If upgrading from v0.2, read the Upgrading section of the v0.4.0 release notes for important information.

Code Summary

30 commits, 109 files changed, 2,725 insertions(+), 649 deletions(-)

v0.4.2...v0.4.3

dcrdex v0.4.2

09 Aug 18:16
Compare
Choose a tag to compare

DCRDEX v0.4.2

Mar 17, 2022

For a high level introduction to DCRDEX, please read the initial release's notes.

This is a patch release.

Highlights

Features

  • The client database is compacted on shutdown if there are sufficient free pages. (0cb43cc)

Fixes

  • Decred: ensure that the Refund method signals correctly when the targeted contract is already spent. This is necessary for the taker to begin locating the counterparty/maker redemption. (b47907c)
  • Begin a counterparty redemption search when a refund attempt fails in certain situations. (d1ebfb1)
  • Various frontend fixes (ccefcc9, 8d4746b)
  • Avoid leaving Decred UTXOs locked in certain cases. (d80b30e)
  • Fix a panic when no market fee exists (3d56fc8)
  • Recognize signatures of full-length message payloads (2e93f76, a60275a)

Developer

  • Add a client database backup function, (*Core).BackupDB. (5a34c26)
  • Document the dex/msgjson.RegisterResult.ClientPubKey intent (a17e577)

Important Notices

If upgrading from v0.2, read the Upgrading section of the v0.4.0 release notes for important information.

Code Summary

14 commits, 30 files changed, 339 insertions(+), 113 deletions(-)

v0.4.1...v0.4.2

dcrdex v0.4.1

09 Aug 18:14
Compare
Choose a tag to compare

DCRDEX v0.4.1

Feb 11, 2022

For a high level introduction to DCRDEX, please read the initial release's notes.

This is a patch release.

Highlights

Features

Fixes

  • Do not display the new address button for ETH, where you only have one account address. (71fe622, 3ea7d7c)
  • Smoother (monotonic) BTC wallet sync status (21db63f)
  • Fix server accounting of maker redeems in certain scenarios (f260918)
  • Various fronted fixes (80fac58, 6738bca)
  • Avoid a deadlock when resuming trades on restart that require counterparty contract audit information (d70547b)
  • Fix a data race when reconfiguring a wallet (486ed36)
  • Allow the wallet Lock to timeout, in the event that the wallet backend is down or hung (d67198f)
  • Allow a Decred RPC client to be restarted, such as if a reconfiguration attempt failed and the previous client needs to be reconnected (74f4ec8)

Developer

  • Testing: add simnet node control scripts (8613814)

Important Notices

If upgrading from v0.2, read the Upgrading section of the v0.4.0 release notes for important information.

Code Summary

22 commits, 78 files changed, 3,589 insertions(+), 418 deletions(-)

v0.4.0...v0.4.1

Full Changelog: v0.4.0...v0.4.1

dcrdex v0.4

09 Feb 15:17
Compare
Choose a tag to compare

DCRDEX v0.4.0

Jan 20, 2022

For a high level introduction to DCRDEX, please read the initial release's notes.

Highlights

This release includes a large number of improvements to wallet support, the UI, the communications protocol, and software design.

The most notable new features are:

  • An integrated light (SPV) BTC wallet
  • Support for dcrwallet/Decrediton in SPV mode
  • BTC may be used for account account registration
  • Introduce an application "seed" for deterministic account and wallet restoration
  • UI overhaul and streamlined setup
  • Improved market view with candlestick charts and a price feed
  • A "remember password" login option to eliminate password nagging
  • Translations for Chinese (zh-CN) and Portuguese (pt-BR)
  • Extensive under-the-hood improvements

The latest 1.7 release of dcrd and dcrwallet is required for this release of DCRDEX. At the time of release, this corresponds to the v1.7.0 releases. Bitcoin Core 0.20 and 0.21 are both supported. Bitcoin Core v22 may be used, but the wallet type must not be a "descriptor" wallet, which may be the default on certain platforms and redistributed builds.

Note that we skipped a v0.3 release. The v0.3 development branch is a pre-SPV checkpoint branch, but it also requires Decred 1.7. Given the timing of the Decred v1.7 and DCRDEX v0.4 releases now coinciding, we are jumping straight to the DCRDEX v0.4 SPV-enabled release.

Important Notices

If upgrading from v0.2, read the Upgrading section for important information.

Always record the "seed" that is generated by the DEX client on initialization (when you set your password the first time in the browser window). This is a short string of characters that is used to derive DEX account identities and initialize any native/built-in wallets you create in the DEX client. You must have this seed to recover funds that you receive in such wallets if your lose access to your DEX client's data folder.

Although DCRDEX looks and feels like a regular exchange, the "decentralized" aspect brings an expanded role to the client. Please take the time to read and understand the following:

  • Never shutdown your external wallets with dexc running. When shutting down, always stop dexc before stopping your wallets.
  • If you have to restart dexc with active orders or swaps, you must immediately login again with your app password when dexc starts up.
  • There is an "inaction timeout" when it becomes your client's turn to broadcast a transaction, so be sure not to stop dexc or lose connectivity for too long or you risk having your active orders and swaps/matches revoked. If you do have to restart dexc, just remember to login as soon as you start it up again.
  • Only one dexc process should be running for a given user account at any time. For example, if you have identical dexc configurations on two computers and you run dexc and login on both, neither dexc instance will be adequately connected to successfully negotiate swaps.
  • Order history is not synchronized between different client installations.

Upgrading

Client (dexc)

Application Seed

When upgrading from v0.2, an application "seed" is automatically generated upon login. The seed is used when creating new DEX accounts and native (built-in) wallets, and may be used to restore these accounts on a new DEX client installation. You should go to the Settings page to view this new seed, and back it up somewhere safe. This is especially important if you create a native Bitcoin wallet from within the DEX client since you will need the seed to recover any funds in the wallet.

If you run the upgrade multiple times, such as from different client installations or just repeated the upgrade from a v0.2 backup, you will get a different seed each time the upgrade runs and you login.

Any DEX accounts created prior to upgrading can NOT be later recovered from this seed. These "legacy" accounts continue to work in v0.4, but to back them up or move them to a different installation, it is still necessary to export/import them from the Settings page or backup the dexc.db file as it was in v0.2.

Developer note: For the upgrade to complete, it is necessary to call Login before using most other Core methods. If you receive the error "primary credentials not retrieved. Is the client initialized?" it is likely that you need to Login first to complete the seed generation and credentials scheme migration. Typical startup should involve core.New followed by: c.Run in a goroutine, wait for <-c.Ready(), consult c.IsInitialized() before calling either c.InitializeClient or c.Login. After login, you should call c.ExportSeed with the application password to retrieve the newly-generated application seed.

Changing the Bitcoin Wallet Type

If you previously had an external Bitcoin Core wallet configured with DEX, you may switch to a native BTC wallet from the Wallets page. Click the "gears" icon for the Bitcoin wallet, click "change the wallet type", select "SPV" from the dropdown box, and click the Submit button. This will start creating a new BTC wallet. After several seconds it will begin synchronizing in the background, and a circular arrow icon will be displayed in the Status column of the Wallets table. Synchronization of the wallet with the Bitcoin network is completed when the icon disappears. During the process you may see progress by hovering the mouse over the icon. This normally takes less than 10 minutes, but it may be
longer depending on your network and the peers it established. It is strongly advised to allow this to complete before attempting to shutdown, change any wallet settings, or attempt to lock/unlock the wallet. If you decide to change the wallet type back to an external wallet, you will need to re-enter the RPC settings that were previously used.

Server (dcrdex)

There are several changes to the configuration files.

  • In markets.json, both lotSize and rateStep no longer belong in the asset settings, and instead should be configured for each market. See
    4231914 for more information.
  • Lot size changes are now supported, but it presently involves restarting the dcrdex process after editing markets.json. It is advised to complete swaps and purge the market before shutting down. See 509205d for more information.
  • With registration fees accepted in both BTC and DCR now, the registration fee settings should be configured per-asset in markets.json. Previously, dcrdex.conf was used to configure these settings for DCR. To accept BTC, a "zpub" encoding of your wallet's extended public key for the BIP84 (p2pkh) derivation path is required. See 4f2ab59 and 0124247 for more information.

For examples, consult the sample files: server/cmd/dcrdex/sample-markets.json and server/cmd/dcrdex/sample-dcrdex.conf

Client

Features and Improvements

  • The client now uses a seed and deterministic (HD) account key derivation. An application seed is generated during client initialization. When a new dex account is created, the server's identity is used to deterministically generate a client identity for the account. Users should save a copy of their app seed. When upgrading, a new seed will be generated, which may be accessed for backup from the Settings page. When initializing a new dex client, there is an option to provide an existing seed. The RPC client (dexcctl) also has an appseed request endpoint. If an account is suspended, a new one will be generated from a different derivation path, and on restore from seed, non-suspended accounts will be located. (b66a35f, ac5affe, d8e46bb, 59868fe, 7f9d0d5, d203ebd, 242f597, a548723, 2df3b4b)
  • A new Bitcoin SPV wallet integrated into the DEX client. (c1992d8, d202f6d, d808492, 2d18cc8, f5835bd, 4249d97, 82833e0, 1890057, deab1c9, 3b4f2eb)
  • Decred SPV wallet support (...
Read more

dcrdex v0.2

11 May 17:07
Compare
Choose a tag to compare

DCRDEX v0.2.0 (beta)

May 7, 2021

For a high level introduction to DCRDEX, please read the 0.1.0 release notes.

Highlights

This release includes a large number of improvements to the UI, the communications protocol, and software design.

The most notable new features are:

  • Numerous UI and usability enhancements including responsive design and depth chart interactivity
  • Support client control by the Decrediton GUI wallet and use of its accounts
  • Experimental Bitcoin Cash (BCH) support
  • Initial changes to support SPV (light) wallets in the next release
  • Account import/export

The latest 1.6 release of dcrd and dcrwallet is required for this release of dcrdex. At the time of release, this corresponds to the v1.6.2 releases.
Bitcoin Core 0.20 and 0.21 are both supported.

Important Notices

Although DCRDEX looks and feels like a regular exchange, the "decentralized" aspect brings an expanded role to the client. Please take the time to read and understand the following:

  • Ensure your nodes (and wallets) are fully synchronized with the blockchain network before placing orders.
  • Never shutdown your wallets with dexc running. When shutting down, always stop dexc before stopping your wallets.
  • If you have to restart dexc with active orders or swaps, you must immediately login again with your app password when dexc starts up.
  • There is an "inaction timeout" when it becomes your client's turn to broadcast a transaction, so be sure not to stop dexc or lose connectivity for longer than that or you risk having your active orders and swaps/matches revoked. If you do have to restart dexc, remember to login as soon as you start it up again.
  • Only one dexc (client) process should be running for a given user account at any time. For example, if you have identical dexc configurations on two computers and you run dexc and login on both, neither dexc instance will be adequately connected to successfully negotiate swaps. Also note that order history is not synchronized between different installations.
  • Your DEX server accounts exist inside the dexc.db file, the location of which depends on operating system, but is typically in ~/.dexc/mainnet/dexc.db or %HOMEPATH%\Local\Dexc\mainnet\dexc.db. Do not delete this file.
  • If you use a non-default bitcoin wallet name, don't forget to set it in bitcoin.conf with a wallet=wallet_name_here line so that bitcoind will load it each time it starts. Otherwise, dexc will give you a "wallet not found" error on startup and login.
  • bitcoind's "smart" fee estimation needs plenty of time to warm up or it is not so smart. When possible, keep your bitcoind running for at least 6 blocks, especially if had not been running for more than an hour, or ensure that the value returned from a bitcoin-cli call to estimatesmartfee 1 returns a "feerate" close to what https://mempool.space/ reports as "High priority".

Client (dexc)

Features and Improvements

  • Experimental support for Bitcoin Cash (BCH). (542ed9b)
  • Show confirmations for swaps transactions on the Order page when a swap has not yet reached the required number of confirmations. (ecbfebd)
  • Open dialogs can be closed by hitting the "Escape" key. (7c978cd)
  • Allow changing the dex client "application password". (8d7163c)
  • Responsive browser UI design. (c91bde4)
  • Differentiate between buy/sell orders in confirmation modal dialog. (2bdf81f)
  • Clearer revocation notifications. (c8c9729)
  • Raw transaction data is now transmitted to counterparties in the 'audit' and 'match_status' requests. This is a prerequisite for SPV clients. (3704513)
  • More chart interactivity. (a) Indicators on the depth chart for the user's orders. When the mouse hovers near the indicator, the order is highlighted in the "Your Orders" table. Conversely, when the mouse hovers over a row in the "Your Orders" table, the indicator is highlighted on the chart. (b) Move the legend and hover info to the top. (c) When a rate is entered in the order form for a limit order, display a line indicator at that rate on the depth chart. (d) When the user hovers over an order in the buy/sell tables, display an indicator at that rate on the depth chart. (e) Last zoom level is saved across markets and reloads. (f) Display the total buy/sell volume. (fb6f3ea, 08ec4ac)
  • Multiple authorized browser sessions are now permitted. This refers to logging in to dexc from two different browsers that do not share a cookie store. This is now permitted, however, signing out of one session signs out of all sessions. (030173b)
  • A wallet's connection settings and private passphrase can be changed at the same time. Developers should see the ReconfigureWallet change. (761e3e1)
  • Add account import/export functions. (1a38c4d)
  • Add account disable function. (f414a87)
  • Starting dexc when a configured DEX server is unreachable starts a reconnect attempt loop. Previously it was necessary to restart dexc later and hope the server was back. (c782ffb)
  • Account-based DCR wallet locking support. With dcrwallet 1.6, accounts may be individually encrypted, with a unique password, in contrast to whole-wallet locking. This allows working with such accounts by using the accountunlocked dcrwallet RPC to determine the locking scheme for an account, and the unlockaccount/lockaccount RPCs instead of walletpassphrase/walletlock. The "beta" simnet DCR harness now uses an individually-encrypted "default" account. (ff4e76c, 37cdc9e)
  • Handling of new server-provided fee rates. This will support SPV clients, and helps ensure that both redeem and order funding transactions are not created with low fee rates when the client's wallet/node is not providing good estimates. (79a1cb0)
  • Network-specific loopback IPs for the webserver and RPC server listen addresses. Now by default, dexc listens on 127.0.0.1 for mainnet, 127.0.0.2 for testnet, and 127.0.0.3 for simnet. Users are still be able to specify custom addresses with webaddr and rpcaddr. (08ec4ac)
  • Maximum order size estimates on order dialog. Get maximum order estimates based on wallet balances and, in the case of buy orders, the rate in the rate input field. The data is shown in the UI as a small message above the rate field. When you click on the label, the quantity fields are pre-populated with the max order. (920d1ac)
  • dexcctl / RPC server: Add a matches list to the myorders response. (3bef6ba)
  • When orders are placed, the client remembers the expected maximum fee rate, and verifies that the rate provided by the server at match time does not exceed this amount. (2123f10)
  • Add a "fee rate limit" setting to each wallet that is checked against the max fee rate set by the server's config. Orders are blocked by the client if the server specifies a max fee rate that exceeds the client's limit. (414ffcc)
  • On shutdown, the active orders are logged, and inactive trades have their coins released to the wallet if they were not already. (41749a8)
  • Add sample config files. (also server) (792602b)
  • The 'init' and 'redeem' requests are now run asynchronously so most other actions are not blocked while waiting for a response. This is generally an internal change, but it may improve the overall responsiveness of the dexc application. (a0538bb)
  • Preimage request handling is reworked to prevent blocking for a long period given an incoming preimage request for an unknown order. (1b66492)
  • Add a custom webserver "site" directory argument. (4506406)
  • Favor confirmed UTXOs in BTC order funding. Thi...
Read more

dcrdex v0.1.5

22 Feb 20:27
Compare
Choose a tag to compare

DCRDEX v0.1.5

This patch release provides several important bug fixes.

Please read the initial release (v0.1.0) notes for important information and instructions.

Client (dexc)

Features and Improvements

The user's account ID is now logged on connect and authentication with a DEX server. (8ce328c)

Fixes

  • Fix a possible panic when reconfiguring a wallet that is not connected. (dfe4cd1)
  • When resuming trades on startup and login, counterparty contract audits now retry repeatedly, as is the case when an audit request is initially received. This prevents a match from being incorrectly revoked on startup if the wallet/node fails to locate the counterparty contract immediately. (172dbb7)
  • The client's database subsystem is always started first and stopped last. (b4ef3ff) This is a prerequisite for the following wallet lock-on-shutdown change.
  • On shutdown of client Core, the wallets are now locked even if the PromptShutdown function is not used. This does not affect dexc users, only direct Go consumers of the client/core.Core type. (70044e6)
  • Fix a possible interruption of the DEX reconnect loop if the config response timed out. (4df683a)
  • Update the crypto/x/blake2 dependency to prevent silent memory corruption from the hash function's assembly code. (c67af3f)
  • Handle orders that somehow loose their funding coins. Previously, such orders would forever be logged at startup but never retired, and any matches from such orders that required swap negotiation of other recovery would have been improperly abandoned. (a7b5aa0)

Server (dcrdex)

There are no substantive server changes, just a few logging improvements.

Code Summary

11 commits, 13 files changed, 564 insertions(+), and 254 deletions(-)

v0.1.4...v0.1.5

3 contributors