Basic Atomic Swap Proof of Concept
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

171 lines
5.4 KiB

(define-module (guix)
#:use-module (guix packages)
#:use-module ((guix licenses) #:prefix license:)
#:use-module (guix build-system python)
#:use-module (guix build-system gnu)
#:use-module (guix git-download)
#:use-module (guix download)
#:use-module (guix search-paths)
#:use-module (gnu packages)
#:use-module (gnu packages pkg-config)
#:use-module (gnu packages autotools)
#:use-module (gnu packages certs)
#:use-module (gnu packages check)
#:use-module (gnu packages databases)
#:use-module (gnu packages finance)
#:use-module (gnu packages gnupg)
#:use-module (gnu packages protobuf)
#:use-module (gnu packages python)
#:use-module (gnu packages python-build)
#:use-module (gnu packages python-crypto)
#:use-module (gnu packages python-xyz)
#:use-module (gnu packages libffi)
#:use-module (gnu packages license))
(define libsecp256k1-anonswap
(package
(name "libsecp256k1-anonswap")
(version "anonswap_v0.2")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tecnovert/secp256k1")
(commit version)))
(sha256
(base32
"1r07rkrw5qsnc5v1q7cb0zfs1cr62fqwq7kd2v8650g6ha4k5r8i"))
(file-name (git-file-name name version))))
(build-system gnu-build-system)
(arguments
'(#:configure-flags '("--enable-shared"
"--disable-dependency-tracking"
"--with-pic"
"--enable-module-extrakeys"
"--enable-module-recovery"
"--enable-module-schnorrsig"
"--enable-experimental"
"--enable-module-ecdh"
"--enable-benchmark=no"
"--enable-tests=no"
"--enable-module-ed25519"
"--enable-module-generator"
"--enable-module-dleag"
"--enable-module-ecdsaotves"
"--with-valgrind=no"
)))
(native-inputs
(list autoconf automake libtool))
(synopsis "C library for EC operations on curve secp256k1")
(description
"Optimized C library for EC operations on curve secp256k1.\n")
(home-page "https://github.com/bitcoin-core/secp256k1")
(license license:unlicense)))
(define python-coincurve-anonswap
(package
(name "python-coincurve-anonswap")
(version "anonswap_v0.2")
(source
(origin
(method git-fetch)
(uri
(git-reference
(url "https://github.com/tecnovert/coincurve")
(commit version)))
(file-name
(git-file-name name version))
(sha256
(base32 "08fz02afh88m83axfm8jsgq1c65mw1f3g07x9hz361vblvqjwzqh"))))
(build-system python-build-system)
(arguments
'(#:tests? #f ;XXX fails to load "libsecp256k1.dll"
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-libsec256k1-path
(lambda _
(substitute* "setup.py"
(("if has_system_lib\\(\\)")
"if True")
((", 'requests'")
"")
(("download_library\\(self\\)")
"")))))))
(propagated-inputs
(list
libsecp256k1-anonswap
python-asn1crypto
python-cffi))
(native-inputs
(list
python-setuptools
pkg-config
))
(synopsis "Python libsecp256k1 wrapper")
(description "Python libsecp256k1 wrapper.")
(home-page "https://github.com/tecnovert/coincurve")
(license license:bsd-3)))
(define python-sqlalchemy-1.4.39
(package
(inherit python-sqlalchemy)
(version "1.4.39")
(source
(origin
(method url-fetch)
(uri (pypi-uri "SQLAlchemy" version))
(sha256
(base32 "09sx2lghywnm7qj1xm8xc3xrgj40bndfh2hbiaq4cfvm71h8k541"))))))
(define-public basicswap
(package
(name "basicswap")
(version "0.12.1")
(source (origin
(method git-fetch)
(uri (git-reference
(url "https://github.com/tecnovert/basicswap")
(commit "15bf9b2187d3b8a03939e61b4c3ebf4d90fcc919")))
(sha256
(base32
"14gn6156x53c6panxdnd1awkd23jxnihvbqy886j66w5js3b5i8h"))
(file-name (git-file-name name version))))
(build-system python-build-system)
(native-search-paths (list $SSL_CERT_DIR $SSL_CERT_FILE))
(arguments
'(#:tests? #f ; TODO: Add coin binaries
#:phases (modify-phases %standard-phases
(add-after 'unpack 'patch-env
(lambda* (#:key inputs #:allow-other-keys)
(substitute* "bin/basicswap_prepare.py"
(("GUIX_SSL_CERT_DIR = None")
(string-append "GUIX_SSL_CERT_DIR = \"" (search-input-directory inputs "etc/ssl/certs") "\"")))
)
))))
(propagated-inputs
(list
gnupg
nss-certs
python-coincurve-anonswap
python-pycryptodome
python-pytest
python-protobuf
python-sqlalchemy-1.4.39
python-pyzmq
python-gnupg
python-jinja2
python-pysocks
python-mnemonic
))
(native-inputs
(list
python-setuptools
python-wheel
python-pylint
python-pyflakes
))
(synopsis "Simple Atomic Swap Network - Proof of Concept")
(description #f)
(home-page "https://github.com/tecnovert/basicswap")
(license license:bsd-3)))