Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ' Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ' Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard
, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })(); Clean up docs in `keysinterface.rs` by tnull · Pull Request #1892 · lightningdevkit/rust-lightning · GitHub
Skip to content

Clean up docs in keysinterface.rs - #1892

Merged
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs
Dec 12, 2022
Merged

Clean up docs in keysinterface.rs#1892
TheBlueMatt merged 1 commit into
lightningdevkit:mainfrom
tnull:2022-12-spendableoutputdescriptor-doccs

Conversation

@tnull

@tnulltnull commented Dec 1, 2022

Copy link
Copy Markdown
Contributor

Started off when I found some room for improvement in the docs of SpendableOutputDescriptor, took me down the rabbit hole of "since I'm already here"...

Hope this doesn't have too many conflicts with #1867 (but if I see correctly, it shouldn't)...

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 53eab2b to b579852CompareDecember 1, 2022 14:39
Comment threadlightning/src/chain/keysinterface.rs
Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the channel which this transaction spends.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"The value of the funding channel output spent by this commitment transaction. This may be useful in re-deriving keys used in the channel to spend the output". This value isn't consumed directly by the signature digest as the output spent is a to_remote on a counterparty commitment transaction.

@tnulltnullDec 2, 2022

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now went with "The value of the funding channel output which this transaction spends." to keep it concise. Let me know if that's fine by you.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@codecov-commenter

codecov-commenter commented Dec 2, 2022

Copy link
Copy Markdown

Codecov Report

Base: 90.60% // Head: 91.06% // Increases project coverage by +0.45% 🎉

Coverage data is based on head (6d49c17) compared to base (d9d4611).
Patch coverage: 100.00% of modified lines in pull request are covered.

❗ Current head 6d49c17 differs from pull request most recent head 350e8a1. Consider uploading reports for the commit 350e8a1 to get more accurate results

Additional details and impacted files
@@ Coverage Diff @@## main #1892 +/- ##
==========================================
+ Coverage 90.60% 91.06% +0.45% 
==========================================
Files 91 91 Lines 48656 51205 +2549 Branches 48656 51205 +2549 ==========================================
+ Hits 44087 46632 +2545 - Misses 4569 4573 +4 
Impacted FilesCoverage Δ
lightning/src/ln/functional_tests.rs96.96% <ø> (-0.18%)⬇️
lightning/src/chain/keysinterface.rs83.14% <100.00%> (ø)
lightning/src/chain/onchaintx.rs93.77% <0.00%> (+0.82%)⬆️
lightning/src/ln/channelmanager.rs89.41% <0.00%> (+2.72%)⬆️
lightning/src/ln/channel.rs92.23% <0.00%> (+3.37%)⬆️

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

☔ View full report at Codecov.
📢 Do you have feedback about the report comment? Let us know in this issue.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from b749d60 to afeb894CompareDecember 6, 2022 19:16
@tnull

tnull commented Dec 6, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased after #1867 got merged.

@tnull
tnull requested a review from wpaulinoDecember 6, 2022 19:19
Comment threadlightning/src/chain/keysinterface.rs Outdated
#[derive(Clone, Debug, PartialEq, Eq)]
pub struct DelayedPaymentOutputDescriptor {
/// The outpoint which is spendable
/// The outpoint which is spendable.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This isn't a fully-formed valid sentence, not sure why its getting a period? Same goes for a number of later things.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, while it stands out in this case because the line is so short, I still think it should have a period, in particular to maintain consistency with other examples with longer lines, in which we def. want a period. E.g.:

	/// An output to a P2WPKH, spendable exclusively by our payment key (i.e., the private key
/// which corresponds to the `payment_point` in [`BaseSign::pubkeys`]). The witness
/// in the spending input is, thus, simply:

Comment threadlightning/src/chain/keysinterface.rs Outdated
/// This may be useful in re-deriving keys used in the channel to spend the output.
pub channel_keys_id: [u8; 32],
/// The value of the channel which this transactions spends.
/// The value of the funding channel output which this transaction spends.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I find "the funding channel output" substantially more confusing than "the channel". Its now much easier to get confused and think this is the value in the output, but its really the value of the channel.

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tend to agree, a change in this direction was however suggested in #1892 (comment).

@ariard, are you fine with me reverting this?

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from afeb894 to 47c98c1CompareDecember 7, 2022 09:11
@tnull

tnull commented Dec 7, 2022

Copy link
Copy Markdown
ContributorAuthor

Rebased again after #1825 got merged.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch 2 times, most recently from c6580ac to d6cd997CompareDecember 7, 2022 10:11
@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from d6cd997 to bcb1f04CompareDecember 8, 2022 09:37
@tnull

tnull commented Dec 8, 2022

Copy link
Copy Markdown
ContributorAuthor

Feel free to squash, IMO. With some resolution on #1892 (comment) I'm happy with this I think.

Squashed with the reverted version. @ariard let me know if you ACK.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 6d49c17 to 350e8a1CompareDecember 10, 2022 08:53
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with requested changes.

@wpaulinowpaulino left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note this will conflict a bit with #1910 so it'd be nice to land this soon.

Comment threadlightning/src/chain/keysinterface.rs Outdated
Comment threadlightning/src/chain/keysinterface.rs Outdated
@tnull
tnullforce-pushed the 2022-12-spendableoutputdescriptor-doccs branch from 350e8a1 to 03de059CompareDecember 12, 2022 20:31
@tnull

Copy link
Copy Markdown
ContributorAuthor

Squashed again with changes:

> git diff-tree -U2 350e8a19 03de0598
diff --git a/lightning/src/chain/keysinterface.rs b/lightning/src/chain/keysinterface.rs
index 74294d5c..1426ff5c 100644
--- a/lightning/src/chain/keysinterface.rs
+++ b/lightning/src/chain/keysinterface.rs
@@ -295,5 +295,4 @@ pub trait BaseSign {
/// [`ChannelMonitor`]: crate::chain::channelmonitor::ChannelMonitor
// TODO: Document the things someone using this interface should enforce before signing.
- // TODO: Key derivation failure should panic rather than Err
fn sign_holder_commitment_and_htlcs(&self, commitment_tx: &HolderCommitmentTransaction,
secp_ctx: &Secp256k1<secp256k1::All>) -> Result<(Signature, Vec<Signature>), ()>;
@@ -535,5 +534,6 @@ pub trait KeysInterface {
/// a secure external signer.
pub struct InMemorySigner {
- /// Private key of an anchor or 2-of-2 multisig transaction.
+ /// Holder secret key in the 2-of-2 multisig script of a channel. This key also backs the
+ /// holder's anchor output in a commitment transaction, if one is present.
pub funding_key: SecretKey,
/// Holder secret key for blinded revocation pubkey.

/// [`KeysInterface::derive_channel_signer`]. The `user_channel_id` is provided to allow
/// implementations of `KeysInterface` to maintain a mapping between it and the generated
/// `channel_keys_id`.
/// Get a new set of [`Sign`] for per-channel secrets. These MUST be unique even if you

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doc makes much less sense to me than the previous one. We're not generating a "set" here, I think, and we should make explicit reference to derive_channel_signer.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah it seems like this came from a rebase. We want to keep the docs as they currently are in main.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's just revert it in a followup, since this is blocking other stuff.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'll do it in #1903 since that will need rebase on this anyway.

@TheBlueMattTheBlueMatt left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One comment but otherwise definitely looks good. Also happy to address it in a followup.

@TheBlueMatt
TheBlueMatt merged commit 0fa67fb into lightningdevkit:mainDec 12, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants

@tnull@codecov-commenter@TheBlueMatt@wpaulino@ariard