Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ViktorT-11@codecov-commenter@TheBlueMatt@arik-so
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n 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;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ViktorT-11@codecov-commenter@TheBlueMatt@arik-so
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ViktorT-11@codecov-commenter@TheBlueMatt@arik-so
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ViktorT-11@codecov-commenter@TheBlueMatt@arik-so
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

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

Pass counterparty_node_id to ChannelManager functions - #1479

Merged
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions
May 16, 2022
Merged

Pass counterparty_node_id to ChannelManager functions#1479
arik-so merged 6 commits into
lightningdevkit:mainfrom
ViktorT-11:2022-05-pass-counterparty-id-to-functions

Conversation

@ViktorT-11

Copy link
Copy Markdown
Contributor

After #105 and #422, channels will be stored in the ChannelManager::per_peer_state which requires the counterparty_node_id to access them. #1278 also requires this updated storage design. This will require that the user passes the counterparty_node_id to some of the public API functions of the ChannelManager for which only the channel_id is passed currently.

This PR updates the parameters required in those functions, to include the counterparty_node_id.

I figured it's probably better to separate the API changes from rest of the channel storage changes. Let me know if you're of a different opinion, and I'll close this PR.

Pushing this as a draft for now, but let me know if you think that better to merge this before the other functionality is ready (#105 and #422), which I will base on this.

Finally, when updating these functions, I also noticed that lots of other functions that has the counterparty_node_id as an input parameter, name the counterparty_node_id differently. That could be a bit confusing in my opinion. Examples that I have found are: their_node_id, their_network_key, peer_node_id. Let me know if you'd like me to update the name this PR is using, or if I should update the name in the other functions to make it uniform.

@codecov-commenter

codecov-commenter commented May 12, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1479 (e9a5407) into main (b5a6307) will decrease coverage by 0.01%.
The diff coverage is 98.03%.

❗ Current head e9a5407 differs from pull request most recent head c179844. Consider uploading reports for the commit c179844 to get more accurate results

@@ Coverage Diff @@## main #1479 +/- ##
==========================================
- Coverage 90.89% 90.88% -0.02% 
==========================================
Files 76 76 Lines 42067 42073 +6 Branches 42067 42073 +6 ==========================================
+ Hits 38238 38239 +1 - Misses 3829 3834 +5 
Impacted FilesCoverage Δ
lightning/src/ln/channelmanager.rs84.75% <91.30%> (-0.03%)⬇️
lightning-background-processor/src/lib.rs94.37% <100.00%> (ø)
lightning-persister/src/lib.rs93.45% <100.00%> (ø)
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/functional_test_utils.rs95.54% <100.00%> (+<0.01%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.08%)⬇️
lightning/src/ln/monitor_tests.rs100.00% <100.00%> (ø)
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/priv_short_conf_tests.rs97.95% <100.00%> (ø)
lightning/src/ln/shutdown_tests.rs96.50% <100.00%> (ø)
... and 4 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b5a6307...c179844. Read the comment docs.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Sorry for the failed checks, will address them tomorrow.

/// [`Event::FundingGenerationReady`]: crate::util::events::Event::FundingGenerationReady
/// [`Event::ChannelClosed`]: crate::util::events::Event::ChannelClosed
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], funding_transaction: Transaction) -> Result<(), APIError> {
pub fn funding_transaction_generated(&self, temporary_channel_id: &[u8; 32], counterparty_node_id: &PublicKey, funding_transaction: Transaction) -> Result<(), APIError> {

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.

Should we add the counterparty_node_id to the FundingGenerationReady event?

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.

Yes!

}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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.

nit: add a _ to the variable name so rustc doesn't complain its unused.

@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the feedback and the failed checks. Let me know if you think it's worth adding the extra counterparty_node_id check to create_funding_transaction (commit a85a63e), and I'll squash it with the FundingGenerationReady commit! Else I will drop that specific commit.

if !channel.get().inbound_is_awaiting_accept() {
return Err(APIError::APIMisuseError { err: "The channel isn't currently awaiting to be accepted.".to_owned() });
}
if *counterparty_node_id != channel.get().get_counterparty_node_id() {

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.

Let me know if you want me to add a test case for this. Though given that it shouldn't be a thing after #105, perhaps it isn't really worth it.

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.

Yea don't worry about it, then.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

Feel free to squash the fix up commits into the corresponding commits.

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from e9a5407 to ded76daCompareMay 14, 2022 00:17
@ViktorT-11

ViktorT-11 commented May 14, 2022

Copy link
Copy Markdown
ContributorAuthor

Thanks @TheBlueMatt! Squashed the commits without changes. The only one I'm not entirely sure about is ded76da. As it's an update to the docs of the OpenChannelRequest, do you prefer it to be a separate commit, or should I squash it with the Pass counterparty_node_id to accept_inbound_channel commit as that's the reason for the doc update?

TheBlueMatt
TheBlueMatt previously approved these changes May 14, 2022
Comment threadlightning/src/ln/channelmanager.rs Outdated
}

fn close_channel_internal(&self, channel_id: &[u8; 32], target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {
fn close_channel_internal(&self, channel_id: &[u8; 32], _counterparty_node_id: &PublicKey, target_feerate_sats_per_1000_weight: Option<u32>) -> Result<(), APIError> {

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 mean if you want to you can replace the existing counterparty_node_id variable in the function, but of course it doesn't matter it'll come in the next PR.

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.

Yeah that was my reasoning behind that choice, but changed that now just in case you'd like to merge this PR before the next PR is completed :).

@ViktorT-11
ViktorT-11force-pushed the 2022-05-pass-counterparty-id-to-functions branch from ded76da to c179844CompareMay 14, 2022 18:35
@ViktorT-11
ViktorT-11 marked this pull request as ready for review May 14, 2022 18:38
@ViktorT-11

Copy link
Copy Markdown
ContributorAuthor

Addressed the latest feedback, and marked this as an open PR in case you think it's worth merging this before the functionality for #105 is completed :)

@arik-so
arik-so merged commit a5629e5 into lightningdevkit:mainMay 16, 2022
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants

@ViktorT-11@codecov-commenter@TheBlueMatt@arik-so