From dbc19b24e5b4df093aacf17552e4e8dfd80a5d49 Mon Sep 17 00:00:00 2001 From: Elle Mouton Date: Wed, 22 Feb 2023 09:49:37 +0200 Subject: [PATCH] lnwallet: add funding amount assertion to tests In this commit, an assertion is added to the bolt 3 commitment tx tests that ensures that the local and remote balances add up to the expected funding amount. Adding this assertion uncovered a borked test vector which is also fixed in this commit. --- lnwallet/test_vectors_anchors.json | 6 +++--- lnwallet/transactions_test.go | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/lnwallet/test_vectors_anchors.json b/lnwallet/test_vectors_anchors.json index 59b8eaa18..2559e6822 100644 --- a/lnwallet/test_vectors_anchors.json +++ b/lnwallet/test_vectors_anchors.json @@ -11,13 +11,13 @@ }, { "Name": "simple commitment tx with no HTLCs and single anchor", - "LocalBalance": 7000000000, + "LocalBalance": 10000000000, "RemoteBalance": 0, "FeePerKw": 15000, "UseTestHtlcs": false, "HtlcDescs": [], - "ExpectedCommitmentTxHex": "02000000000101bef67e4e2fb9ddeeb3461973cd4c62abb35050b1add772995b820b584a488489000000000038b02b80024a010000000000002200202b1b5854183c12d3316565972c4668929d314d81c5dcdbb21cb45fe8a9a8114f508b6a00000000002200204adb4e2f00643db396dd120d4e7dc17625f5f2c11a40d857accc862d6b7dd80e0400483045022100da5310620e72bc23dc57af25d18102cc75479aea0258ab89fe1a66ca176033ec0220339efb450c12872e134c8bda986bb92f3e4eebcaa2d0fee5d9a2b1257d12f12a0147304402200dc30542c9b8b2ff4b8d98f46798b3218a088a07e97b9e786177287dc6a5347b02203d23b1c2bf17262362fdb4cdcc36dbb449a9efcdb10051ad52cfa09fc76842b001475221023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb21030e9f7b623d2ccc7c9bd44d66d5ce21ce504c0acf6385a132cec6d3c39fa711c152ae3e195220", - "RemoteSigHex": "304402200dc30542c9b8b2ff4b8d98f46798b3218a088a07e97b9e786177287dc6a5347b02203d23b1c2bf17262362fdb4cdcc36dbb449a9efcdb10051ad52cfa09fc76842b0" + "ExpectedCommitmentTxHex": "02000000000101bef67e4e2fb9ddeeb3461973cd4c62abb35050b1add772995b820b584a488489000000000038b02b80024a010000000000002200202b1b5854183c12d3316565972c4668929d314d81c5dcdbb21cb45fe8a9a8114f10529800000000002200204adb4e2f00643db396dd120d4e7dc17625f5f2c11a40d857accc862d6b7dd80e0400473044022007cf6b405e9c9b4f527b0ecad9d8bb661fabb8b12abf7d1c0b3ad1855db3ed490220616d5c1eeadccc63bd775a131149455d62d95a42c2a1b01cc7821fc42dce7778014730440220655bf909fb6fa81d086f1336ac72c97906dce29d1b166e305c99152d810e26e1022051f577faa46412c46707aaac46b65d50053550a66334e00a44af2706f27a865801475221023da092f6980e58d2c037173180e9a465476026ee50f96695963e8efe436f54eb21030e9f7b623d2ccc7c9bd44d66d5ce21ce504c0acf6385a132cec6d3c39fa711c152ae3e195220", + "RemoteSigHex": "30440220655bf909fb6fa81d086f1336ac72c97906dce29d1b166e305c99152d810e26e1022051f577faa46412c46707aaac46b65d50053550a66334e00a44af2706f27a8658" }, { "Name": "commitment tx with seven outputs untrimmed (maximum feerate)", diff --git a/lnwallet/transactions_test.go b/lnwallet/transactions_test.go index aaef59e30..28c547935 100644 --- a/lnwallet/transactions_test.go +++ b/lnwallet/transactions_test.go @@ -270,6 +270,11 @@ func testVectors(t *testing.T, chanType channeldb.ChannelType, test testCase) { } } + // Assert that the remote and local balances add up to the channel + // capacity. + require.EqualValues(t, lnwire.NewMSatFromSatoshis(tc.fundingAmount), + remoteBalance+localBalance) + // Set up a test channel on which the test commitment transaction is // going to be produced. remoteChannel, localChannel := createTestChannelsForVectors(