lnd: Exception when opening channel from external wallet: error verifying PSBT: not all inputs are segwit spends
Background
Potentially irrelevant background: I reinstalled lnd from the AUR lnd-git while trying to get the debug build working to use abandonchannel (#5265). I ended up having to hack the PKGBUILD to get it to build. I also attempted to open a channel from a non-segwit wallet to see if it would work, that’s when I saw the error for the first time.
After transferring the funds to the Electrum wallet I previously used for channel opens I still got the error. After restarting LND the error continues to persist.
Your environment
- version of
lnd
Updated via AUR package lnd-git on May 10, 2021
$ lnd --version
lnd version 0.12.99-beta commit=
- which operating system (
uname -a
on *Nix)Linux 4.19.187-1-MANJARO
- version of
btcd
,bitcoind
, or other backend
$ bitcoind --version
Bitcoin Core version v0.21.0.0-g95ea54ba089610019a74c1176a2c7c0dba144b1c
- any other relevant environment details Electrum 4.1.2
Reproduction
I’m not sure if I gave myself a weird version of LND or if the PSBT is broken. I can’t go back to 12.1, and I can’t open channels from LND’s wallet either right now (#5265).
The base64 PSBT I created
cHNidP8BAH0CAAAAAQeYr3I5MHphjxj1bPQunMDzEkgelnMO5GCMmbDlxG5SAQAAAAD9////AsDGLQAAAAAAIgAg9fp4qrX9SaD2yimizd/iXaQGzn6L/Zw76gOwOptuxI5EBj0AAAAAABYAFONc59ZQL6q0zFUM0/q42rcQJfZiZmwKAAABAN4CAAAAAAEBMPm+cpKW6ErZunBiEagbxsTbqIjPk4IafKXcF22KaU8BAAAAAP3///8CzFoVAAAAAAAWABRWhifnP2EA8DBR7o/XvZ973jM/K8DPagAAAAAAFgAUkaSLivW2msAxEEs6XzgyHpWQ+rkCRzBEAiB+6VK+lMY+rlZ9QoHZRFWWFP5Pi/zMP/RparPY75mmlgIgLtLvsw/ZMaTow22vB46ERCVlk2WMIXZZQI4P5lgtENYBIQP2/DeH61A5AdKmyPH/3E4x+yAwEfe0v3TK+YTGVbpGIhRsCgAiBgImroxoUMLdqZNKgnBilRbwCjAWGhV+aPU0UHS5Xyj5AxC5tKcTAAAAgAAAAAAJAAAAAAAiAgLAoq4c393kznYb0SZHM2G0HSgOEHI8cDsLvhyRTfpKFxC5tKcTAAAAgAEAAAAIAAAAAA==
Expected behaviour
The channel open proceeds to the next step
Actual behaviour
An error is produced
$ lncli openchannel 026165850492521f4ac8abd9bd8088123446d126f648ca35e60f88177dc149ceb2 3000000 --psbt
...
[lncli] verifying PSBT by lnd failed: rpc error: code = Unknown desc = error verifying PSBT: not all inputs are segwit spends
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 16 (5 by maintainers)
Commits related to this issue
- chanfunding: extend PSBT witness input check Fixes #5287. The PSBT spec is a bit vague when it comes to the WitnessUtxo field of an input as it's not strictly required for witness inputs. Therefore ... — committed to guggero/lnd by guggero 3 years ago
- chanfunding: extend PSBT witness input check Fixes #5287. The PSBT spec is a bit vague when it comes to the WitnessUtxo field of an input as it's not strictly required for witness inputs. Therefore ... — committed to guggero/lnd by guggero 3 years ago
Yes, we recently merged https://github.com/lightningnetwork/lnd/pull/5165 which added a new restriction that didn’t catch all edge cases.