feat: add wallet-autoconnect module for Sparrow and Bisq 1
Agent-Logs-Url: https://github.com/naturallaw777/staging_alpha/sessions/29aa6dce-667a-49a6-9740-68d501fed22c Co-authored-by: naturallaw777 <99053422+naturallaw777@users.noreply.github.com>
This commit is contained in:
committed by
GitHub
parent
f108abd7ae
commit
27f27b1503
83
modules/wallet-autoconnect.nix
Normal file
83
modules/wallet-autoconnect.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{ config, pkgs, lib, ... }:
|
||||
|
||||
lib.mkIf config.sovran_systemsOS.services.bitcoin {
|
||||
|
||||
# ── Sparrow Wallet Auto-Connect ─────────────────────────────
|
||||
systemd.services.sparrow-autoconnect = {
|
||||
description = "Auto-configure Sparrow Wallet to use local Electrs node";
|
||||
after = [ "electrs.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||
script = ''
|
||||
CONFIG_FILE="/home/free/.sparrow/config"
|
||||
|
||||
if [ -f "$CONFIG_FILE" ]; then
|
||||
echo "Sparrow config already exists, skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Wait for Electrs to be ready (up to 30 attempts)
|
||||
ATTEMPTS=0
|
||||
until ss -ltn 2>/dev/null | grep -q ':50001' || [ "$ATTEMPTS" -ge 30 ]; do
|
||||
ATTEMPTS=$((ATTEMPTS + 1))
|
||||
sleep 2
|
||||
done
|
||||
|
||||
mkdir -p /home/free/.sparrow
|
||||
|
||||
cat > "$CONFIG_FILE" << 'EOF'
|
||||
{
|
||||
"serverType": "ELECTRUM_SERVER",
|
||||
"electrumServer": "tcp://127.0.0.1:50001",
|
||||
"useProxy": false
|
||||
}
|
||||
EOF
|
||||
|
||||
chown -R free:users /home/free/.sparrow
|
||||
echo "Sparrow auto-configured to use local Electrs node"
|
||||
'';
|
||||
};
|
||||
|
||||
# ── Bisq 1 Auto-Connect ─────────────────────────────────────
|
||||
systemd.services.bisq-autoconnect = {
|
||||
description = "Auto-configure Bisq to use local Bitcoin node";
|
||||
after = [ "bitcoind.service" ];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = true;
|
||||
};
|
||||
path = [ pkgs.coreutils pkgs.iproute2 ];
|
||||
script = ''
|
||||
BISQ_CONF="/home/free/.local/share/Bisq/bisq.properties"
|
||||
|
||||
if [ -f "$BISQ_CONF" ]; then
|
||||
echo "Bisq config already exists, skipping"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Wait for bitcoind RPC to be ready (up to 30 attempts)
|
||||
ATTEMPTS=0
|
||||
until ss -ltn 2>/dev/null | grep -q ':8333' || [ "$ATTEMPTS" -ge 30 ]; do
|
||||
ATTEMPTS=$((ATTEMPTS + 1))
|
||||
sleep 2
|
||||
done
|
||||
|
||||
mkdir -p /home/free/.local/share/Bisq
|
||||
|
||||
cat > "$BISQ_CONF" << 'EOF'
|
||||
btcNodes=127.0.0.1:8333
|
||||
useTorForBtc=true
|
||||
useCustomBtcNodes=true
|
||||
EOF
|
||||
|
||||
chown -R free:users /home/free/.local/share/Bisq
|
||||
echo "Bisq auto-configured to use local Bitcoin node"
|
||||
'';
|
||||
};
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user