Skip to content

Commit 707bcc2

Browse files
committed
tapfreighter: update verifyPacketInputProofs to take one vpacket as arg
Refactor `verifyPacketInputProofs` to accept a single VPacket argument for verification. This simplifies unit testing and aligns better with planned future verification logic.
1 parent 9db9af0 commit 707bcc2

File tree

1 file changed

+20
-22
lines changed

1 file changed

+20
-22
lines changed

tapfreighter/chain_porter.go

Lines changed: 20 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1413,9 +1413,14 @@ func (p *ChainPorter) prelimCheckAddrParcel(addrParcel AddressParcel) error {
14131413
func (p *ChainPorter) verifyVPackets(ctx context.Context,
14141414
packets []*tappsbt.VPacket) error {
14151415

1416-
err := p.verifyPacketInputProofs(ctx, packets)
1417-
if err != nil {
1418-
return fmt.Errorf("verify packet input proofs: %w", err)
1416+
for pktIdx := range packets {
1417+
vPkt := packets[pktIdx]
1418+
1419+
err := p.verifyPacketInputProofs(ctx, *vPkt)
1420+
if err != nil {
1421+
return fmt.Errorf("verify packet input proofs "+
1422+
"(vpkt_idx=%d): %w", pktIdx, err)
1423+
}
14191424
}
14201425

14211426
return nil
@@ -1424,11 +1429,7 @@ func (p *ChainPorter) verifyVPackets(ctx context.Context,
14241429
// verifyPacketInputProofs ensures that each virtual packet's inputs reference
14251430
// a valid Taproot Asset commitment before the package is broadcast.
14261431
func (p *ChainPorter) verifyPacketInputProofs(ctx context.Context,
1427-
packets []*tappsbt.VPacket) error {
1428-
1429-
if len(packets) == 0 {
1430-
return nil
1431-
}
1432+
vPkt tappsbt.VPacket) error {
14321433

14331434
headerVerifier := tapgarden.GenHeaderVerifier(ctx, p.cfg.ChainBridge)
14341435
vCtx := proof.VerifierCtx{
@@ -1439,21 +1440,18 @@ func (p *ChainPorter) verifyPacketInputProofs(ctx context.Context,
14391440
IgnoreChecker: p.cfg.IgnoreChecker,
14401441
}
14411442

1442-
for pktIdx := range packets {
1443-
vPkt := packets[pktIdx]
1444-
for inputIdx := range vPkt.Inputs {
1445-
assetProof := vPkt.Inputs[inputIdx].Proof
1446-
if assetProof == nil {
1447-
return fmt.Errorf("packet %d input %d proof "+
1448-
"is nil", pktIdx, inputIdx)
1449-
}
1443+
for inputIdx := range vPkt.Inputs {
1444+
assetProof := vPkt.Inputs[inputIdx].Proof
1445+
if assetProof == nil {
1446+
return fmt.Errorf("packet input proof is nil "+
1447+
"(input_idx=%d)", inputIdx)
1448+
}
14501449

1451-
_, err := assetProof.VerifyProofIntegrity(ctx, vCtx)
1452-
if err != nil {
1453-
return fmt.Errorf("unable to verify "+
1454-
"inclusion proof for packet %d "+
1455-
"input %d: %w", pktIdx, inputIdx, err)
1456-
}
1450+
_, err := assetProof.VerifyProofIntegrity(ctx, vCtx)
1451+
if err != nil {
1452+
return fmt.Errorf("unable to verify "+
1453+
"inclusion proof for packet input "+
1454+
"(input_idx=%d): %w", inputIdx, err)
14571455
}
14581456
}
14591457

0 commit comments

Comments
 (0)