@@ -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 {}
@@ -1725,13 +1727,14 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17251727 }
17261728
17271729 var (
1728- totalNumDeposits = len (allDeposits )
1729- valueUnconfirmed int64
1730- valueDeposited int64
1731- valueExpired int64
1732- valueWithdrawn int64
1733- valueLoopedIn int64
1734- htlcTimeoutSwept int64
1730+ totalNumDeposits = len (allDeposits )
1731+ valueUnconfirmed int64
1732+ valueDeposited int64
1733+ valueExpired int64
1734+ valueWithdrawn int64
1735+ valueLoopedIn int64
1736+ valueChannelsOpened int64
1737+ htlcTimeoutSwept int64
17351738 )
17361739
17371740 // Value unconfirmed.
@@ -1763,6 +1766,9 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17631766
17641767 case deposit .HtlcTimeoutSwept :
17651768 htlcTimeoutSwept += value
1769+
1770+ case deposit .ChannelPublished :
1771+ valueChannelsOpened += value
17661772 }
17671773 }
17681774
@@ -1787,6 +1793,7 @@ func (s *swapClientServer) GetStaticAddressSummary(ctx context.Context,
17871793 ValueExpiredSatoshis : valueExpired ,
17881794 ValueWithdrawnSatoshis : valueWithdrawn ,
17891795 ValueLoopedInSatoshis : valueLoopedIn ,
1796+ ValueChannelsOpened : valueChannelsOpened ,
17901797 ValueHtlcTimeoutSweepsSatoshis : htlcTimeoutSwept ,
17911798 }, nil
17921799}
@@ -1842,6 +1849,35 @@ func (s *swapClientServer) StaticAddressLoopIn(ctx context.Context,
18421849 }, nil
18431850}
18441851
1852+ // StaticOpenChannel initiates an open channel request using static address
1853+ // deposits.
1854+ func (s * swapClientServer ) StaticOpenChannel (ctx context.Context ,
1855+ req * looprpc.OpenChannelRequest ) (* looprpc.StaticOpenChannelResponse ,
1856+ error ) {
1857+
1858+ infof ("Static open channel request received" )
1859+
1860+ chanOpenTxHash , err := s .openChannelManager .DeliverOpenChannelRequest (
1861+ ctx , req ,
1862+ )
1863+
1864+ var (
1865+ txHash string
1866+ errMsg string
1867+ )
1868+ if chanOpenTxHash != nil {
1869+ txHash = chanOpenTxHash .String ()
1870+ }
1871+ if err != nil {
1872+ errMsg = err .Error ()
1873+ }
1874+
1875+ return & looprpc.StaticOpenChannelResponse {
1876+ ChannelOpenTxHash : txHash ,
1877+ Error : errMsg ,
1878+ }, nil
1879+ }
1880+
18451881type filterFunc func (deposits * deposit.Deposit ) bool
18461882
18471883func filter (deposits []* deposit.Deposit , f filterFunc ) []* looprpc.Deposit {
@@ -1889,6 +1925,12 @@ func toClientDepositState(state fsm.StateType) looprpc.DepositState {
18891925 case deposit .LoopedIn :
18901926 return looprpc .DepositState_LOOPED_IN
18911927
1928+ case deposit .OpeningChannel :
1929+ return looprpc .DepositState_OPENING_CHANNEL
1930+
1931+ case deposit .ChannelPublished :
1932+ return looprpc .DepositState_CHANNEL_PUBLISHED
1933+
18921934 case deposit .SweepHtlcTimeout :
18931935 return looprpc .DepositState_SWEEP_HTLC_TIMEOUT
18941936
@@ -1968,6 +2010,12 @@ func toServerState(state looprpc.DepositState) fsm.StateType {
19682010 case looprpc .DepositState_LOOPED_IN :
19692011 return deposit .LoopedIn
19702012
2013+ case looprpc .DepositState_OPENING_CHANNEL :
2014+ return deposit .OpeningChannel
2015+
2016+ case looprpc .DepositState_CHANNEL_PUBLISHED :
2017+ return deposit .ChannelPublished
2018+
19712019 case looprpc .DepositState_SWEEP_HTLC_TIMEOUT :
19722020 return deposit .SweepHtlcTimeout
19732021
0 commit comments