BOLT11
prefix + amount + bach32(timestamp + data + signature)
data
pp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq
p は payment hash の flag
5bit
2^5=32
つまり bech32 での一桁
p5 が長さ(どちらも bech32) で考える
p=1
5=20
つまり 32*1 + 20= 52
p は bech32 での32 の位なので 1*32
data_length
bech32 にすると2桁
つまり 10bits で表現する
data を bech32 変換した後の長を示している
data size = data_length * 5bit
5bit = bech32 1桁は 32(2**5bit)
したがって、data の max size は
bech32 1023文字分
1023=31*32+31
1023*5bit/8bit=639byte
日本語の多くは 3byte なので 213 文字まで
pubkey
n
含まなくてもよい
key recovery について
route hint
r
route hint が含まれる invoice のサンプル
feature bit
9
fallback onchain address
f
description
d
max lenght
仕様では決まっていない?data_lenght で指定できる長さまで?
LND は長すぎるとエラーになるらしいが、、、