Minimal bolt12 offer|lno1zcss9mk8y3wkklfvevcrszlmu23kfrxh49px20665dqwmn4p72pksese|True|{"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with description (but no amount)|lno1pgx9getnwss8vetrw3hhyuckyypwa3eyt44h6txtxquqh7lz5djge4afgfjn7k4rgrkuag0jsd5xvxg|True|{"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
for testnet|lno1qgsyxjtl6luzd9t3pr62xr7eemp6awnejusgf6gw45q75vcfqqqqqqq2p32x2um5ypmx2cm5dae8x93pqthvwfzadd7jejes8q9lhc4rvjxd022zv5l44g6qah82ru5rdpnpj|True|{"offer_chains":["43497fd7f826957108f4a30fd9cec3aeba79972084e90ead01ea330900000000"],"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
for bitcoin (redundant)|lno1qgsxlc5vp2m0rvmjcxn2y34wv0m5lyc7sdj7zksgn35dvxgqqqqqqqq2p32x2um5ypmx2cm5dae8x93pqthvwfzadd7jejes8q9lhc4rvjxd022zv5l44g6qah82ru5rdpnpj|True|{"offer_chains":["6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000"],"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
for bitcoin or liquidv1|lno1qfqpge38tqmzyrdjj3x2qkdr5y80dlfw56ztq6yd9sme995g3gsxqqm0u2xq4dh3kdevrf4zg6hx8a60jv0gxe0ptgyfc6xkryqqqqqqqq9qc4r9wd6zqan9vd6x7unnzcss9mk8y3wkklfvevcrszlmu23kfrxh49px20665dqwmn4p72pksese|True|{"offer_chains":["1466275836220db2944ca059a3a10ef6fd2ea684b0688d2c379296888a206003","6fe28c0ab6f1b372c1a6a246ae63f74f931e8365e15a089c68d6190000000000"],"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with metadata|lno1qsgqqqqqqqqqqqqqqqqqqqqqqqqqqzsv23jhxapqwejkxar0wfe3vggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|True|{"offer_metadata":"00000000000000000000000000000000","offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with amount|lno1pqpzwyq2p32x2um5ypmx2cm5dae8x93pqthvwfzadd7jejes8q9lhc4rvjxd022zv5l44g6qah82ru5rdpnpj|True|{"offer_amount":10000,"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with currency|lno1qcp4256ypqpzwyq2p32x2um5ypmx2cm5dae8x93pqthvwfzadd7jejes8q9lhc4rvjxd022zv5l44g6qah82ru5rdpnpj|True|{"offer_currency":"USD","offer_amount":10000,"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with expiry|lno1pgx9getnwss8vetrw3hhyucwq3ay997czcss9mk8y3wkklfvevcrszlmu23kfrxh49px20665dqwmn4p72pksese|True|{"offer_description":"Test vectors","offer_absolute_expiry":2051184600,"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with issuer|lno1pgx9getnwss8vetrw3hhyucjy358garswvaz7tmzdak8gvfj9ehhyeeqgf85c4p3xgsxjmnyw4ehgunfv4e3vggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|True|{"offer_description":"Test vectors","offer_issuer":"https://bolt12.org BOLT12 industries","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with quantity|lno1pgx9getnwss8vetrw3hhyuc5qyz3vggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|True|{"offer_description":"Test vectors","offer_quantity_max":5,"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with unlimited (or unknown) quantity|lno1pgx9getnwss8vetrw3hhyuc5qqtzzqhwcuj966ma9n9nqwqtl032xeyv6755yeflt235pmww58egx6rxry|True|{"offer_description":"Test vectors","offer_quantity_max":0,"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with single quantity (weird but valid)|lno1pgx9getnwss8vetrw3hhyuc5qyq3vggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|True|{"offer_description":"Test vectors","offer_quantity_max":1,"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with feature|lno1pgx9getnwss8vetrw3hhyucvp5yqqqqqqqqqqqqqqqqqqqqkyypwa3eyt44h6txtxquqh7lz5djge4afgfjn7k4rgrkuag0jsd5xvxg|True|{"offer_description":"Test vectors","offer_features":"08000000000000000000000000","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with blinded path via Bob (0x424242...), path_key 020202...|lno1pgx9getnwss8vetrw3hhyucs5ypjgef743p5fzqq9nqxh0ah7y87rzv3ud0eleps9kl2d5348hq2k8qzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgqpqqqqqqqqqqqqqqqqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqqzq3zyg3zyg3zyg3vggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|True|{"offer_description":"Test vectors","offer_paths":[{"first_node_id":"0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c","first_path_key":"020202020202020202020202020202020202020202020202020202020202020202","path":[{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"00000000000000000000000000000000"},{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"1111111111111111"}]}],"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
same, with blinded path first_node_id using sciddir|lno1pgx9getnwss8vetrw3hhyucs3yqqqqqqqqqqqqp2qgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqqyqqqqqqqqqqqqqqqqqqqqqqqqqqqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqqgzyg3zyg3zyg3z93pqthvwfzadd7jejes8q9lhc4rvjxd022zv5l44g6qah82ru5rdpnpj|True|{"offer_description":"Test vectors","offer_paths":[{"first_scid":"0x0x42","first_scid_dir":0,"first_path_key":"020202020202020202020202020202020202020202020202020202020202020202","path":[{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"00000000000000000000000000000000"},{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"1111111111111111"}]}],"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
with no issuer_id and blinded path via Bob (0x424242...), path_key 020202...|lno1pgx9getnwss8vetrw3hhyucs5ypjgef743p5fzqq9nqxh0ah7y87rzv3ud0eleps9kl2d5348hq2k8qzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgqpqqqqqqqqqqqqqqqqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqqzq3zyg3zyg3zygs|True|{"offer_description":"Test vectors","offer_paths":[{"first_node_id":"0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c","first_path_key":"020202020202020202020202020202020202020202020202020202020202020202","path":[{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"00000000000000000000000000000000"},{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"1111111111111111"}]}]}
... and with second blinded path via 1x2x3 (direction 1), path_key 020202...| |True|{"offer_description":"Test vectors","offer_paths":[{"first_node_id":"0324653eac434488002cc06bbfb7f10fe18991e35f9fe4302dbea6d2353dc0ab1c","first_path_key":"020202020202020202020202020202020202020202020202020202020202020202","path":[{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"00000000000000000000000000000000"},{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"1111111111111111"}]},{"first_scid":"1x2x3","first_scid_dir":1,"first_path_key":"020202020202020202020202020202020202020202020202020202020202020202","path":[{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"00000000000000000000000000000000"},{"blinded_node_id":"020202020202020202020202020202020202020202020202020202020202020202","encrypted_recipient_data":"2222222222222222"}]}],"offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
unknown odd field|lno1pgx9getnwss8vetrw3hhyuckyypwa3eyt44h6txtxquqh7lz5djge4afgfjn7k4rgrkuag0jsd5xvxfppf5x2mrvdamk7unvvs|True|{"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619","33":"68656c6c6f776f726c64"}
unknown odd experimental field|lno1pgx9getnwss8vetrw3hhyuckyypwa3eyt44h6txtxquqh7lz5djge4afgfjn7k4rgrkuag0jsd5xvx078wdv5gg2dpjkcmr0wahhymry|True|{"offer_description":"Test vectors","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619","1000000033":"68656c6c6f776f726c64"}
Malformed: fields out of order|lno1zcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszpgz5znzfgdzs|False|{"code":144115188075855874,"message":"Bolt12 decoding: The ordering of TLV fields is not strictly increasing"}
Malformed: unknown even TLV type 78|lno1pgz5znzfgdz3vggzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpysgr0u2xq4dh3kdevrf4zg6hx8a60jv0gxe0ptgyfc6xkryqqqqqqqq|False|{"code":144115188075855877,"message":"Bolt12 decoding: Unknown TLV type with even value"}
Malformed: empty|lno1|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Malformed: truncated at type|lno1pg|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Malformed: truncated in length|lno1pt7s|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Malformed: truncated after length|lno1pgpq|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Malformed: truncated in description|lno1pgpyz|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Malformed: invalid offer_chains length|lno1qgqszzs9g9xyjs69zcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":2,"message":"Bolt12 decoding: Invalid offer chains field"}
Malformed: truncated currency UTF-8|lno1qcqcqzs9g9xyjs69zcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":6,"message":"Bolt12 decoding: Invalid offer currency field"}
Malformed: invalid currency UTF-8|lno1qcplllhapqpq86q2q4qkc6trv5tzzq6muh550qsfva9fdes0ruph7ctk2s8aqq06r4jxj3msc448wzwy9s|False|{"code":-2,"message":"Bolt12 decoding: Invalid UTF-8 character"}
Malformed: truncated description UTF-8|lno1pgqcq93pqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqy|False|{"code":-2,"message":"Bolt12 decoding: Invalid UTF-8 character"}
Malformed: invalid description UTF-8|lno1pgpgqsgkyypqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs|False|{"code":-2,"message":"Bolt12 decoding: Invalid UTF-8 character"}
Malformed: truncated offer_paths|lno1pgz5znzfgdz3qqgpzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: zero num_hops in blinded_path|lno1pgz5znzfgdz3qqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsqzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: truncated onionmsg_hop in blinded_path|lno1pgz5znzfgdz3qqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqspqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqgkyypqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqs|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: bad first_node_id in blinded_path|lno1pgz5znzfgdz3qqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqspqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqgqzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: bad path_key in blinded_path|lno1pgz5znzfgdz3qqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcpqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqgqzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: bad blinded_node_id in onionmsg_hop|lno1pgz5znzfgdz3qqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqspqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqgqzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Malformed: truncated issuer UTF-8|lno1pgz5znzfgdz3yqvqzcssyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsz|False|{"code":-2,"message":"Bolt12 decoding: Invalid UTF-8 character"}
Malformed: invalid issuer UTF-8|lno1pgz5znzfgdz3yq5qgytzzqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqg|False|{"code":-2,"message":"Bolt12 decoding: Invalid UTF-8 character"}
Malformed: invalid offer_issuer_id|lno1pgz5znzfgdz3vggzqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvpsxqcrqvps|False|{"offer_description":"ALICE","offer_issuer_id":"020303030303030303030303030303030303030303030303030303030303030303"}
Contains type >= 80|lno1pgz5znzfgdz3vggzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgp9qgr0u2xq4dh3kdevrf4zg6hx8a60jv0gxe0ptgyfc6xkryqqqqqqqq|False|{"code":144115188075855876,"message":"Bolt12 decoding: TLV type is not within the allowed range"}
Contains type > 1999999999|lno1pgz5znzfgdz3vggzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgp06ae4jsq9qgr0u2xq4dh3kdevrf4zg6hx8a60jv0gxe0ptgyfc6xkryqqqqqqqq|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Contains unknown even type (1000000002)|lno1pgz5znzfgdz3vggzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgp06wu6egp9qgr0u2xq4dh3kdevrf4zg6hx8a60jv0gxe0ptgyfc6xkryqqqqqqqq|False|{"code":144115188075855875,"message":"Bolt12 decoding: Invalid TLV record"}
Contains unknown feature 122|lno1pgx9getnwss8vetrw3hhyucvzqzqqqqqqqqqqqqqqqqqqqqqqqqpvggzamrjghtt05kvkvpcp0a79gmy3nt6jsn98ad2xs8de6sl9qmgvcvs|False|{"offer_description":"Test vectors","offer_features":"04000000000000000000000000000000","offer_issuer_id":"02eec7245d6b7d2ccb30380bfbe2a3648cd7a942653f5aa340edcea1f283686619"}
Missing offer_description, but has offer_amount|lno1pqpzwyqkyypwa3eyt44h6txtxquqh7lz5djge4afgfjn7k4rgrkuag0jsd5xvxg|False|{"code":10,"message":"Bolt12 decoding: Invalid or missing offer description field"}
Missing offer_issuer_id and no offer_path|lno1pgx9getnwss8vetrw3hhyuc|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
Second offer_path is empty|lno1pgx9getnwss8vetrw3hhyucsespjgef743p5fzqq9nqxh0ah7y87rzv3ud0eleps9kl2d5348hq2k8qzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgqpqqqqqqqqqqqqqqqqqqqqqqqqqqqzqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqqzq3zyg3zyg3zygszqqqqyqqqqsqqvpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqszqgpqyqsq|False|{"code":16,"message":"Bolt12 decoding: Invalid or missing offer paths field"}
