-
Notifications
You must be signed in to change notification settings - Fork 109
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
Background
- Mint grouped asset on node A
- Sync node B to node A, add to federation (public universe configs enabled)
taproot-assets.universe.public-access=rw
taproot-assets.allow-public-uni-proof-courier=1
taproot-assets.allow-public-stats=1
- Transfer assets from node A to node B
- Open asset channel from node B to node A (100% of asset capacity on local side of node B)
- Open regular channel from node A to node B (50% of sats balance on each side)
- Generate sats invoice (with
lncli) on node B for 2000 sats
invoice, err := lnClient.AddInvoice(context.TODO(), &lnrpc.Invoice{
Value: int64(2000),
})
- Make self-payment with route-hints (hop-hints fully populated) through
tapchannelrpc
payReq := &routerrpc.SendPaymentRequest{
PaymentRequest: invoice.PaymentRequest,
OutgoingChanIds: []uint64{swapAssetChanId},
AllowSelfPayment: true,
FeeLimitSat: 20000,
RouteHints: []*lnrpc.RouteHint{{
HopHints: []*lnrpc.HopHint{
{
NodeId: pubkey,
ChanId: assetsPeerScidAlias,
CltvExpiryDelta: 80,
FeeBaseMsat: 1000,
FeeProportionalMillionths: 1,
},
{
NodeId: peerPubkey,
ChanId: satsPeerScidAlias,
CltvExpiryDelta: 80,
FeeBaseMsat: 1000,
FeeProportionalMillionths: 1,
},
}},
},
}
stream, err := tapChannelClient.SendPayment(context.TODO(), &tapchannelrpc.SendPaymentRequest{
AssetId: assetHex,
PeerPubkey: peerPubkey,
PaymentRequest: payReq,
AllowOverpay: true,
RfqId: rfqQuoteId,
})
if err != nil {
fmt.Printf("error sending asset payment for swap: %s", err.Error())
return
}
- Results in a force close of the channel
2025-06-04 21:17:25.272 [DBG] DISC: The message ChannelUpdate has no AuthProof, sending the update to remote peer 03a87aca1479286fea390d79ac9ba85842caa1713377d07daadb1b00ce1175d435
2025-06-04 21:17:25.278 [DBG] DISC: Processed ChannelUpdate: peer=<nil>, short_chan_id=17592186044416000002, timestamp=2025-06-04 21:17:25 +0000 UTC
2025-06-04 21:17:25.278 [DBG] DISC: Successfully sent ChannelUpdate message for channel=16000000:0:2 with peer=03a87aca1479286fea390d79ac9ba85842caa1713377d07daadb1b00ce1175d435
2025-06-04 21:17:25.278 [INF] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): received force close request
2025-06-04 21:17:25.284 [DBG] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): attempting state step with trigger=userTrigger from state=StateDefault
2025-06-04 21:17:25.278 [DBG] PEER: Peer(03a87aca1479286fea390d79ac9ba85842caa1713377d07daadb1b00ce1175d435): Sending ChannelUpdate(chain_hash=0f9188f13cb7b2c71f2a335e3a4fc328bf5beb436012afca590b1a11466e2206, short_chan_id=17592186044416000002, mflags=00000001, cflags=00000010, update_time=2025-06-04 21:17:25 +0000 UTC) to 03a87aca1479286fea390d79ac9ba85842caa1713377d07daadb1b00ce1175d435@172.31.0.1:60902
2025-06-04 21:17:25.287 [DBG] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): new block (height=364) examining active HTLC's
2025-06-04 21:17:25.294 [DBG] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): checking commit chain actions at height=364, in_htlc_count=0, out_htlc_count=0
2025-06-04 21:17:25.319 [DBG] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): attempting state step with trigger=userTrigger from state=StateBroadcastCommit
2025-06-04 21:17:25.319 [INF] CNCT: ChannelArbitrator(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): force closing chan
2025-06-04 21:17:25.337 [DBG] TSVR: FetchLeavesFromCommit called, ourBalance=0 mSAT, theirBalance=96920000 mSAT, numHtlcs=0
2025-06-04 21:17:25.341 [DBG] TSVR: FetchLeavesFromCommit called, ourBalance=0 mSAT, theirBalance=96920000 mSAT, numHtlcs=0
2025-06-04 21:17:25.342 [DBG] LNWL: ChannelPoint(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): Restoring 0 dangling remote updates
2025-06-04 21:17:25.345 [DBG] LNWL: ChannelPoint(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): Restoring 0 local updates that the peer should sign
2025-06-04 21:17:25.351 [INF] LNWL: Generating new musig2 sig for session=daf310c3e35f7128930b38d5156ec27e5ff1ad7caff7a8ebb026459ecf5800ca, nonces=NoncePair(verification_nonce=02a5f11cdd0d20f526a38a8df624a96d119d8cc7de30c23613222ae679687889cc0349d24b3188967d565bee73386ab1face62743190ef16df20f9912cf9e0f05487, signing_nonce=0316d8676c542a811b4f899633c576aca62d1bdc55e1ea5f22c5867c60ab0d3c8103cc80ac2609d98b46e6df6976e5b016bd0893a770bb2afe77c297e0d7922d18b1)
2025-06-04 21:17:25.376 [INF] CNCT: Broadcasting force close transaction 74b7961c0461e3f4df5accbafc99ecad8ba6e99543c451d11c1cb8f270e929d9, ChannelPoint(39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0): (*wire.MsgTx)(0xc001334ec0)({
Version: (int32) 2,
TxIn: ([]*wire.TxIn) (len=1 cap=1) {
(*wire.TxIn)(0xc003c1fb00)({
PreviousOutPoint: (wire.OutPoint) 39fcd986a8cb181984f66045ab9970780e4dee1680315720e865d22e5c060fbc:0,
SignatureScript: ([]uint8) <nil>,
Witness: (wire.TxWitness) (len=1 cap=1) {
([]uint8) (len=64 cap=64) {
00000000 bc a9 6c e8 60 17 a0 d9 2b 1f 1f 26 e8 6a bd 08 |..l.`...+..&.j..|
00000010 70 f7 9a 4d fc 88 a2 09 8b 92 73 36 d4 a3 13 dd |p..M......s6....|
00000020 0b 54 ef bd aa 77 54 53 f9 1d da ec 33 a4 27 20 |.T...wTS....3.' |
00000030 83 61 e9 9d d8 61 9f 55 3f 39 86 cc e3 67 ab 69 |.a...a.U?9...g.i|
}
},
Sequence: (uint32) 2164190000
})
Your environment
Node A
litcli getinfo
litd@alice:/$ litcli getinfo
{
"version": "0.14.1-alpha commit=v0.14.1-alpha"
}
uname -mrsv
Linux 5.15.49-linuxkit-pr #1 SMP Thu May 25 07:17:40 UTC 2023 x86_64
bitcoind --version
v0.29.0
Node B
lighting-terminal v0.15.0-alpha-rc1
uname -mrsv
Darwin 22.6.0 Darwin Kernel Version 22.6.0: Mon Apr 22 20:54:28 PDT 2024; root:xnu-8796.141.3.705.2~1/RELEASE_X86_64 x86_64
bitcoind --version
v0.29.0
Expected behavior
Things worked when both members of the channel were from lightning-terminal 0.15.0-alpha-rc1
Actual behavior
Force close of asset channel. While Node B acknowledges receipt of its assets from the on-chain send from Node A, it doesn't seem to gain a transfer proof. The "No AuthProof" line of the log output from bullet 8. makes me think some validation is failing.
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working