|
|
|
@@ -157,7 +157,7 @@ int main(int argc, char *argv[])
|
|
|
|
/* BOLT #11:
|
|
|
|
/* BOLT #11:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* > ### Please make a donation of any amount using payment_hash 0001020304050607080900010203040506070809000102030405060708090102 to me @03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad
|
|
|
|
* > ### Please make a donation of any amount using payment_hash 0001020304050607080900010203040506070809000102030405060708090102 to me @03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad
|
|
|
|
* > lnbc1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq8rkx3yf5tcsyz3d73gafnh3cax9rn449d9p5uxz9ezhhypd0elx87sjle52x86fux2ypatgddc6k63n7erqz25le42c4u4ecky03ylcqca784w
|
|
|
|
* > lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq0py3tfrnxkt5xadpzangn5rry6r0kqt4f3g36lwln8wwpxtxqccn5agpyte3nx0v78uwn78zu6k30k5mgdgn50yvnd20namlmzp2ersq8065fg
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
if (!node_id_from_hexstr("03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad", strlen("03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad"), &node))
|
|
|
|
if (!node_id_from_hexstr("03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad", strlen("03e7156ae33b0a208d0744199163177e909e80176e55d97a2f221ede0f934dd9ad"), &node))
|
|
|
|
abort();
|
|
|
|
abort();
|
|
|
|
@@ -169,14 +169,17 @@ int main(int argc, char *argv[])
|
|
|
|
* * `lnbc`: prefix, Lightning on Bitcoin mainnet
|
|
|
|
* * `lnbc`: prefix, Lightning on Bitcoin mainnet
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
|
|
|
|
* * `s`: payment secret
|
|
|
|
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
|
|
|
|
* * `zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygs`: payment secret 1111111111111111111111111111111111111111111111111111111111111111
|
|
|
|
* * `p`: payment hash
|
|
|
|
* * `p`: payment hash
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq`: payment hash 0001020304050607080900010203040506070809000102030405060708090102
|
|
|
|
* * `qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypq`: payment hash 0001020304050607080900010203040506070809000102030405060708090102
|
|
|
|
* * `d`: short description
|
|
|
|
* * `d`: short description
|
|
|
|
* * `pl`: `data_length` (`p` = 1, `l` = 31; 1 * 32 + 31 == 63)
|
|
|
|
* * `pl`: `data_length` (`p` = 1, `l` = 31; 1 * 32 + 31 == 63)
|
|
|
|
* * `2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq`: 'Please consider supporting this project'
|
|
|
|
* * `2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq`: 'Please consider supporting this project'
|
|
|
|
* * `8rkx3yf5tcsyz3d73gafnh3cax9rn449d9p5uxz9ezhhypd0elx87sjle52x86fux2ypatgddc6k63n7erqz25le42c4u4ecky03ylcq`: signature
|
|
|
|
* * `0py3tfrnxkt5xadpzangn5rry6r0kqt4f3g36lwln8wwpxtxqccn5agpyte3nx0v78uwn78zu6k30k5mgdgn50yvnd20namlmzp2ersq`: signature
|
|
|
|
* * `ca784w`: Bech32 checksum
|
|
|
|
* * `8065fg`: Bech32 checksum
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
b11 = new_bolt11(tmpctx, NULL);
|
|
|
|
b11 = new_bolt11(tmpctx, NULL);
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
@@ -186,14 +189,16 @@ int main(int argc, char *argv[])
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
abort();
|
|
|
|
abort();
|
|
|
|
b11->receiver_id = node;
|
|
|
|
b11->receiver_id = node;
|
|
|
|
|
|
|
|
b11->payment_secret = tal(b11, struct secret);
|
|
|
|
|
|
|
|
memset(b11->payment_secret, 0x11, sizeof(*b11->payment_secret));
|
|
|
|
b11->description = "Please consider supporting this project";
|
|
|
|
b11->description = "Please consider supporting this project";
|
|
|
|
|
|
|
|
|
|
|
|
test_b11("lnbc1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq8rkx3yf5tcsyz3d73gafnh3cax9rn449d9p5uxz9ezhhypd0elx87sjle52x86fux2ypatgddc6k63n7erqz25le42c4u4ecky03ylcqca784w", b11, NULL);
|
|
|
|
test_b11("lnbc1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdpl2pkx2ctnv5sxxmmwwd5kgetjypeh2ursdae8g6twvus8g6rfwvs8qun0dfjkxaq0py3tfrnxkt5xadpzangn5rry6r0kqt4f3g36lwln8wwpxtxqccn5agpyte3nx0v78uwn78zu6k30k5mgdgn50yvnd20namlmzp2ersq8065fg", b11, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
/* BOLT #11:
|
|
|
|
/* BOLT #11:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* > ### Please send $3 for a cup of coffee to the same peer, within one minute
|
|
|
|
* > ### Please send $3 for a cup of coffee to the same peer, within one minute
|
|
|
|
* > lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuaztrnwngzn3kdzw5hydlzf03qdgm2hdq27cqv3agm2awhz5se903vruatfhq77w3ls4evs3ch9zw97j25emudupq63nyw24cg27h2rspfj9srp
|
|
|
|
* > lnbc2500u1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuu4tgyw2zt3v3c7eljkv2cn8a3etgn8kh8ukctqdmuxdfa7xup0w5ruwpt6eugv73pgzqczz3nc8tcqt2pcljp8ldkrnu5klff35vyscq6lp6ja
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Breakdown:
|
|
|
|
* Breakdown:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
@@ -201,6 +206,7 @@ int main(int argc, char *argv[])
|
|
|
|
* * `2500u`: amount (2500 micro-bitcoin)
|
|
|
|
* * `2500u`: amount (2500 micro-bitcoin)
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
|
|
|
|
* * `s`: payment secret...
|
|
|
|
* * `p`: payment hash...
|
|
|
|
* * `p`: payment hash...
|
|
|
|
* * `d`: short description
|
|
|
|
* * `d`: short description
|
|
|
|
* * `q5`: `data_length` (`q` = 0, `5` = 20; 0 * 32 + 20 == 20)
|
|
|
|
* * `q5`: `data_length` (`q` = 0, `5` = 20; 0 * 32 + 20 == 20)
|
|
|
|
@@ -208,13 +214,15 @@ int main(int argc, char *argv[])
|
|
|
|
* * `x`: expiry time
|
|
|
|
* * `x`: expiry time
|
|
|
|
* * `qz`: `data_length` (`q` = 0, `z` = 2; 0 * 32 + 2 == 2)
|
|
|
|
* * `qz`: `data_length` (`q` = 0, `z` = 2; 0 * 32 + 2 == 2)
|
|
|
|
* * `pu`: 60 seconds (`p` = 1, `u` = 28; 1 * 32 + 28 == 60)
|
|
|
|
* * `pu`: 60 seconds (`p` = 1, `u` = 28; 1 * 32 + 28 == 60)
|
|
|
|
* * `aztrnwngzn3kdzw5hydlzf03qdgm2hdq27cqv3agm2awhz5se903vruatfhq77w3ls4evs3ch9zw97j25emudupq63nyw24cg27h2rsp`: signature
|
|
|
|
* * `u4tgyw2zt3v3c7eljkv2cn8a3etgn8kh8ukctqdmuxdfa7xup0w5ruwpt6eugv73pgzqczz3nc8tcqt2pcljp8ldkrnu5klff35vyscq`: signature
|
|
|
|
* * `fj9srp`: Bech32 checksum
|
|
|
|
* * `6lp6ja`: Bech32 checksum
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
msatoshi = AMOUNT_MSAT(2500 * (1000ULL * 100000000) / 1000000);
|
|
|
|
msatoshi = AMOUNT_MSAT(2500 * (1000ULL * 100000000) / 1000000);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
b11->timestamp = 1496314658;
|
|
|
|
b11->timestamp = 1496314658;
|
|
|
|
|
|
|
|
b11->payment_secret = tal(b11, struct secret);
|
|
|
|
|
|
|
|
memset(b11->payment_secret, 0x11, sizeof(*b11->payment_secret));
|
|
|
|
if (!hex_decode("0001020304050607080900010203040506070809000102030405060708090102",
|
|
|
|
if (!hex_decode("0001020304050607080900010203040506070809000102030405060708090102",
|
|
|
|
strlen("0001020304050607080900010203040506070809000102030405060708090102"),
|
|
|
|
strlen("0001020304050607080900010203040506070809000102030405060708090102"),
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
@@ -223,12 +231,12 @@ int main(int argc, char *argv[])
|
|
|
|
b11->description = "1 cup coffee";
|
|
|
|
b11->description = "1 cup coffee";
|
|
|
|
b11->expiry = 60;
|
|
|
|
b11->expiry = 60;
|
|
|
|
|
|
|
|
|
|
|
|
test_b11("lnbc2500u1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuaztrnwngzn3kdzw5hydlzf03qdgm2hdq27cqv3agm2awhz5se903vruatfhq77w3ls4evs3ch9zw97j25emudupq63nyw24cg27h2rspfj9srp", b11, NULL);
|
|
|
|
test_b11("lnbc2500u1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqdq5xysxxatsyp3k7enxv4jsxqzpuu4tgyw2zt3v3c7eljkv2cn8a3etgn8kh8ukctqdmuxdfa7xup0w5ruwpt6eugv73pgzqczz3nc8tcqt2pcljp8ldkrnu5klff35vyscq6lp6ja", b11, NULL);
|
|
|
|
|
|
|
|
|
|
|
|
/* BOLT #11:
|
|
|
|
/* BOLT #11:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* > ### Now send $24 for an entire list of things (hashed)
|
|
|
|
* > ### Now send $24 for an entire list of things (hashed)
|
|
|
|
* > lnbc20m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqscc6gd6ql3jrc5yzme8v4ntcewwz5cnw92tz0pc8qcuufvq7khhr8wpald05e92xw006sq94mg8v2ndf4sefvf9sygkshp5zfem29trqq2yxxz7
|
|
|
|
* > lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs6e4fy93me7wjwdf9sxgrzr8xldm570z02ur92rv6pa7wkhzpfehnecuyhp4mdhsv5t7em4jz4tjtchs8zmx3tr555yl59lk848due0gqvkanpl
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Breakdown:
|
|
|
|
* Breakdown:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
@@ -236,24 +244,27 @@ int main(int argc, char *argv[])
|
|
|
|
* * `20m`: amount (20 milli-bitcoin)
|
|
|
|
* * `20m`: amount (20 milli-bitcoin)
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
* * `pvjluez`: timestamp (1496314658)
|
|
|
|
|
|
|
|
* * `s`: payment secret...
|
|
|
|
* * `p`: payment hash...
|
|
|
|
* * `p`: payment hash...
|
|
|
|
* * `h`: tagged field: hash of description
|
|
|
|
* * `h`: tagged field: hash of description
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `8yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs`: SHA256 of 'One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon'
|
|
|
|
* * `8yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs`: SHA256 of 'One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon'
|
|
|
|
* * `cc6gd6ql3jrc5yzme8v4ntcewwz5cnw92tz0pc8qcuufvq7khhr8wpald05e92xw006sq94mg8v2ndf4sefvf9sygkshp5zfem29trqq`: signature
|
|
|
|
* * `6e4fy93me7wjwdf9sxgrzr8xldm570z02ur92rv6pa7wkhzpfehnecuyhp4mdhsv5t7em4jz4tjtchs8zmx3tr555yl59lk848due0gq`: signature
|
|
|
|
* * `2yxxz7`: Bech32 checksum
|
|
|
|
* * `vkanpl`: Bech32 checksum
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
msatoshi = AMOUNT_MSAT(20 * (1000ULL * 100000000) / 1000);
|
|
|
|
msatoshi = AMOUNT_MSAT(20 * (1000ULL * 100000000) / 1000);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
b11->chain = chainparams_for_network("bitcoin");
|
|
|
|
b11->timestamp = 1496314658;
|
|
|
|
b11->timestamp = 1496314658;
|
|
|
|
|
|
|
|
b11->payment_secret = tal(b11, struct secret);
|
|
|
|
|
|
|
|
memset(b11->payment_secret, 0x11, sizeof(*b11->payment_secret));
|
|
|
|
if (!hex_decode("0001020304050607080900010203040506070809000102030405060708090102",
|
|
|
|
if (!hex_decode("0001020304050607080900010203040506070809000102030405060708090102",
|
|
|
|
strlen("0001020304050607080900010203040506070809000102030405060708090102"),
|
|
|
|
strlen("0001020304050607080900010203040506070809000102030405060708090102"),
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
&b11->payment_hash, sizeof(b11->payment_hash)))
|
|
|
|
abort();
|
|
|
|
abort();
|
|
|
|
b11->receiver_id = node;
|
|
|
|
b11->receiver_id = node;
|
|
|
|
b11->description_hash = tal(b11, struct sha256);
|
|
|
|
b11->description_hash = tal(b11, struct sha256);
|
|
|
|
test_b11("lnbc20m1pvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqscc6gd6ql3jrc5yzme8v4ntcewwz5cnw92tz0pc8qcuufvq7khhr8wpald05e92xw006sq94mg8v2ndf4sefvf9sygkshp5zfem29trqq2yxxz7", b11, "One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon");
|
|
|
|
test_b11("lnbc20m1pvjluezsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygspp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqs6e4fy93me7wjwdf9sxgrzr8xldm570z02ur92rv6pa7wkhzpfehnecuyhp4mdhsv5t7em4jz4tjtchs8zmx3tr555yl59lk848due0gqvkanpl", b11, "One piece of chocolate cake, one icecream cone, one pickle, one slice of swiss cheese, one slice of salami, one lollypop, one piece of cherry pie, one sausage, one cupcake, and one slice of watermelon");
|
|
|
|
|
|
|
|
|
|
|
|
/* Malformed bolt11 strings (no '1'). */
|
|
|
|
/* Malformed bolt11 strings (no '1'). */
|
|
|
|
badstr = "lnbc20mpvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqscc6gd6ql3jrc5yzme8v4ntcewwz5cnw92tz0pc8qcuufvq7khhr8wpald05e92xw006sq94mg8v2ndf4sefvf9sygkshp5zfem29trqq2yxxz7";
|
|
|
|
badstr = "lnbc20mpvjluezpp5qqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqqqsyqcyq5rqwzqfqypqhp58yjmdan79s6qqdhdzgynm4zwqd5d7xmw5fk98klysy043l2ahrqscc6gd6ql3jrc5yzme8v4ntcewwz5cnw92tz0pc8qcuufvq7khhr8wpald05e92xw006sq94mg8v2ndf4sefvf9sygkshp5zfem29trqq2yxxz7";
|
|
|
|
@@ -326,7 +337,7 @@ int main(int argc, char *argv[])
|
|
|
|
* * `9`: features
|
|
|
|
* * `9`: features
|
|
|
|
* * `q5`: `data_length` (`q` = 0, `5` = 20; 0 * 32 + 20 == 20)
|
|
|
|
* * `q5`: `data_length` (`q` = 0, `5` = 20; 0 * 32 + 20 == 20)
|
|
|
|
* * `sqqqqqqqqqqqqqqqpqsq`: b1000....00001000001000000000
|
|
|
|
* * `sqqqqqqqqqqqqqqqpqsq`: b1000....00001000001000000000
|
|
|
|
** `67gye39hfg3zd8rgc8032tvy9xk2xunwm5lzexnvpx6fd77en8qaq424dxgt56cag2dpt359k3ssyhetktkpqh24jqnjyw6uqd08sgp`: signature
|
|
|
|
** `67gye39hfg3zd8rgc80k32tvy9xk2xunwm5lzexnvpx6fd77en8qaq424dxgt56cag2dpt359k3ssyhetktkpqh24jqnjyw6uqd08sgp`: signature
|
|
|
|
** `tq44qu`: Bech32 checksum
|
|
|
|
** `tq44qu`: Bech32 checksum
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
msatoshi = AMOUNT_MSAT(25 * (1000ULL * 100000000) / 1000);
|
|
|
|
msatoshi = AMOUNT_MSAT(25 * (1000ULL * 100000000) / 1000);
|
|
|
|
@@ -474,7 +485,7 @@ int main(int argc, char *argv[])
|
|
|
|
/* BOLT #11:
|
|
|
|
/* BOLT #11:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* > ### Please send 0.00967878534 BTC for a list of items within one week, amount in pico-BTC
|
|
|
|
* > ### Please send 0.00967878534 BTC for a list of items within one week, amount in pico-BTC
|
|
|
|
* > lnbc9678785340p1pwmna7lpp5gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0sd8dgfkx7cmtwd68yetpd5s9xar0wfjn5gpc8qhrsdfq24f5ggrxdaezqsnvda3kkum5wfjkzmfqf3jkgem9wgsyuctwdus9xgrcyqcjcgpzgfskx6eqf9hzqnteypzxz7fzypfhg6trddjhygrcyqezcgpzfysywmm5ypxxjemgw3hxjmn8yptk7untd9hxwg3q2d6xjcmtv4ezq7pqxgsxzmnyyqcjqmt0wfjjq6t5v4khxxqyjw5qcqp2rzjq0gxwkzc8w6323m55m4jyxcjwmy7stt9hwkwe2qxmy8zpsgg7jcuwz87fcqqeuqqqyqqqqlgqqqqn3qq9qn07ytgrxxzad9hc4xt3mawjjt8znfv8xzscs7007v9gh9j569lencxa8xeujzkxs0uamak9aln6ez02uunw6rd2ht2sqe4hz8thcdagpleym0j
|
|
|
|
* > lnbc9678785340p1pwmna7lpp5gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0sd8dgfkx7cmtwd68yetpd5s9xar0wfjn5gpc8qhrsdfq24f5ggrxdaezqsnvda3kkum5wfjkzmfqf3jkgem9wgsyuctwdus9xgrcyqcjcgpzgfskx6eqf9hzqnteypzxz7fzypfhg6trddjhygrcyqezcgpzfysywmm5ypxxjemgw3hxjmn8yptk7untd9hxwg3q2d6xjcmtv4ezq7pqxgsxzmnyyqcjqmt0wfjjq6t5v4khxsp5zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zyg3zygsxqyjw5qcqp2rzjq0gxwkzc8w6323m55m4jyxcjwmy7stt9hwkwe2qxmy8zpsgg7jcuwz87fcqqeuqqqyqqqqlgqqqqn3qq9q0777th7sgnqqpykcmu4c2u65vtnefrnjzws78maaxy87euvpj0hr8t5ma58cyw5f3f9ej4aw9swcyvk4vp6vjlxtgpcfdy8u9m4c6wgpdqfxt2
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Breakdown:
|
|
|
|
* Breakdown:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
@@ -482,7 +493,8 @@ int main(int argc, char *argv[])
|
|
|
|
* * `9678785340p`: amount (9678785340 pico-bitcoin = 967878534 milli satoshi)
|
|
|
|
* * `9678785340p`: amount (9678785340 pico-bitcoin = 967878534 milli satoshi)
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `1`: Bech32 separator
|
|
|
|
* * `pwmna7l`: timestamp (1572468703)
|
|
|
|
* * `pwmna7l`: timestamp (1572468703)
|
|
|
|
* * `p`: payment hash.
|
|
|
|
* * `s`: payment secret...
|
|
|
|
|
|
|
|
* * `p`: payment hash
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `p5`: `data_length` (`p` = 1, `5` = 20; 1 * 32 + 20 == 52)
|
|
|
|
* * `gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0s`: payment hash 462264ede7e14047e9b249da94fefc47f41f7d02ee9b091815a5506bc8abf75f
|
|
|
|
* * `gc3xfm08u9qy06djf8dfflhugl6p7lgza6dsjxq454gxhj9t7a0s`: payment hash 462264ede7e14047e9b249da94fefc47f41f7d02ee9b091815a5506bc8abf75f
|
|
|
|
* * `d`: short description
|
|
|
|
* * `d`: short description
|
|
|
|
@@ -502,8 +514,8 @@ int main(int argc, char *argv[])
|
|
|
|
* * fee_base_msat = 1000
|
|
|
|
* * fee_base_msat = 1000
|
|
|
|
* * fee_proportional_millionths = 2500
|
|
|
|
* * fee_proportional_millionths = 2500
|
|
|
|
* * cltv_expiry_delta = 40
|
|
|
|
* * cltv_expiry_delta = 40
|
|
|
|
* * `n07ytgrxxzad9hc4xt3mawjjt8znfv8xzscs7007v9gh9j569lencxa8xeujzkxs0uamak9aln6ez02uunw6rd2ht2sqe4hz8thcdagp`: signature
|
|
|
|
* * `0777th7sgnqqpykcmu4c2u65vtnefrnjzws78maaxy87euvpj0hr8t5ma58cyw5f3f9ej4aw9swcyvk4vp6vjlxtgpcfdy8u9m4c6wgp`: signature
|
|
|
|
* * `leym0j`: Bech32 checksum
|
|
|
|
* * `dqfxt2`: Bech32 checksum
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
msatoshi = AMOUNT_MSAT(967878534);
|
|
|
|
msatoshi = AMOUNT_MSAT(967878534);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
b11 = new_bolt11(tmpctx, &msatoshi);
|
|
|
|
|