summaryrefslogtreecommitdiff
path: root/gnu/packages/finance.scm
diff options
context:
space:
mode:
Diffstat (limited to 'gnu/packages/finance.scm')
-rw-r--r--gnu/packages/finance.scm136
1 files changed, 109 insertions, 27 deletions
diff --git a/gnu/packages/finance.scm b/gnu/packages/finance.scm
index 20c5356765..0ef4c206c9 100644
--- a/gnu/packages/finance.scm
+++ b/gnu/packages/finance.scm
@@ -562,10 +562,80 @@ It's not clear at the moment whether one day it will be possible to
do so.")
(license license:agpl3+)))
+(define-public python-electrum-ecc
+ (package
+ (name "python-electrum-ecc")
+ (version "0.0.5")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "electrum_ecc" version))
+ (sha256
+ (base32 "1lmp5zmhabaxp6jha3xlsmqviivrxxhsy20x6z42ayqgd9cvhczp"))
+ (modules '((guix build utils)))
+ (snippet
+ '(begin
+ ;; Delete the vendored dependency.
+ (delete-file-recursively "libsecp256k1")))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ #:phases #~(modify-phases %standard-phases
+ (add-after 'unpack 'prepare-env
+ (lambda* (#:key inputs #:allow-other-keys)
+ ;; Do not attempt to compile vendored libsecp256k1.
+ (setenv "ELECTRUM_ECC_DONT_COMPILE" "1")
+ ;; Make the package find our libsecp256k1.
+ (substitute* "src/electrum_ecc/ecc_fast.py"
+ (("library_paths = \\[\\]")
+ (string-append
+ "library_paths = ['"
+ (search-input-file inputs "/lib/libsecp256k1.so")
+ "']"))))))))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
+ (inputs (list libsecp256k1))
+ (home-page "https://github.com/spesmilo/electrum-ecc")
+ (synopsis "Pure python ctypes wrapper for libsecp256k1")
+ (description "This package provides a pure Python ctypes wrapper for
+@code{libsecp256k1}.")
+ (license license:expat)))
+
+(define-public electrum-aionostr
+ (package
+ (name "electrum-aionostr")
+ (version "0.0.11")
+ (source
+ (origin
+ (method url-fetch)
+ (uri (pypi-uri "electrum_aionostr" version))
+ (sha256
+ (base32 "10fgidah8ca59j3gssg9b434j49c1dd9cs3224nanjsxwl0ivsqf"))))
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Test below fails to match an exit code, pointing to this in Click:
+ ;; https://github.com/pallets/click/pull/1489
+ ;; This was fixed in Click 8.2.0.
+ #:test-flags #~(list "-k" "not test_command_line_interface")))
+ (inputs (list python-aiohttp
+ python-aiohttp-socks
+ python-aiorpcx
+ python-cryptography
+ python-electrum-ecc))
+ (native-inputs (list python-click
+ python-pytest
+ python-setuptools
+ python-wheel))
+ (home-page "https://github.com/spesmilo/electrum-aionostr")
+ (synopsis "Asyncio nostr client")
+ (description "This package is a fork of @code{aionostr} that does not
+require Coincurve.")
+ (license license:bsd-3)))
+
(define-public electrum
(package
(name "electrum")
- (version "4.4.6")
+ (version "4.6.1")
(source
(origin
(method url-fetch)
@@ -573,42 +643,51 @@ do so.")
version "/Electrum-"
version ".tar.gz"))
(sha256
- (base32 "1f0hb8xmqv1j9pf82xpyvxnn2dzmi93rhf0sh0iqakja2pbl4707"))
+ (base32 "1h7z019sp99csrj1djmhlm9y7vyyzl7wvar7z9x4jx59lmmvs1xs"))
(modules '((guix build utils)))
(snippet
'(begin
;; Delete the bundled dependencies.
(delete-file-recursively "packages")))))
- (build-system python-build-system)
+ (build-system pyproject-build-system)
+ (arguments
+ (list
+ ;; Either pycryptodomex or cryptography must be available.
+ ;; This package uses python-cryptography, but this test checks for
+ ;; cryptodomex anyway. Skip it since it's not useful.
+ #:test-flags #~(list "-k" "not test_pycryptodomex_is_available")
+ #:phases
+ #~(modify-phases %standard-phases
+ (add-after 'unpack 'relax-deps
+ (lambda _
+ (substitute* "contrib/requirements/requirements.txt"
+ ;; These packages have tight version requirements because
+ ;; the developer does not want to introduce Hatchling in
+ ;; the build environment. They do work at runtime.
+ (("attrs.*") "attrs")
+ (("dnspython.*") "dnspython"))))
+ (add-before 'check 'set-home
+ (lambda _ ; 3 tests run mkdir
+ (setenv "HOME" "/tmp"))))))
+ (native-inputs (list python-pytest python-setuptools python-wheel))
(inputs
- (list libsecp256k1
+ (list electrum-aionostr
python-aiohttp
python-aiohttp-socks
python-aiorpcx
python-attrs
- python-bitstring
- python-btchip-python
python-certifi
python-cryptography
python-dnspython
+ python-electrum-ecc
python-hidapi
- python-ledgerblue
+ python-jsonpatch
python-protobuf
- python-pyqt
+ python-pyaes
+ python-pyqt-6
python-qdarkstyle
python-qrcode
zbar))
- (arguments
- `(#:tests? #f ; no tests
- #:phases
- (modify-phases %standard-phases
- (add-after 'unpack 'use-libsecp256k1-input
- (lambda* (#:key inputs #:allow-other-keys)
- (substitute* "electrum/ecc_fast.py"
- (("library_paths = \\[\\]")
- (string-append "library_paths = ['"
- (assoc-ref inputs "libsecp256k1")
- "/lib/libsecp256k1.so']"))))))))
(home-page "https://electrum.org/")
(synopsis "Bitcoin wallet")
(description
@@ -698,7 +777,7 @@ blockchain.")
;; the system's dynamically linked library.
(package
(name "monero")
- (version "0.18.4.0")
+ (version "0.18.4.1")
(source
(origin
(method git-fetch)
@@ -716,7 +795,7 @@ blockchain.")
delete-file-recursively
'("external/miniupnp" "external/rapidjson"))))
(sha256
- (base32 "0dfb9yxpfijdjgl67dgmhgn4xd42rnwfn4nnp0dfakq34imv2cjh"))))
+ (base32 "0k4z01l8dvnazh650yarwn6ja1wrxcqq4g7302xw0dhw7h1qvy1j"))))
(build-system cmake-build-system)
(native-inputs
(list doxygen
@@ -803,7 +882,7 @@ the Monero command line client and daemon.")
(define-public monero-gui
(package
(name "monero-gui")
- (version "0.18.4.0")
+ (version "0.18.4.1")
(source
(origin
(method git-fetch)
@@ -819,7 +898,7 @@ the Monero command line client and daemon.")
;; See the 'extract-monero-sources' phase.
(delete-file-recursively "monero")))
(sha256
- (base32 "0gzq3cq54mr85f86yibsska19lri2w2ak98pb4z237dffgjqkaj5"))))
+ (base32 "1r2cfzh4lc94mb7fqa8f41613msnsyy5kz6mzcr4npjpm8bxqs8k"))))
(build-system qt-build-system)
(native-inputs
`(,@(package-native-inputs monero)
@@ -2516,7 +2595,7 @@ mining.")
(define-public p2pool
(package
(name "p2pool")
- (version "4.6")
+ (version "4.9")
(source
(origin
(method git-fetch)
@@ -2525,7 +2604,7 @@ mining.")
(commit (string-append "v" version))
(recursive? #t)))
(file-name (git-file-name name version))
- (sha256 (base32 "1qal9ilpyxds6nk2fgzfypk3y1qxh06f6lly3alawz385gf68fkv"))
+ (sha256 (base32 "0898a823mi38z6dwdm6crb2l98rv79sznmqwa0ss96xggvk12nlw"))
(modules '((guix build utils)))
(snippet
#~(for-each delete-file-recursively
@@ -2536,6 +2615,8 @@ mining.")
"external/src/rapidjson"
"external/src/robin-hood-hashing")))))
(build-system cmake-build-system)
+ (native-inputs
+ (list xz))
(inputs
(list cppzmq curl libuv rapidjson robin-hood-hashing zeromq))
(arguments
@@ -2550,8 +2631,9 @@ mining.")
(chdir "tests")
(invoke "cmake" "-DWITH_LTO=OFF" "../../source/tests")
(invoke "make" "-j" (number->string (parallel-job-count)))
- (invoke "gzip" "-d" "sidechain_dump.dat.gz")
- (invoke "gzip" "-d" "sidechain_dump_mini.dat.gz")
+ (invoke "xz" "-d" "sidechain_dump.dat.xz")
+ (invoke "xz" "-d" "sidechain_dump_mini.dat.xz")
+ (invoke "xz" "-d" "sidechain_dump_nano.dat.xz")
(invoke "./p2pool_tests")
(chdir ".."))))
(replace 'install