@@ -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 {}
@@ -1788,13 +1790,14 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17881790 }
17891791
17901792 var (
1791- totalNumDeposits = len (allDeposits )
1792- valueUnconfirmed int64
1793- valueDeposited int64
1794- valueExpired int64
1795- valueWithdrawn int64
1796- valueLoopedIn int64
1797- htlcTimeoutSwept int64
1793+ totalNumDeposits = len (allDeposits )
1794+ valueUnconfirmed int64
1795+ valueDeposited int64
1796+ valueExpired int64
1797+ valueWithdrawn int64
1798+ valueLoopedIn int64
1799+ valueChannelsOpened int64
1800+ htlcTimeoutSwept int64
17981801 )
17991802
18001803 // Value unconfirmed.
@@ -1826,6 +1829,9 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
18261829
18271830 case deposit .HtlcTimeoutSwept :
18281831 htlcTimeoutSwept += value
1832+
1833+ case deposit .ChannelPublished :
1834+ valueChannelsOpened += value
18291835 }
18301836 }
18311837
@@ -1850,6 +1856,7 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
18501856 ValueExpiredSatoshis : valueExpired ,
18511857 ValueWithdrawnSatoshis : valueWithdrawn ,
18521858 ValueLoopedInSatoshis : valueLoopedIn ,
1859+ ValueChannelsOpened : valueChannelsOpened ,
18531860 ValueHtlcTimeoutSweepsSatoshis : htlcTimeoutSwept ,
18541861 }, nil
18551862}
@@ -1905,6 +1912,35 @@ func (s *swapClientServer) StaticAddressLoopIn(ctx context.Context,
19051912 }, nil
19061913}
19071914
1915+ // StaticOpenChannel initiates an open channel request using static address
1916+ // deposits.
1917+ func (s * swapClientServer ) StaticOpenChannel (ctx context.Context ,
1918+ req * looprpc.OpenChannelRequest ) (* looprpc.StaticOpenChannelResponse ,
1919+ error ) {
1920+
1921+ infof ("Static open channel request received" )
1922+
1923+ chanOpenTxHash , err := s .openChannelManager .DeliverOpenChannelRequest (
1924+ ctx , req ,
1925+ )
1926+
1927+ var (
1928+ txHash string
1929+ errMsg string
1930+ )
1931+ if chanOpenTxHash != nil {
1932+ txHash = chanOpenTxHash .String ()
1933+ }
1934+ if err != nil {
1935+ errMsg = err .Error ()
1936+ }
1937+
1938+ return & looprpc.StaticOpenChannelResponse {
1939+ ChannelOpenTxHash : txHash ,
1940+ Error : errMsg ,
1941+ }, nil
1942+ }
1943+
19081944type filterFunc func (deposits * deposit.Deposit ) bool
19091945
19101946func filter (deposits []* deposit.Deposit , f filterFunc ) []* looprpc.Deposit {
@@ -1952,6 +1988,12 @@ func toClientDepositState(state fsm.StateType) looprpc.DepositState {
19521988 case deposit .LoopedIn :
19531989 return looprpc .DepositState_LOOPED_IN
19541990
1991+ case deposit .OpeningChannel :
1992+ return looprpc .DepositState_OPENING_CHANNEL
1993+
1994+ case deposit .ChannelPublished :
1995+ return looprpc .DepositState_CHANNEL_PUBLISHED
1996+
19551997 case deposit .SweepHtlcTimeout :
19561998 return looprpc .DepositState_SWEEP_HTLC_TIMEOUT
19571999
@@ -2031,6 +2073,12 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
20312073 case looprpc .DepositState_LOOPED_IN :
20322074 return deposit .LoopedIn
20332075
2076+ case looprpc .DepositState_OPENING_CHANNEL :
2077+ return deposit .OpeningChannel
2078+
2079+ case looprpc .DepositState_CHANNEL_PUBLISHED :
2080+ return deposit .ChannelPublished
2081+
20342082 case looprpc .DepositState_SWEEP_HTLC_TIMEOUT :
20352083 return deposit .SweepHtlcTimeout
20362084
0 commit comments