-
Notifications
You must be signed in to change notification settings - Fork 421
[Splicing] Clone for ChannelContext #3332
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
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.