@@ -32,6 +32,7 @@ import (
3232 "github.com/lightninglabs/loop/staticaddr/address"
3333 "github.com/lightninglabs/loop/staticaddr/deposit"
3434 "github.com/lightninglabs/loop/staticaddr/loopin"
35+ "github.com/lightninglabs/loop/staticaddr/openchannel"
3536 "github.com/lightninglabs/loop/staticaddr/withdraw"
3637 "github.com/lightninglabs/loop/swap"
3738 "github.com/lightninglabs/loop/swapserverrpc"
@@ -97,6 +98,7 @@ type swapClientServer struct {
9798 depositManager * deposit.Manager
9899 withdrawalManager * withdraw.Manager
99100 staticLoopInManager * loopin.Manager
101+ openChannelManager * openchannel.Manager
100102 assetClient * assets.TapdClient
101103 swaps map [lntypes.Hash ]loop.SwapInfo
102104 subscribers map [int ]chan <- interface {}
@@ -1974,13 +1976,14 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
19741976 }
19751977
19761978 var (
1977- totalNumDeposits = len (allDeposits )
1978- valueUnconfirmed int64
1979- valueDeposited int64
1980- valueExpired int64
1981- valueWithdrawn int64
1982- valueLoopedIn int64
1983- htlcTimeoutSwept int64
1979+ totalNumDeposits = len (allDeposits )
1980+ valueUnconfirmed int64
1981+ valueDeposited int64
1982+ valueExpired int64
1983+ valueWithdrawn int64
1984+ valueLoopedIn int64
1985+ valueChannelsOpened int64
1986+ htlcTimeoutSwept int64
19841987 )
19851988
19861989 // Value unconfirmed.
@@ -2012,6 +2015,9 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
20122015
20132016 case deposit .HtlcTimeoutSwept :
20142017 htlcTimeoutSwept += value
2018+
2019+ case deposit .ChannelPublished :
2020+ valueChannelsOpened += value
20152021 }
20162022 }
20172023
@@ -2036,6 +2042,7 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
20362042 ValueExpiredSatoshis : valueExpired ,
20372043 ValueWithdrawnSatoshis : valueWithdrawn ,
20382044 ValueLoopedInSatoshis : valueLoopedIn ,
2045+ ValueChannelsOpened : valueChannelsOpened ,
20392046 ValueHtlcTimeoutSweepsSatoshis : htlcTimeoutSwept ,
20402047 }, nil
20412048}
@@ -2093,6 +2100,35 @@ func (s *swapClientServer) StaticAddressLoopIn(ctx context.Context,
20932100 }, nil
20942101}
20952102
2103+ // StaticOpenChannel initiates an open channel request using static address
2104+ // deposits.
2105+ func (s * swapClientServer ) StaticOpenChannel (ctx context.Context ,
2106+ req * looprpc.OpenChannelRequest ) (* looprpc.StaticOpenChannelResponse ,
2107+ error ) {
2108+
2109+ infof ("Static open channel request received" )
2110+
2111+ chanOpenTxHash , err := s .openChannelManager .DeliverOpenChannelRequest (
2112+ ctx , req ,
2113+ )
2114+
2115+ var (
2116+ txHash string
2117+ errMsg string
2118+ )
2119+ if chanOpenTxHash != nil {
2120+ txHash = chanOpenTxHash .String ()
2121+ }
2122+ if err != nil {
2123+ errMsg = err .Error ()
2124+ }
2125+
2126+ return & looprpc.StaticOpenChannelResponse {
2127+ ChannelOpenTxHash : txHash ,
2128+ Error : errMsg ,
2129+ }, nil
2130+ }
2131+
20962132type filterFunc func (deposits * deposit.Deposit ) bool
20972133
20982134func filter (deposits []* deposit.Deposit , f filterFunc ) []* looprpc.Deposit {
@@ -2146,6 +2182,12 @@ func toClientDepositState(state fsm.StateType) looprpc.DepositState {
21462182 case deposit .LoopedIn :
21472183 return looprpc .DepositState_LOOPED_IN
21482184
2185+ case deposit .OpeningChannel :
2186+ return looprpc .DepositState_OPENING_CHANNEL
2187+
2188+ case deposit .ChannelPublished :
2189+ return looprpc .DepositState_CHANNEL_PUBLISHED
2190+
21492191 case deposit .SweepHtlcTimeout :
21502192 return looprpc .DepositState_SWEEP_HTLC_TIMEOUT
21512193
@@ -2225,6 +2267,12 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
22252267 case looprpc .DepositState_LOOPED_IN :
22262268 return deposit .LoopedIn
22272269
2270+ case looprpc .DepositState_OPENING_CHANNEL :
2271+ return deposit .OpeningChannel
2272+
2273+ case looprpc .DepositState_CHANNEL_PUBLISHED :
2274+ return deposit .ChannelPublished
2275+
22282276 case looprpc .DepositState_SWEEP_HTLC_TIMEOUT :
22292277 return deposit .SweepHtlcTimeout
22302278
0 commit comments