[Splicing] Clone for ChannelContext#3332
[Splicing] Clone for ChannelContext#3332optout21 wants to merge 2 commits intolightningdevkit:mainfrom
Conversation
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #3332 +/- ##
==========================================
+ Coverage 89.25% 90.00% +0.74%
==========================================
Files 130 130
Lines 106959 111140 +4181
Branches 106959 111140 +4181
==========================================
+ Hits 95464 100029 +4565
+ Misses 8706 8343 -363
+ Partials 2789 2768 -21 ☔ View full report in Codecov by Sentry. |
|
Discussed briefly offline. This may not be needed if we split |
|
This change request assumes that the whole |
e593e86 to
2aa0496
Compare
|
Not sure if cloning is the best solution. But, regardless, since the channel signer is a |
|
There are 4 The only non-cloneable field is the signer. The signer could also be placed under |
|
Still up for discussion, different approaches being discussed, to get rid of per-field cloning:
|
71663af to
c30a8ed
Compare
|
Rebased |
c30a8ed to
ce2b3bf
Compare
ce2b3bf to
7636b2b
Compare
Cloning of a channel -- more precisely of
ChannelContext-- is needed for Splicing, this is a preparation (may be needed for dual funding RBF as well)Simple
#[derive(Clone))is not sufficient, as the channel signer struct cannot be cloned, ultimately due toAtomicUSizeandSecp256k1(inKeysManager). So instead, a field-by-field cloning is done, with the a few exceptions.