1
+ package htlcswitch
2
+
3
+ import (
4
+ "github.com/btcsuite/btcd/btcec/v2"
5
+ "github.com/btcsuite/btcd/btcutil"
6
+ "github.com/lightningnetwork/lnd/fn"
7
+ "github.com/lightningnetwork/lnd/lnwallet/chainfee"
8
+ "github.com/lightningnetwork/lnd/lnwire"
9
+ )
10
+
11
+ type DynUpdate func (* lnwire.DynPropose )
12
+
13
+ func WithDustLimit (amt btcutil.Amount ) DynUpdate {
14
+ return func (dp * lnwire.DynPropose ) {
15
+ dp .DustLimit = fn .Some (amt )
16
+ }
17
+ }
18
+
19
+ func WithMaxValueInFlight (amt lnwire.MilliSatoshi ) DynUpdate {
20
+ return func (dp * lnwire.DynPropose ) {
21
+ dp .MaxValueInFlight = fn .Some (amt )
22
+ }
23
+ }
24
+
25
+ func WithChannelReserve (amt btcutil.Amount ) DynUpdate {
26
+ return func (dp * lnwire.DynPropose ) {
27
+ dp .ChannelReserve = fn .Some (amt )
28
+ }
29
+ }
30
+
31
+ func WithCsvDelay (blks uint16 ) DynUpdate {
32
+ return func (dp * lnwire.DynPropose ) {
33
+ dp .CsvDelay = fn .Some (blks )
34
+ }
35
+ }
36
+
37
+ func WithMaxAcceptedHTLCs (max uint16 ) DynUpdate {
38
+ return func (dp * lnwire.DynPropose ) {
39
+ dp .MaxAcceptedHTLCs = fn .Some (max )
40
+ }
41
+ }
42
+
43
+ func WithFundingKey (key btcec.PublicKey ) DynUpdate {
44
+ return func (dp * lnwire.DynPropose ) {
45
+ dp .FundingKey = fn .Some (key )
46
+ }
47
+ }
48
+
49
+ func WithChannelType (ty lnwire.ChannelType ,
50
+ rate chainfee.SatPerKWeight ) DynUpdate {
51
+
52
+ return func (dp * lnwire.DynPropose ) {
53
+ dp .ChannelType = fn .Some (ty )
54
+ dp .KickoffFeerate = fn .Some (rate )
55
+ }
56
+ }
57
+
58
+ type dyncommNegotiator struct {}
59
+
60
+ type DynResponse = fn.Either [lnwire.DynAck , lnwire.DynReject ]
61
+
62
+ func (* dyncommNegotiator ) recvDynPropose (msg lnwire.DynPropose ) (
63
+ DynResponse , error ) {
64
+
65
+ panic ("NOT IMPLEMENTED: dyncommNegotiator.recvDynPropose" )
66
+ }
67
+
68
+ func (* dyncommNegotiator ) recvDynAck (msg lnwire.DynAck ) (lnwire.DynPropose ,
69
+ error ) {
70
+
71
+ panic ("NOT IMPLEMENTED: dyncommNegotiator.recvDynAck" )
72
+ }
73
+
74
+ func (* dyncommNegotiator ) recvDynReject (msg lnwire.DynReject ) error {
75
+ panic ("NOT IMPLEMENTED: dyncommNegotiator.recvDynReject" )
76
+ }
77
+
78
+ func (* dyncommNegotiator ) sendDynPropose (
79
+ updates ... DynUpdate ) lnwire.DynPropose {
80
+
81
+ panic ("NOT IMPLEMENTED: dyncommNegotiator.sendDynPropose" )
82
+ }
83
+
84
+ func (* dyncommNegotiator ) reset () {
85
+ panic ("NOT IMPLEMENTED: dyncommNegotiator.reset" )
86
+ }
0 commit comments