test/test_protocol: add fee support.

We simply record how many fee changes there are, rather than supporting
a particular level.

Fees are tricky: it's a noop to apply them when incoming, but we apply them
when they've been acked.  Unlike HTLC modifications, which are symmetric,
fee updates only apply when returning to the originating node.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
This commit is contained in:
Rusty Russell
2016-05-17 13:49:32 +09:30
parent 056c219bc1
commit 388dfc355e
7 changed files with 229 additions and 14 deletions

View File

@@ -0,0 +1,13 @@
# Simple test that we can change fee level
A:feechange
B:recvfeechange
A:commit
B:recvcommit
A:recvrevoke
B:commit
A:recvcommit
B:recvrevoke
echo ***A***
A:dump
echo ***B***
B:dump

View File

@@ -0,0 +1,24 @@
***A***
OUR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
Fee level 1
SIGNED
THEIR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
SIGNED
***B***
OUR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
Fee level 1
SIGNED

View File

@@ -0,0 +1,15 @@
# We can change fee level twice.
A:feechange
A:feechange
A:commit
B:recvfeechange
B:recvfeechange
B:recvcommit
B:commit
A:recvrevoke
A:recvcommit
B:recvrevoke
echo ***A***
A:dump
echo ***B***
B:dump

View File

@@ -0,0 +1,24 @@
***A***
OUR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
Fee level 2
SIGNED
THEIR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
SIGNED
***B***
OUR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
Fee level 2
SIGNED

View File

@@ -0,0 +1,25 @@
# Test committing fees before receiving previous revocation.
A:feechange
A:commit
A:feechange
A:commit
echo ***A after two commits with fee changes***
A:dump
B:recvfeechange
echo ***B after receiving fee change***
B:dump
B:recvcommit
echo ***B after receiving first commit***
B:dump
B:recvfeechange
B:recvcommit
echo ***B after receiving second commit***
B:dump
A:recvrevoke
A:recvrevoke
B:commit
A:recvcommit
B:recvrevoke
echo ***B after committing***
B:dump
checksync

View File

@@ -0,0 +1,69 @@
***A after two commits with fee changes***
OUR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
Pending incoming: FEE
SIGNED
Commit 1:
Offered htlcs:
Received htlcs:
Pending incoming: FEE
SIGNED
Commit 2:
Offered htlcs:
Received htlcs:
SIGNED
***B after receiving fee change***
OUR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
Pending incoming: FEE
SIGNED
THEIR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
SIGNED
***B after receiving first commit***
OUR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
Pending outgoing: FEE
SIGNED
***B after receiving second commit***
OUR COMMITS:
Commit 2:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 0:
Offered htlcs:
Received htlcs:
Pending outgoing: FEE FEE
SIGNED
***B after committing***
OUR COMMITS:
Commit 2:
Offered htlcs:
Received htlcs:
SIGNED
THEIR COMMITS:
Commit 1:
Offered htlcs:
Received htlcs:
Fee level 2
SIGNED