lightning network – EstimateFee – Invalid Length Destination Key

[ad_1]

Background
I have setup a regnet test network with two LND nodes. One to send money and the second (lnd2) to generate invoices on. I am writing code to simulate a mobile app. I’m currently trying to calculate the fee to pay an invoice and attempting to call /v2/router/route/estimatefee

I’m getting this error when I execute the code below:
{‘code’: 2, ‘message’: ‘invalid length destination key’, ‘details’: []}

I’ll admit the byte to raw to decode has me a bit confused. But I’m not sure I’m feeding 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())

Your 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”,
bitcoind version: 220000

Steps to reproduce
Create an invoice.
Run above code
Expected behaviour
I should get a fee back but just get error.

[ad_2]

Source link

Leave a Comment