{ lib, buildGoModule, fetchgit, git, }: buildGoModule (finalAttrs: { pname = "bisonw"; version = "1.0.6"; # Keep the checkout metadata: Bison Wallet reads vcs.revision from Go build # info for its Build ID and frontend cache-busting version. src = fetchgit { url = "https://github.com/decred/dcrdex.git"; rev = "v${finalAttrs.version}"; hash = "sha256-IlJzvL0ZaeQ+BaKGArS6J5Wk2wctOVba7Xg8qjVI8KY="; leaveDotGit = true; }; subPackages = [ "client/cmd/bisonw" "client/cmd/bwctl" ]; # buildNpmPackage fails with: # ERROR: The package-lock.json file does not exist! # Luckily, upstream includes pre-built frontend files. vendorHash = "sha256-KCof0GFFaNWgMb2yR4l4lyeVZdiJSIyn4mgZ/InMZhk="; nativeBuildInputs = [ git ]; GOFLAGS = [ "-buildvcs=true" ]; # fetchgit does not retain the Git index. Restore it in the writable build # tree so Go does not mark the otherwise pristine checkout as modified. preBuild = '' git reset --mixed HEAD ''; meta = with lib; { description = "Bison Wallet - Multi-coin wallet with built-in DEX trading"; homepage = "https://github.com/decred/dcrdex"; license = licenses.blueOak100; mainProgram = "bisonw"; }; })