') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + ', 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); })(); Follow-ups to #2970 by jkczyz · Pull Request #3028 · lightningdevkit/rust-lightning · GitHub
Skip to content

Follow-ups to #2970 - #3028

Merged
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2024-04-offer-id-followups
Apr 29, 2024
Merged

Follow-ups to #2970#3028
TheBlueMatt merged 4 commits into
lightningdevkit:mainfrom
jkczyz:2024-04-offer-id-followups

Conversation

@jkczyz

Copy link
Copy Markdown
Contributor

Remove some unnecessary clones when handling HTLCs and unnecessary / problematic TLVs from InvoiceRequestFields.

@jkczyzjkczyz added this to the 0.0.123 milestone Apr 26, 2024
@TheBlueMattTheBlueMatt mentioned this pull request Apr 29, 2024
@TheBlueMattTheBlueMatt linked an issue Apr 29, 2024 that may be closed by this pull request
TheBlueMatt
TheBlueMatt previously approved these changes Apr 29, 2024
valentinewallace
valentinewallace previously approved these changes Apr 29, 2024
Comment threadlightning/src/ln/channelmanager.rs Outdated
PaymentContext is already stored in ClaimablePayment via PaymentPurpose,
so there is no need to repeat it in each ClaimableHTLC via OnionPayload.
This avoids cloning the PaymentContext each time an HTLC is received,
other than for the first HTLC for a payment.
Event::PaymentClaimable and Event::PaymentClaimed already contain the
paid amount, so there's no need to included the requested amount in
InvoiceRequestFields.
InvoiceRequestFeatures may contain a large, odd bit. Including this in
InvoiceRequestFields, which is in each BlindedPath of a Bolt12Invoice,
could cause the invoice's onion message to exceed the maximum size. The
features are already checked before sending an invoice.
@jkczyz
jkczyz dismissed stale reviews from valentinewallace and TheBlueMatt via 33b6162April 29, 2024 17:27
@jkczyz
jkczyzforce-pushed the 2024-04-offer-id-followups branch from 11fda41 to 33b6162CompareApril 29, 2024 17:27
@codecov-commenter

Copy link
Copy Markdown

Codecov Report

Attention: Patch coverage is 66.66667% with 8 lines in your changes are missing coverage. Please review.

Project coverage is 89.48%. Comparing base (2c0fcf2) to head (33b6162).
Report is 29 commits behind head on main.

FilesPatch %Lines
lightning/src/ln/channelmanager.rs64.70%6 Missing ⚠️
lightning/src/offers/invoice_request.rs71.42%2 Missing ⚠️

❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

Additional details and impacted files
@@ Coverage Diff @@## main #3028 +/- ##
==========================================
+ Coverage 89.13% 89.48% +0.35% 
==========================================
Files 118 118 Lines 97492 99913 +2421 Branches 97492 99913 +2421 ==========================================
+ Hits 86903 89411 +2508 + Misses 8349 8246 -103 - Partials 2240 2256 +16 

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@valentinewallace

Copy link
Copy Markdown
Contributor

CI is failing, though it seems unrelated.

@TheBlueMatt

Copy link
Copy Markdown
Collaborator

CI failures are some new warning on beta, not related.

@TheBlueMatt
TheBlueMatt merged commit d00e550 into lightningdevkit:mainApr 29, 2024
TheBlueMatt added a commit to TheBlueMatt/rust-lightning that referenced this pull request May 6, 2024
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.

Discuss/Do #2970 followups

4 participants

@jkczyz@codecov-commenter@valentinewallace@TheBlueMatt