{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":123967079,"defaultBranch":"master","name":"rust-lightning","ownerLogin":"TheBlueMatt","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2018-03-05T19:19:51.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/649246?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1717689526.0","currentOid":""},"activityList":{"items":[{"before":"61aef9b89afdcecd82fc9d97711b0cda55b11d04","after":"3a944d236d3e045918c4ed32eea605d5dda0ba4c","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-11T01:51:17.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Unblock channels awaiting monitor update based on `ChanMan` queue\n\nWhen we have `ChannelMonitorUpdate`s which are completing both\nsynchronously and asynchronously, we need to consider a channel as\nunblocked based on the `ChannelManager` monitor update queue,\nrather than by checking the `update_id`s.\n\nConsider the case where a channel is updated, leading to a\n`ChannelMonitorUpdate` which completes asynchronously. The update\ncompletes, but prior to the `ChannelManager` receiving the\n`MonitorEvent::Completed` it generates a further\n`ChannelMonitorUpdate`. This second update completes synchronously.\nAs a result, when the `MonitorEvent` is processed, the event's\n`monitor_update_id` is the first update, but there are no updates\nqueued and the channel should be free to return to be unblocked.\n\nHere we fix this by looking only at the `ChannelManager` update\nqueue, rather than the update_id of the `MonitorEvent`.\n\nWhile we don't anticipate many users having both synchronous and\nasynchronous persists in the same application, there isn't much\ncost to supporting it, which we do here.\n\nFound by the chanmon_consistency target.","shortMessageHtmlLink":"Unblock channels awaiting monitor update based on ChanMan queue"}},{"before":"b7a57bc6dfc602fa243cfaa6d2e394ddcfc7607a","after":"61aef9b89afdcecd82fc9d97711b0cda55b11d04","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-10T21:46:32.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fuzz reloading with a stale monitor in chanmon_consistency\n\nNow that we are gearing up to support fully async monitor storage,\nwe really need to fuzz monitor updates not completing before a\nreload, which we do here in the `chanmon_consistency` fuzzer.\n\nWhile there are more parts to async monitor updating that we need\nto fuzz, this at least gets us started by having basic async\nrestart cases handled. In the future, we should extend this to make\nsure some basic properties (eg claim/balance consistency) remain\ntrue through `chanmon_consistency` runs.","shortMessageHtmlLink":"Fuzz reloading with a stale monitor in chanmon_consistency"}},{"before":"7446a7953a7c1b6b48f87672208d8f5fe3b00a64","after":"b7a57bc6dfc602fa243cfaa6d2e394ddcfc7607a","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-10T21:45:01.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fuzz reloading with a stale monitor in chanmon_consistency\n\nNow that we are gearing up to support fully async monitor storage,\nwe really need to fuzz monitor updates not completing before a\nreload, which we do here in the `chanmon_consistency` fuzzer.\n\nWhile there are more parts to async monitor updating that we need\nto fuzz, this at least gets us started by having basic async\nrestart cases handled. In the future, we should extend this to make\nsure some basic properties (eg claim/balance consistency) remain\ntrue through `chanmon_consistency` runs.","shortMessageHtmlLink":"Fuzz reloading with a stale monitor in chanmon_consistency"}},{"before":"fd0ecbd8dd94bc76b6a962e98e628cc4dbe22d9a","after":"7446a7953a7c1b6b48f87672208d8f5fe3b00a64","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-10T21:01:00.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fuzz reloading with a stale monitor in chanmon_consistency\n\nNow that we are gearing up to support fully async monitor storage,\nwe really need to fuzz monitor updates not completing before a\nreload, which we do here in the `chanmon_consistency` fuzzer.\n\nWhile there are more parts to async monitor updating that we need\nto fuzz, this at least gets us started by having basic async\nrestart cases handled. In the future, we should extend this to make\nsure some basic properties (eg claim/balance consistency) remain\ntrue through `chanmon_consistency` runs.","shortMessageHtmlLink":"Fuzz reloading with a stale monitor in chanmon_consistency"}},{"before":"725d971a7bd90429d145fdafcd98b89f106d92cc","after":"fd0ecbd8dd94bc76b6a962e98e628cc4dbe22d9a","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-10T18:42:30.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fuzz reloading with a stale monitor in chanmon_consistency\n\nNow that we are gearing up to support fully async monitor storage,\nwe really need to fuzz monitor updates not completing before a\nreload, which we do here in the `chanmon_consistency` fuzzer.\n\nWhile there are more parts to async monitor updating that we need\nto fuzz, this at least gets us started by having basic async\nrestart cases handled. In the future, we should extend this to make\nsure some basic properties (eg claim/balance consistency) remain\ntrue through `chanmon_consistency` runs.","shortMessageHtmlLink":"Fuzz reloading with a stale monitor in chanmon_consistency"}},{"before":"1c3ce0c6b89aef372d93cf810a117043caf74304","after":"17b77e0bcf0fd6721ac820df07a92ff697b3f50f","ref":"refs/heads/2024-05-close-on-stale-fees","pushedAt":"2024-06-10T15:18:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Add a test of stale-feerate-force-closure behavior","shortMessageHtmlLink":"Add a test of stale-feerate-force-closure behavior"}},{"before":"9cc99b27e0b6471629d35df79518b7d282041e17","after":"1c3ce0c6b89aef372d93cf810a117043caf74304","ref":"refs/heads/2024-05-close-on-stale-fees","pushedAt":"2024-06-10T15:13:02.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Add a test of stale-feerate-force-closure behavior","shortMessageHtmlLink":"Add a test of stale-feerate-force-closure behavior"}},{"before":"2180f4567be8911d3a3ff92379a4ccd5f552edd2","after":"725d971a7bd90429d145fdafcd98b89f106d92cc","ref":"refs/heads/2024-04-async-monitor-fuzz","pushedAt":"2024-06-10T15:07:40.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fuzz reloading with a stale monitor in chanmon_consistency\n\nNow that we are gearing up to support fully async monitor storage,\nwe really need to fuzz monitor updates not completing before a\nreload, which we do here in the `chanmon_consistency` fuzzer.","shortMessageHtmlLink":"Fuzz reloading with a stale monitor in chanmon_consistency"}},{"before":"c166c2177a5fe325c8eb567da821d67202ea8216","after":"1d0c6c60c6802126b3b29d6a2aa026c1aa33db02","ref":"refs/heads/upstream/main","pushedAt":"2024-06-10T14:05:06.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3101 from tnull/2024-06-fix-tx-sync\n\ntx-sync: Make confirmables `Deref` and run `rustfmt`","shortMessageHtmlLink":"Merge pull request lightningdevkit#3101 from tnull/2024-06-fix-tx-sync"}},{"before":"8ca3259bfa90948b8ce73aedc664d31a6bc6b0e1","after":"c166c2177a5fe325c8eb567da821d67202ea8216","ref":"refs/heads/upstream/main","pushedAt":"2024-06-07T19:44:47.000Z","pushType":"push","commitsCount":21,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3111 from tnull/2024-06-rustfmt-fuzz-the-easy-part\n\n`rustfmt`: Reformat the `fuzz` dir – the easy part","shortMessageHtmlLink":"Merge pull request lightningdevkit#3111 from tnull/2024-06-rustfmt-fu…"}},{"before":"88124a901ac403180b200a9da68b9834062c3fd0","after":"8ca3259bfa90948b8ce73aedc664d31a6bc6b0e1","ref":"refs/heads/upstream/main","pushedAt":"2024-06-07T19:40:35.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3083 from valentinewallace/2024-05-ignore-onion-err-chan-upd\n\nIgnore channel updates in onion errors","shortMessageHtmlLink":"Merge pull request lightningdevkit#3083 from valentinewallace/2024-05…"}},{"before":"1e49c4a67159961440113e165287c7c26ffa992a","after":"88124a901ac403180b200a9da68b9834062c3fd0","ref":"refs/heads/upstream/main","pushedAt":"2024-06-07T18:40:56.000Z","pushType":"push","commitsCount":8,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3080 from jkczyz/2024-05-compact-blinded-path-creation-trait\n\nOptional compact blinded path creation","shortMessageHtmlLink":"Merge pull request lightningdevkit#3080 from jkczyz/2024-05-compact-b…"}},{"before":"2701bc512ad0d73a3309bf87a6b2487b2bfe00bf","after":"1e49c4a67159961440113e165287c7c26ffa992a","ref":"refs/heads/upstream/main","pushedAt":"2024-06-07T16:48:22.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3096 from alecchendev/2024-06-drop-one-signer-call\n\nCache commitment point on ExternalHTLCClaim to drop a signer call","shortMessageHtmlLink":"Merge pull request lightningdevkit#3096 from alecchendev/2024-06-drop…"}},{"before":"0d4a06f072c29543302aed715a992a0760b9d13a","after":"515d757b95b1d3ba7a940310d20b8ac1222ee610","ref":"refs/heads/2024-06-routing-counters","pushedAt":"2024-06-06T18:49:51.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"f use local field","shortMessageHtmlLink":"f use local field"}},{"before":"89ce35e36f61f3e332565a42c0d8cd1c2264d461","after":"f785ff176f0e214ea1b0f05bfd1f61312d7741f7","ref":"refs/heads/2024-06-real-bench","pushedAt":"2024-06-06T15:59:19.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Push the route benchmark results into a separate uninlined function\n\nThis ensures the route benchmarks themselves will appear with a\ndistinct callgraph, making router profiling somewhat easier.","shortMessageHtmlLink":"Push the route benchmark results into a separate uninlined function"}},{"before":null,"after":"0d4a06f072c29543302aed715a992a0760b9d13a","ref":"refs/heads/2024-06-routing-counters","pushedAt":"2024-06-06T15:58:46.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"f use local field","shortMessageHtmlLink":"f use local field"}},{"before":null,"after":"89ce35e36f61f3e332565a42c0d8cd1c2264d461","ref":"refs/heads/2024-06-real-bench","pushedAt":"2024-06-06T15:57:28.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Use a real (probing-generated) scorer in benchmarks\n\nUntil now, our routing benchmarks used a synthetic scorer,\ngenerated by scoring random paths to build up some history. This is\npretty far removed from real-world routing conditions, as\nalternative paths generally have no scoring information and even\nthe paths we do take have only one or two past scoring results.\n\nInstead, we fetch a static serialized scorer, generated using\nminutely probes. This means future changes to the scorer's data may\nbe harder to benchmark, but makes for substantially more realistic\nbenchmarks for changes which don't impact the serialized state.","shortMessageHtmlLink":"Use a real (probing-generated) scorer in benchmarks"}},{"before":"db4c36950d6c9303bb6710b37667c0f59c81dfbe","after":"62ffd783175cda66ac416bc0410f47dfec07c31d","ref":"refs/heads/2023-12-routing-dist-vec","pushedAt":"2024-06-06T15:56:53.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Layout channel info to ensure routing uses cache lines well\n\nBecause we scan per-channel information in the hot inner loop of\nour routefinding immediately after looking a channel up in a\n`HashMap`, we end up spending a nontrivial portion of our\nroutefinding time waiting on memory to be read in.\n\nWhile there is only so much we can do about that, ensuring the\nchannel information that we care about is sitting on one or\nadjacent cache lines avoids paying that penalty twice. Thus, here\nwe manually lay out `ChannelInfo` and `ChannelUpdateInfo` and set\nthem to 128b and 32b alignment, respectively. This wastes some\nspace in memory in our network graph, but improves routing\nperformance in return.","shortMessageHtmlLink":"Layout channel info to ensure routing uses cache lines well"}},{"before":"41fac75f1d4025c3912589e93348f0098e0c56ee","after":"1027b935fb92b924e3e085146364e827beeb8e35","ref":"refs/heads/2024-04-123-bindings","pushedAt":"2024-06-06T14:17:50.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3094 from TheBlueMatt/2024-06-tx-sync-bindings\n\n[0.0.123-bindings] Minimal updates to `lightning-transaction-sync` for bindings","shortMessageHtmlLink":"Merge pull request lightningdevkit#3094 from TheBlueMatt/2024-06-tx-s…"}},{"before":"e5b74026a0a463e3e9029fc70e2d5813784905a1","after":"2701bc512ad0d73a3309bf87a6b2487b2bfe00bf","ref":"refs/heads/upstream/main","pushedAt":"2024-06-05T21:41:53.000Z","pushType":"push","commitsCount":4,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3072 from arik-so/arik/gossip-v2-parsing\n\nReintroduce addresses to NodeAnnouncementInfo.","shortMessageHtmlLink":"Merge pull request lightningdevkit#3072 from arik-so/arik/gossip-v2-p…"}},{"before":null,"after":"4ec286979c3f9630d3e7b7c6510146f2660e0db0","ref":"refs/heads/2024-06-tx-sync-bindings-upstream","pushedAt":"2024-06-05T14:46:20.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Mark BDK types exported from transaction-sync as no-export","shortMessageHtmlLink":"Mark BDK types exported from transaction-sync as no-export"}},{"before":null,"after":"b57bed3852a7d005b7f8546e5f74eb7ace0a7e75","ref":"refs/heads/2024-06-tx-sync-bindings","pushedAt":"2024-06-05T14:44:57.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Minimal updates to `lightning-transaction-sync` for bindings\n\nBindings don't accept dyn traits, but instead map any traits to a\nsingle dynamic struct. Thus, we can always take a specific trait\nto accept any implementation, which we do here.","shortMessageHtmlLink":"Minimal updates to lightning-transaction-sync for bindings"}},{"before":"8880b552ccc42d953f447f235afa16b6ffc17196","after":"e5b74026a0a463e3e9029fc70e2d5813784905a1","ref":"refs/heads/upstream/main","pushedAt":"2024-06-05T13:22:16.000Z","pushType":"push","commitsCount":3,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3091 from TheBlueMatt/2024-06-channel_state_ser\n\nMove serialization of `channel_state` fields to `channel_state.rs`","shortMessageHtmlLink":"Merge pull request lightningdevkit#3091 from TheBlueMatt/2024-06-chan…"}},{"before":"3cd1cb5946128cbf28db1a33b7eadb6aeb36fe2b","after":"8880b552ccc42d953f447f235afa16b6ffc17196","ref":"refs/heads/upstream/main","pushedAt":"2024-06-04T21:08:51.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3081 from G8XSU/2024-05-08-claimable-persist-3049-outputs\n\nWatch all outputs irrespective of claimable outpoints","shortMessageHtmlLink":"Merge pull request lightningdevkit#3081 from G8XSU/2024-05-08-claimab…"}},{"before":"9b5e1b7db714653d6a2e45aa0d8de144d9f66c7b","after":"64e5dc4933a59d63243df81541c5abf063248361","ref":"refs/heads/2024-06-channel_state_ser","pushedAt":"2024-06-04T19:33:05.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fromat moved code in `channel_state.rs`","shortMessageHtmlLink":"Fromat moved code in channel_state.rs"}},{"before":"96fe1855a759825342e2a2d123055dc5bfe1899a","after":"3cd1cb5946128cbf28db1a33b7eadb6aeb36fe2b","ref":"refs/heads/upstream/main","pushedAt":"2024-06-04T19:13:48.000Z","pushType":"push","commitsCount":9,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3060 from TheBlueMatt/2024-05-parallel-async-om-events\n\nAdd a parallel async event handler to OnionMessenger and pass it directly to BackgroundProcessor","shortMessageHtmlLink":"Merge pull request lightningdevkit#3060 from TheBlueMatt/2024-05-para…"}},{"before":"e8bc40860f6f65153c601eba30132098914eacec","after":"9b5e1b7db714653d6a2e45aa0d8de144d9f66c7b","ref":"refs/heads/2024-06-channel_state_ser","pushedAt":"2024-06-04T19:10:20.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Fromat moved code in `channel_state.rs`","shortMessageHtmlLink":"Fromat moved code in channel_state.rs"}},{"before":"15c709d7475686a6955f6a0d11eff877e4533ce6","after":"96fe1855a759825342e2a2d123055dc5bfe1899a","ref":"refs/heads/upstream/main","pushedAt":"2024-06-04T17:53:38.000Z","pushType":"push","commitsCount":2,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3088 from alecchendev/2024-06-fc-no-disconnect\n\nDon't disconnect on manual force closes","shortMessageHtmlLink":"Merge pull request lightningdevkit#3088 from alecchendev/2024-06-fc-n…"}},{"before":"9b523d9de8ccbc6915dbdeaf2a265fbc43bc18c4","after":"41fac75f1d4025c3912589e93348f0098e0c56ee","ref":"refs/heads/2024-04-123-bindings","pushedAt":"2024-06-04T17:52:23.000Z","pushType":"push","commitsCount":5,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Merge pull request #3092 from TheBlueMatt/2024-06-channel_state-module-123\n\n[0.0.123-bindings] Move the public channel state API into a new module","shortMessageHtmlLink":"Merge pull request lightningdevkit#3092 from TheBlueMatt/2024-06-chan…"}},{"before":null,"after":"36c65860a3343eed2da7b081f38d050dd2240229","ref":"refs/heads/2024-06-channel_state-module-123","pushedAt":"2024-06-04T14:50:41.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"TheBlueMatt","name":"Matt Corallo","path":"/TheBlueMatt","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/649246?s=80&v=4"},"commit":{"message":"Move serialization of `channel_state` fields to `channel_state.rs`\n\n1f616c0058f77e074c429fa7fb8b2f4594cdb9ad moved a handful of structs\nto the new `channel_state.rs` but forgot to move their\nserialization logic with them, which is corrected here.","shortMessageHtmlLink":"Move serialization of channel_state fields to channel_state.rs"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEYbMiUAA","startCursor":null,"endCursor":null}},"title":"Activity · TheBlueMatt/rust-lightning"}