nixpkgs-suyu/pkgs/applications/misc/electron-cash/default.nix
Guillaume Girol 33afbf39f6 treewide: switch to nativeCheckInputs
checkInputs used to be added to nativeBuildInputs. Now we have
nativeCheckInputs to do that instead. Doing this treewide change allows
to keep hashes identical to before the introduction of
nativeCheckInputs.
2023-01-21 12:00:00 +00:00

100 lines
2.4 KiB
Nix

{ lib, stdenv, fetchFromGitHub, python3Packages, wrapQtAppsHook
, secp256k1 }:
python3Packages.buildPythonApplication rec {
pname = "electron-cash";
version = "4.2.10";
src = fetchFromGitHub {
owner = "Electron-Cash";
repo = "Electron-Cash";
rev = "refs/tags/${version}";
sha256 = "sha256-m13wJlNBG3BxOdKUyd3qmIhFBM7263FzMKr5lfD1tys=";
};
propagatedBuildInputs = with python3Packages; [
# requirements
pyaes
ecdsa
requests
qrcode
protobuf
jsonrpclib-pelix
pysocks
qdarkstyle
python-dateutil
stem
certifi
pathvalidate
dnspython
# requirements-binaries
pyqt5
psutil
pycryptodomex
cryptography
# requirements-hw
cython
trezor
keepkey
btchip
hidapi
pyopenssl
pyscard
pysatochip
];
nativeBuildInputs = [ wrapQtAppsHook ];
postPatch = ''
substituteInPlace contrib/requirements/requirements.txt \
--replace "qdarkstyle==2.6.8" "qdarkstyle<3"
substituteInPlace setup.py \
--replace "(share_dir" "(\"share\""
'';
nativeCheckInputs = with python3Packages; [ pytest ];
checkPhase = ''
unset HOME
pytest electroncash/tests
'';
postInstall = lib.optionalString stdenv.isLinux ''
substituteInPlace $out/share/applications/electron-cash.desktop \
--replace "Exec=electron-cash" "Exec=$out/bin/electron-cash"
'';
# If secp256k1 wasn't added to the library path, the following warning is given:
#
# Electron Cash was unable to find the secp256k1 library on this system.
# Elliptic curve cryptography operations will be performed in slow
# Python-only mode.
preFixup = ''
makeWrapperArgs+=("''${qtWrapperArgs[@]}")
makeWrapperArgs+=(
"--prefix" "LD_LIBRARY_PATH" ":" "${secp256k1}/lib"
)
'';
doInstallCheck = true;
installCheckPhase = ''
$out/bin/electron-cash help >/dev/null
'';
meta = with lib; {
description = "A Bitcoin Cash SPV Wallet";
longDescription = ''
An easy-to-use Bitcoin Cash client featuring wallets generated from
mnemonic seeds (in addition to other, more advanced, wallet options)
and the ability to perform transactions without downloading a copy
of the blockchain.
'';
homepage = "https://www.electroncash.org/";
platforms = platforms.unix;
maintainers = with maintainers; [ lassulus nyanloutre oxalica ];
license = licenses.mit;
};
}