diff --git a/tests/fuzz/corpora/fuzz-amount-arith/070163bcc387dea560b6496367d64ef978649927 b/tests/fuzz/corpora/fuzz-amount-arith/070163bcc387dea560b6496367d64ef978649927 new file mode 100644 index 000000000000..3323125389d2 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/070163bcc387dea560b6496367d64ef978649927 @@ -0,0 +1 @@ +åååååååååZÀqÀ å§= \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/071e35d8beea703a85e6c5aea81f8b52df79e603 b/tests/fuzz/corpora/fuzz-amount-arith/071e35d8beea703a85e6c5aea81f8b52df79e603 new file mode 100644 index 000000000000..f925f2eaeb61 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/071e35d8beea703a85e6c5aea81f8b52df79e603 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/0d1573ab44083080ddc1fb47edf57fd87efed4d4 b/tests/fuzz/corpora/fuzz-amount-arith/0d1573ab44083080ddc1fb47edf57fd87efed4d4 new file mode 100644 index 000000000000..3a694cf6be7b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/0d1573ab44083080ddc1fb47edf57fd87efed4d4 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/121cb5e26a4d0ffbc06a858ce8039f3bb77fe6d7 b/tests/fuzz/corpora/fuzz-amount-arith/121cb5e26a4d0ffbc06a858ce8039f3bb77fe6d7 new file mode 100644 index 000000000000..fa66e1718c63 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/121cb5e26a4d0ffbc06a858ce8039f3bb77fe6d7 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/1aa01fefb209537bfc8094cf53c230b846c6b94e b/tests/fuzz/corpora/fuzz-amount-arith/1aa01fefb209537bfc8094cf53c230b846c6b94e new file mode 100644 index 000000000000..480fadeef104 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/1aa01fefb209537bfc8094cf53c230b846c6b94e differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/1d3f4331f9ef89544eec49c3cc607fa7faacf692 b/tests/fuzz/corpora/fuzz-amount-arith/1d3f4331f9ef89544eec49c3cc607fa7faacf692 new file mode 100644 index 000000000000..2061afad39da Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/1d3f4331f9ef89544eec49c3cc607fa7faacf692 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/1f1f5f570c8b9f6e097783a7d6b0dec005bee000 b/tests/fuzz/corpora/fuzz-amount-arith/1f1f5f570c8b9f6e097783a7d6b0dec005bee000 new file mode 100644 index 000000000000..2c0d7b0af4ca --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/1f1f5f570c8b9f6e097783a7d6b0dec005bee000 @@ -0,0 +1 @@ +ååååååååååååååååååååååååååååååå§= \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/279153a7a17bb2dd8ee6675d55bf04eb2fd97d5a b/tests/fuzz/corpora/fuzz-amount-arith/279153a7a17bb2dd8ee6675d55bf04eb2fd97d5a new file mode 100644 index 000000000000..9679aef6d0d3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/279153a7a17bb2dd8ee6675d55bf04eb2fd97d5a differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/2a3584e36a9f8faa6100bad14de4b3fe5ce58ccd b/tests/fuzz/corpora/fuzz-amount-arith/2a3584e36a9f8faa6100bad14de4b3fe5ce58ccd new file mode 100644 index 000000000000..bb7b77109fed --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/2a3584e36a9f8faa6100bad14de4b3fe5ce58ccd @@ -0,0 +1 @@ +åååååååååÀÀq å§= \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/2b549cdda5ed270f30a85fbed9a14fb4c9349f9a b/tests/fuzz/corpora/fuzz-amount-arith/2b549cdda5ed270f30a85fbed9a14fb4c9349f9a new file mode 100644 index 000000000000..f4b88b130781 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/2b549cdda5ed270f30a85fbed9a14fb4c9349f9a differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/32805a5a53a50d7d2b892db7508f7618c55edef0 b/tests/fuzz/corpora/fuzz-amount-arith/32805a5a53a50d7d2b892db7508f7618c55edef0 new file mode 100644 index 000000000000..215d7f484705 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/32805a5a53a50d7d2b892db7508f7618c55edef0 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/343bf0c26e60b5e6b0643a9dba85b68eb254aaee b/tests/fuzz/corpora/fuzz-amount-arith/343bf0c26e60b5e6b0643a9dba85b68eb254aaee new file mode 100644 index 000000000000..42d004a0b416 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/343bf0c26e60b5e6b0643a9dba85b68eb254aaee differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/3983923e6d5398d14d0e974e0cc469ea027228a4 b/tests/fuzz/corpora/fuzz-amount-arith/3983923e6d5398d14d0e974e0cc469ea027228a4 new file mode 100644 index 000000000000..3bc947d73bdd Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/3983923e6d5398d14d0e974e0cc469ea027228a4 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/3b70348b9001aa7bd04ee736e9b46770b41db874 b/tests/fuzz/corpora/fuzz-amount-arith/3b70348b9001aa7bd04ee736e9b46770b41db874 new file mode 100644 index 000000000000..d7a3392b61cd Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/3b70348b9001aa7bd04ee736e9b46770b41db874 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/3daca0cd092f813b5c72186e6aa2632976da2d1c b/tests/fuzz/corpora/fuzz-amount-arith/3daca0cd092f813b5c72186e6aa2632976da2d1c new file mode 100644 index 000000000000..3c563a1eab31 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/3daca0cd092f813b5c72186e6aa2632976da2d1c differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/410eac2c316f04e196cc6e1f58a11c23eacc9056 b/tests/fuzz/corpora/fuzz-amount-arith/410eac2c316f04e196cc6e1f58a11c23eacc9056 new file mode 100644 index 000000000000..c74f94e254f6 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/410eac2c316f04e196cc6e1f58a11c23eacc9056 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/41f530e7febc2463d7f21b3da51242edb22ee836 b/tests/fuzz/corpora/fuzz-amount-arith/41f530e7febc2463d7f21b3da51242edb22ee836 new file mode 100644 index 000000000000..0a7f25337aa8 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/41f530e7febc2463d7f21b3da51242edb22ee836 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/4281f5de874e5a3980843ed8443af583a64b9a25 b/tests/fuzz/corpora/fuzz-amount-arith/4281f5de874e5a3980843ed8443af583a64b9a25 new file mode 100644 index 000000000000..6ccca602f2d3 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/4281f5de874e5a3980843ed8443af583a64b9a25 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/43ed41e6f20e6bf57ca354467802a93a5dc14263 b/tests/fuzz/corpora/fuzz-amount-arith/43ed41e6f20e6bf57ca354467802a93a5dc14263 new file mode 100644 index 000000000000..f9aa746cc18a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/43ed41e6f20e6bf57ca354467802a93a5dc14263 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/4493b8c034724c49dda385077a24ca344c72829d b/tests/fuzz/corpora/fuzz-amount-arith/4493b8c034724c49dda385077a24ca344c72829d new file mode 100644 index 000000000000..bdeb0c0d4517 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/4493b8c034724c49dda385077a24ca344c72829d differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/4b21550d021f106e09c0c4578b39d385b563b0c5 b/tests/fuzz/corpora/fuzz-amount-arith/4b21550d021f106e09c0c4578b39d385b563b0c5 new file mode 100644 index 000000000000..f111283fed3a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/4b21550d021f106e09c0c4578b39d385b563b0c5 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/5248c391b3d7f30e2e293e64a8ab098b6a6fdcbb b/tests/fuzz/corpora/fuzz-amount-arith/5248c391b3d7f30e2e293e64a8ab098b6a6fdcbb new file mode 100644 index 000000000000..c868bb77dc56 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/5248c391b3d7f30e2e293e64a8ab098b6a6fdcbb differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/5802eb214798d86af503bbf79337692714445813 b/tests/fuzz/corpora/fuzz-amount-arith/5802eb214798d86af503bbf79337692714445813 new file mode 100644 index 000000000000..41254b9d7342 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/5802eb214798d86af503bbf79337692714445813 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/58bab7586865aba85be5d7807eea2f91f748f815 b/tests/fuzz/corpora/fuzz-amount-arith/58bab7586865aba85be5d7807eea2f91f748f815 new file mode 100644 index 000000000000..5d67074105f9 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/58bab7586865aba85be5d7807eea2f91f748f815 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/5cd4f8601fd3da4b04753779c633263455c3210a b/tests/fuzz/corpora/fuzz-amount-arith/5cd4f8601fd3da4b04753779c633263455c3210a new file mode 100644 index 000000000000..2c70f46050ad Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/5cd4f8601fd3da4b04753779c633263455c3210a differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/5dc6ce7b2b2753f165f85cc072a7e5238e108620 b/tests/fuzz/corpora/fuzz-amount-arith/5dc6ce7b2b2753f165f85cc072a7e5238e108620 new file mode 100644 index 000000000000..1e483db4ff96 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/5dc6ce7b2b2753f165f85cc072a7e5238e108620 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/5ff65caf327b3e6cfc5639d658827357ca2d7358 b/tests/fuzz/corpora/fuzz-amount-arith/5ff65caf327b3e6cfc5639d658827357ca2d7358 new file mode 100644 index 000000000000..a0b55312b0c4 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/5ff65caf327b3e6cfc5639d658827357ca2d7358 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/64c5f3a2c9b26751edb292809758df61c80963d9 b/tests/fuzz/corpora/fuzz-amount-arith/64c5f3a2c9b26751edb292809758df61c80963d9 new file mode 100644 index 000000000000..bbf365d016dc Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/64c5f3a2c9b26751edb292809758df61c80963d9 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/702363831cd9c11e0f8e9d0b551846d18e7d2f6b b/tests/fuzz/corpora/fuzz-amount-arith/702363831cd9c11e0f8e9d0b551846d18e7d2f6b new file mode 100644 index 000000000000..ca2cebe563c1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/702363831cd9c11e0f8e9d0b551846d18e7d2f6b differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/73b74736664ad85828ce1be2e29fb4a68d24402b b/tests/fuzz/corpora/fuzz-amount-arith/73b74736664ad85828ce1be2e29fb4a68d24402b new file mode 100644 index 000000000000..009080e8e0bf --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/73b74736664ad85828ce1be2e29fb4a68d24402b @@ -0,0 +1 @@ +÷ \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/7427fbf959a7b666f2fdc9f630024d676a01d6c5 b/tests/fuzz/corpora/fuzz-amount-arith/7427fbf959a7b666f2fdc9f630024d676a01d6c5 new file mode 100644 index 000000000000..b4126690e4f4 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/7427fbf959a7b666f2fdc9f630024d676a01d6c5 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/76dc44c1bccf95a199e3ec1546dd8faef7a3f915 b/tests/fuzz/corpora/fuzz-amount-arith/76dc44c1bccf95a199e3ec1546dd8faef7a3f915 new file mode 100644 index 000000000000..b003a1784c1d Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/76dc44c1bccf95a199e3ec1546dd8faef7a3f915 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/772c61baf9608a501698dac45ff5623bf15ff3cf b/tests/fuzz/corpora/fuzz-amount-arith/772c61baf9608a501698dac45ff5623bf15ff3cf new file mode 100644 index 000000000000..666411c417d9 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/772c61baf9608a501698dac45ff5623bf15ff3cf differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/7c508a1f99fb75f2a4fce10d5f84898f10dbf005 b/tests/fuzz/corpora/fuzz-amount-arith/7c508a1f99fb75f2a4fce10d5f84898f10dbf005 new file mode 100644 index 000000000000..fe942efcc9f1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/7c508a1f99fb75f2a4fce10d5f84898f10dbf005 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/805e2a6e0fc41ac8765b09e49c4fe48d60d0ec12 b/tests/fuzz/corpora/fuzz-amount-arith/805e2a6e0fc41ac8765b09e49c4fe48d60d0ec12 new file mode 100644 index 000000000000..9e49d303f101 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/805e2a6e0fc41ac8765b09e49c4fe48d60d0ec12 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/81ee6f1f96ae2bc172dcb8b9583e812c719bfcaa b/tests/fuzz/corpora/fuzz-amount-arith/81ee6f1f96ae2bc172dcb8b9583e812c719bfcaa new file mode 100644 index 000000000000..bc6ab0c49631 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/81ee6f1f96ae2bc172dcb8b9583e812c719bfcaa differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/87aa1028b4177cc7606b8371ce5b65fa7eb9f328 b/tests/fuzz/corpora/fuzz-amount-arith/87aa1028b4177cc7606b8371ce5b65fa7eb9f328 new file mode 100644 index 000000000000..ddcd690ad7fa Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/87aa1028b4177cc7606b8371ce5b65fa7eb9f328 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/8a0721e5fac291a8d21049a3e116867a45542b64 b/tests/fuzz/corpora/fuzz-amount-arith/8a0721e5fac291a8d21049a3e116867a45542b64 new file mode 100644 index 000000000000..58100a33379a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/8a0721e5fac291a8d21049a3e116867a45542b64 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/908e0532176b37667891f1add45f80a074ae16c9 b/tests/fuzz/corpora/fuzz-amount-arith/908e0532176b37667891f1add45f80a074ae16c9 new file mode 100644 index 000000000000..be7471328d41 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/908e0532176b37667891f1add45f80a074ae16c9 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/94ec09b8d021f035a3f5ca810600371b35b82b7b b/tests/fuzz/corpora/fuzz-amount-arith/94ec09b8d021f035a3f5ca810600371b35b82b7b new file mode 100644 index 000000000000..c6bdfe61c360 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/94ec09b8d021f035a3f5ca810600371b35b82b7b differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/96e32e654758c806be66026fff1d0fc60ff130a5 b/tests/fuzz/corpora/fuzz-amount-arith/96e32e654758c806be66026fff1d0fc60ff130a5 new file mode 100644 index 000000000000..4170c023bb5a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/96e32e654758c806be66026fff1d0fc60ff130a5 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/9855e6088543603fab6b8cc212dbf8672971289b b/tests/fuzz/corpora/fuzz-amount-arith/9855e6088543603fab6b8cc212dbf8672971289b new file mode 100644 index 000000000000..0f98c5fe1002 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/9855e6088543603fab6b8cc212dbf8672971289b differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/99689287a2fdd8e93baff831f59019361b5868d4 b/tests/fuzz/corpora/fuzz-amount-arith/99689287a2fdd8e93baff831f59019361b5868d4 new file mode 100644 index 000000000000..8cb92b90eb18 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/99689287a2fdd8e93baff831f59019361b5868d4 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/99878f5e1a7aaa0e0207a3d368a34d91e9e81161 b/tests/fuzz/corpora/fuzz-amount-arith/99878f5e1a7aaa0e0207a3d368a34d91e9e81161 new file mode 100644 index 000000000000..de81982e22c1 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/99878f5e1a7aaa0e0207a3d368a34d91e9e81161 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/a00c50db12c21ca80086141440d972c4d3935500 b/tests/fuzz/corpora/fuzz-amount-arith/a00c50db12c21ca80086141440d972c4d3935500 new file mode 100644 index 000000000000..724c4ce88cdb Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/a00c50db12c21ca80086141440d972c4d3935500 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/a192ed4958390b832b0bfbdb48870cb8600fdbf0 b/tests/fuzz/corpora/fuzz-amount-arith/a192ed4958390b832b0bfbdb48870cb8600fdbf0 new file mode 100644 index 000000000000..039c85cf6022 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/a192ed4958390b832b0bfbdb48870cb8600fdbf0 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/a461812b706f0e9a4d0e39c68ca7abf1c21598ae b/tests/fuzz/corpora/fuzz-amount-arith/a461812b706f0e9a4d0e39c68ca7abf1c21598ae new file mode 100644 index 000000000000..877b0b2e1647 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/a461812b706f0e9a4d0e39c68ca7abf1c21598ae differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/b2f59bf837fcad2d5479a93309d8f5835bb9103c b/tests/fuzz/corpora/fuzz-amount-arith/b2f59bf837fcad2d5479a93309d8f5835bb9103c new file mode 100644 index 000000000000..e62647dcc9f4 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/b2f59bf837fcad2d5479a93309d8f5835bb9103c differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/bb83367c8017a3dd7ca9c377a7f6dda5e8338c06 b/tests/fuzz/corpora/fuzz-amount-arith/bb83367c8017a3dd7ca9c377a7f6dda5e8338c06 new file mode 100644 index 000000000000..3c0061659c1a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/bb83367c8017a3dd7ca9c377a7f6dda5e8338c06 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/c175e69697791a4af976487248799bed6525eb79 b/tests/fuzz/corpora/fuzz-amount-arith/c175e69697791a4af976487248799bed6525eb79 new file mode 100644 index 000000000000..57fc6a46f6ad Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/c175e69697791a4af976487248799bed6525eb79 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/c4824be96b26b4fa996ee3d185ab08c9b93a9fcd b/tests/fuzz/corpora/fuzz-amount-arith/c4824be96b26b4fa996ee3d185ab08c9b93a9fcd new file mode 100644 index 000000000000..64897c48f615 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/c4824be96b26b4fa996ee3d185ab08c9b93a9fcd differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/c6153815f2a4047ed5559555d3529f58d939a7a2 b/tests/fuzz/corpora/fuzz-amount-arith/c6153815f2a4047ed5559555d3529f58d939a7a2 new file mode 100644 index 000000000000..e41e1425172f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/c6153815f2a4047ed5559555d3529f58d939a7a2 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/d55bcdf6438055302a758a54daf7619066862a84 b/tests/fuzz/corpora/fuzz-amount-arith/d55bcdf6438055302a758a54daf7619066862a84 new file mode 100644 index 000000000000..fc5c41d025a6 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/d55bcdf6438055302a758a54daf7619066862a84 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/d812f58b8a722377b1979349c08651e0b49d70c4 b/tests/fuzz/corpora/fuzz-amount-arith/d812f58b8a722377b1979349c08651e0b49d70c4 new file mode 100644 index 000000000000..eaa1606654cf --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/d812f58b8a722377b1979349c08651e0b49d70c4 @@ -0,0 +1 @@ +ËËËËËËËËËËËËËËËËË:ËËËËËËËËËËËËË.Ë \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/d8249961012a613c46f35bcac01f9ff204cc57b5 b/tests/fuzz/corpora/fuzz-amount-arith/d8249961012a613c46f35bcac01f9ff204cc57b5 new file mode 100644 index 000000000000..e5959301ad57 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/d8249961012a613c46f35bcac01f9ff204cc57b5 @@ -0,0 +1 @@ +åååäåååååååååååååååååååå'åååååå§= \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/d9529625936de9119a00dd7e88800cf72e2ffb81 b/tests/fuzz/corpora/fuzz-amount-arith/d9529625936de9119a00dd7e88800cf72e2ffb81 new file mode 100644 index 000000000000..00d8fbfc33e5 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/d9529625936de9119a00dd7e88800cf72e2ffb81 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/d960e8c18211793e227129148d5df333ed4fb76b b/tests/fuzz/corpora/fuzz-amount-arith/d960e8c18211793e227129148d5df333ed4fb76b new file mode 100644 index 000000000000..4bd48ffac68b Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/d960e8c18211793e227129148d5df333ed4fb76b differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/da8676c0bdc58525a41ffc5be3810c9324aeaab3 b/tests/fuzz/corpora/fuzz-amount-arith/da8676c0bdc58525a41ffc5be3810c9324aeaab3 new file mode 100644 index 000000000000..ddbb682ec886 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/da8676c0bdc58525a41ffc5be3810c9324aeaab3 @@ -0,0 +1 @@ +eåååååÀÀq å§=Àq å§= \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/db0d24b7e2885d066a9c79c2ee5779ed6276a127 b/tests/fuzz/corpora/fuzz-amount-arith/db0d24b7e2885d066a9c79c2ee5779ed6276a127 new file mode 100644 index 000000000000..27d0de3f671c Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/db0d24b7e2885d066a9c79c2ee5779ed6276a127 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/dcf5bf6c63ba8e32483f75660b3a6a0f5d764483 b/tests/fuzz/corpora/fuzz-amount-arith/dcf5bf6c63ba8e32483f75660b3a6a0f5d764483 new file mode 100644 index 000000000000..59cd9bddc043 --- /dev/null +++ b/tests/fuzz/corpora/fuzz-amount-arith/dcf5bf6c63ba8e32483f75660b3a6a0f5d764483 @@ -0,0 +1 @@ +§ \ No newline at end of file diff --git a/tests/fuzz/corpora/fuzz-amount-arith/f6b20e8c301b07ef4bb6578b792bd1ebedd49ee2 b/tests/fuzz/corpora/fuzz-amount-arith/f6b20e8c301b07ef4bb6578b792bd1ebedd49ee2 new file mode 100644 index 000000000000..d5749ef82184 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/f6b20e8c301b07ef4bb6578b792bd1ebedd49ee2 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/f869613a7b56fd27e3db5eed2b2a42eed6e779fa b/tests/fuzz/corpora/fuzz-amount-arith/f869613a7b56fd27e3db5eed2b2a42eed6e779fa new file mode 100644 index 000000000000..a166456070e7 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/f869613a7b56fd27e3db5eed2b2a42eed6e779fa differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/f9e9468331be951b1d27605e52190e92930f85a8 b/tests/fuzz/corpora/fuzz-amount-arith/f9e9468331be951b1d27605e52190e92930f85a8 new file mode 100644 index 000000000000..527bf929357a Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/f9e9468331be951b1d27605e52190e92930f85a8 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/fa0e08141bfa60b272dfdfe41d8f071f5b00f1d1 b/tests/fuzz/corpora/fuzz-amount-arith/fa0e08141bfa60b272dfdfe41d8f071f5b00f1d1 new file mode 100644 index 000000000000..603e8c539c8e Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/fa0e08141bfa60b272dfdfe41d8f071f5b00f1d1 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/fa243d006173fc87ee3106a99ba80ffc21a9da48 b/tests/fuzz/corpora/fuzz-amount-arith/fa243d006173fc87ee3106a99ba80ffc21a9da48 new file mode 100644 index 000000000000..351cc277f49f Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/fa243d006173fc87ee3106a99ba80ffc21a9da48 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/fa3978e005ac21f6c4bc6794bfbe21adf7906907 b/tests/fuzz/corpora/fuzz-amount-arith/fa3978e005ac21f6c4bc6794bfbe21adf7906907 new file mode 100644 index 000000000000..bd3306ec29b9 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/fa3978e005ac21f6c4bc6794bfbe21adf7906907 differ diff --git a/tests/fuzz/corpora/fuzz-amount-arith/fb516314ce68d9b1ee2abd29696eefa3e66fdc79 b/tests/fuzz/corpora/fuzz-amount-arith/fb516314ce68d9b1ee2abd29696eefa3e66fdc79 new file mode 100644 index 000000000000..d7e2bb6b4047 Binary files /dev/null and b/tests/fuzz/corpora/fuzz-amount-arith/fb516314ce68d9b1ee2abd29696eefa3e66fdc79 differ diff --git a/tests/fuzz/fuzz-amount-arith.c b/tests/fuzz/fuzz-amount-arith.c new file mode 100644 index 000000000000..667657ae5a9d --- /dev/null +++ b/tests/fuzz/fuzz-amount-arith.c @@ -0,0 +1,237 @@ +#include "config.h" +#include +#include +#include +#include +#include +#include + +void init(int *argc, char ***argv) {} + +#define MAX_SATS ((u64)WALLY_SATOSHI_PER_BTC * WALLY_BTC_MAX) +#define MAX_MSATS (MAX_SATS * 1000) +#define MAX_FEE_BASE 10000000 +#define MAX_FEE_PROP 1000000 + +static struct amount_msat fromwire_amount_msat_bounded(const u8 **cursor, size_t *max) +{ + u64 amt = fromwire_u64(cursor, max) % MAX_MSATS; + return amount_msat(amt); +} + +enum op { + OP_MSAT_ADD, + OP_MSAT_SUB, + OP_MSAT_MUL, + OP_MSAT_DIV, + OP_MSAT_RATIO, + OP_MSAT_RATIO_FLOOR, + OP_MSAT_RATIO_CEIL, + OP_MSAT_SCALE, + OP_MSAT_ADD_SAT, + OP_MSAT_SUB_SAT, + OP_SAT_ADD, + OP_SAT_SUB, + OP_SAT_MUL, + OP_SAT_DIV, + OP_SAT_SCALE, + OP_FEE, + OP_ADD_FEE, + OP_SUB_FEE, + OP_TX_FEE, + OP_FEERATE, + OP_COUNT +}; + +void run(const uint8_t *data, size_t size) { + u8 op; + u64 u64_param; + double f; + struct amount_msat a, b, out_ms; + struct amount_sat sa, sb, out_s; + + a = fromwire_amount_msat_bounded(&data, &size); + b = fromwire_amount_msat_bounded(&data, &size); + sa = amount_msat_to_sat_round_down(a); + sb = amount_msat_to_sat_round_down(b); + + u64_param = fromwire_u64(&data, &size); + op = fromwire_u8(&data, &size) % OP_COUNT; + + if (size < sizeof(f)) + return; + memcpy(&f, data, sizeof(f)); + data += sizeof(f); + + switch (op) { + case OP_MSAT_ADD: + { + if (amount_msat_add(&out_ms, a, b)) + assert(out_ms.millisatoshis == a.millisatoshis + b.millisatoshis); + break; + } + case OP_MSAT_SUB: + { + if (amount_msat_sub(&out_ms, a, b)) + assert(out_ms.millisatoshis + b.millisatoshis == a.millisatoshis); + break; + } + case OP_MSAT_MUL: + { + if (amount_msat_mul(&out_ms, a, u64_param)) + assert(out_ms.millisatoshis == a.millisatoshis * u64_param); + break; + } + case OP_MSAT_DIV: + { + if (u64_param == 0) + break; + out_ms = amount_msat_div(a, u64_param); + assert(out_ms.millisatoshis == a.millisatoshis / u64_param); + break; + } + case OP_MSAT_RATIO: + { + if (b.millisatoshis == 0) + break; + double ratio = amount_msat_ratio(a, b); + double expected = (double)a.millisatoshis / b.millisatoshis; + assert(ratio == expected); + break; + } + case OP_MSAT_RATIO_FLOOR: + { + if (b.millisatoshis == 0) + break; + u64 floor = amount_msat_ratio_floor(a, b); + assert(floor == a.millisatoshis / b.millisatoshis); + break; + } + case OP_MSAT_RATIO_CEIL: + { + if (b.millisatoshis == 0) + break; + u64 ceil = amount_msat_ratio_ceil(a, b); + u64 quotient = a.millisatoshis / b.millisatoshis; + u64 remainder = a.millisatoshis % b.millisatoshis; + + assert(ceil == quotient + (remainder != 0)); + break; + } + case OP_MSAT_SCALE: + { + if (amount_msat_scale(&out_ms, a, f)) { + double expect = (double)a.millisatoshis * f; + assert(fabs((double)out_ms.millisatoshis - expect) < 1.0); + } + break; + } + case OP_MSAT_ADD_SAT: + { + if (amount_msat_add_sat(&out_ms, a, sa)) + assert(out_ms.millisatoshis == sa.satoshis * MSAT_PER_SAT + a.millisatoshis); + break; + } + case OP_MSAT_SUB_SAT: + { + if (amount_msat_sub_sat(&out_ms, a, sa)) + assert(out_ms.millisatoshis + sa.satoshis * MSAT_PER_SAT == a.millisatoshis); + break; + } + case OP_SAT_ADD: + { + if (amount_sat_add(&out_s, sa, sb)) + assert(out_s.satoshis == sa.satoshis + sb.satoshis); + break; + } + case OP_SAT_SUB: + { + if (amount_sat_sub(&out_s, sa, sb)) + assert(out_s.satoshis + sb.satoshis == sa.satoshis); + break; + } + case OP_SAT_MUL: + { + if (amount_sat_mul(&out_s, sa, u64_param)) + assert(out_s.satoshis == sa.satoshis * u64_param); + break; + } + case OP_SAT_DIV: + { + if (u64_param == 0) + break; + out_s = amount_sat_div(sa, u64_param); + assert(out_s.satoshis == sa.satoshis / u64_param); + break; + } + case OP_SAT_SCALE: + { + if (amount_sat_scale(&out_s, sa, f)) { + double expect = sa.satoshis * f; + assert(fabs((double)out_s.satoshis - expect) < 1.0); + } + break; + } + case OP_FEE: + { + if (amount_msat_fee(&out_ms, a, (u32)a.millisatoshis, + (u32)b.millisatoshis)) + assert(out_ms.millisatoshis >= (u32)a.millisatoshis); + break; + } + case OP_ADD_FEE: + { + u32 fee_base = (u32)a.millisatoshis % MAX_FEE_BASE; + u32 fee_prop = (u32)b.millisatoshis % MAX_FEE_PROP; + struct amount_msat original = a; + struct amount_msat fee; + + if (amount_msat_fee(&fee, original, fee_base, fee_prop)) { + struct amount_msat total; + assert(amount_msat_add(&total, original, fee)); + assert(total.millisatoshis == original.millisatoshis + fee.millisatoshis); + } + break; + } + case OP_SUB_FEE: + { + u32 fee_base = (u32)a.millisatoshis % MAX_FEE_BASE; + u32 fee_prop = (u32)b.millisatoshis % MAX_FEE_PROP; + struct amount_msat input = a; + struct amount_msat output = amount_msat_sub_fee(input, fee_base, fee_prop); + struct amount_msat fee; + + if (amount_msat_fee(&fee, output, fee_base, fee_prop)) { + struct amount_msat sum; + if (amount_msat_add(&sum, output, fee)) + assert(amount_msat_less_eq(sum, input)); + } + break; + } + case OP_TX_FEE: + { + u32 fee_per_kw = (u32)a.millisatoshis; + /* weights > 2^32 are not real tx and hence, discarded */ + size_t weight = (size_t)(b.millisatoshis & UINT32_MAX); + + struct amount_sat fee = amount_tx_fee(fee_per_kw, weight); + u64 expected = (fee_per_kw * weight) / MSAT_PER_SAT; + assert(fee.satoshis == expected); + break; + } + case OP_FEERATE: + { + struct amount_sat fee = amount_msat_to_sat_round_down(a); + size_t weight = (size_t)b.millisatoshis; + u32 feerate; + + if (weight && amount_feerate(&feerate, fee, weight)) { + u64 expected = (fee.satoshis * MSAT_PER_SAT) / weight; + assert(feerate == expected); + } + break; + } + default: + assert(false && "Unknown operation!"); + } +}