From ebc38c9369356b51dc7f4c1c09b462ea327a58ff Mon Sep 17 00:00:00 2001 From: DanS Date: Fri, 20 Mar 2026 06:24:54 -0500 Subject: [PATCH] Fix lightwalletd sync loop for DragonX wallet - Handle missing Sapling upgrade in getblockchaininfo response by defaulting activation height to 1 (DragonX has Sapling active from genesis but uses NO_ACTIVATION_HEIGHT in chainparams) - Override consensus branch ID to Sapling (76b809bb) when node reports Sprout (00000000) due to disabled activation heights - Include full serialized block header in CompactBlock so the SDK can validate hashFinalSaplingRoot against the Sapling commitment tree - Set CompactBlock ProtoVersion to 1 --- parser/block.go | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/parser/block.go b/parser/block.go index 0fa83dd..9e4fdf7 100644 --- a/parser/block.go +++ b/parser/block.go @@ -99,12 +99,14 @@ func (b *Block) GetPrevHash() []byte { } func (b *Block) ToCompact() *walletrpc.CompactBlock { + headerBytes, _ := b.hdr.MarshalBinary() compactBlock := &walletrpc.CompactBlock{ - //TODO ProtoVersion: 1, - Height: uint64(b.GetHeight()), - PrevHash: b.hdr.HashPrevBlock, - Hash: b.GetEncodableHash(), - Time: b.hdr.Time, + ProtoVersion: 1, + Height: uint64(b.GetHeight()), + PrevHash: b.hdr.HashPrevBlock, + Hash: b.GetEncodableHash(), + Time: b.hdr.Time, + Header: headerBytes, } // Only Sapling transactions have a meaningful compact encoding