Skip to content

Commit 9751780

Browse files
authored
Merge pull request #815 from starius/publish-errors-handler
sweepbatcher: add option WithPublishErrorHandler
2 parents 876ed40 + 7c93dff commit 9751780

File tree

5 files changed

+314
-128
lines changed

5 files changed

+314
-128
lines changed

go.mod

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
module github.com/lightninglabs/loop
22

33
require (
4-
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46
4+
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240625142744-cc26860b4026
55
github.com/btcsuite/btcd/btcec/v2 v2.3.3
66
github.com/btcsuite/btcd/btcutil v1.1.5
77
github.com/btcsuite/btcd/btcutil/psbt v1.1.8
88
github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0
99
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f
10-
github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb
10+
github.com/btcsuite/btcwallet v0.16.10-0.20240718224643-db3a4a2543bd
1111
github.com/btcsuite/btcwallet/wtxmgr v1.5.3
1212
github.com/coreos/bbolt v1.3.3
1313
github.com/davecgh/go-spew v1.1.1
@@ -23,7 +23,7 @@ require (
2323
github.com/lightninglabs/lndclient v0.18.0-1
2424
github.com/lightninglabs/loop/looprpc v1.0.0
2525
github.com/lightninglabs/loop/swapserverrpc v1.0.8
26-
github.com/lightningnetwork/lnd v0.18.0-beta.1
26+
github.com/lightningnetwork/lnd v0.18.3-beta.rc1
2727
github.com/lightningnetwork/lnd/cert v1.2.2
2828
github.com/lightningnetwork/lnd/clock v1.1.1
2929
github.com/lightningnetwork/lnd/queue v1.1.1
@@ -37,7 +37,7 @@ require (
3737
google.golang.org/protobuf v1.34.2
3838
gopkg.in/macaroon-bakery.v2 v2.1.0
3939
gopkg.in/macaroon.v2 v2.1.0
40-
modernc.org/sqlite v1.29.8
40+
modernc.org/sqlite v1.29.10
4141
)
4242

4343
require (
@@ -99,6 +99,7 @@ require (
9999
github.com/jackc/pgservicefile v0.0.0-20221227161230-091c0ba34f0a // indirect
100100
github.com/jackc/pgtype v1.14.0 // indirect
101101
github.com/jackc/pgx/v4 v4.18.2 // indirect
102+
github.com/jackc/pgx/v5 v5.3.1 // indirect
102103
github.com/jackpal/gateway v1.0.5 // indirect
103104
github.com/jackpal/go-nat-pmp v0.0.0-20170405195558-28a68d0c24ad // indirect
104105
github.com/jonboulle/clockwork v0.2.2 // indirect
@@ -109,11 +110,11 @@ require (
109110
github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect
110111
github.com/lightninglabs/neutrino v0.16.1-0.20240425105051-602843d34ffd // indirect
111112
github.com/lightninglabs/neutrino/cache v1.1.2 // indirect
112-
github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f // indirect
113-
github.com/lightningnetwork/lnd/fn v1.0.5 // indirect
114-
github.com/lightningnetwork/lnd/healthcheck v1.2.4 // indirect
115-
github.com/lightningnetwork/lnd/kvdb v1.4.8 // indirect
116-
github.com/lightningnetwork/lnd/sqldb v1.0.2 // indirect
113+
github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb // indirect
114+
github.com/lightningnetwork/lnd/fn v1.2.0 // indirect
115+
github.com/lightningnetwork/lnd/healthcheck v1.2.5 // indirect
116+
github.com/lightningnetwork/lnd/kvdb v1.4.10 // indirect
117+
github.com/lightningnetwork/lnd/sqldb v1.0.3 // indirect
117118
github.com/lightningnetwork/lnd/tlv v1.2.3 // indirect
118119
github.com/ltcsuite/ltcd v0.0.0-20190101042124-f37f8bf35796 // indirect
119120
github.com/mattn/go-isatty v0.0.20 // indirect

go.sum

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -648,8 +648,8 @@ github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl
648648
github.com/btcsuite/btcd v0.20.1-beta/go.mod h1:wVuoA8VJLEcwgqHBwHmzLRazpKxTv13Px/pDuV7OomQ=
649649
github.com/btcsuite/btcd v0.22.0-beta.0.20220111032746-97732e52810c/go.mod h1:tjmYdS6MLJ5/s0Fj4DbLgSbDHbEqLJrtnHecBFkdz5M=
650650
github.com/btcsuite/btcd v0.23.5-0.20231215221805-96c9fd8078fd/go.mod h1:nm3Bko6zh6bWP60UxwoT5LzdGJsQJaPo6HjduXq9p6A=
651-
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46 h1:tjpNTdZNQqE14menwDGAxWfzN0DFHVTXFEyEL8yvA/4=
652-
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240403021926-ae5533602c46/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg=
651+
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240625142744-cc26860b4026 h1:s8/96vQSj05bqLl9RyM/eMX8gLtiayEj520TVE4YGy0=
652+
github.com/btcsuite/btcd v0.24.2-beta.rc1.0.20240625142744-cc26860b4026/go.mod h1:5C8ChTkl5ejr3WHj8tkQSCmydiMEPB0ZhQhehpq7Dgg=
653653
github.com/btcsuite/btcd/btcec/v2 v2.1.0/go.mod h1:2VzYrv4Gm4apmbVVsSq5bqf1Ec8v56E48Vt0Y/umPgA=
654654
github.com/btcsuite/btcd/btcec/v2 v2.1.3/go.mod h1:ctjw4H1kknNJmRN4iP1R7bTQ+v3GJkZBd6mui8ZsAZE=
655655
github.com/btcsuite/btcd/btcec/v2 v2.3.3 h1:6+iXlDKE8RMtKsvK0gshlXIuPbyWM/h84Ensb7o3sC0=
@@ -667,8 +667,8 @@ github.com/btcsuite/btcd/chaincfg/chainhash v1.1.0/go.mod h1:7SFka0XMvUgj3hfZtyd
667667
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9VhRV3jjAVU7DJVjMaK+IsvSeZvFo=
668668
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
669669
github.com/btcsuite/btcutil v0.0.0-20190425235716-9e5f4b9a998d/go.mod h1:+5NJ2+qvTyV9exUAL/rxXi3DcLg2Ts+ymUAY5y4NvMg=
670-
github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb h1:qoIOlBPRZWtfpcbQlNFf67Wz8ZlXo+mxQc9Pnbm/iqU=
671-
github.com/btcsuite/btcwallet v0.16.10-0.20240404104514-b2f31f9045fb/go.mod h1:2C3Q/MhYAKmk7F+Tey6LfKtKRTdQsrCf8AAAzzDPmH4=
670+
github.com/btcsuite/btcwallet v0.16.10-0.20240718224643-db3a4a2543bd h1:QDb8foTCRoXrfoZVEzSYgSde16MJh4gCtCin8OCS0kI=
671+
github.com/btcsuite/btcwallet v0.16.10-0.20240718224643-db3a4a2543bd/go.mod h1:X2xDre+j1QphTRo54y2TikUzeSvreL1t1aMXrD8Kc5A=
672672
github.com/btcsuite/btcwallet/wallet/txauthor v1.3.4 h1:poyHFf7+5+RdxNp5r2T6IBRD7RyraUsYARYbp/7t4D8=
673673
github.com/btcsuite/btcwallet/wallet/txauthor v1.3.4/go.mod h1:GETGDQuyq+VFfH1S/+/7slLM/9aNa4l7P4ejX6dJfb0=
674674
github.com/btcsuite/btcwallet/wallet/txrules v1.2.1 h1:UZo7YRzdHbwhK7Rhv3PO9bXgTxiOH45edK5qdsdiatk=
@@ -1035,6 +1035,8 @@ github.com/jackc/pgx/v4 v4.0.0-pre1.0.20190824185557-6972a5742186/go.mod h1:X+GQ
10351035
github.com/jackc/pgx/v4 v4.12.1-0.20210724153913-640aa07df17c/go.mod h1:1QD0+tgSXP7iUjYm9C1NxKhny7lq6ee99u/z+IHFcgs=
10361036
github.com/jackc/pgx/v4 v4.18.2 h1:xVpYkNR5pk5bMCZGfClbO962UIqVABcAGt7ha1s/FeU=
10371037
github.com/jackc/pgx/v4 v4.18.2/go.mod h1:Ey4Oru5tH5sB6tV7hDmfWFahwF15Eb7DNXlRKx2CkVw=
1038+
github.com/jackc/pgx/v5 v5.3.1 h1:Fcr8QJ1ZeLi5zsPZqQeUZhNhxfkkKBOgJuYkJHoBOtU=
1039+
github.com/jackc/pgx/v5 v5.3.1/go.mod h1:t3JDKnCBlYIc0ewLF0Q7B8MXmoIaBOZj/ic7iHozM/8=
10381040
github.com/jackc/puddle v0.0.0-20190413234325-e4ced69a3a2b/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
10391041
github.com/jackc/puddle v0.0.0-20190608224051-11cab39313c9/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
10401042
github.com/jackc/puddle v1.1.3/go.mod h1:m4B5Dj62Y0fbyuIc15OsIqK0+JU8nkqQjsgx7dvjSWk=
@@ -1122,24 +1124,24 @@ github.com/lightninglabs/neutrino/cache v1.1.2 h1:C9DY/DAPaPxbFC+xNNEI/z1SJY9GS3
11221124
github.com/lightninglabs/neutrino/cache v1.1.2/go.mod h1:XJNcgdOw1LQnanGjw8Vj44CvguYA25IMKjWFZczwZuo=
11231125
github.com/lightninglabs/protobuf-go-hex-display v1.33.0-hex-display h1:Y2WiPkBS/00EiEg0qp0FhehxnQfk3vv8U6Xt3nN+rTY=
11241126
github.com/lightninglabs/protobuf-go-hex-display v1.33.0-hex-display/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=
1125-
github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f h1:Pua7+5TcFEJXIIZ1I2YAUapmbcttmLj4TTi786bIi3s=
1126-
github.com/lightningnetwork/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI=
1127-
github.com/lightningnetwork/lnd v0.18.0-beta.1 h1:7DpRre4rtUmLim4JC5oPd3KEd1Q3QpWTH6jQgSOGNYM=
1128-
github.com/lightningnetwork/lnd v0.18.0-beta.1/go.mod h1:1SA9iv9rZddNAcfP38SN9lNSVT1zf5aqmukLUoomjDU=
1127+
github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb h1:yfM05S8DXKhuCBp5qSMZdtSwvJ+GFzl94KbXMNB1JDY=
1128+
github.com/lightningnetwork/lightning-onion v1.2.1-0.20240712235311-98bd56499dfb/go.mod h1:c0kvRShutpj3l6B9WtTsNTBUtjSmjZXbJd9ZBRQOSKI=
1129+
github.com/lightningnetwork/lnd v0.18.3-beta.rc1 h1:ch6sQtld4NeSPDq359coDe/MW8gNTJjkuCmlb0xlrAw=
1130+
github.com/lightningnetwork/lnd v0.18.3-beta.rc1/go.mod h1:TbYgzDPPkyyWCk0Go2REoWh6zNR69BOq2eM+RKoCUvQ=
11291131
github.com/lightningnetwork/lnd/cert v1.2.2 h1:71YK6hogeJtxSxw2teq3eGeuy4rHGKcFf0d0Uy4qBjI=
11301132
github.com/lightningnetwork/lnd/cert v1.2.2/go.mod h1:jQmFn/Ez4zhDgq2hnYSw8r35bqGVxViXhX6Cd7HXM6U=
11311133
github.com/lightningnetwork/lnd/clock v1.1.1 h1:OfR3/zcJd2RhH0RU+zX/77c0ZiOnIMsDIBjgjWdZgA0=
11321134
github.com/lightningnetwork/lnd/clock v1.1.1/go.mod h1:mGnAhPyjYZQJmebS7aevElXKTFDuO+uNFFfMXK1W8xQ=
1133-
github.com/lightningnetwork/lnd/fn v1.0.5 h1:ffDgMSn83avw6rNzxhbt6w5/2oIrwQKTPGfyaLupZtE=
1134-
github.com/lightningnetwork/lnd/fn v1.0.5/go.mod h1:P027+0CyELd92H9gnReUkGGAqbFA1HwjHWdfaDFD51U=
1135-
github.com/lightningnetwork/lnd/healthcheck v1.2.4 h1:lLPLac+p/TllByxGSlkCwkJlkddqMP5UCoawCj3mgFQ=
1136-
github.com/lightningnetwork/lnd/healthcheck v1.2.4/go.mod h1:G7Tst2tVvWo7cx6mSBEToQC5L1XOGxzZTPB29g9Rv2I=
1137-
github.com/lightningnetwork/lnd/kvdb v1.4.8 h1:xH0a5Vi1yrcZ5BEeF2ba3vlKBRxrL9uYXlWTjOjbNTY=
1138-
github.com/lightningnetwork/lnd/kvdb v1.4.8/go.mod h1:J2diNABOoII9UrMnxXS5w7vZwP7CA1CStrl8MnIrb3A=
1135+
github.com/lightningnetwork/lnd/fn v1.2.0 h1:YTb2m8NN5ZiJAskHeBZAmR1AiPY8SXziIYPAX1VI/ZM=
1136+
github.com/lightningnetwork/lnd/fn v1.2.0/go.mod h1:SyFohpVrARPKH3XVAJZlXdVe+IwMYc4OMAvrDY32kw0=
1137+
github.com/lightningnetwork/lnd/healthcheck v1.2.5 h1:aTJy5xeBpcWgRtW/PGBDe+LMQEmNm/HQewlQx2jt7OA=
1138+
github.com/lightningnetwork/lnd/healthcheck v1.2.5/go.mod h1:G7Tst2tVvWo7cx6mSBEToQC5L1XOGxzZTPB29g9Rv2I=
1139+
github.com/lightningnetwork/lnd/kvdb v1.4.10 h1:vK89IVv1oVH9ubQWU+EmoCQFeVRaC8kfmOrqHbY5zoY=
1140+
github.com/lightningnetwork/lnd/kvdb v1.4.10/go.mod h1:J2diNABOoII9UrMnxXS5w7vZwP7CA1CStrl8MnIrb3A=
11391141
github.com/lightningnetwork/lnd/queue v1.1.1 h1:99ovBlpM9B0FRCGYJo6RSFDlt8/vOkQQZznVb18iNMI=
11401142
github.com/lightningnetwork/lnd/queue v1.1.1/go.mod h1:7A6nC1Qrm32FHuhx/mi1cieAiBZo5O6l8IBIoQxvkz4=
1141-
github.com/lightningnetwork/lnd/sqldb v1.0.2 h1:PfuYzScYMD9/QonKo/QvgsbXfTnH5DfldIimkfdW4Bk=
1142-
github.com/lightningnetwork/lnd/sqldb v1.0.2/go.mod h1:V2Xl6JNWLTKE97WJnwfs0d0TYJdIQTqK8/3aAwkd3qI=
1143+
github.com/lightningnetwork/lnd/sqldb v1.0.3 h1:zLfAwOvM+6+3+hahYO9Q3h8pVV0TghAR7iJ5YMLCd3I=
1144+
github.com/lightningnetwork/lnd/sqldb v1.0.3/go.mod h1:4cQOkdymlZ1znnjuRNvMoatQGJkRneTj2CoPSPaQhWo=
11431145
github.com/lightningnetwork/lnd/ticker v1.1.1 h1:J/b6N2hibFtC7JLV77ULQp++QLtCwT6ijJlbdiZFbSM=
11441146
github.com/lightningnetwork/lnd/ticker v1.1.1/go.mod h1:waPTRAAcwtu7Ji3+3k+u/xH5GHovTsCoSVpho0KDvdA=
11451147
github.com/lightningnetwork/lnd/tlv v1.2.3 h1:If5ibokA/UoCBGuCKaY6Vn2SJU0l9uAbehCnhTZjEP8=
@@ -1164,8 +1166,6 @@ github.com/mattn/go-isatty v0.0.16/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/
11641166
github.com/mattn/go-isatty v0.0.20 h1:xfD0iDuEKnDkl03q4limB+vH+GxLEtL/jb4xVJSWWEY=
11651167
github.com/mattn/go-isatty v0.0.20/go.mod h1:W+V8PltTTMOvKvAeJH7IuucS94S2C6jfK/D7dTCTo3Y=
11661168
github.com/mattn/go-sqlite3 v1.14.14/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU=
1167-
github.com/mattn/go-sqlite3 v1.14.22 h1:2gZY6PC6kBnID23Tichd1K+Z0oS6nE/XwU+Vz/5o4kU=
1168-
github.com/mattn/go-sqlite3 v1.14.22/go.mod h1:Uh1q+B4BYcTPb+yiD3kU8Ct7aC0hY9fxUwlHK0RXw+Y=
11691169
github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=
11701170
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369 h1:I0XW9+e1XWDxdcEniV4rQAIOPUGDq67JSCiRCgGCZLI=
11711171
github.com/matttproud/golang_protobuf_extensions v1.0.2-0.20181231171920-c182affec369/go.mod h1:BSXmuO+STAnVfrANrmjBb36TMTDstsz7MSK+HVaYKv4=
@@ -1257,8 +1257,9 @@ github.com/rogpeppe/fastuuid v1.2.0 h1:Ppwyp6VYCF1nvBTXL3trRso7mXMlRrw9ooo375wvi
12571257
github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ=
12581258
github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4=
12591259
github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc=
1260-
github.com/rogpeppe/go-internal v1.9.0 h1:73kH8U+JUqXU8lRuOHeVHaa/SZPifC7BkcraZVejAe8=
12611260
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
1261+
github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
1262+
github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
12621263
github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ=
12631264
github.com/rs/zerolog v1.13.0/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU=
12641265
github.com/rs/zerolog v1.15.0/go.mod h1:xYTKnLHcpfU2225ny5qZjxnj9NvkumZYjJHlAThCjNc=
@@ -2167,8 +2168,8 @@ modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
21672168
modernc.org/sortutil v1.2.0 h1:jQiD3PfS2REGJNzNCMMaLSp/wdMNieTbKX920Cqdgqc=
21682169
modernc.org/sortutil v1.2.0/go.mod h1:TKU2s7kJMf1AE84OoiGppNHJwvB753OYfNl2WRb++Ss=
21692170
modernc.org/sqlite v1.18.1/go.mod h1:6ho+Gow7oX5V+OiOQ6Tr4xeqbx13UZ6t+Fw9IRUG4d4=
2170-
modernc.org/sqlite v1.29.8 h1:nGKglNx9K5v0As+zF0/Gcl1kMkmaU1XynYyq92PbsC8=
2171-
modernc.org/sqlite v1.29.8/go.mod h1:lQPm27iqa4UNZpmr4Aor0MH0HkCLbt1huYDfWylLZFk=
2171+
modernc.org/sqlite v1.29.10 h1:3u93dz83myFnMilBGCOLbr+HjklS6+5rJLx4q86RDAg=
2172+
modernc.org/sqlite v1.29.10/go.mod h1:ItX2a1OVGgNsFh6Dv60JQvGfJfTPHPVpV6DF59akYOA=
21722173
modernc.org/strutil v1.1.1/go.mod h1:DE+MQQ/hjKBZS2zNInV5hhcipt5rLPWkmpbGeW5mmdw=
21732174
modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
21742175
modernc.org/strutil v1.2.0 h1:agBi9dp1I+eOnxXeiZawM8F4LawKv4NzGWSaLfyeNZA=

sweepbatcher/sweep_batch.go

Lines changed: 84 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -282,6 +282,11 @@ type batch struct {
282282
// verifySchnorrSig is a function that verifies a schnorr signature.
283283
verifySchnorrSig VerifySchnorrSig
284284

285+
// publishErrorHandler is a function that handles transaction publishing
286+
// error. By default, it logs all errors as warnings, but "insufficient
287+
// fee" as Info.
288+
publishErrorHandler PublishErrorHandler
289+
285290
// purger is a function that can take a sweep which is being purged and
286291
// hand it over to the batcher for further processing.
287292
purger Purger
@@ -308,23 +313,24 @@ type Purger func(sweepReq *SweepRequest) error
308313
// struct is only used as a wrapper for the arguments that are required to
309314
// create a new batch.
310315
type batchKit struct {
311-
id int32
312-
batchTxid *chainhash.Hash
313-
batchPkScript []byte
314-
state batchState
315-
primaryID lntypes.Hash
316-
sweeps map[lntypes.Hash]sweep
317-
rbfCache rbfCache
318-
returnChan chan SweepRequest
319-
wallet lndclient.WalletKitClient
320-
chainNotifier lndclient.ChainNotifierClient
321-
signerClient lndclient.SignerClient
322-
musig2SignSweep MuSig2SignSweep
323-
verifySchnorrSig VerifySchnorrSig
324-
purger Purger
325-
store BatcherStore
326-
log btclog.Logger
327-
quit chan struct{}
316+
id int32
317+
batchTxid *chainhash.Hash
318+
batchPkScript []byte
319+
state batchState
320+
primaryID lntypes.Hash
321+
sweeps map[lntypes.Hash]sweep
322+
rbfCache rbfCache
323+
returnChan chan SweepRequest
324+
wallet lndclient.WalletKitClient
325+
chainNotifier lndclient.ChainNotifierClient
326+
signerClient lndclient.SignerClient
327+
musig2SignSweep MuSig2SignSweep
328+
verifySchnorrSig VerifySchnorrSig
329+
publishErrorHandler PublishErrorHandler
330+
purger Purger
331+
store BatcherStore
332+
log btclog.Logger
333+
quit chan struct{}
328334
}
329335

330336
// scheduleNextCall schedules the next call to the batch handler's main event
@@ -353,28 +359,29 @@ func NewBatch(cfg batchConfig, bk batchKit) *batch {
353359
return &batch{
354360
// We set the ID to a negative value to flag that this batch has
355361
// never been persisted, so it needs to be assigned a new ID.
356-
id: -1,
357-
state: Open,
358-
sweeps: make(map[lntypes.Hash]sweep),
359-
blockEpochChan: make(chan int32),
360-
spendChan: make(chan *chainntnfs.SpendDetail),
361-
confChan: make(chan *chainntnfs.TxConfirmation, 1),
362-
reorgChan: make(chan struct{}, 1),
363-
errChan: make(chan error, 1),
364-
callEnter: make(chan struct{}),
365-
callLeave: make(chan struct{}),
366-
stopping: make(chan struct{}),
367-
finished: make(chan struct{}),
368-
quit: bk.quit,
369-
batchTxid: bk.batchTxid,
370-
wallet: bk.wallet,
371-
chainNotifier: bk.chainNotifier,
372-
signerClient: bk.signerClient,
373-
muSig2SignSweep: bk.musig2SignSweep,
374-
verifySchnorrSig: bk.verifySchnorrSig,
375-
purger: bk.purger,
376-
store: bk.store,
377-
cfg: &cfg,
362+
id: -1,
363+
state: Open,
364+
sweeps: make(map[lntypes.Hash]sweep),
365+
blockEpochChan: make(chan int32),
366+
spendChan: make(chan *chainntnfs.SpendDetail),
367+
confChan: make(chan *chainntnfs.TxConfirmation, 1),
368+
reorgChan: make(chan struct{}, 1),
369+
errChan: make(chan error, 1),
370+
callEnter: make(chan struct{}),
371+
callLeave: make(chan struct{}),
372+
stopping: make(chan struct{}),
373+
finished: make(chan struct{}),
374+
quit: bk.quit,
375+
batchTxid: bk.batchTxid,
376+
wallet: bk.wallet,
377+
chainNotifier: bk.chainNotifier,
378+
signerClient: bk.signerClient,
379+
muSig2SignSweep: bk.musig2SignSweep,
380+
verifySchnorrSig: bk.verifySchnorrSig,
381+
publishErrorHandler: bk.publishErrorHandler,
382+
purger: bk.purger,
383+
store: bk.store,
384+
cfg: &cfg,
378385
}
379386
}
380387

@@ -396,32 +403,33 @@ func NewBatchFromDB(cfg batchConfig, bk batchKit) (*batch, error) {
396403
}
397404

398405
return &batch{
399-
id: bk.id,
400-
state: bk.state,
401-
primarySweepID: bk.primaryID,
402-
sweeps: bk.sweeps,
403-
blockEpochChan: make(chan int32),
404-
spendChan: make(chan *chainntnfs.SpendDetail),
405-
confChan: make(chan *chainntnfs.TxConfirmation, 1),
406-
reorgChan: make(chan struct{}, 1),
407-
errChan: make(chan error, 1),
408-
callEnter: make(chan struct{}),
409-
callLeave: make(chan struct{}),
410-
stopping: make(chan struct{}),
411-
finished: make(chan struct{}),
412-
quit: bk.quit,
413-
batchTxid: bk.batchTxid,
414-
batchPkScript: bk.batchPkScript,
415-
rbfCache: bk.rbfCache,
416-
wallet: bk.wallet,
417-
chainNotifier: bk.chainNotifier,
418-
signerClient: bk.signerClient,
419-
muSig2SignSweep: bk.musig2SignSweep,
420-
verifySchnorrSig: bk.verifySchnorrSig,
421-
purger: bk.purger,
422-
store: bk.store,
423-
log: bk.log,
424-
cfg: &cfg,
406+
id: bk.id,
407+
state: bk.state,
408+
primarySweepID: bk.primaryID,
409+
sweeps: bk.sweeps,
410+
blockEpochChan: make(chan int32),
411+
spendChan: make(chan *chainntnfs.SpendDetail),
412+
confChan: make(chan *chainntnfs.TxConfirmation, 1),
413+
reorgChan: make(chan struct{}, 1),
414+
errChan: make(chan error, 1),
415+
callEnter: make(chan struct{}),
416+
callLeave: make(chan struct{}),
417+
stopping: make(chan struct{}),
418+
finished: make(chan struct{}),
419+
quit: bk.quit,
420+
batchTxid: bk.batchTxid,
421+
batchPkScript: bk.batchPkScript,
422+
rbfCache: bk.rbfCache,
423+
wallet: bk.wallet,
424+
chainNotifier: bk.chainNotifier,
425+
signerClient: bk.signerClient,
426+
muSig2SignSweep: bk.musig2SignSweep,
427+
verifySchnorrSig: bk.verifySchnorrSig,
428+
publishErrorHandler: bk.publishErrorHandler,
429+
purger: bk.purger,
430+
store: bk.store,
431+
log: bk.log,
432+
cfg: &cfg,
425433
}, nil
426434
}
427435

@@ -795,23 +803,31 @@ func (b *batch) publish(ctx context.Context) error {
795803
return err
796804
}
797805

806+
// logPublishError is a function which logs publish errors.
807+
logPublishError := func(errMsg string, err error) {
808+
b.publishErrorHandler(err, errMsg, b.log)
809+
}
810+
798811
if b.cfg.mixedBatch {
799812
fee, err, signSuccess = b.publishMixedBatch(ctx)
800813
if err != nil {
801-
b.log.Warnf("Mixed batch publish error: %v", err)
814+
logPublishError("mixed batch publish error", err)
802815
}
803816
} else {
804817
fee, err, signSuccess = b.publishBatchCoop(ctx)
805818
if err != nil {
806-
b.log.Warnf("co-op publish error: %v", err)
819+
logPublishError("co-op publish error", err)
807820
}
808821
}
809822

810823
if !signSuccess {
811824
fee, err = b.publishBatch(ctx)
825+
if err != nil {
826+
logPublishError("non-coop publish error", err)
827+
}
812828
}
829+
813830
if err != nil {
814-
b.log.Warnf("publish error: %v", err)
815831
return nil
816832
}
817833

0 commit comments

Comments
 (0)