Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

MWEB Light Client #8

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 8 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
97378d8
Allow p2pkh outputs to be spent
hectorchu Jan 8, 2024
83b49cc
Allow shutdown during recovery
hectorchu Jan 8, 2024
8b1b72a
Fix mobile build
hectorchu Jan 8, 2024
0cfc33f
Fix compat with latest ltcd
hectorchu Jan 8, 2024
6d54898
Add mweb type to NewAddress
hectorchu Jan 19, 2024
d54a5a2
Add mweb to lncli NewAddress
hectorchu Jan 21, 2024
f6c6fab
Include mweb utxos in ListUnspent
hectorchu Jan 23, 2024
9897f32
Show correct rawtx
hectorchu Feb 2, 2024
8638181
Add basic mweb integration test
hectorchu Feb 5, 2024
12afd01
Simplify
hectorchu Feb 5, 2024
3bc8546
Remove the need to build and install lnd beforehand
hectorchu Feb 5, 2024
9778db9
Test mweb send within wallet
hectorchu Feb 6, 2024
0d173b8
Check txhash
hectorchu Feb 6, 2024
b9cb835
Add pegout test
hectorchu Feb 6, 2024
4653ec9
Test pegout maturity
hectorchu Feb 6, 2024
5f1e9c3
Add pegin to self test
hectorchu Feb 6, 2024
6d49525
Simplify generate
hectorchu Feb 6, 2024
d5f4ff1
Test send mweb to litecoind
hectorchu Feb 6, 2024
75739e9
Test pegout to litecoind
hectorchu Feb 6, 2024
752d47f
Complex pegin-pegout transaction
hectorchu Feb 7, 2024
7fc99c3
Many inputs/outputs test
hectorchu Feb 7, 2024
161fb0f
Add stress test
hectorchu Feb 15, 2024
a15798a
Tidy up
hectorchu Feb 15, 2024
13ca4da
Stress test lnd -> lnd
hectorchu Feb 15, 2024
8d54b26
Upgraded transaction detail
hectorchu Feb 16, 2024
e0f6b25
Use ConnectPeer method
hectorchu Feb 17, 2024
652eda0
Update test values
hectorchu Feb 18, 2024
0560529
Revert previous commit
hectorchu Feb 19, 2024
01d0b34
v21 doesn't have -rpcwaittimeout
hectorchu Feb 19, 2024
f6742d9
Fix mweb test
hectorchu Feb 23, 2024
eff15e3
Fix build
hectorchu Feb 23, 2024
dc17b5b
Fix protos
hectorchu Feb 23, 2024
e3ca0ed
Switching to go workspaces
hectorchu Feb 28, 2024
7fda18c
Add mweb witness types
hectorchu Mar 1, 2024
9a786eb
Skip mweb segwit outputs in test
hectorchu Mar 1, 2024
49c6ae3
Update fees in test
hectorchu Mar 4, 2024
319fdd1
Generate android protos
hectorchu Mar 8, 2024
e7902a1
Fix crash on systems which don't have localhost
hectorchu Apr 12, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -75,3 +75,5 @@ coverage.txt
# Release build directory (to avoid build.vcs.modified Golang build tag to be
# set to true by having untracked files in the working directory).
/lnd-*/

*.pb.swift
10 changes: 8 additions & 2 deletions cmd/lncli/commands.go
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,8 @@ var newAddressCommand = cli.Command{
Generate a wallet new address. Address-types has to be one of:
- p2wkh: Pay to witness key hash
- np2wkh: Pay to nested witness key hash
- p2tr: Pay to taproot pubkey`,
- p2tr: Pay to taproot pubkey
- mweb: MWEB`,
Action: actionDecorator(newAddress),
}

Expand Down Expand Up @@ -178,9 +179,14 @@ func newAddress(ctx *cli.Context) error {
if unused {
addrType = lnrpc.AddressType_UNUSED_TAPROOT_PUBKEY
}
case "mweb":
addrType = lnrpc.AddressType_MWEB
if unused {
addrType = lnrpc.AddressType_UNUSED_MWEB
}
default:
return fmt.Errorf("invalid address type %v, support address type "+
"are: p2wkh, np2wkh, and p2tr", stringAddrType)
"are: p2wkh, np2wkh, p2tr, and mweb", stringAddrType)
}

client, cleanUp := getClient(ctx)
Expand Down
20 changes: 15 additions & 5 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ require (
github.com/decred/dcrd/dcrec/secp256k1/v4 v4.0.1
github.com/go-errors/errors v1.0.1
github.com/golang-migrate/migrate/v4 v4.16.1
github.com/golang/protobuf v1.5.3
github.com/gorilla/websocket v1.4.2
github.com/grpc-ecosystem/go-grpc-middleware v1.3.0
github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0
Expand All @@ -23,7 +24,7 @@ require (
github.com/jrick/logrotate v1.0.0
github.com/kkdai/bstream v1.0.0
github.com/lib/pq v1.10.3
github.com/ltcsuite/lightning-onion v1.2.1-0.20230823005744-06182b1d7d2f
github.com/ltcsuite/lightning-onion v1.0.3
github.com/ltcsuite/lnd/cert v1.2.2
github.com/ltcsuite/lnd/clock v1.1.1
github.com/ltcsuite/lnd/healthcheck v1.2.3
Expand Down Expand Up @@ -95,7 +96,6 @@ require (
github.com/fergusstrange/embedded-postgres v1.10.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
github.com/golang-jwt/jwt/v4 v4.4.2 // indirect
github.com/golang/protobuf v1.5.3 // indirect
github.com/golang/snappy v0.0.4 // indirect
github.com/google/btree v1.0.1 // indirect
github.com/google/shlex v0.0.0-20191202100458-e7afc7fbc510 // indirect
Expand Down Expand Up @@ -174,7 +174,7 @@ require (
go.uber.org/multierr v1.6.0 // indirect
go.uber.org/zap v1.17.0 // indirect
golang.org/x/mod v0.10.0 // indirect
golang.org/x/sys v0.8.0 // indirect
golang.org/x/sys v0.13.0 // indirect
golang.org/x/text v0.9.0 // indirect
golang.org/x/tools v0.9.1 // indirect
google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect
Expand Down Expand Up @@ -212,8 +212,6 @@ go 1.19

retract v0.0.2

replace github.com/ltcsuite/lightning-onion => ../lightning-onion

replace github.com/ltcsuite/lnd/cert => ./cert

replace github.com/ltcsuite/lnd/clock => ./clock
Expand All @@ -230,16 +228,28 @@ replace github.com/ltcsuite/lnd/tlv => ./tlv

replace github.com/ltcsuite/lnd/tor => ./tor

replace github.com/ltcsuite/ltcd => ../ltcd

replace github.com/ltcsuite/ltcd/btcec/v2 => ../ltcd/btcec

replace github.com/ltcsuite/ltcd/chaincfg/chainhash => ../ltcd/chaincfg/chainhash

replace github.com/ltcsuite/ltcd/ltcutil => ../ltcd/ltcutil

replace github.com/ltcsuite/ltcd/ltcutil/psbt => ../ltcd/ltcutil/psbt

replace github.com/ltcsuite/ltcwallet => ../ltcwallet

replace github.com/ltcsuite/ltcwallet/wallet/txauthor => ../ltcwallet/wallet/txauthor

replace github.com/ltcsuite/ltcwallet/wallet/txrules => ../ltcwallet/wallet/txrules

replace github.com/ltcsuite/ltcwallet/wallet/txsizes => ../ltcwallet/wallet/txsizes

replace github.com/ltcsuite/ltcwallet/walletdb => ../ltcwallet/walletdb

replace github.com/ltcsuite/ltcwallet/wtxmgr => ../ltcwallet/wtxmgr

replace github.com/ltcsuite/neutrino => ../neutrino

replace github.com/ltcsuite/neutrino/cache => ../neutrino/cache
28 changes: 4 additions & 24 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -73,8 +73,6 @@ github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f h1:bAs4lUbRJpnnkd9
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f/go.mod h1:TdznJufoqS23FtqVCzL0ZqgP5MqXbb4fg/WgDys70nA=
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd h1:R/opQEbFEy9JGkIguV40SvRY1uliPX8ifOvi6ICsFCw=
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd/go.mod h1:HHNXQzUsZCxOoE+CPiyCTO6x34Zs86zZUiwtpXoGdtg=
github.com/btcsuite/goleveldb v1.0.0/go.mod h1:QiK9vBlgftBg6rWQIj6wFzbPfRjiykIEhBH4obrXJ/I=
github.com/btcsuite/snappy-go v1.0.0/go.mod h1:8woku9dyThutzjeg+3xrA5iCpBRH8XEEg3lh6TiUghc=
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 h1:R8vQdOQdZ9Y3SkEwmHoWBmX1DNXhXZqlTpq6s4tyJGc=
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792/go.mod h1:ghJtEyQwv5/p4Mg4C0fgbePVuGr935/5ddU9Z3TmDRY=
github.com/btcsuite/winsvc v1.0.0 h1:J9B4L7e3oqhXOcm+2IuNApwzQec85lE+QaikUcCs+dk=
Expand Down Expand Up @@ -163,7 +161,6 @@ github.com/frankban/quicktest v1.11.3 h1:8sXhOn0uLys67V8EsXLc6eszDs8VXWxL3iRvebP
github.com/frankban/quicktest v1.11.3/go.mod h1:wRf/ReqHper53s+kmmSZizM8NamnL3IM0I9ntUbOk+k=
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
github.com/fsnotify/fsnotify v1.5.4 h1:jRbGcIw6P2Meqdwuo0H1p6JVLbL5DHKAKlYndzMwVZI=
github.com/fsnotify/fsnotify v1.5.4/go.mod h1:OVB6XrOHzAwXMpEM7uPOzcehqUV2UqJxmVXmkdnm1bU=
github.com/getsentry/raven-go v0.2.0 h1:no+xWJRb5ZI7eE8TWgIq1jLulQiIoLG0IfYxv5JYMGs=
Expand Down Expand Up @@ -371,7 +368,6 @@ github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNU
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
github.com/kkdai/bstream v0.0.0-20161212061736-f391b8402d23/go.mod h1:J+Gs4SYgM6CZQHDETBtE9HaSEkGmuNXF86RwHhHUvq4=
github.com/kkdai/bstream v1.0.0 h1:Se5gHwgp2VT2uHfDrkbbgbgEvV9cimLELwrPJctSjg8=
github.com/kkdai/bstream v1.0.0/go.mod h1:FDnDOHt5Yx4p3FaHcioFT0QjDOtgUpvjeZqAs+NVZZA=
github.com/klauspost/compress v1.4.1/go.mod h1:RyIbtBH6LamlWaDj8nUwkbUhJ87Yi3uG0guNDohfE1A=
Expand Down Expand Up @@ -408,21 +404,8 @@ github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf h1:HZKvJUHlcXI
github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf/go.mod h1:vxmQPeIQxPf6Jf9rM8R+B4rKBqLA2AjttNxkFBL2Plk=
github.com/lightninglabs/protobuf-go-hex-display v1.30.0-hex-display h1:pRdza2wleRN1L2fJXd6ZoQ9ZegVFTAb2bOQfruJPKcY=
github.com/lightninglabs/protobuf-go-hex-display v1.30.0-hex-display/go.mod h1:HV8QOd/L58Z+nl8r43ehVNZIU/HEI6OcFqwMG9pJV4I=
github.com/ltcsuite/ltcd v0.22.0-beta/go.mod h1:/BXtm50r591uMfXf8XgSpL5er32HCvheJtBSPYK5bFM=
github.com/ltcsuite/ltcd v0.23.5 h1:MFWjmx2hCwxrUu9v0wdIPOSN7PHg9BWQeh+AO4FsVLI=
github.com/ltcsuite/ltcd v0.23.5/go.mod h1:JV6swXR5m0cYFi0VYdQPp3UnMdaDQxaRUCaU1PPjb+g=
github.com/ltcsuite/ltcd/btcec/v2 v2.1.0/go.mod h1:Vc9ZYXMcl5D6bA0VwMvGRDJYggO3YZ7/BuIri02Lq0E=
github.com/ltcsuite/ltcd/btcec/v2 v2.3.2 h1:HVArUNQGqGaSSoyYkk9qGht74U0/uNhS0n7jV9rkmno=
github.com/ltcsuite/ltcd/btcec/v2 v2.3.2/go.mod h1:T1t5TjbjPnryvlGQ+RpSKGuU8KhjNN7rS5+IznPj1VM=
github.com/ltcsuite/ltcd/chaincfg/chainhash v1.0.2 h1:xuWxvRKxLvOKuS7/Q/7I3tpc3cWAB0+hZpU8YdVqkzg=
github.com/ltcsuite/ltcd/chaincfg/chainhash v1.0.2/go.mod h1:nkLkAFGhursWf2U68gt61hPieK1I+0m78e+2aevNyD8=
github.com/ltcsuite/ltcd/ltcutil v1.1.0/go.mod h1:VbZlcopVgQteiCC5KRjIuxXH5wi1CtzhsvoYZ3K7FaE=
github.com/ltcsuite/ltcd/ltcutil v1.1.3 h1:8AapjCPLIt/wtYe6Odfk1EC2y9mcbpgjyxyCoNjAkFI=
github.com/ltcsuite/ltcd/ltcutil v1.1.3/go.mod h1:z8txd/ohBFrOMBUT70K8iZvHJD/Vc3gzx+6BP6cBxQw=
github.com/ltcsuite/ltcwallet/wallet/txrules v1.2.0 h1:P6H9zsMpBBuGOsp9lnil7XfPaPujDqrbcmkqvDdiSiI=
github.com/ltcsuite/ltcwallet/wallet/txrules v1.2.0/go.mod h1:lmA2Ozxvbr2M8Mqb6ugOv5/FQT6x2Qnwg3yT/NiWEks=
github.com/ltcsuite/ltcwallet/wtxmgr v1.5.0 h1:5pM7L26/OzJMcwQqGwGKIZvPIBt1Er4Ve9Ymc9KK6gc=
github.com/ltcsuite/ltcwallet/wtxmgr v1.5.0/go.mod h1:jAnztxV6d2JykUlGLCO5yNvtosmFaGMshBx0kps+K+M=
github.com/ltcsuite/lightning-onion v1.0.3 h1:IZfVmm/cdetN/tsSxA6RCeCFYhc4mILfCAT7nchuslI=
github.com/ltcsuite/lightning-onion v1.0.3/go.mod h1:Yub/j23SheCpasqZU5lJoNFcSjljFFn7Cd47SiTJjv0=
github.com/lunixbochs/vtclean v0.0.0-20160125035106-4fbf7632a2c6/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI=
github.com/mattn/go-colorable v0.0.6/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
Expand Down Expand Up @@ -475,7 +458,6 @@ github.com/onsi/ginkgo/v2 v2.3.0/go.mod h1:Eew0uilEqZmIEZr8JrvYlvOM7Rr6xzTmMV8Ay
github.com/onsi/ginkgo/v2 v2.4.0/go.mod h1:iHkDK1fKGcBoEHT5W7YBq4RFWaQulw+caOMkAt4OrFo=
github.com/onsi/ginkgo/v2 v2.5.0/go.mod h1:Luc4sArBICYCS8THh8v3i3i5CuSZO+RaQRaJoeNwomw=
github.com/onsi/ginkgo/v2 v2.7.0/go.mod h1:yjiuMwPokqY1XauOgju45q3sJt6VzQ/Fict1LFVcsAo=
github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA=
github.com/onsi/gomega v1.7.1/go.mod h1:XdKZgCCFLUoM/7CFJVPcG8C1xQ1AJ0vpAezJrB7JYyY=
github.com/onsi/gomega v1.10.1/go.mod h1:iN09h71vgCQne3DLsj+A5owkum+a2tYe+TOCB1ybHNo=
github.com/onsi/gomega v1.17.0/go.mod h1:HnhC7FXeEQY45zxNK3PPoIUhzk/80Xly9PcubAlGdZY=
Expand Down Expand Up @@ -675,7 +657,6 @@ golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8U
golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20200820211705-5c72a883971a/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
golang.org/x/crypto v0.0.0-20201203163018-be400aefbc4c/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.0.0-20210616213533-5ff15b29337e/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
Expand Down Expand Up @@ -727,7 +708,6 @@ golang.org/x/mod v0.7.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.8.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/mod v0.10.0 h1:lFO9qtOdlre5W1jxS3r/4szv2/6iXxScdzjoBMXNhYk=
golang.org/x/mod v0.10.0/go.mod h1:iBbtSCu2XBx23ZKBPSOrRkjjQPZFPuis4dIYUhu/chs=
golang.org/x/net v0.0.0-20180719180050-a680a1efc54d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
golang.org/x/net v0.0.0-20180906233101-161cd47e91fd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
Expand Down Expand Up @@ -858,7 +838,6 @@ golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20210603081109-ebe580a85c40/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20210906170528-6f6e22806c34/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211019181941-9d821ace8654/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.0.0-20211025201205-69cdffdb9359/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
Expand All @@ -877,8 +856,9 @@ golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.4.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.8.0 h1:EBmGv8NaZBZTWvrbjNoL6HVt+IVy3QDQpJs7VRIw3tU=
golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.13.0 h1:Af8nKPmuFypiUBjVoU9V20FiaFXOcuZI21p0ycVYYGE=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8=
Expand Down
18 changes: 15 additions & 3 deletions lnrpc/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
FROM golang:1.21.0-bookworm
FROM swift:focal

RUN apt-get update && apt-get install -y \
git \
protobuf-compiler='3.21.12*' \
clang-format='1:14.0*'
protobuf-compiler='3.6.1*' \
clang-format='1:10.0*'

RUN apt-get install -y wget \
&& wget -c https://golang.org/dl/go1.17.6.linux-arm64.tar.gz -O - \
| tar -xz -C /usr/local
ENV GOPATH=/go
ENV PATH=$PATH:/usr/local/go/bin:/go/bin

# We don't want any default values for these variables to make sure they're
# explicitly provided by parsing the go.mod file. Otherwise we might forget to
Expand All @@ -29,4 +35,10 @@ RUN cd /tmp \

WORKDIR /build

RUN git clone https://github.com/apple/swift-protobuf.git \
&& cd swift-protobuf \
&& git checkout $(git describe --tags --abbrev=0) \
&& swift build -c release \
&& mv .build/release/protoc-gen-swift /bin

CMD ["/bin/bash", "/build/lnrpc/gen_protos.sh"]
1 change: 1 addition & 0 deletions lnrpc/gen_protos.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ function generate() {
protoc -I/usr/local/include -I. \
--go_out . --go_opt paths=source_relative \
--go-grpc_out . --go-grpc_opt paths=source_relative \
--swift_out=. \
"${file}"

# Generate the REST reverse proxy.
Expand Down
7 changes: 7 additions & 0 deletions lnrpc/lightning.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 3 additions & 0 deletions lnrpc/lightning.proto
Original file line number Diff line number Diff line change
Expand Up @@ -1206,6 +1206,7 @@ message ListUnspentResponse {
- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)
- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)
- `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4)
- `mweb`: MWEB (`MWEB` = 6)
*/
enum AddressType {
WITNESS_PUBKEY_HASH = 0;
Expand All @@ -1214,6 +1215,8 @@ enum AddressType {
UNUSED_NESTED_PUBKEY_HASH = 3;
TAPROOT_PUBKEY = 4;
UNUSED_TAPROOT_PUBKEY = 5;
MWEB = 6;
UNUSED_MWEB = 7;
}

message NewAddressRequest {
Expand Down
6 changes: 5 additions & 1 deletion lnrpc/lightning.swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -2050,6 +2050,8 @@
"UNUSED_NESTED_PUBKEY_HASH",
"TAPROOT_PUBKEY",
"UNUSED_TAPROOT_PUBKEY"
"MWEB",
"UNUSED_MWEB"
],
"default": "WITNESS_PUBKEY_HASH"
},
Expand Down Expand Up @@ -3202,9 +3204,11 @@
"UNUSED_NESTED_PUBKEY_HASH",
"TAPROOT_PUBKEY",
"UNUSED_TAPROOT_PUBKEY"
"MWEB",
"UNUSED_MWEB"
],
"default": "WITNESS_PUBKEY_HASH",
"description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)\n- `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4)",
"description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)\n- `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4)\n- `mweb`: MWEB (`MWEB` = 6)",
"title": "`AddressType` has to be one of:"
},
"lnrpcAliasMap": {
Expand Down
3 changes: 3 additions & 0 deletions lnrpc/marshall_utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,9 @@ func MarshalUtxos(utxos []*lnwallet.Utxo, activeNetParams *chaincfg.Params) (
case lnwallet.TaprootPubkey:
addrType = AddressType_TAPROOT_PUBKEY

case lnwallet.Mweb:
addrType = AddressType_MWEB

case lnwallet.UnknownAddressType:
continue

Expand Down
4 changes: 3 additions & 1 deletion lnrpc/walletrpc/walletkit.swagger.json
Original file line number Diff line number Diff line change
Expand Up @@ -873,9 +873,11 @@
"UNUSED_NESTED_PUBKEY_HASH",
"TAPROOT_PUBKEY",
"UNUSED_TAPROOT_PUBKEY"
"MWEB",
"UNUSED_MWEB"
],
"default": "WITNESS_PUBKEY_HASH",
"description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)\n- `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4)",
"description": "- `p2wkh`: Pay to witness key hash (`WITNESS_PUBKEY_HASH` = 0)\n- `np2wkh`: Pay to nested witness key hash (`NESTED_PUBKEY_HASH` = 1)\n- `p2tr`: Pay to taproot pubkey (`TAPROOT_PUBKEY` = 4)\n- `mweb`: MWEB (`MWEB` = 6)",
"title": "`AddressType` has to be one of:"
},
"lnrpcOutPoint": {
Expand Down
26 changes: 19 additions & 7 deletions lnwallet/btcwallet/btcwallet.go
Original file line number Diff line number Diff line change
Expand Up @@ -504,6 +504,8 @@ func (b *BtcWallet) keyScopeForAccountAddr(accountName string,
addrKeyScope = waddrmgr.KeyScopeBIP0049Plus
case lnwallet.TaprootPubkey:
addrKeyScope = waddrmgr.KeyScopeBIP0086
case lnwallet.Mweb:
addrKeyScope = waddrmgr.KeyScopeMweb
default:
return waddrmgr.KeyScope{}, 0,
fmt.Errorf("unknown address type")
Expand Down Expand Up @@ -1148,21 +1150,23 @@ func (b *BtcWallet) ListUnspentWitness(minConfs, maxConfs int32,
}

addressType := lnwallet.UnknownAddressType
if txscript.IsPayToWitnessPubKeyHash(pkScript) {
switch {
case txscript.IsPayToPubKeyHash(pkScript):
addressType = lnwallet.PubKeyHash
case txscript.IsPayToWitnessPubKeyHash(pkScript):
addressType = lnwallet.WitnessPubKey
} else if txscript.IsPayToScriptHash(pkScript) {
case txscript.IsPayToScriptHash(pkScript):
// TODO(roasbeef): This assumes all p2sh outputs returned by the
// wallet are nested p2pkh. We can't check the redeem script because
// the ltcwallet service does not include it.
addressType = lnwallet.NestedWitnessPubKey
} else if txscript.IsPayToTaproot(pkScript) {
case txscript.IsPayToTaproot(pkScript):
addressType = lnwallet.TaprootPubkey
case txscript.IsMweb(pkScript):
addressType = lnwallet.Mweb
}

if addressType == lnwallet.WitnessPubKey ||
addressType == lnwallet.NestedWitnessPubKey ||
addressType == lnwallet.TaprootPubkey {

if addressType != lnwallet.UnknownAddressType {
txid, err := chainhash.NewHashFromStr(output.TxID)
if err != nil {
return nil, err
Expand Down Expand Up @@ -1355,6 +1359,10 @@ func minedTransactionsToDetails(
}
txDetail.Value = balanceDelta

if tx.Broadcast != nil {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@hectorchu in which case is the incorrect rawtx given?

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For MWEB txns. Because after we've broadcast it we modify the MsgTx to add 'in the clear' MWEB inputs and outputs to the MsgTx, from the MsgTx.Mweb data. So the serialized tx changes. We save the original broadcast serialization in a separate field.

txDetail.RawTx = tx.Broadcast
}

details = append(details, txDetail)
}

Expand Down Expand Up @@ -1424,6 +1432,10 @@ func unminedTransactionsToDetail(
}
txDetail.Value = balanceDelta

if summary.Broadcast != nil {
txDetail.RawTx = summary.Broadcast
}

return txDetail, nil
}

Expand Down
Loading