channeld: Code to implement splicing

Update the lightningd <-> channeld interface with lots of new commands to needed to facilitate spicing.

Implement the channeld splicing protocol leveraging the interactivetx protocol.

Implement lightningd’s channel_control to support channeld in its splicing efforts.

Changelog-Added: Added the features to enable splicing & resizing of active channels.
This commit is contained in:
Dusty Daemon
2023-07-27 14:37:52 -07:00
committed by Rusty Russell
parent ebd0a3fd69
commit 4628e3ace8
88 changed files with 4560 additions and 644 deletions

View File

@@ -3886,6 +3886,8 @@ def test_sql(node_factory, bitcoind):
'type': 'string'},
{'name': 'total_funding_msat',
'type': 'msat'},
{'name': 'splice_amount',
'type': 's64'},
{'name': 'our_funding_msat',
'type': 'msat'},
{'name': 'scratch_txid',
@@ -4023,6 +4025,7 @@ def test_sql(node_factory, bitcoind):
'u16': 'INTEGER',
'u32': 'INTEGER',
'u64': 'INTEGER',
's64': 'INTEGER',
'msat': 'INTEGER',
'hex': 'BLOB',
'hash': 'BLOB',
@@ -4093,7 +4096,7 @@ def test_sql(node_factory, bitcoind):
assert len(bytes.fromhex(val)) == 32
elif col['type'] == "pubkey":
assert len(bytes.fromhex(val)) == 33
elif col['type'] in ("msat", "integer", "u64", "u32", "u16", "u8", "boolean"):
elif col['type'] in ("msat", "integer", "s64", "u64", "u32", "u16", "u8", "boolean"):
int(val)
elif col['type'] == "number":
float(val)