Up to [cvs.NetBSD.org] / pkgsrc / finance / electrum
Request diff between arbitrary revisions
Keyword substitution: kv
Default branch: MAIN
*: recursive bump for Python 3.11 as new default
electrum: use DEPENDS for py-qt5
electrum: mark as BROKEN due to py-dns dependency issue
*: Revbump packages that use Python at runtime without a PKGNAME prefix
*: bump PKGREVISION for egg.mk users They now have a tool dependency on py-setuptools instead of a DEPENDS
electrum: do not check version of aiorpcX
electrum: remove upper bound to fix bulk build
electrum: Fix REPLACE_PYTHON
electrum: Update finance/eletrum to 4.1.5 # Release 4.1.5 - (July 19, 2021) * Builds/binaries: - macOS: the .dmg binary should now be reproducible * Kivy/Android: fix paying bip70 invoices (regression) (90579ccf) * fix: payment requests not saved if process is killed (6a049d99) * Lightning: improve payment success when using trampoline (3a7f5373) * add support for signet test network (#7282) * Qt GUI: - allow restoring from SLIP39 seeds (#6917) - rework QR code scanning on Windows and macOS (#7365) - support smaller window sizes, decrease minimums (#7385) * GUIs: add "funded or unused" filter option to Addresses tab (#5823) # Release 4.1.4 - (June 17, 2021) * Kivy/Android: fix a regression where a non-LN wallet could not open the settings (c49d6995) * CLI/RPC: fix "close_wallet" command (#7348) # Release 4.1.3 - (June 16, 2021) * Builds/binaries: - Android: the binaries (APKs) should now be reproducible (#7263) - AppImage: fix some startup issues by including libxcb deps (#7198) * Lightning: - smarter LN pathfinding (if trampoline is disabled): - estimate liquidity in channels using previous attempts (#7152) - consider inflight HTLCs and try to route around them (#7292) - bugfix: add more safety checks to avoid "batch RBF" feature merging LN funding txs (#7298) - remove HTLC value upper limit of ~42 mBTC (#7328) - Kivy GUI: implement freezing LN channels (11bb39ee) * imported wallets: when enabling the "Use change addresses" option, change will now be sent to a random unused imported address. (#7330) As before, by default, change is sent back to the "from address". * seed generation: make sure newly created electrum seeds don't have correct bip39 checksum by chance (#6001) * other minor fixes # Release 4.1.2 - (April 8, 2021) * Qt GUI: - fix some crashes when exiting (#6889) - make sure pressing Ctrl-C always quits (c41cd4ae) * Kivy GUI (Android): - fix bug with scrollbar, again (#7155) - 2fa wallets: fix making transactions (#7190) - implement freezing addresses (#7178) * Android: use more modern application launcher/icon (#7187) # Release 4.1.1 - (April 2, 2021) * fix Qt crash with the swap dialog * fix Kivy bug with scrollbar (#7155) * fix localization issues (#7158 #4621) * fix python crash with swaps (#7160) * other minor fixes # Release 4.1.0 - Kangaroo (March 30, 2021) This version is our second major release with support for the Lightning Network. While our initial Lightning release was mostly about implementing the protocol, this release brings features that are specifically aimed at keeping Electrum lightweight and trustless, while avoiding single points of failure. Most of the features listed below are user-visible. * The wallet creation wizard no longer asks for a seed type, and creates segwit wallets with bech32 addresses. Older seed types can still be created with the command line. * Paid invoices (both incoming and outgoing) are automatically removed from the send/receive lists of the GUI (one confirmation is needed for onchain invoices). Once removed from the list, invoice details can still be accessed from the transaction history. In Qt, invoice lists have been renamed to 'Sending queue' and 'Receiving queue'. * Lightning: - recoverable channels (see below) - trampoline payments (see below) - support multi-part-payment - support upfront-shutdown-script * Recoverable channels (option): - Recovery data is added to the channel funding transaction using an OP_RETURN. This makes it possible to recover a static backup of the channel from the wallet seed. Please note that static backups only allow users to request a force-close of the channel with the remote node, so that funds not locked in HTLCs can be recovered. This assumes that the remote node is still online, did not lose its data, and accepts to force close the channel. - This option is only available for standard wallets with an Electrum seed. It is not available for hardware wallets, because it requires a deterministic derivation of the nodeID. It is also not available in watching-only wallets, for the same reason. If a wallet can have recoverable channels but has an old nodeID, users who want to use that feature need to close all their existing channels, and to restore their wallet from seed. - Channel recovery data uses 20 bytes (16 bytes of the remote NodeID plus 4 magic bytes) and is encrypted so that only the wallet that owns it can decrypt it. However, blockchain analysis will be able to tell that the transaction was probably created by Electrum. - If the 'use recoverable channels' option is enabled, other nodes cannot open a channel to Electrum. - If a channel is force-closed, the information in the on-chain backup is not sufficient to retrieve the funds in the to_local output, in case the wallet is lost in a boating accident before expiration of the CSV delay. For that reason, an additional backup is presented to the user if they force-close a channel. * Trampoline routing (option): Trampoline is a solution that allows light clients to delegate path-finding on the Lightning Network, so that they do not have to download the entire network graph. Trampoline routing was originally proposed by Bastien Teinturier and is used in the Phoenix wallet. Here is how Trampoline works in Electrum: - Trampoline is enabled by default, in order to prevent unwanted download of the network gossip. If trampoline is disabled, the gossip will be downloaded, regardless of the existence of channels. - Because there is no discovery mechanism for trampoline nodes, the list of available trampolines is hardcoded in the client (it will remain so until support for trampoline routing is announced in gossip). 3 trampoline nodes are currently available on mainnet: ACINQ, Electrum and Hodlister. - If Trampoline is enabled: - payments use trampoline routing. - gossip is disabled. - the wallet can only open channels with trampoline nodes. - pre-existing channels with non-trampoline nodes are frozen for sending. - There are two types of trampoline payments: legacy and trampoline end-to-end. Legacy payments are possible with any receiver, but they offer less privacy than end-to-end trampoline payments. Electrum decides whether to perform legacy or end-to-end based on the features in the invoice: - OPTION_TRAMPOLINE_ROUTING_OPT (bit 25) for Electrum - OPTION_TRAMPOLINE_ROUTING_OPT_ECLAIR (bit 51) for Eclair/Phoenix - When performing a legacy payment, Electrum will add a second trampoline node to the route in order to protect the privacy of the payer and payee. It will fall back to a single trampoline if the two-trampoline strategy has failed for all trampolines. (Note: two-trampoline payments are currently not possible if the first trampoline is the ACINQ node, and is disabled for that node.) - Similar to Phoenix, the fee and CLTV delay are found by trial-and-error. If there is a second trampoline in the route, we use the same fee/CLTV for both. This trial-and-error is temporary; the final specification should add fee information in the failure messages, so that we will be able to better fine-tune trampoline fees. * Qt: The increase fee dialog now has advanced options, and offers the choice between different RBF strategies. * Watchtowers: The 'use_local_watchtower' feature is deprecated, and it has been removed from the Qt GUI. The 'use_remote_watchtower' setting has been renamed to 'use_watchtower'. * Password unification (Android only): When the Android app is started, the entered password is checked against all wallets in the directory. If the test passes: - all wallets are encrypted - new wallets will use the unified password - password updates are performed on all wallets Whether the password is unified can be seen in the GUI: In the 'Settings' dialog, the description for the password setting is 'Change password for this wallet' if the password is not unified, and becomes 'Change password' if password is unified. * Submarine swaps are now available on kivy/android. * Android PIN reset: If the password is unified, the PIN can be reset by providing the password. * Android: on-chain fees have been removed from the settings dialog. Instead, the fee slider is shown to the user everytime an on-chain transaction will be performed (sending a payment, opening a channel, initiating a submarine swap) * BIP-0350: use bech32m for witness version 1+ addresses (4315fa43). We have supported sending to any witness version since Electrum 3.0, using BIP-0173 (bech32) addresses. BIP-0350 makes a breaking change in address encoding, and recommends using a new encoding (bech32m) for sending to witness version 1 and later. * Block explorer: allow setting a custom URL in Qt GUI (#6965)
finance/electrum: Drop maintainership
electrum: install desktop files on all operating systems not just FreeBSD and Linux
Update finance/electrum to 4.0.9 # Release 4.0.9 - (Dec 18, 2020) * fixes a regression introduced in 4.0.8, that prevents from paying BIP70 invoices (#6859) * reflect frozen channels and disconnected peers in the displayed 'can send/can receive' amounts. # Release 4.0.8 - (Dec 17, 2020) * fix decoding BIP21 URIs with uppercase schema (d40bedb2) * psbt: put full derivation paths into PSBT by default (c8155129) * invoices: allow address-reuse (#6609, #6852) * A few other minor bugfixes. # Release 4.0.7 - (Dec 9, 2020) * kivy: fix open channel with 'max' amount * kivy: fix regression introduced in last release (a9fc440) * other minor GUI fixes * Dependencies: as part of adapting to new dnspython (#6828), - python-ecdsa is no longer needed at all, - cryptography is now required (min 2.6), the user can no longer choose between cryptography and pycryptodomex # Release 4.0.6 - (Dec 4, 2020) * Fix 'Max' button issue for submarine swaps button (#6770) * Fix 'Max' button in kivy (#6169) * Various fixes for Kivy/Android install wizard * More robust account keypath for BitBox02 (#6766) # Release 4.0.5 - (Nov 18, 2020) * Fix .dmg binary hanging on recently released macOS 11 Big Sur (#6461) * Lightning: - bugfix: during LN channel opening, if the client crashed at the wrong moment, the channel might not get fully persisted to disk, and would need manual console-tinkering to recover (#6656) - Lightning is enabled by default. Electrum will not connect to the Lightning Network until the user opens a channel. (#6639) - smarter node recommendation (to open channels with) (#6705) * user interface: some minor changes that aim to improve usability * Ledger: - fix enumerating devices with new bitcoin app (1.5.1) (b78cbcff) - fix compat with HW.1 (200f547a) * A few other minor bugfixes.
Revbump packages with a runtime Python dep but no version prefix. For the Python 3.8 default switch.
Update finance/electrum to 4.0.4 # Release 4.0.4 - (Oct 15, 2020) * PSBT: fix regression in 4.0.3 where UTXO data was not included in QR codes (#6600) * new feature: "Cancel tx" (#6641). The Qt/kivy GUI allows cancelling an unconfirmed RBF tx by double-spending its inputs to self. * Windows binary: - fix some issues with QR scanning by building zbar ourselves (#6593) - when using setup exe, also install a debug binary (#6603) * Ledger: fix "The derivation path is unusual" warnings (#6512) (needs Bitcoin app 1.4.8+ installed on device) * A few other minor bugfixes and usability improvements. # Release 4.0.3 - (Sep 11, 2020) * PSBT: restore compatibility with Bitcoin Core following CVE-2020-14199: we now allow a PSBT input to have both UTXO and WITNESS_UTXO (#6429). (PSBTs created since 4.0.1 already contained UTXO for segwit inputs) * Hardware wallets: - bitbox02: better multisig UX: implement get_soft_device_id (#6386) - coldcard: fix "show address" for multisig (#6517) - all: run all device communication on a dedicated thread (#6561). This should resolve some threading issues. * new feature: "Automated BIP39 recovery" (#6219, #6155) When restoring from a BIP39 seed, add option to scan many known derivation paths for history, and show them to user to choose from. * show derivation path of keystores in Qt GUI Wallet>Information (#4700) * fix "signtransaction" RPC command (#6502) * Dependencies: pyaes is no longer needed (#6563) * The tar.gz source dist now bundles make_libsecp256k1.sh, to help users getting libsecp256k1 (#6323). * A few other minor bugfixes and usability improvements. # Release 4.0.2 - (July 8, 2020) - rm old corrupted non-bip70 invoices (#6345) - other minor fixes # Release 4.0.1 - (July 3, 2020) * Lightning Network support (experimental) - Our implementation of Lightning relies on Electrum servers to query channel states. Since servers can lie about the state of a channel, users should either use a server that they trust, or setup a private watchtower (see below). A watchtower is also recommended for lightning wallets that remain offline for extended periods of time (the default CSV 'to_self_delay' is 1 week). Please note that Electrum Personal Server (EPS) cannot be used with lightning wallets, because channels funding addresses are arbitrary. - Lightning funds cannot be restored from seed. Instead, users need to create static backups of their channels. Static backups cannot be used to perform lightning transactions, they can only be used to trigger a remote-force-close of a channel. - Lightning-enabled wallet files must not be copied. Instead, a backup of the wallet can be created from the Qt menu, and it will contain static backups of all its channels. Backups can also be exported for each channel (e.g. via QR code), and imported in another wallet. Since backups are encrypted with a key derived from the wallet's xpub, they can only be imported into another instance of the same wallet, or a watch-only version of it. The force-close is not triggered automatically when the backup is imported; imported backups can live inside a wallet file. - Lightning can be enabled in the GUI (Wallet>Information) or from the CLI (init_lightning). Lightning is currently restricted to HD p2wpkh wallets (including watch-only and hardware wallets). The Qt GUI, CLI/RPC, and the kivy GUI (Android) all have LN support, with feature-richness in that order. - LN protocol details: dataloss_protect and static_remotekey are required; varonion and payment_secret are implemented, MPP not yet. Channels are not announced ('private'), forwarding is disabled. We do not serve gossip queries, only consume them. - Submarine swaps: the GUI integrates a service that offers atomically exchanging on-chain and lightning bitcoins for a fee. Electrum Technologies runs a central server for this, powered by the Boltz backend. - Watchtowers: Electrum can run a local watchtower (GUI setting), or it can connect to a remote watchtower. A watchtower contains pre-signed transactions and does not need your private keys. A local watchtower will watch your channels whenever an Electrum instance is running, without needing access to your wallet file. An Electrum daemon can be configured to be used as a remote watchtower by setting 'watchtower_address', 'watchtower_user' and 'watchtower_password'. * Partially Signed Bitcoin Transactions (PSBT, BIP-174) are supported (#5721). The previous Electrum partial transaction format is no longer supported, i.e. this is an incompatible change. Users should make sure that all instances of Electrum they use to co-sign or offline sign, are updated together. * Hardware wallets: several fixes in general; notable changes: - The BitBox02 is now supported (#5993) - Multisig support for Coldcard (#5440) - Compatibility with latest Trezor fw (#6064, #6198, #5692) * Dependencies (see README for install instructions): - libsecp256k1 is now required (previously optional). python-ecdsa remains a dependency but it is now only used for DNSSEC. - Added: either one of pycryptodomex or cryptography is now required, mainly due to LN (previously pycryptodomex was optional, for fast AES) - Removed: jsonrpclib-pelix, the JSON-RPC library used for CLI/daemon * Qt GUI: several changes, notably: - Separation between output selection and transaction finalization. - Coin selection moved to the Coins tab, and it affects all txns, e.g. RBF fee-bumping, LN channel opens, submarine swaps. - Editable tx preview dialog that allows e.g. changing the locktime, toggling RBF, and manual coinjoins. * HTTP PayServer: The configuration of a bitcoin-accepting website using Electrum has been simplified and requires fewer steps (see documentation). The Payserver supports BIP70 and Lightning payments. * Android: - We now build two APKs, one for ARMv7 and one for ARMv8 - The kivy GUI now supports importing BIP39 seeds - Each wallet on kivy now can have a separate generic password, using which the wallet files are encrypted. An optional PIN, shared among all wallets, can be added to get prompted for spends. * The API of several CLI/RPC commands have changed, and several new commands have been introduced (mainly for LN). * Distributables: - The .tar.gz source dist is now built reproducibly. Relatedly, we no longer distribute a .zip sdist. - The MacOS binary now conforms to macOS 10.15; it is notarized by Apple. This required bumping the min macOS version to 10.13. Startup times should now be faster on 10.15. (#6128, #6225) * Transactions: - we now grind low R for ECDSA signatures to match bitcoind (#5820) * Lots and lots of other minor bugfixes and improvements.
Import finance/electrum from wip Electrum is an easy to use Bitcoin client, written in Python and using Qt.