@@ -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 {}
@@ -1732,13 +1734,14 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17321734 }
17331735
17341736 var (
1735- totalNumDeposits = len (allDeposits )
1736- valueUnconfirmed int64
1737- valueDeposited int64
1738- valueExpired int64
1739- valueWithdrawn int64
1740- valueLoopedIn int64
1741- htlcTimeoutSwept int64
1737+ totalNumDeposits = len (allDeposits )
1738+ valueUnconfirmed int64
1739+ valueDeposited int64
1740+ valueExpired int64
1741+ valueWithdrawn int64
1742+ valueLoopedIn int64
1743+ valueChannelsOpened int64
1744+ htlcTimeoutSwept int64
17421745 )
17431746
17441747 // Value unconfirmed.
@@ -1770,6 +1773,9 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17701773
17711774 case deposit .HtlcTimeoutSwept :
17721775 htlcTimeoutSwept += value
1776+
1777+ case deposit .ChannelPublished :
1778+ valueChannelsOpened += value
17731779 }
17741780 }
17751781
@@ -1794,6 +1800,7 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17941800 ValueExpiredSatoshis : valueExpired ,
17951801 ValueWithdrawnSatoshis : valueWithdrawn ,
17961802 ValueLoopedInSatoshis : valueLoopedIn ,
1803+ ValueChannelsOpened : valueChannelsOpened ,
17971804 ValueHtlcTimeoutSweepsSatoshis : htlcTimeoutSwept ,
17981805 }, nil
17991806}
@@ -1849,6 +1856,35 @@ func (s *swapClientServer) StaticAddressLoopIn(ctx context.Context,
18491856 }, nil
18501857}
18511858
1859+ // StaticOpenChannel initiates an open channel request using static address
1860+ // deposits.
1861+ func (s * swapClientServer ) StaticOpenChannel (ctx context.Context ,
1862+ req * looprpc.OpenChannelRequest ) (* looprpc.StaticOpenChannelResponse ,
1863+ error ) {
1864+
1865+ infof ("Static open channel request received" )
1866+
1867+ chanOpenTxHash , err := s .openChannelManager .DeliverOpenChannelRequest (
1868+ ctx , req ,
1869+ )
1870+
1871+ var (
1872+ txHash string
1873+ errMsg string
1874+ )
1875+ if chanOpenTxHash != nil {
1876+ txHash = chanOpenTxHash .String ()
1877+ }
1878+ if err != nil {
1879+ errMsg = err .Error ()
1880+ }
1881+
1882+ return & looprpc.StaticOpenChannelResponse {
1883+ ChannelOpenTxHash : txHash ,
1884+ Error : errMsg ,
1885+ }, nil
1886+ }
1887+
18521888type filterFunc func (deposits * deposit.Deposit ) bool
18531889
18541890func filter (deposits []* deposit.Deposit , f filterFunc ) []* looprpc.Deposit {
@@ -1896,6 +1932,12 @@ func toClientDepositState(state fsm.StateType) looprpc.DepositState {
18961932 case deposit .LoopedIn :
18971933 return looprpc .DepositState_LOOPED_IN
18981934
1935+ case deposit .OpeningChannel :
1936+ return looprpc .DepositState_OPENING_CHANNEL
1937+
1938+ case deposit .ChannelPublished :
1939+ return looprpc .DepositState_CHANNEL_PUBLISHED
1940+
18991941 case deposit .SweepHtlcTimeout :
19001942 return looprpc .DepositState_SWEEP_HTLC_TIMEOUT
19011943
@@ -1975,6 +2017,12 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
19752017 case looprpc .DepositState_LOOPED_IN :
19762018 return deposit .LoopedIn
19772019
2020+ case looprpc .DepositState_OPENING_CHANNEL :
2021+ return deposit .OpeningChannel
2022+
2023+ case looprpc .DepositState_CHANNEL_PUBLISHED :
2024+ return deposit .ChannelPublished
2025+
19782026 case looprpc .DepositState_SWEEP_HTLC_TIMEOUT :
19792027 return deposit .SweepHtlcTimeout
19802028
0 commit comments