htlcswitch: keep final htlc outcome
This commit is contained in:
20 files changed
+466
-111
No files matched your search
@@ -641,7 +641,7 @@ func TestChannelStateTransition(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
err = channel.UpdateCommitment(&commitment, unsignedAckedUpdates)
|
||||
_, err = channel.UpdateCommitment(&commitment, unsignedAckedUpdates)
|
||||
require.NoError(t, err, "unable to update commitment")
|
||||
|
||||
// Assert that update is correctly written to the database.
|
||||
@@ -1457,3 +1457,41 @@ func TestKeyLocatorEncoding(t *testing.T) {
|
||||
// version are equal.
|
||||
require.Equal(t, keyLoc, decodedKeyLoc)
|
||||
}
|
||||
|
||||
// TestFinalHtlcs tests final htlc storage and retrieval.
|
||||
func TestFinalHtlcs(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
fullDB, err := MakeTestDB(t)
|
||||
require.NoError(t, err, "unable to make test database")
|
||||
|
||||
cdb := fullDB.ChannelStateDB()
|
||||
|
||||
chanID := lnwire.ShortChannelID{
|
||||
BlockHeight: 1,
|
||||
TxIndex: 2,
|
||||
TxPosition: 3,
|
||||
}
|
||||
|
||||
// Test offchain final htlcs.
|
||||
const offchainHtlcID = 1
|
||||
|
||||
err = kvdb.Update(cdb.backend, func(tx kvdb.RwTx) error {
|
||||
bucket, err := fetchFinalHtlcsBucketRw(
|
||||
tx, chanID,
|
||||
)
|
||||
require.NoError(t, err)
|
||||
|
||||
return putFinalHtlc(bucket, offchainHtlcID, FinalHtlcInfo{
|
||||
Settled: true,
|
||||
Offchain: true,
|
||||
})
|
||||
}, func() {})
|
||||
require.NoError(t, err)
|
||||
|
||||
// Test onchain final htlcs.
|
||||
const onchainHtlcID = 2
|
||||
|
||||
err = cdb.PutOnchainFinalHtlcOutcome(chanID, onchainHtlcID, true)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
Reference in new issue
Block a user