Skip to content

Commit 60fe925

Browse files
authored
Merge pull request #550 from lightninglabs/taproot-assets-subserver
Add Taproot Assets Protocol subserver
2 parents 9131690 + a6a3ab6 commit 60fe925

18 files changed

+1902
-244
lines changed

Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ COPY --from=golangbuilder /go/bin/lncli /bin/
6868
COPY --from=golangbuilder /go/bin/frcli /bin/
6969
COPY --from=golangbuilder /go/bin/loop /bin/
7070
COPY --from=golangbuilder /go/bin/pool /bin/
71+
COPY --from=golangbuilder /go/bin/tapcli /bin/
7172

7273
# Add bash.
7374
RUN apk add --no-cache \

Makefile

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ ESCPKG := github.com\/lightninglabs\/lightning-terminal
33
LND_PKG := github.com/lightningnetwork/lnd
44
LOOP_PKG := github.com/lightninglabs/loop
55
POOL_PKG := github.com/lightninglabs/pool
6+
TAP_PKG := github.com/lightninglabs/taproot-assets
67
BTCD_PKG := github.com/btcsuite/btcd
78

89
GOACC_PKG := github.com/ory/go-acc
@@ -29,6 +30,12 @@ POOL_COMMIT := $(shell cat go.mod | \
2930
awk -F " " '{ print $$2 }' | \
3031
awk -F "/" '{ print $$1 }')
3132

33+
TAP_COMMIT := $(shell cat go.mod | \
34+
grep $(TAP_PKG) | \
35+
head -n1 | \
36+
awk -F " " '{ print $$2 }' | \
37+
awk -F "/" '{ print $$1 }')
38+
3239
GOBUILD := go build -v
3340
GOINSTALL := go install -v
3441
GOTEST := go test -v
@@ -61,7 +68,8 @@ make_ldflags = $(2) -X $(LND_PKG)/build.Commit=lightning-terminal-$(COMMIT) \
6168
-X $(PKG).appFilesPrefix=$(PUBLIC_URL) \
6269
-X $(PKG).Commit=$(COMMIT) \
6370
-X $(LOOP_PKG).Commit=$(LOOP_COMMIT) \
64-
-X $(POOL_PKG).Commit=$(POOL_COMMIT)
71+
-X $(POOL_PKG).Commit=$(POOL_COMMIT) \
72+
-X $(TAP_PKG).Commit=$(TAP_COMMIT)
6573

6674
LDFLAGS := $(call make_ldflags, $(LND_RELEASE_TAGS))
6775

@@ -129,6 +137,7 @@ go-install-cli:
129137
$(GOINSTALL) -trimpath -ldflags "$(LDFLAGS)" github.com/lightninglabs/loop/cmd/loop
130138
$(GOINSTALL) -trimpath github.com/lightninglabs/faraday/cmd/frcli
131139
$(GOINSTALL) -trimpath -ldflags "$(LDFLAGS)" github.com/lightninglabs/pool/cmd/pool
140+
$(GOINSTALL) -trimpath -ldflags "$(LDFLAGS)" github.com/lightninglabs/taproot-assets/cmd/tapcli
132141

133142
app-build: yarn-install
134143
@$(call print, "Building production app.")

README.md

Lines changed: 72 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -74,39 +74,40 @@ This version compatibility dependency is only relevant for running remote mode
7474
`litd`. The bundled version will always come with the correct, [compatible
7575
versioning](#daemon-versions-packaged-with-lit).
7676

77-
| LiT | LND |
78-
|------------------|--------------|
79-
| **v0.9.2-alpha** | v0.16.0-beta |
80-
| **v0.9.1-alpha** | v0.16.0-beta |
81-
| **v0.9.0-alpha** | v0.16.0-beta |
82-
| **v0.8.6-alpha** | v0.15.4-beta |
83-
| **v0.8.5-alpha** | v0.15.4-beta |
84-
| **v0.8.4-alpha** | v0.15.1-beta |
85-
| **v0.8.3-alpha** | v0.15.1-beta |
86-
| **v0.8.2-alpha** | v0.15.1-beta |
87-
| **v0.8.1-alpha** | v0.15.1-beta |
88-
| **v0.8.0-alpha** | v0.15.1-beta |
89-
| **v0.7.1-alpha** | v0.14.3-beta |
90-
| **v0.7.0-alpha** | v0.14.3-beta |
91-
| **v0.6.7-alpha** | v0.13.3-beta |
92-
| **v0.6.6-alpha** | v0.13.3-beta |
93-
| **v0.6.5-alpha** | v0.13.3-beta |
94-
| **v0.6.4-alpha** | v0.13.3-beta |
95-
| **v0.6.3-alpha** | v0.13.3-beta |
96-
| **v0.6.2-alpha** | v0.13.3-beta |
97-
| **v0.6.1-alpha** | v0.13.3-beta |
98-
| **v0.6.0-alpha** | v0.13.3-beta |
99-
| **v0.5.2-alpha** | v0.12.0-beta |
100-
| **v0.5.1-alpha** | v0.12.0-beta |
101-
| **v0.5.0-alpha** | v0.12.0-beta |
102-
| **v0.4.1-alpha** | v0.11.1-beta |
103-
| **v0.4.0-alpha** | v0.11.1-beta |
104-
| **v0.3.4-alpha** | v0.11.1-beta |
105-
| **v0.3.3-alpha** | v0.11.1-beta |
106-
| **v0.3.2-alpha** | v0.11.1-beta |
107-
| **v0.3.1-alpha** | v0.11.1-beta |
108-
| **v0.3.0-alpha** | v0.11.1-beta |
109-
| **v0.2.0-alpha** | v0.11.0-beta |
77+
| LiT | LND |
78+
|-------------------|--------------|
79+
| **v0.10.0-alpha** | v0.16.0-beta |
80+
| **v0.9.2-alpha** | v0.16.0-beta |
81+
| **v0.9.1-alpha** | v0.16.0-beta |
82+
| **v0.9.0-alpha** | v0.16.0-beta |
83+
| **v0.8.6-alpha** | v0.15.4-beta |
84+
| **v0.8.5-alpha** | v0.15.4-beta |
85+
| **v0.8.4-alpha** | v0.15.1-beta |
86+
| **v0.8.3-alpha** | v0.15.1-beta |
87+
| **v0.8.2-alpha** | v0.15.1-beta |
88+
| **v0.8.1-alpha** | v0.15.1-beta |
89+
| **v0.8.0-alpha** | v0.15.1-beta |
90+
| **v0.7.1-alpha** | v0.14.3-beta |
91+
| **v0.7.0-alpha** | v0.14.3-beta |
92+
| **v0.6.7-alpha** | v0.13.3-beta |
93+
| **v0.6.6-alpha** | v0.13.3-beta |
94+
| **v0.6.5-alpha** | v0.13.3-beta |
95+
| **v0.6.4-alpha** | v0.13.3-beta |
96+
| **v0.6.3-alpha** | v0.13.3-beta |
97+
| **v0.6.2-alpha** | v0.13.3-beta |
98+
| **v0.6.1-alpha** | v0.13.3-beta |
99+
| **v0.6.0-alpha** | v0.13.3-beta |
100+
| **v0.5.2-alpha** | v0.12.0-beta |
101+
| **v0.5.1-alpha** | v0.12.0-beta |
102+
| **v0.5.0-alpha** | v0.12.0-beta |
103+
| **v0.4.1-alpha** | v0.11.1-beta |
104+
| **v0.4.0-alpha** | v0.11.1-beta |
105+
| **v0.3.4-alpha** | v0.11.1-beta |
106+
| **v0.3.3-alpha** | v0.11.1-beta |
107+
| **v0.3.2-alpha** | v0.11.1-beta |
108+
| **v0.3.1-alpha** | v0.11.1-beta |
109+
| **v0.3.0-alpha** | v0.11.1-beta |
110+
| **v0.2.0-alpha** | v0.11.0-beta |
110111

111112
LiT offers two main operating modes, one in which [`lnd` is running inside the
112113
LiT process (called "lnd integrated mode", set by `lnd-mode=integrated` config
@@ -126,45 +127,48 @@ The following table shows the supported combinations:
126127
| `faraday-mode=integrated` | X | X |
127128
| `loop-mode=integrated` | X | X |
128129
| `pool-mode=integrated` | X | X |
130+
| `taprootassets-mode=integrated` | X | X |
129131
| `faraday-mode=remote` | | X |
130132
| `loop-mode=remote` | | X |
131133
| `pool-mode=remote` | | X |
134+
| `taprootassets-mode=remote` | | X |
132135
| `lnd` running in "stateless init" mode | X | |
133136

134137
## Daemon Versions packaged with LiT
135138

136-
| LiT | LND | Loop | Faraday | Pool |
137-
|------------------|--------------|--------------|---------------|--------------|
138-
| **v0.9.2-alpha** | v0.16.2-beta | v0.23.0-beta | v0.2.11-alpha | v0.6.2-beta |
139-
| **v0.9.1-alpha** | v0.16.1-beta | v0.23.0-beta | v0.2.11-alpha | v0.6.2-beta |
140-
| **v0.9.0-alpha** | v0.16.0-beta | v0.22.0-beta | v0.2.10-alpha | v0.6.2-beta |
141-
| **v0.8.6-alpha** | v0.15.5-beta | v0.21.0-beta | v0.2.9-alpha | v0.6.1-beta |
142-
| **v0.8.5-alpha** | v0.15.5-beta | v0.20.2-beta | v0.2.9-alpha | v0.6.1-beta |
143-
| **v0.8.4-alpha** | v0.15.5-beta | v0.20.1-beta | v0.2.9-alpha | v0.5.8-alpha |
144-
| **v0.8.3-alpha** | v0.15.4-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha |
145-
| **v0.8.2-alpha** | v0.15.3-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha |
146-
| **v0.8.1-alpha** | v0.15.2-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha |
147-
| **v0.8.0-alpha** | v0.15.1-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha |
148-
| **v0.7.1-alpha** | v0.15.0-beta | v0.19.1-beta | v0.2.8-alpha | v0.5.7-alpha |
149-
| **v0.7.0-alpha** | v0.15.0-beta | v0.19.1-beta | v0.2.8-alpha | v0.5.7-alpha |
150-
| **v0.6.7-alpha** | v0.14.3-beta | v0.18.0-beta | v0.2.7-alpha | v0.5.6-alpha |
151-
| **v0.6.6-alpha** | v0.14.3-beta | v0.18.0-beta | v0.2.7-alpha | v0.5.6-alpha |
152-
| **v0.6.5-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.5-alpha |
153-
| **v0.6.4-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha |
154-
| **v0.6.3-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha |
155-
| **v0.6.2-alpha** | v0.14.1-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha |
156-
| **v0.6.1-alpha** | v0.14.1-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.2-alpha |
157-
| **v0.5.3-alpha** | v0.13.3-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha |
158-
| **v0.5.2-alpha** | v0.13.3-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha |
159-
| **v0.5.1-alpha** | v0.13.0-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha |
160-
| **v0.5.0-alpha** | v0.13.0-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha |
161-
| **v0.4.1-alpha** | v0.12.1-beta | v0.11.4-beta | v0.2.3-alpha | v0.4.4-alpha |
162-
| **v0.4.0-alpha** | v0.12.0-beta | v0.11.2-beta | v0.2.3-alpha | v0.4.3-alpha |
163-
| **v0.3.4-alpha** | v0.11.1-beta | v0.11.2-beta | v0.2.2-alpha | v0.3.4-alpha |
164-
| **v0.3.3-alpha** | v0.11.1-beta | v0.11.2-beta | v0.2.2-alpha | v0.3.4-alpha |
165-
| **v0.3.2-alpha** | v0.11.1-beta | v0.11.1-beta | v0.2.2-alpha | v0.3.4-alpha |
166-
| **v0.3.1-alpha** | v0.11.1-beta | v0.11.1-beta | v0.2.2-alpha | v0.3.3-alpha |
167-
| **v0.3.0-alpha** | v0.11.1-beta | v0.11.0-beta | v0.2.2-alpha | v0.3.2-alpha |
168-
| **v0.2.0-alpha** | v0.11.1-beta | v0.10.0-beta | v0.2.1-alpha | n/a |
169-
| **v0.1.1-alpha** | v0.11.0-beta | v0.8.1-beta | v0.2.0-alpha | n/a |
170-
| **v0.1.0-alpha** | v0.10.3-beta | v0.6.5-beta | v0.2.0-alpha | n/a |
139+
| LiT | LND | Loop | Faraday | Pool | Taproot Assets |
140+
|-------------------|--------------|--------------|---------------|--------------|----------------|
141+
| **v0.10.0-alpha** | v0.16.2-beta | v0.23.0-beta | v0.2.11-alpha | v0.6.2-beta | v0.2.0-alpha |
142+
| **v0.9.2-alpha** | v0.16.2-beta | v0.23.0-beta | v0.2.11-alpha | v0.6.2-beta | n/a |
143+
| **v0.9.1-alpha** | v0.16.1-beta | v0.23.0-beta | v0.2.11-alpha | v0.6.2-beta | n/a |
144+
| **v0.9.0-alpha** | v0.16.0-beta | v0.22.0-beta | v0.2.10-alpha | v0.6.2-beta | n/a |
145+
| **v0.8.6-alpha** | v0.15.5-beta | v0.21.0-beta | v0.2.9-alpha | v0.6.1-beta | n/a |
146+
| **v0.8.5-alpha** | v0.15.5-beta | v0.20.2-beta | v0.2.9-alpha | v0.6.1-beta | n/a |
147+
| **v0.8.4-alpha** | v0.15.5-beta | v0.20.1-beta | v0.2.9-alpha | v0.5.8-alpha | n/a |
148+
| **v0.8.3-alpha** | v0.15.4-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha | n/a |
149+
| **v0.8.2-alpha** | v0.15.3-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha | n/a |
150+
| **v0.8.1-alpha** | v0.15.2-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha | n/a |
151+
| **v0.8.0-alpha** | v0.15.1-beta | v0.20.1-beta | v0.2.8-alpha | v0.5.8-alpha | n/a |
152+
| **v0.7.1-alpha** | v0.15.0-beta | v0.19.1-beta | v0.2.8-alpha | v0.5.7-alpha | n/a |
153+
| **v0.7.0-alpha** | v0.15.0-beta | v0.19.1-beta | v0.2.8-alpha | v0.5.7-alpha | n/a |
154+
| **v0.6.7-alpha** | v0.14.3-beta | v0.18.0-beta | v0.2.7-alpha | v0.5.6-alpha | n/a |
155+
| **v0.6.6-alpha** | v0.14.3-beta | v0.18.0-beta | v0.2.7-alpha | v0.5.6-alpha | n/a |
156+
| **v0.6.5-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.5-alpha | n/a |
157+
| **v0.6.4-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha | n/a |
158+
| **v0.6.3-alpha** | v0.14.2-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha | n/a |
159+
| **v0.6.2-alpha** | v0.14.1-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.4-alpha | n/a |
160+
| **v0.6.1-alpha** | v0.14.1-beta | v0.15.1-beta | v0.2.7-alpha | v0.5.2-alpha | n/a |
161+
| **v0.5.3-alpha** | v0.13.3-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha | n/a |
162+
| **v0.5.2-alpha** | v0.13.3-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha | n/a |
163+
| **v0.5.1-alpha** | v0.13.0-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha | n/a |
164+
| **v0.5.0-alpha** | v0.13.0-beta | v0.14.1-beta | v0.2.6-alpha | v0.5.0-alpha | n/a |
165+
| **v0.4.1-alpha** | v0.12.1-beta | v0.11.4-beta | v0.2.3-alpha | v0.4.4-alpha | n/a |
166+
| **v0.4.0-alpha** | v0.12.0-beta | v0.11.2-beta | v0.2.3-alpha | v0.4.3-alpha | n/a |
167+
| **v0.3.4-alpha** | v0.11.1-beta | v0.11.2-beta | v0.2.2-alpha | v0.3.4-alpha | n/a |
168+
| **v0.3.3-alpha** | v0.11.1-beta | v0.11.2-beta | v0.2.2-alpha | v0.3.4-alpha | n/a |
169+
| **v0.3.2-alpha** | v0.11.1-beta | v0.11.1-beta | v0.2.2-alpha | v0.3.4-alpha | n/a |
170+
| **v0.3.1-alpha** | v0.11.1-beta | v0.11.1-beta | v0.2.2-alpha | v0.3.3-alpha | n/a |
171+
| **v0.3.0-alpha** | v0.11.1-beta | v0.11.0-beta | v0.2.2-alpha | v0.3.2-alpha | n/a |
172+
| **v0.2.0-alpha** | v0.11.1-beta | v0.10.0-beta | v0.2.1-alpha | n/a | n/a |
173+
| **v0.1.1-alpha** | v0.11.0-beta | v0.8.1-beta | v0.2.0-alpha | n/a | n/a |
174+
| **v0.1.0-alpha** | v0.10.3-beta | v0.6.5-beta | v0.2.0-alpha | n/a | n/a |

config.go

Lines changed: 57 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"github.com/lightninglabs/lndclient"
2525
"github.com/lightninglabs/loop/loopd"
2626
"github.com/lightninglabs/pool"
27+
"github.com/lightninglabs/taproot-assets/tapcfg"
2728
"github.com/lightningnetwork/lnd"
2829
"github.com/lightningnetwork/lnd/build"
2930
"github.com/lightningnetwork/lnd/cert"
@@ -41,11 +42,13 @@ const (
4142

4243
ModeIntegrated = "integrated"
4344
ModeRemote = "remote"
45+
ModeDisable = "disable"
4446

4547
DefaultLndMode = ModeRemote
4648
defaultFaradayMode = ModeIntegrated
4749
defaultLoopMode = ModeIntegrated
4850
defaultPoolMode = ModeIntegrated
51+
defaultTapMode = ModeIntegrated
4952

5053
defaultConfigFilename = "lit.conf"
5154

@@ -68,9 +71,11 @@ const (
6871
defaultRemoteFaradayRpcServer = "localhost:8465"
6972
defaultRemoteLoopRpcServer = "localhost:11010"
7073
defaultRemotePoolRpcServer = "localhost:12010"
71-
defaultLndChainSubDir = "chain"
72-
defaultLndChain = "bitcoin"
73-
defaultLndMacaroon = "admin.macaroon"
74+
defaultRemoteTapRpcServer = "localhost:10029"
75+
76+
defaultLndChainSubDir = "chain"
77+
defaultLndChain = "bitcoin"
78+
defaultLndMacaroon = "admin.macaroon"
7479

7580
// DefaultAutogenValidity is the default validity of a self-signed
7681
// certificate. The value corresponds to 14 months
@@ -89,6 +94,7 @@ var (
8994
faradayDefaultConfig = faraday.DefaultConfig()
9095
loopDefaultConfig = loopd.DefaultConfig()
9196
poolDefaultConfig = pool.DefaultConfig()
97+
tapDefaultConfig = tapcfg.DefaultConfig()
9298

9399
// DefaultLitDir is the default directory where LiT tries to find its
94100
// configuration file and store its data (in remote lnd node). This is a
@@ -190,6 +196,9 @@ type Config struct {
190196
PoolMode string `long:"pool-mode" description:"The mode to run pool in, either 'integrated' (default) or 'remote'. 'integrated' means poold is started alongside the UI and everything is stored in pool's main data directory, configure everything by using the --pool.* flags. 'remote' means the UI connects to an existing poold node and acts as a proxy for gRPC calls to it." choice:"integrated" choice:"remote"`
191197
Pool *pool.Config `group:"Integrated pool options (use when pool-mode=integrated)" namespace:"pool"`
192198

199+
TaprootAssetsMode string `long:"taproot-assets-mode" description:"The mode to run taproot assets in, either 'integrated' (default), 'remote' or 'disable'. 'integrated' means tapd is started alongside the UI and everything is stored in tap's main data directory, configure everything by using the --taproot-assets.* flags. 'remote' means the UI connects to an existing tapd node and acts as a proxy for gRPC calls to it. 'disable' means that LiT is started without a connection to tapd" choice:"integrated" choice:"disable"`
200+
TaprootAssets *tapcfg.Config `group:"Integrated taproot assets options (use when taproot-assets=integrated)" namespace:"taproot-assets"`
201+
193202
RPCMiddleware *mid.Config `group:"RPC middleware options" namespace:"rpcmiddleware"`
194203

195204
Autopilot *autopilotserver.Config `group:"Autopilot server options" namespace:"autopilot"`
@@ -206,6 +215,7 @@ type Config struct {
206215
faradayRemote bool
207216
loopRemote bool
208217
poolRemote bool
218+
tapRemote bool
209219

210220
// lndAdminMacaroon is the admin macaroon that is given to us by lnd
211221
// over an in-memory connection on startup. This is only set in
@@ -281,6 +291,11 @@ func defaultConfig() *Config {
281291
MacaroonPath: poolDefaultConfig.MacaroonPath,
282292
TLSCertPath: poolDefaultConfig.TLSCertPath,
283293
},
294+
TaprootAssets: &subservers.RemoteDaemonConfig{
295+
RPCServer: defaultRemoteTapRpcServer,
296+
MacaroonPath: tapDefaultConfig.RpcConf.MacaroonPath,
297+
TLSCertPath: tapDefaultConfig.RpcConf.TLSCertPath,
298+
},
284299
},
285300
Network: DefaultNetwork,
286301
LndMode: DefaultLndMode,
@@ -297,6 +312,8 @@ func defaultConfig() *Config {
297312
Loop: &loopDefaultConfig,
298313
PoolMode: defaultPoolMode,
299314
Pool: &poolDefaultConfig,
315+
TaprootAssetsMode: defaultTapMode,
316+
TaprootAssets: &tapDefaultConfig,
300317
RPCMiddleware: mid.DefaultConfig(),
301318
FirstLNCConnDeadline: defaultFirstLNCConnTimeout,
302319
Autopilot: &autopilotserver.Config{
@@ -341,12 +358,26 @@ func loadAndValidateConfig(interceptor signal.Interceptor) (*Config, error) {
341358
return nil, err
342359
}
343360

361+
// TODO(positiveblue): Taproot Assets do not support mainnet yet so we
362+
// want the subserver disabled for that specific net.
363+
// We cannot distinguish if the user manually set the flag
364+
// `taproot-assets-mode` or we are using the default value (integrated)
365+
// so we will disable the server in both cases.
366+
if cfg.Network == "mainnet" {
367+
log.Infof("LiT is running in mainnet, the taproot assets " +
368+
"subserver do not support the `mainnet` network yet, " +
369+
"disabling taproot assets subserver")
370+
371+
cfg.TaprootAssetsMode = ModeDisable
372+
}
373+
344374
// Translate the more user friendly string modes into the more developer
345375
// friendly internal bool variables now.
346376
cfg.lndRemote = cfg.LndMode == ModeRemote
347377
cfg.faradayRemote = cfg.FaradayMode == ModeRemote
348378
cfg.loopRemote = cfg.LoopMode == ModeRemote
349379
cfg.poolRemote = cfg.PoolMode == ModeRemote
380+
cfg.tapRemote = cfg.TaprootAssetsMode == ModeRemote
350381

351382
// Now that we've registered all loggers, let's parse, validate, and set
352383
// the debug log level(s). In remote lnd mode we have a global log level
@@ -445,6 +476,15 @@ func loadAndValidateConfig(interceptor signal.Interceptor) (*Config, error) {
445476
return nil, err
446477
}
447478

479+
if cfg.TaprootAssetsMode != ModeDisable {
480+
cfg.TaprootAssets, err = tapcfg.ValidateConfig(
481+
*cfg.TaprootAssets, log,
482+
)
483+
if err != nil {
484+
return nil, err
485+
}
486+
}
487+
448488
// We've set the network before and have now validated the loop config
449489
// which updated its default paths for that network. So if we're in
450490
// remote mode and not mainnet, we want to update our default paths for
@@ -493,6 +533,19 @@ func loadAndValidateConfig(interceptor signal.Interceptor) (*Config, error) {
493533
}
494534
}
495535

536+
defaultTapCfg := tapcfg.DefaultConfig()
537+
if cfg.tapRemote && cfg.Network != DefaultNetwork {
538+
if cfg.Remote.TaprootAssets.MacaroonPath == defaultTapCfg.RpcConf.MacaroonPath {
539+
macaroonPath := cfg.TaprootAssets.RpcConf.MacaroonPath
540+
cfg.Remote.TaprootAssets.MacaroonPath = macaroonPath
541+
}
542+
if cfg.Remote.TaprootAssets.TLSCertPath == defaultTapCfg.RpcConf.TLSCertPath {
543+
tlsCertPath := cfg.TaprootAssets.RpcConf.TLSCertPath
544+
545+
cfg.Remote.TaprootAssets.TLSCertPath = tlsCertPath
546+
}
547+
}
548+
496549
return cfg, nil
497550
}
498551

@@ -692,6 +745,7 @@ func setNetwork(cfg *Config) error {
692745
cfg.Faraday.Network = cfg.Network
693746
cfg.Loop.Network = cfg.Network
694747
cfg.Pool.Network = cfg.Network
748+
cfg.TaprootAssets.ChainConf.Network = cfg.Network
695749

696750
return nil
697751
}

dev.Dockerfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ COPY --from=golangbuilder /go/bin/lncli /bin/
4646
COPY --from=golangbuilder /go/bin/frcli /bin/
4747
COPY --from=golangbuilder /go/bin/loop /bin/
4848
COPY --from=golangbuilder /go/bin/pool /bin/
49+
COPY --from=golangbuilder /go/bin/tapcli /bin/
4950

5051
# Add bash.
5152
RUN apk add --no-cache \

0 commit comments

Comments
 (0)