Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace
, '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

Expose next_channel_id in PaymentForwarded event - #1475

Merged
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event
May 16, 2022
Merged

Expose next_channel_id in PaymentForwarded event#1475
valentinewallace merged 1 commit into
lightningdevkit:mainfrom
atalw:2022-04-paymentforwarded-event

Conversation

@atalw

Copy link
Copy Markdown
Contributor

Closes#1391

There is a minor refactor included in this PR. The type of pending_monitor_events in chainmonitor has been changed to HashMap<OutPoint, Vec<MonitorEvent>>. This associates events with an outpoint, thereby removing the dependency in the MonitorEvent enum to store the outpoint separately. One doubt I had is if the order of pending events matters. If it does, this approach will not work.

Comment threadlightning/src/chain/channelmonitor.rs
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 9c35b7f to eb6a39dCompareMay 10, 2022 10:46
@codecov-commenter

codecov-commenter commented May 10, 2022

Copy link
Copy Markdown

Codecov Report

Merging #1475 (44ec53c) into main (637fb88) will increase coverage by 0.00%.
The diff coverage is 93.84%.

❗ Current head 44ec53c differs from pull request most recent head 1ae1de9. Consider uploading reports for the commit 1ae1de9 to get more accurate results

@@ Coverage Diff @@## main #1475 +/- ##
========================================
Coverage 90.88% 90.88% ========================================
Files 75 76 +1 Lines 41474 42081 +607 Branches 41474 42081 +607 ========================================
+ Hits 37695 38247 +552 - Misses 3779 3834 +55 
Impacted FilesCoverage Δ
lightning/src/chain/mod.rs68.18% <ø> (+7.07%)⬆️
lightning/src/ln/functional_test_utils.rs95.54% <ø> (-0.02%)⬇️
lightning/src/util/events.rs33.33% <0.00%> (-0.24%)⬇️
lightning/src/util/test_utils.rs77.96% <ø> (-4.46%)⬇️
lightning/src/chain/chainmonitor.rs97.91% <100.00%> (+0.27%)⬆️
lightning/src/ln/chanmon_update_fail_tests.rs97.76% <100.00%> (ø)
lightning/src/ln/channelmanager.rs84.79% <100.00%> (+0.05%)⬆️
lightning/src/ln/functional_tests.rs97.09% <100.00%> (-0.06%)⬇️
lightning/src/ln/payment_tests.rs99.23% <100.00%> (ø)
lightning/src/ln/reorg_tests.rs100.00% <100.00%> (ø)
... and 35 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 637fb88...1ae1de9. Read the comment docs.

@tnull

tnull commented May 10, 2022

Copy link
Copy Markdown
Contributor

Thanks for having a look at this! However, I'm not too sure if the change actually warrants this kind of refactoring?
IIUC, I also find it somewhat confusing that the OutPoint key would really be used in different ways semantically, i.e., some events would actually monitor for on-chain changes there, and some, such as the PaymentForwarded only would use it to basically remember a variable temporarily. Is this correct?

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.
As the PaymentForwarded event rather tells us something about the immediate neighbor nodes from which a payment came/to which we forwarded, I'd find a terminology along the lines of incoming_channel_id/outgoing_channel_id or prev_channel_id/next_channel_id more intuitive.

@atalw

atalw commented May 10, 2022

Copy link
Copy Markdown
ContributorAuthor

Using the current approach all events are linked to an OutPoint from a single source. This seemed like a cleaner solution for solving the problem of getting the OutPoint to claim_funds_internal(). The other option was to add a field in the HTLCUpdate struct (which is what I initially did). That way we wouldn't need to refactor but it seemed out of place there and led to more boilerplate code.

You're right about the different semantic use of OutPoint for different enum fields but that would happen in the other approach too. Not sure how to avoid that.

Initially, I faced the confusion of nomenclature as well but I rationalized it because a node only knows about the prev/next nodes in the route. So for it the source and destination are the prev and next node, though I see how it is confusing. I added documentation to clarify what source/sink mean but if we still feel the naming is unintuitive, I'll update it.

@TheBlueMatt

TheBlueMatt commented May 10, 2022

Copy link
Copy Markdown
Collaborator

However, I'm not too sure if the change actually warrants this kind of refactoring?

Generally we've been pretty open to this kind of refactoring in the past - its relatively trivial, most existing users don't implement this interface directly so won't even see it, but even if they do they won't have any trouble adapting to it. Its certainly a lot cleaner than changing the serialization format, IMO.

Also, not sure if it is just me, but every time I read
source/sink or source/destination pairs in a payment / HTLC context, my first assumption is that they refer to the payment endpoints, i.e., the payment origin / the (final) payment destination.

Hmm, fair enough. I'd suggested it as an alternative to "source+destination" which has that problem even worse, but I like your prev/next or incoming/outgoing suggestion.

Comment threadfuzz/src/chanmon_consistency.rs Outdated
@atalw

atalw commented May 11, 2022

Copy link
Copy Markdown
ContributorAuthor

So I'll do a couple of things

  1. Update the return type to Vec<(OutPoint, Vec<MonitorEvents>)>
  2. Revert the TLV changes (add OutPoint back to enum fields)
  3. Rename channel fields to prev/next

Thanks for the feedback and being patient with me! It really helps especially because I'm new to FOSS, Bitcoin, Lightning, and Rust.

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch 2 times, most recently from e386e61 to 9e67447CompareMay 11, 2022 06:22
@atalwatalw changed the title Expose sink_channel_id in PaymentForwarded eventExpose next_channel_id in PaymentForwarded eventMay 11, 2022
TheBlueMatt
TheBlueMatt previously approved these changes May 11, 2022

@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.

A few nits but this looks good to me 🚀

Comment threadlightning/src/ln/channelmanager.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated
Comment threadlightning/src/util/events.rs Outdated

@valentinewallacevalentinewallace 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.

This looks good! Think I'm ACK after remaining feedback is addressed

Comment threadlightning/src/chain/chainmonitor.rs Outdated
Comment threadlightning/src/ln/functional_test_utils.rs
@atalw

Copy link
Copy Markdown
ContributorAuthor

Rebased

@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from 6e76064 to b60de85CompareMay 15, 2022 03:55
This update also includes a minor refactor. The return type of
`pending_monitor_events` has been changed to a `Vec` tuple with the
`OutPoint` type. This associates a `Vec` of `MonitorEvent`s with a
funding outpoint.
We've also renamed `source/sink_channel_id` to `prev/next_channel_id` in
the favour of clarity.
@atalw
atalwforce-pushed the 2022-04-paymentforwarded-event branch from b60de85 to 1ae1de9CompareMay 15, 2022 04:11
@valentinewallace
valentinewallace merged commit 257a6f3 into lightningdevkit:mainMay 16, 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.

Expose more info in PaymentForwarded

5 participants

@atalw@codecov-commenter@tnull@TheBlueMatt@valentinewallace