@@ -4,17 +4,20 @@ import (
4
4
"context"
5
5
"strings"
6
6
7
+ "github.com/btcsuite/btcd/chaincfg"
7
8
restProxy "github.com/grpc-ecosystem/grpc-gateway/v2/runtime"
8
9
"github.com/lightninglabs/lndclient"
9
10
tap "github.com/lightninglabs/taproot-assets"
11
+ "github.com/lightninglabs/taproot-assets/address"
10
12
"github.com/lightninglabs/taproot-assets/perms"
11
13
"github.com/lightninglabs/taproot-assets/tapcfg"
12
14
"github.com/lightninglabs/taproot-assets/taprpc"
13
15
"github.com/lightninglabs/taproot-assets/taprpc/assetwalletrpc"
14
16
"github.com/lightninglabs/taproot-assets/taprpc/mintrpc"
17
+ "github.com/lightninglabs/taproot-assets/taprpc/rfqrpc"
18
+ tchrpc "github.com/lightninglabs/taproot-assets/taprpc/tapchannelrpc"
15
19
"github.com/lightninglabs/taproot-assets/taprpc/universerpc"
16
20
"github.com/lightningnetwork/lnd/lnrpc"
17
- "github.com/lightningnetwork/lnd/signal"
18
21
"google.golang.org/grpc"
19
22
"gopkg.in/macaroon-bakery.v2/bakery"
20
23
)
@@ -24,12 +27,12 @@ type taprootAssetsSubServer struct {
24
27
* tap.Server
25
28
26
29
remote bool
30
+ lndRemote bool
31
+
27
32
cfg * tapcfg.Config
28
33
remoteCfg * RemoteDaemonConfig
29
34
30
35
errChan chan error
31
-
32
- interceptor signal.Interceptor
33
36
}
34
37
35
38
// A compile-time check to ensure that taprootAssetsSubServer implements
@@ -38,20 +41,28 @@ var _ SubServer = (*taprootAssetsSubServer)(nil)
38
41
39
42
// NewTaprootAssetsSubServer returns a new tap implementation of the SubServer
40
43
// 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 {
44
46
45
47
// Overwrite the tap daemon's user agent name, so it sends "litd"
46
48
// instead of "tapd".
47
49
tap .SetAgentName ("litd" )
48
50
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
+
49
59
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 ),
55
66
}
56
67
}
57
68
@@ -92,15 +103,18 @@ func (t *taprootAssetsSubServer) Start(_ lnrpc.LightningClient,
92
103
return err
93
104
}
94
105
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 ,
97
113
)
98
114
if err != nil {
99
115
return err
100
116
}
101
117
102
- t .Server = server
103
-
104
118
return t .StartAsSubserver (lndGrpc )
105
119
}
106
120
@@ -114,6 +128,8 @@ func (t *taprootAssetsSubServer) RegisterGrpcService(
114
128
taprpc .RegisterTaprootAssetsServer (registrar , t )
115
129
mintrpc .RegisterMintServer (registrar , t )
116
130
assetwalletrpc .RegisterAssetWalletServer (registrar , t )
131
+ rfqrpc .RegisterRfqServer (registrar , t )
132
+ tchrpc .RegisterTaprootAssetChannelsServer (registrar , t )
117
133
universerpc .RegisterUniverseServer (registrar , t )
118
134
}
119
135
@@ -146,6 +162,20 @@ func (t *taprootAssetsSubServer) RegisterRestService(ctx context.Context,
146
162
return err
147
163
}
148
164
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
+
149
179
err = universerpc .RegisterUniverseHandlerFromEndpoint (
150
180
ctx , mux , endpoint , dialOpts ,
151
181
)
0 commit comments