Files
nixpkgs/pkgs/by-name/ba/basicswap/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

111 lines
2.6 KiB
Nix

{
lib,
python3Packages,
fetchFromGitHub,
linkFarm,
secp256k1,
particl-core,
bitcoind,
namecoind,
monero-cli,
wownero,
}:
let
secp256k1_anonswap = secp256k1.overrideAttrs (old: {
src = fetchFromGitHub {
owner = "tecnovert";
repo = "secp256k1";
rev = "fd8b63ccf8bcb48358a42c456f34e2488a55a688";
hash = "sha256-/bmKZRBBjirI4YqRKfzoxdAt6UVoWHmrNQQHX7l+eH8=";
};
configureFlags = old.configureFlags ++ [
"--enable-experimental"
"--enable-module-ed25519"
"--enable-module-generator"
"--enable-module-dleag"
"--enable-module-ecdsaotves"
];
});
coincurve-anonswap =
(python3Packages.coincurve.override {
secp256k1 = secp256k1_anonswap;
}).overrideAttrs
(old: {
src = fetchFromGitHub {
owner = "tecnovert";
repo = "coincurve";
rev = "932366c9d4d8e487162b5c1b2a2d9693e24e0483";
hash = "sha256-zOekPmP1zR/S+zxq/7OrEz24k8SInlsB+wJ8kPlmqe4=";
};
patches = [ ];
preCheck = ''
rm -rf src/coincurve
# don't run benchmark tests
rm tests/test_bench.py
'';
});
bindir = linkFarm "bindir" (
lib.mapAttrs (_: p: "${lib.getBin p}/bin") {
particl = particl-core;
bitcoin = bitcoind;
namecoin = namecoind;
monero = monero-cli;
wownero = wownero;
#TODO: add pivx after it's not broken
}
);
in
python3Packages.buildPythonApplication rec {
pname = "basicswap";
version = "0.14.4";
pyproject = true;
src = fetchFromGitHub {
owner = "basicswap";
repo = "basicswap";
tag = "v${version}";
hash = "sha256-UhuBTbGULImqRSsbg0QNb3yvnN7rnSzycweDLbqrW+8=";
};
postPatch = ''
substituteInPlace basicswap/config.py --replace-fail 'os.path.join("~", ".basicswap", "bin")' '"${bindir}"'
substituteInPlace basicswap/bin/prepare.py \
--replace-fail "bin_dir = None" "bin_dir = '${bindir}'" \
--replace-fail "no_cores = False" "no_cores = True"
'';
build-system = with python3Packages; [
hatchling
];
dependencies = with python3Packages; [
coincurve-anonswap
wheel
pyzmq
protobuf
sqlalchemy_1_4
python-gnupg
jinja2
pycryptodome
pysocks
mnemonic
];
postInstall = ''
install -Dm755 scripts/createoffers.py $out/bin/basicswap-createoffers
'';
doCheck = false;
passthru.bindir = bindir;
meta = with lib; {
description = "Basic Atomic Swap Proof of Concept";
homepage = "https://basicswapdex.com";
license = licenses.mit;
maintainers = with maintainers; [ linsui ];
mainProgram = "basicswap-run";
};
}