tools/lite_send_smoke drives the real SDXL backend's exact GUI send path (newaddr/status/list/tree/send/rescan) for diagnosing shielded sends. scripts/gen-lite-checkpoints.sh generates verified mainnet checkpoints from a synced dragonxd (getblockhash + getblockmerkletree), self-checking against a known checkpoint before emitting. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
36 lines
1.5 KiB
Bash
Executable File
36 lines
1.5 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Generate SDXL lite-wallet mainnet checkpoint entries from a fully-synced dragonxd.
|
|
# Each entry is (height,"blockhash","serialized_sapling_tree") in checkpoints.rs format.
|
|
# Fills the 1,770,000 -> tip gap so wallets reseed close to their birthday on rescan,
|
|
# bounding the (divergence-prone) compact-block replay span. Usage:
|
|
# scripts/gen-lite-checkpoints.sh [start] [step] > /tmp/new_checkpoints.txt
|
|
set -euo pipefail
|
|
|
|
CLI=${DRAGONX_CLI:-/home/d/dragonx/src/dragonx-cli}
|
|
START=${1:-1770000}
|
|
STEP=${2:-10000}
|
|
|
|
tip=$("$CLI" getblockcount)
|
|
end=$(( (tip / STEP) * STEP ))
|
|
|
|
# Sanity: confirm the method reproduces a KNOWN checkpoint tree before trusting it.
|
|
ref_hash=$("$CLI" getblockhash 1760000 | tr -d '"[:space:]')
|
|
ref_tree=$("$CLI" getblockmerkletree 1760000 | tr -d '"[:space:]')
|
|
expect_hash="0000545a45b8d4ee4e4b423cb1ea74d67e3a04c320c6ea2f59ee06c08f91a117"
|
|
if [ "$ref_hash" != "$expect_hash" ]; then
|
|
echo "ABORT: getblockhash 1760000 = $ref_hash != known $expect_hash" >&2; exit 1
|
|
fi
|
|
echo "# self-check: 1760000 hash matches; tree len=${#ref_tree}" >&2
|
|
|
|
n=0
|
|
h=$START
|
|
while [ "$h" -le "$end" ]; do
|
|
hash=$("$CLI" getblockhash "$h" | tr -d '"[:space:]')
|
|
tree=$("$CLI" getblockmerkletree "$h" | tr -d '"[:space:]')
|
|
if [ -z "$hash" ] || [ -z "$tree" ]; then echo "ABORT: empty hash/tree at $h" >&2; exit 1; fi
|
|
printf '\t(%s,"%s",\n\t\t"%s"\n\t),\n' "$h" "$hash" "$tree"
|
|
n=$((n+1))
|
|
h=$((h+STEP))
|
|
done
|
|
echo "# generated $n checkpoints from $START to $end (tip=$tip)" >&2
|