@@ -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 {}
@@ -1978,13 +1980,14 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
19781980 }
19791981
19801982 var (
1981- totalNumDeposits = len (allDeposits )
1982- valueUnconfirmed int64
1983- valueDeposited int64
1984- valueExpired int64
1985- valueWithdrawn int64
1986- valueLoopedIn int64
1987- htlcTimeoutSwept int64
1983+ totalNumDeposits = len (allDeposits )
1984+ valueUnconfirmed int64
1985+ valueDeposited int64
1986+ valueExpired int64
1987+ valueWithdrawn int64
1988+ valueLoopedIn int64
1989+ valueChannelsOpened int64
1990+ htlcTimeoutSwept int64
19881991 )
19891992
19901993 // Value unconfirmed.
@@ -2016,6 +2019,9 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
20162019
20172020 case deposit .HtlcTimeoutSwept :
20182021 htlcTimeoutSwept += value
2022+
2023+ case deposit .ChannelPublished :
2024+ valueChannelsOpened += value
20192025 }
20202026 }
20212027
@@ -2040,6 +2046,7 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
20402046 ValueExpiredSatoshis : valueExpired ,
20412047 ValueWithdrawnSatoshis : valueWithdrawn ,
20422048 ValueLoopedInSatoshis : valueLoopedIn ,
2049+ ValueChannelsOpened : valueChannelsOpened ,
20432050 ValueHtlcTimeoutSweepsSatoshis : htlcTimeoutSwept ,
20442051 }, nil
20452052}
@@ -2149,6 +2156,35 @@ func (s *swapClientServer) populateBlocksUntilExpiry(ctx context.Context,
21492156 return nil
21502157}
21512158
2159+ // StaticOpenChannel initiates an open channel request using static address
2160+ // deposits.
2161+ func (s * swapClientServer ) StaticOpenChannel (ctx context.Context ,
2162+ req * looprpc.OpenChannelRequest ) (* looprpc.StaticOpenChannelResponse ,
2163+ error ) {
2164+
2165+ infof ("Static open channel request received" )
2166+
2167+ chanOpenTxHash , err := s .openChannelManager .DeliverOpenChannelRequest (
2168+ ctx , req ,
2169+ )
2170+
2171+ var (
2172+ txHash string
2173+ errMsg string
2174+ )
2175+ if chanOpenTxHash != nil {
2176+ txHash = chanOpenTxHash .String ()
2177+ }
2178+ if err != nil {
2179+ errMsg = err .Error ()
2180+ }
2181+
2182+ return & looprpc.StaticOpenChannelResponse {
2183+ ChannelOpenTxHash : txHash ,
2184+ Error : errMsg ,
2185+ }, nil
2186+ }
2187+
21522188type filterFunc func (deposits * deposit.Deposit ) bool
21532189
21542190func filter (deposits []* deposit.Deposit , f filterFunc ) []* looprpc.Deposit {
@@ -2202,6 +2238,12 @@ func toClientDepositState(state fsm.StateType) looprpc.DepositState {
22022238 case deposit .LoopedIn :
22032239 return looprpc .DepositState_LOOPED_IN
22042240
2241+ case deposit .OpeningChannel :
2242+ return looprpc .DepositState_OPENING_CHANNEL
2243+
2244+ case deposit .ChannelPublished :
2245+ return looprpc .DepositState_CHANNEL_PUBLISHED
2246+
22052247 case deposit .SweepHtlcTimeout :
22062248 return looprpc .DepositState_SWEEP_HTLC_TIMEOUT
22072249
@@ -2281,6 +2323,12 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
22812323 case looprpc .DepositState_LOOPED_IN :
22822324 return deposit .LoopedIn
22832325
2326+ case looprpc .DepositState_OPENING_CHANNEL :
2327+ return deposit .OpeningChannel
2328+
2329+ case looprpc .DepositState_CHANNEL_PUBLISHED :
2330+ return deposit .ChannelPublished
2331+
22842332 case looprpc .DepositState_SWEEP_HTLC_TIMEOUT :
22852333 return deposit .SweepHtlcTimeout
22862334
0 commit comments