Bitcoin

Lightning Network – EstimateFee – Target key of incorrect length

Background I have set up a regnet test network with two LND nodes. One is for sending money and the second (lnd2) is for creating invoices. I’m writing code that simulates a mobile app. I’m trying to calculate the current invoice payment fee and call /v2/router/route/estimatefee.

I get this error when I run the code below: ‘code’: 2, ‘message’: ‘invalid length Destination key’, ‘details’: ()

I’ll admit that the raw bytes to decode left me a bit confused. But I’m not sure if I’m entering the correct address.

import base64
import codecs
import json
import requests
r_hash="UOpjz7mxf2r5gv7MNkoEBZL84CwM3CjJI8TFfPfkInA="
payment_alias = b'02183a81bfb5ce3a221d'
payment_destination = '02183a81bfb5ce3a221d15ffa67c2a1d796746ac89f1c81850577b52ec1633e339'

payment_addr = "iDPo2lElCqV9qx0GMB0SMfraU9CGOoGU4xSTNN9hYoM="
qrinvoice = "lnbcrt7u1psa67zapp52r4x8naek9lk47vzlmxrvjsyqkf0ecpvpnwz3jfrcnzhealyyfcqdqlw3jhxapqw35xjueqda6hggr5wfujqdqcqzpgxqyz5vqsp53qe73kj3y5922ldtr5rrq8gjx8ad557sscagr98rzjfnfhmpv2ps9qyyssq2sn9wg448t083sxqzsckc2l3jt26k5zy5l8g4ufeqgg53kxhule3p7dcwmd77v324jmd4z8r87tx9fal3a47vv344qsx03pjy43m2ysqy58usq"

lnd2 = "10.142.0.21:8180"
lnd1 = "10.142.0.21:8080"

url="https:///v2/router/route/estimatefee".format(lnd1)
data = 
             'dest': base64.b64encode(payment_alias).decode(),
             'amt_sat': 200
         

cert_path="./tls.cert"


macaroonhex = <a macaroon> 
headers = 'Grpc-Metadata-macaroon': macaroonhex


r = requests.post(url, data=json.dumps(
    data), headers=headers, verify=cert_path)
    
print(r.json())

User Environment Two LND nodes on Debian 10. Linux #1 SMP Debian 4.19.208-1 (2021-09-29) x86_64 GNU/Linux LND “version”: “0.14.0-beta commit=v0.14.0-beta”, Bitcoin version: 220000

Repro Steps Create an invoice. Running the above code I should get the expected action fee back but I get an error.

Related Articles

Back to top button