@@ -4,17 +4,20 @@ import (
44 "context"
55 "strings"
66
7+ "github.com/btcsuite/btcd/chaincfg"
78 restProxy "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
89 "github.com/lightninglabs/lndclient"
910 tap "github.com/lightninglabs/taproot-assets"
11+ "github.com/lightninglabs/taproot-assets/address"
1012 "github.com/lightninglabs/taproot-assets/perms"
1113 "github.com/lightninglabs/taproot-assets/tapcfg"
1214 "github.com/lightninglabs/taproot-assets/taprpc"
1315 "github.com/lightninglabs/taproot-assets/taprpc/assetwalletrpc"
1416 "github.com/lightninglabs/taproot-assets/taprpc/mintrpc"
17+ "github.com/lightninglabs/taproot-assets/taprpc/rfqrpc"
18+ tchrpc "github.com/lightninglabs/taproot-assets/taprpc/tapchannelrpc"
1519 "github.com/lightninglabs/taproot-assets/taprpc/universerpc"
1620 "github.com/lightningnetwork/lnd/lnrpc"
17- "github.com/lightningnetwork/lnd/signal"
1821 "google.golang.org/grpc"
1922 "gopkg.in/macaroon-bakery.v2/bakery"
2023)
@@ -24,12 +27,12 @@ type taprootAssetsSubServer struct {
2427 * tap.Server
2528
2629 remote bool
30+ lndRemote bool
31+
2732 cfg * tapcfg.Config
2833 remoteCfg * RemoteDaemonConfig
2934
3035 errChan chan error
31-
32- interceptor signal.Interceptor
3336}
3437
3538// A compile-time check to ensure that taprootAssetsSubServer implements
@@ -38,20 +41,28 @@ var _ SubServer = (*taprootAssetsSubServer)(nil)
3841
3942// NewTaprootAssetsSubServer returns a new tap implementation of the SubServer
4043// interface.
41- func NewTaprootAssetsSubServer (cfg * tapcfg.Config ,
42- remoteCfg * RemoteDaemonConfig , remote bool ,
43- interceptor signal.Interceptor ) SubServer {
44+ func NewTaprootAssetsSubServer (network string , cfg * tapcfg.Config ,
45+ remoteCfg * RemoteDaemonConfig , remote , lndRemote bool ) SubServer {
4446
4547 // Overwrite the tap daemon's user agent name, so it sends "litd"
4648 // instead of "tapd".
4749 tap .SetAgentName ("litd" )
4850
51+ // A quirk of the address package is that it requires the exact testnet
52+ // name, not the generic one...
53+ if network == "testnet" {
54+ network = chaincfg .TestNet3Params .Name
55+ }
56+
57+ chainCfg := address .ParamsForChain (network )
58+
4959 return & taprootAssetsSubServer {
50- cfg : cfg ,
51- remoteCfg : remoteCfg ,
52- remote : remote ,
53- interceptor : interceptor ,
54- errChan : make (chan error , 1 ),
60+ Server : tap .NewServer (& chainCfg , nil ),
61+ cfg : cfg ,
62+ remoteCfg : remoteCfg ,
63+ remote : remote ,
64+ lndRemote : lndRemote ,
65+ errChan : make (chan error , 1 ),
5566 }
5667}
5768
@@ -92,15 +103,18 @@ func (t *taprootAssetsSubServer) Start(_ lnrpc.LightningClient,
92103 return err
93104 }
94105
95- server , err := tapcfg .CreateServerFromConfig (
96- t .cfg , log , t .interceptor , false , t .errChan ,
106+ // The taproot asset channel feature is still experimental, so we
107+ // disable it for now.
108+ const enableChannelFeatures = false
109+
110+ err = tapcfg .ConfigureSubServer (
111+ t .Server , t .cfg , log , & lndGrpc .LndServices ,
112+ enableChannelFeatures , t .errChan ,
97113 )
98114 if err != nil {
99115 return err
100116 }
101117
102- t .Server = server
103-
104118 return t .StartAsSubserver (lndGrpc )
105119}
106120
@@ -114,6 +128,8 @@ func (t *taprootAssetsSubServer) RegisterGrpcService(
114128 taprpc .RegisterTaprootAssetsServer (registrar , t )
115129 mintrpc .RegisterMintServer (registrar , t )
116130 assetwalletrpc .RegisterAssetWalletServer (registrar , t )
131+ rfqrpc .RegisterRfqServer (registrar , t )
132+ tchrpc .RegisterTaprootAssetChannelsServer (registrar , t )
117133 universerpc .RegisterUniverseServer (registrar , t )
118134}
119135
@@ -146,6 +162,20 @@ func (t *taprootAssetsSubServer) RegisterRestService(ctx context.Context,
146162 return err
147163 }
148164
165+ err = rfqrpc .RegisterRfqHandlerFromEndpoint (
166+ ctx , mux , endpoint , dialOpts ,
167+ )
168+ if err != nil {
169+ return err
170+ }
171+
172+ err = tchrpc .RegisterTaprootAssetChannelsHandlerFromEndpoint (
173+ ctx , mux , endpoint , dialOpts ,
174+ )
175+ if err != nil {
176+ return err
177+ }
178+
149179 err = universerpc .RegisterUniverseHandlerFromEndpoint (
150180 ctx , mux , endpoint , dialOpts ,
151181 )
0 commit comments