@ -318,10 +318,10 @@ int main(void)
test_b11 ( " lntb30m1pw2f2yspp5s59w4a0kjecw3zyexm7zur8l8n4scw674w8sftjhwec33km882gsdpa2pshjmt9de6zqun9w96k2um5ypmkjargypkh2mr5d9cxzun5ypeh2ursdae8gxqruyqvzddp68gup69uhnzwfj9cejuvf3xshrwde68qcrswf0d46kcarfwpshyaplw3skw0tdw4k8g6tsv9e8g4a3hx0v945csrmpm7yxyaamgt2xu7mu4xyt3vp7045n4k4czxf9kj0vw0m8dr5t3pjxuek04rtgyy8uzss5eet5gcyekd6m7u0mzv5sp7mdsag " , b11 , NULL ) ;
/* BOLT-d8d45ed403e54cffdb049d2e44d1100e41df013c #11:
/* BOLT #11:
*
* > # # # Please send $ 30 for coffee beans to the same peer , which supports features 15 and 99 , using secret 0x1111111111111111111111111111111111111111111111111111111111111111
* > lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q5sqqqqqqqqqqqqqqqpqqq4u9s93jtgysm3mrwll70zr697y3mf902hvxwej0v7c62rsltw83ng0pu8w3j230sluc5gxkdmm9dvpy9y6ggtjd2w544mzdrcs42t7sqdkcy8h
* > # # # Please send $ 30 for coffee beans to the same peer , which supports features 9 , 15 and 99 , using secret 0x1111111111111111111111111111111111111111111111111111111111111111
* > lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q5sqqqqqqqqqqqqqqqpqsq67gye39hfg3zd8rgc80k32tvy9xk2xunwm5lzexnvpx6fd77en8qaq424dxgt56cag2dpt359k3ssyhetktkpqh24jqnjyw6uqd08sgptq44qu
*
* Breakdown :
*
@ -337,10 +337,10 @@ int main(void)
* * ` p5 ` : ` data_length ` ( ` p ` = 1 , ` 5 ` = 20 ; 1 * 32 + 20 = = 52 )
* * ` zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs ` : 0x1111111111111111111111111111111111111111111111111111111111111111
* * ` 9 ` : features
* * ` q5 ` : ` data_length ` ( ` q ` = 0 , ` 5 ` = 20 ; 0 * 32 + 20 = = 20 ) 4
* * ` sqqqqqqqqqqqqqqqpqq q ` : b1000 . . . .00001000000 000000000
* * ` pqqq4u9s93jtgysm3mrwll70zr697y3mf902hvxwej0v7c62rsltw83ng0pu8w3j230sluc5gxkdmm9dvpy9y6ggtjd2w544mzdrcs42t7sq ` : signature
* * ` dkcy8h ` : Bech32 checksum
* * ` q5 ` : ` data_length ` ( ` q ` = 0 , ` 5 ` = 20 ; 0 * 32 + 20 = = 20 )
* * ` sqqqqqqqqqqqqqqqpqs q ` : b1000 . . . .00001000001 000000000
* * ` 67 gye39hfg3zd8rgc8032tvy9xk2xunwm5lzexnvpx6fd77en8qaq424dxgt56cag2dpt359k3ssyhetktkpqh24jqnjyw6uqd08sgp ` : signature
* * ` tq44qu ` : Bech32 checksum
*/
msatoshi = AMOUNT_MSAT ( 25 * ( 1000ULL * 100000000 ) / 1000 ) ;
b11 = new_bolt11 ( tmpctx , & msatoshi ) ;
@ -354,20 +354,21 @@ int main(void)
b11 - > description = " coffee beans " ;
b11 - > payment_secret = tal ( b11 , struct secret ) ;
memset ( b11 - > payment_secret , 0x11 , sizeof ( * b11 - > payment_secret ) ) ;
set_feature_bit ( & b11 - > features , 9 ) ;
set_feature_bit ( & b11 - > features , 15 ) ;
set_feature_bit ( & b11 - > features , 99 ) ;
test_b11 ( " lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q5sqqqqqqqqqqqqqqqpqqq4u9s93jtgysm3mrwll70zr697y3mf902hvxwej0v7c62rsltw83ng0pu8w3j230sluc5gxkdmm9dvpy9y6ggtjd2w544mzdrcs42t7sqdkcy8h " , b11 , NULL ) ;
test_b11 ( " lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q5sqqqqqqqqqqqqqqqpqsq67gye39hfg3zd8rgc80k32tvy9xk2xunwm5lzexnvpx6fd77en8qaq424dxgt56cag2dpt359k3ssyhetktkpqh24jqnjyw6uqd08sgptq44qu " , b11 , NULL ) ;
/* BOLT-d8d45ed403e54cffdb049d2e44d1100e41df013c #11:
/* BOLT #11:
*
* > # Same , but adding invalid unknown feature 100
* > lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqpqqqqu7fz6pjqczdm3jp3qps7xntj2w2mm70e0ckhw3c5xk9p36pvk3sewn7ncaex6uzfq0vtqzy28se6pcwn790vxex7xystzumhg55p6qq9wq7td
* > lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqpqsqq40wa3khl49yue3zsgm26jrepqr2eghqlx86rttutve3ugd05em86nsefzh4pfurpd9ek9w2vp95zxqnfe2u7ckudyahsa52q66tgzcp6t2dyk
*/
/* This one can be encoded, but not decoded */
set_feature_bit ( & b11 - > features , 100 ) ;
badstr = bolt11_encode ( tmpctx , b11 , false , test_sign , NULL ) ;
assert ( streq ( badstr , " lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqpqqqqu7fz6pjqczdm3jp3qps7xntj2w2mm70e0ckhw3c5xk9p36pvk3sewn7ncaex6uzfq0vtqzy28se6pcwn790vxex7xystzumhg55p6qq9wq7td " ) ) ;
assert ( streq ( badstr , " lnbc25m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5vdhkven9v5sxyetpdeessp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs9q4psqqqqqqqqqqqqqqqpqsqq40wa3khl49yue3zsgm26jrepqr2eghqlx86rttutve3ugd05em86nsefzh4pfurpd9ek9w2vp95zxqnfe2u7ckudyahsa52q66tgzcp6t2dyk " ) ) ;
assert ( ! bolt11_decode ( tmpctx , badstr , NULL , & fail ) ) ;
assert ( streq ( fail , " 9: unknown feature bit 100 " ) ) ;