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
111 lines
2.6 KiB
Nix
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";
|
|
};
|
|
}
|