diff --git a/src/test/app/Wasm_test.cpp b/src/test/app/Wasm_test.cpp index d781875cc6..8a7792dc51 100644 --- a/src/test/app/Wasm_test.cpp +++ b/src/test/app/Wasm_test.cpp @@ -326,9 +326,9 @@ struct Wasm_test : public beast::unit_test::suite } { // fail because trying to access nonexistent field - struct BadTestHostFunctions : public TestHostFunctions + struct FieldNotFoundHostFunctions : public TestHostFunctions { - explicit BadTestHostFunctions(Env& env) : TestHostFunctions(env) + explicit FieldNotFoundHostFunctions(Env& env) : TestHostFunctions(env) { } Expected @@ -338,15 +338,15 @@ struct Wasm_test : public beast::unit_test::suite } }; - std::shared_ptr hfs(new BadTestHostFunctions(env)); + std::shared_ptr hfs(new FieldNotFoundHostFunctions(env)); auto re = runEscrowWasm(allHFWasm, hfs, ESCROW_FUNCTION_NAME, {}, 100'000); checkResult(re, -201, 28'965); } { // fail because trying to allocate more than MAX_PAGES memory - struct BadTestHostFunctions : public TestHostFunctions + struct OversizedFieldHostFunctions : public TestHostFunctions { - explicit BadTestHostFunctions(Env& env) : TestHostFunctions(env) + explicit OversizedFieldHostFunctions(Env& env) : TestHostFunctions(env) { } Expected @@ -356,7 +356,7 @@ struct Wasm_test : public beast::unit_test::suite } }; - std::shared_ptr hfs(new BadTestHostFunctions(env)); + std::shared_ptr hfs(new OversizedFieldHostFunctions(env)); auto re = runEscrowWasm(allHFWasm, hfs, ESCROW_FUNCTION_NAME, {}, 100'000); checkResult(re, -201, 28'965); } @@ -574,7 +574,7 @@ struct Wasm_test : public beast::unit_test::suite auto const codecovWasm = hexToBytes(codecovTestsWasmHex); std::shared_ptr hfs(new TestHostFunctions(env, 0)); - auto const allowance = 201'503; + auto const allowance = 202'724; auto re = runEscrowWasm(codecovWasm, hfs, ESCROW_FUNCTION_NAME, {}, allowance); checkResult(re, 1, allowance); diff --git a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs index 59ff5bc164..67e16c5cec 100644 --- a/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs +++ b/src/test/app/wasm_fixtures/codecov_tests/src/lib.rs @@ -1777,6 +1777,19 @@ pub extern "C" fn finish() -> i32 { "mptoken_keylet_mptid_wrong_length", ) }); + check_result( + unsafe { + host::trace( + message.as_ptr(), + message.len(), + locator.as_ptr(), + locator.len(), + 2, + ) + }, + error_codes::INVALID_PARAMS, + "trace_invalid_as_hex", + ); // ensure that the Slice index desync issue is fixed let empty: &[u8] = b""; diff --git a/src/test/app/wasm_fixtures/fixtures.cpp b/src/test/app/wasm_fixtures/fixtures.cpp index db77313a42..2767becda0 100644 --- a/src/test/app/wasm_fixtures/fixtures.cpp +++ b/src/test/app/wasm_fixtures/fixtures.cpp @@ -653,13 +653,13 @@ extern std::string const codecovTestsWasmHex = "73745f6c69621a7065726d697373696f6e65645f646f6d61696e5f6b65796c6574000008686f73745f6c69620d7469636b65745f6b65796c65" "74000008686f73745f6c69620c7661756c745f6b65796c6574000008686f73745f6c69620f64656c65676174655f6b65796c6574000008686f" "73745f6c6962166465706f7369745f707265617574685f6b65796c6574000008686f73745f6c69620a6469645f6b65796c6574000108686f73" - "745f6c69620e7369676e6572735f6b65796c65740001030302090a05030100110619037f01418080c0000b7f00418ea1c0000b7f004190a1c0" - "000b072e04066d656d6f727902000666696e697368003d0a5f5f646174615f656e6403010b5f5f686561705f6261736503020aa12c02460002" + "745f6c69620e7369676e6572735f6b65796c65740001030302090a05030100110619037f01418080c0000b7f0041bba1c0000b7f0041c0a1c0" + "000b072e04066d656d6f727902000666696e697368003d0a5f5f646174615f656e6403010b5f5f686561705f6261736503020abf2c02460002" "40200020014704402002200341014100410010001a20004100480d01418b80c000410b2000ad1001000b200220032000ac10011a0f0b418b80" - "c000410b2000ac1001000bd72b020a7f017e23004190026b22002400419680c000412341014100410010001a20004100360260200041e0006a" - "220241041002410441a88cc000410e103c20004100360260200241041003410441b68cc0004116103c200041f8006a22044200370300200041" - "f0006a22014200370300200041e8006a2205420037030020004200370360200241201004412041cc8cc0004116103c20004100360260200241" - "041005410441e28cc000410c103c200041106a2207428182848890a0c08001370300200041186a2206428182848890a0c08001370300200041" + "c000410b2000ac1001000bf52b020a7f017e23004190026b22002400419680c000412341014100410010001a20004100360260200041e0006a" + "220241041002410441bd8cc000410e103c20004100360260200241041003410441cb8cc0004116103c200041f8006a22044200370300200041" + "f0006a22014200370300200041e8006a2205420037030020004200370360200241201004412041e18cc0004116103c20004100360260200241" + "041005410441f78cc000410c103c200041106a2207428182848890a0c08001370300200041186a2206428182848890a0c08001370300200041" "206a2209428182848890a0c080013703002000428182848890a0c0800137030841b980c000410e1006410141c780c0004111103c200041086a" "41201006410141c780c0004111103c418180202002411410072203411446044002402000412e6a200041e2006a2d00003a0000200020002900" "673703e8012000200041ec006a2900003700ed01200020002f00603b012c200020002903e8013703a801200020002900ed013700ad01200020" @@ -667,170 +667,171 @@ extern std::string const codecovTestsWasmHex = "3703602000412c6a2204411420024120100822034120470d00200041c2006a20002d00623a0000200041f0016a2203200041ef006a29000022" "0a370300200041cf006a200a370000200041d7006a200041f7006a290000370000200041df006a200041ff006a2d00003a0000200020002f01" "603b01402000200028006336004320002000290067370047200041406b412041001009410141d880c0004110103c2001410036020020054200" - "370300200042003703604181802020024114100a411441ee8cc000411c103c2001410036020020054200370300200042003703604101418180" - "2020024114100b4114418a8dc0004114103c200041043602a001200041818020360260200041f8016a22054100360200200342003703002000" - "42003703e80120024104200041e8016a22014114100c4114419e8dc0004113103c2005410036020020034200370300200042003703e8012002" - "20002802a00120014114100d411441b18dc0004123103c2005410036020020034200370300200042003703e8014101200220002802a0012001" - "4114100e411441d48dc000411b103c4189803c100f412041e880c0004110103c4189803c1010412041f880c0004120103c41014189803c1011" + "370300200042003703604181802020024114100a411441838dc000411c103c2001410036020020054200370300200042003703604101418180" + "2020024114100b4114419f8dc0004114103c200041043602a001200041818020360260200041f8016a22054100360200200342003703002000" + "42003703e80120024104200041e8016a22014114100c411441b38dc0004113103c2005410036020020034200370300200042003703e8012002" + "20002802a00120014114100d411441c68dc0004123103c2005410036020020034200370300200042003703e8014101200220002802a0012001" + "4114100e411441e98dc000411b103c4189803c100f412041e880c0004110103c4189803c1010412041f880c0004120103c41014189803c1011" "4120419881c0004118103c200220002802a0011012412041b081c0004117103c200220002802a0011013412041c781c0004127103c41012002" "20002802a0011014412041ee81c000411f103c2004411410154114418d82c000410b103c20004180026a220842003703002005420037030020" - "034200370300200042003703e801200220002802a001200141201016412041ef8dc0004113103c419882c000410c41a482c000410b41af82c0" + "034200370300200042003703e801200220002802a001200141201016412041848ec0004113103c419882c000410c41a482c000410b41af82c0" "00410e1017410141bd82c0004109103c200041c0016a2009290300370300200041b8016a2006290300370300200041b0016a20072903003703" "00200020002903083703a801200541003b010020034200370300200042003703e80120044114200041a8016a22074120200141121018411241" - "828ec0004107103c2005410036020020034200370300200042003703e80120074120200141141019411441898ec000410e103c200041003602" - "e8012007412020014104101a410441978ec000410d103c20074120101b410841c682c000410d103c20074120101c410a41d382c0004114103c" - "200041003602e8012007412020014104101d410441a48ec000410e103c41e782c000410d20044114101e410041f482c000410d103c41e782c0" + "978ec0004107103c2005410036020020034200370300200042003703e801200741202001411410194114419e8ec000410e103c200041003602" + "e8012007412020014104101a410441ac8ec000410d103c20074120101b410841c682c000410d103c20074120101c410a41d382c0004114103c" + "200041003602e8012007412020014104101d410441b98ec000410e103c41e782c000410d20044114101e410041f482c000410d103c41e782c0" "00410d418183c0004108101f4100418983c000410c103c41e782c000410d419583c0004108101f4100419d83c0004111103c417f4104100441" - "7141ae83c000411e103c200041003602e8012001417f1004417141b28ec000411e103c200041ea016a41003a0000200041003b01e801200141" - "031004417d41d08ec0004124103c200041003602e8012001418094ebdc031004417341f48ec0004123103c4102100f416f41cc83c000411f10" + "7141ae83c000411e103c200041003602e8012001417f1004417141c78ec000411e103c200041ea016a41003a0000200041003b01e801200141" + "031004417d41e58ec0004124103c200041003602e8012001418094ebdc031004417341898fc0004123103c4102100f416f41cc83c000411f10" "3c417f20002802a0011012417141eb83c000411f103c2002417f10124171418a84c000411f103c20024181201012417441a984c0004120103c" "200041e094ebdc036a220620002802a0011012417341c984c000411f103c200842003703002005420037030020034200370300200042003703" - "e8012004411420064108200141201020417341978fc0004118103c200842003703002005420037030020034200370300200042003703e80120" - "04411420044114200141201020417141af8fc000411a103c200842003703002005420037030020034200370300200042003703e80120064108" - "2001412041001021417341c98fc0004117103c200842003703002005420037030020034200370300200042003703e801200220002802a00120" - "01412041001021417141e08fc0004120103c200620002802a00141011009417341e884c0004118103c200220002802a0014101100941714180" - "85c000411a103c200842003703002005420037030020034200370300200042003703e801200620002802a0012001412010084173418090c000" - "4116103c200842003703002005420037030020034200370300200042003703e801200220002802a0012001412010084171419690c000411810" - "3c200842003703002005420037030020034200370300200042003703e8012004411420044114200620002802a001200141201022417341ae90" + "e8012004411420064108200141201020417341ac8fc0004118103c200842003703002005420037030020034200370300200042003703e80120" + "04411420044114200141201020417141c48fc000411a103c200842003703002005420037030020034200370300200042003703e80120064108" + "2001412041001021417341de8fc0004117103c200842003703002005420037030020034200370300200042003703e801200220002802a00120" + "01412041001021417141f58fc0004120103c200620002802a00141011009417341e884c0004118103c200220002802a0014101100941714180" + "85c000411a103c200842003703002005420037030020034200370300200042003703e801200620002802a0012001412010084173419590c000" + "4116103c200842003703002005420037030020034200370300200042003703e801200220002802a001200141201008417141ab90c000411810" + "3c200842003703002005420037030020034200370300200042003703e8012004411420044114200620002802a001200141201022417341c390" "c000411c103c200842003703002005420037030020034200370300200042003703e8012004411420044114200220002802a001200141201022" - "417141ca90c000411e103c200842003703002005420037030020034200370300200042003703e80141faa0c0004114200620002802a0012001" - "41201023417341e890c0004119103c200842003703002005420037030020034200370300200042003703e80141faa0c0004114200220002802" - "a0012001412010234171418191c000411f103c200842003703002005420037030020034200370300200042003703e80141faa0c0004114419a" - "85c0004114200141201023417141a091c0004129103c200842003703002005420037030020034200370300200042003703e80141ae85c00041" - "2841faa0c0004114200141201023417141c991c0004125103c200041dc016a2000413c6a280100360200200041d4016a200041346a29010037" - "02002000200029012c3702cc01200041808080083602c801200041003b01e801200041c8016a2209411841faa0c00041142001410210234171" - "41ee91c000410e103c200620002802a001422a1001417341d685c0004111103c200041003b01e8014102200141021007416f41fc91c000411b" - "103c200041003b01e801410220014102100a416f419792c000412b103c200041003b01e8014101410220014102100b416f41c292c000412310" + "417141df90c000411e103c200842003703002005420037030020034200370300200042003703e80141a7a1c0004114200620002802a0012001" + "41201023417341fd90c0004119103c200842003703002005420037030020034200370300200042003703e80141a7a1c0004114200220002802" + "a0012001412010234171419691c000411f103c200842003703002005420037030020034200370300200042003703e80141a7a1c0004114419a" + "85c0004114200141201023417141b591c0004129103c200842003703002005420037030020034200370300200042003703e80141ae85c00041" + "2841a7a1c0004114200141201023417141de91c0004125103c200041dc016a2000413c6a280100360200200041d4016a200041346a29010037" + "02002000200029012c3702cc01200041808080083602c801200041003b01e801200041c8016a2209411841a7a1c00041142001410210234171" + "418392c000410e103c200620002802a001422a1001417341d685c0004111103c200041003b01e8014102200141021007416f419192c000411b" + "103c200041003b01e801410220014102100a416f41ac92c000412b103c200041003b01e8014101410220014102100b416f41d792c000412310" "3c4102100f416f41cc83c000411f103c41021010416f41e785c000412f103c410141021011416f419686c0004127103c41b980c00041812010" - "06417441bd86c000411f103c41b980c00041c1001006417441dc86c000411a103c200041003b01e801200241812020014102100c417441e592" - "c0004121103c200041003b01e801200241812020014102100d4174418693c0004131103c200041003b01e8014101200241812020014102100e" - "417441b793c0004129103c20024181201012417441f686c0004125103c200241812010134174419b87c0004135103c41012002418120101441" + "06417441bd86c000411f103c41b980c00041c1001006417441dc86c000411a103c200041003b01e801200241812020014102100c417441fa92" + "c0004121103c200041003b01e801200241812020014102100d4174419b93c0004131103c200041003b01e8014101200241812020014102100e" + "417441cc93c0004129103c20024181201012417441f686c0004125103c200241812010134174419b87c0004135103c41012002418120101441" "7441d087c000412d103c20024181201015417441fd87c0004119103c41e782c00041812041a482c000410b41af82c000410e1017417441bd82" "c0004109103c41e782c000410d41a482c00041812041af82c000410e1017417441bd82c0004109103c41e782c000410d41a482c000410b41af" - "82c0004181201017417441bd82c0004109103c200041003b01e8012002418120200141021016417441e093c0004121103c200041003b01e801" - "41faa0c00041812041faa0c00041142001410210234174418194c0004118103c200041003b01e8012004411420044114200241812020014102" - "10244174419994c000411f103c200041003b01e801200941812020044114200141021025417441b894c0004122103c41e782c000410d200620" + "82c0004181201017417441bd82c0004109103c200041003b01e8012002418120200141021016417441f593c0004121103c200041003b01e801" + "41a7a1c00041812041a7a1c00041142001410210234174419694c0004118103c200041003b01e8012004411420044114200241812020014102" + "1024417441ae94c000411f103c200041003b01e801200941812020044114200141021025417441cd94c0004122103c41e782c000410d200620" "002802a001410010004173419688c000410f103c200042d487b6f4c7d4b1c0003700e00141e782c000410d200041e095ebdc036a2207410810" "26417341a588c000411c103c41e782c000410d200620002802a001101f417341c188c0004116103c20074108200041e0016a22064108102741" "7341d788c0004118103c20064108200741081027417341ef88c0004118103c200041003b01e801200741082006410820014102410010284173" - "41da94c0004114103c200041003b01e80120064108200741082001410241001028417341ee94c0004114103c200041003b01e8012007410820" - "06410820014102410010294173418295c0004119103c200041003b01e801200641082007410820014102410010294173419b95c0004119103c" - "200041003b01e8012007410820064108200141024100102a417341b495c0004119103c200041003b01e8012006410820074108200141024100" - "102a417341cd95c0004119103c200041003b01e8012007410820064108200141024100102b417341e695c0004117103c200041003b01e80120" - "06410820074108200141024100102b417341fd95c0004117103c200041003b01e801200741084103200141024100102c4173419496c0004114" - "103c200041003b01e801200741084103200141024100102d417341a896c0004113103c200041003b01e80120074108200141024100102e4173" - "41bb96c0004113103c200842003703002005420037030020034200370300200042003703e801200441142004411420014120102f417141ce96" - "c000411f103c200842003703002005420037030020034200370300200042003703e8012004411420044114200141201030417141ed96c00041" - "25103c200842003703002005420037030020034200370300200042003703e80120044114200441142001412010314171419297c0004122103c" - "200842003703002005420037030020034200370300200042003703e8012004411420044114200141201032417141b497c000411e103c200842" - "003703002005420037030020034200370300200042003703e8012004411420044114200141201033417141d297c000411f103c200842003703" - "002005420037030020034200370300200042003703e801200441142004411420044114200141201034417141f197c0004120103c2008420037" - "03002005420037030020034200370300200042003703e80120044114200441142001412010354171419198c000412c103c2008420037030020" - "05420037030020034200370300200042003703e8012004411420044114200141201036417141bd98c000411f103c2008420037030020054200" - "37030020034200370300200042003703e8012004411420044114200141201037417141dc98c000411e103c200220002802a001410010094171" - "418789c0004123103c200041003b01e80120044114200220002802a001200141021018417141fa98c000411a103c200041003b01e801200220" - "002802a0012001410210194171419499c0004121103c200041003b01e801200220002802a00120014102101a417141b599c0004120103c2002" + "41ef94c0004114103c200041003b01e801200641082007410820014102410010284173418395c0004114103c200041003b01e8012007410820" + "06410820014102410010294173419795c0004119103c200041003b01e80120064108200741082001410241001029417341b095c0004119103c" + "200041003b01e8012007410820064108200141024100102a417341c995c0004119103c200041003b01e8012006410820074108200141024100" + "102a417341e295c0004119103c200041003b01e8012007410820064108200141024100102b417341fb95c0004117103c200041003b01e80120" + "06410820074108200141024100102b4173419296c0004117103c200041003b01e801200741084103200141024100102c417341a996c0004114" + "103c200041003b01e801200741084103200141024100102d417341bd96c0004113103c200041003b01e80120074108200141024100102e4173" + "41d096c0004113103c200842003703002005420037030020034200370300200042003703e801200441142004411420014120102f417141e396" + "c000411f103c200842003703002005420037030020034200370300200042003703e80120044114200441142001412010304171418297c00041" + "25103c200842003703002005420037030020034200370300200042003703e8012004411420044114200141201031417141a797c0004122103c" + "200842003703002005420037030020034200370300200042003703e8012004411420044114200141201032417141c997c000411e103c200842" + "003703002005420037030020034200370300200042003703e8012004411420044114200141201033417141e797c000411f103c200842003703" + "002005420037030020034200370300200042003703e8012004411420044114200441142001412010344171418698c0004120103c2008420037" + "03002005420037030020034200370300200042003703e8012004411420044114200141201035417141a698c000412c103c2008420037030020" + "05420037030020034200370300200042003703e8012004411420044114200141201036417141d298c000411f103c2008420037030020054200" + "37030020034200370300200042003703e8012004411420044114200141201037417141f198c000411e103c200220002802a001410010094171" + "418789c0004123103c200041003b01e80120044114200220002802a0012001410210184171418f99c000411a103c200041003b01e801200220" + "002802a001200141021019417141a999c0004121103c200041003b01e801200220002802a00120014102101a417141ca99c0004120103c2002" "20002802a001101b417141aa89c0004120103c200220002802a001101c417141ca89c0004127103c200041003602e801200220002802a00120" - "014104101d417141d599c0004121103c200041003b01e801200220002802a001200141021008417141f699c0004123103c2000418080800836" - "02e801200041003b018e02200220002802a001200141042000418e026a220341021020417141999ac0004121103c200041003b018e02200220" - "002802a00122052004411420022005200341021024417141ba9ac0004127103c200041003b018e0220044114200220002802a0012205200220" - "05200341021024417141e19ac0004127103c200041003b018e02200220002802a00120044114200341021038417141889bc0004125103c2000" - "41003b018e0220044114200220002802a001200341021038417141ad9bc0004125103c200041003b018e02200220002802a001200441142003" - "41021039417141d29bc000412c103c200041003b018e0220044114200220002802a001200341021039417141fe9bc000412c103c200041003b" - "018e02200220002802a00120034102103a417141aa9cc000411f103c200041003b018e02200220002802a0012001410420034102102f417141" - "c99cc0004122103c200041003b018e02200220002802a00120044114419a85c0004114200341021022417141eb9cc0004121103c200041003b" - "018e0220044114200220002802a001419a85c00041142003410210224171418c9dc0004121103c200041003b018e02200220002802a0012001" - "4104200341021030417141ad9dc0004128103c200041003b018e0220094118200220002802a001200341021025417141d59dc0004123103c20" - "0041003b018e02200220002802a00120014104200341021031417141f89dc0004125103c200041003b018e02200220002802a0012001410420" - "03410210324171419d9ec0004121103c200041003b018e02200220002802a00120014104200341021033417141be9ec0004122103c20004100" - "3b018e02200220002802a0012004411420014104200341021034417141e09ec0004124103c200041003b018e0220044114200220002802a001" - "20014104200341021034417141849fc0004124103c200041003b018e02200220002802a00120014104200341021035417141a89fc000412f10" - "3c200041003b018e02200220002802a00120034102103b417141d79fc0004123103c200041003b018e02200220002802a00120014104200341" - "021036417141fa9fc0004122103c200041003b018e02200220002802a001200141042003410210374171419ca0c0004121103c200041003b01" - "8e02200220002802a00141f189c0004120200341021018417141bda0c000411c103c41e782c000410d200220002802a001101e417141918ac0" - "004122103c41e796abdd03410d41f189c000412041001000417341b38ac0004110103c41e796abdd03410d200641081026417341c38ac00041" - "1d103c41e796abdd03410d20044114101e417341e08ac0004118103c41e796abdd03410d419583c0004108101f417341f88ac0004117103c20" - "0220002802a0012002418120410010004174418f8bc000410e103c2002418120420110014174419d8bc0004112103c41e782c0004181202006" - "41081026417441af8bc000411b103c41e782c00041812020044114101e417441ca8bc0004116103c41e782c000418120419583c0004108101f" - "417441e08bc0004115103c41e782c000410d200220002802a001101f417141f58bc0004119103c200041003b018e02200220002802a0012004" - "4114200341021025417141d9a0c0004121103c4101410020044114101e4100418e8cc000411a103c20004190026a240041010f0b0b418080c0" - "00410b417f20032003417f4e1bac1001000b0be5200200418080c0000bae056572726f725f636f64653d54455354204641494c454424242424" - "24205354415254494e47205741534d20455845435554494f4e202424242424746573745f616d656e646d656e74616d656e646d656e745f656e" - "61626c656463616368655f6c65646765725f6f626a6765745f74785f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f" - "626a5f61727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e6765745f74785f6e65737465645f61727261795f6c" - "656e6765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e" - "65737465645f61727261795f6c656e7570646174655f6461746174657374206d65737361676574657374207075626b65797465737420736967" - "6e6174757265636865636b5f7369676765745f6e66745f666c6167736765745f6e66745f7472616e736665725f66656574657374696e672074" - "7261636574726163655f6163636f756e74400000000000005f74726163655f616d6f756e74400000000000000074726163655f616d6f756e74" - "5f7a65726f6765745f706172656e745f6c65646765725f686173685f6e65675f7074726765745f74785f61727261795f6c656e5f696e76616c" - "69645f736669656c646765745f74785f6e65737465645f61727261795f6c656e5f6e65675f7074726765745f74785f6e65737465645f617272" - "61795f6c656e5f6e65675f6c656e6765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6c6f6e676765745f74785f6e657374" - "65645f61727261795f6c656e5f7074725f6f6f6263616368655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c65646765725f" - "6f626a5f77726f6e675f6c656e55534430303030303030303030303030303030300041d685c0000ba41b74726163655f6e756d5f6f6f625f73" - "74726765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c646765745f6c656467" - "65725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f" - "736c696365616d656e646d656e745f656e61626c65645f746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f746f" - "6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269" - "675f736c6963656765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963657570646174" - "655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c69636574726163655f6f70617175655f666c6f61745f6f6f62" - "5f736c69636574726163655f616d6f756e745f6f6f625f736c696365666c6f61745f636f6d706172655f6f6f625f736c69636531666c6f6174" - "5f636f6d706172655f6f6f625f736c6963653263616368655f6c65646765725f6f626a5f77726f6e675f73697a655f75696e74323536676574" - "5f6e66745f666c6167735f77726f6e675f73697a655f75696e743235366765745f6e66745f7472616e736665725f6665655f77726f6e675f73" - "697a655f75696e74323536303030303030303030303030303030303030303030303030303030303030303174726163655f6163636f756e745f" - "77726f6e675f73697a655f6163636f756e74696474726163655f6f6f625f737472696e6774726163655f6f70617175655f666c6f61745f6f6f" - "625f737472696e6774726163655f6163636f756e745f6f6f625f737472696e6774726163655f616d6f756e745f6f6f625f737472696e677472" - "6163655f746f6f5f6c6f6e6774726163655f6e756d5f746f6f5f6c6f6e6774726163655f6f70617175655f666c6f61745f746f6f5f6c6f6e67" - "74726163655f6163636f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77" - "726f6e675f6c656e67746874726163655f6163636f756e745f636865636b5f646573796e636765745f6c65646765725f73716e6765745f7061" - "72656e745f6c65646765725f74696d656765745f706172656e745f6c65646765725f686173686765745f626173655f6665656765745f637572" - "72656e745f6c65646765725f6f626a5f6669656c646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65737465645f6669" - "656c646765745f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c65646765725f6f626a5f6e657374" - "65645f6669656c64636f6d707574655f7368613531325f68616c666765745f6e66746765745f6e66745f6973737565726765745f6e66745f74" - "61786f6e6765745f6e66745f73657269616c6765745f706172656e745f6c65646765725f686173685f6e65675f6c656e6765745f706172656e" - "745f6c65646765725f686173685f6275665f746f6f5f736d616c6c6765745f706172656e745f6c65646765725f686173685f6c656e5f746f6f" - "5f6c6f6e67636865636b5f6b65796c65745f6f6f625f6c656e5f753332636865636b5f6b65796c65745f77726f6e675f6c656e5f753332666c" - "6f61745f66726f6d5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e5f75696e7436346163636f" - "756e745f6b65796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f77726f6e675f6c656e6c696e655f6b65796c65745f6c656e" - "5f6f6f625f63757272656e63796c696e655f6b65796c65745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e" - "5f6f6f625f617373657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373657432616d6d5f6b65796c65745f6c656e5f" - "77726f6e675f6e6f6e5f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6c656e5f77726f6e675f7872705f63757272656e" - "63795f6c656e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76616c69645f736669656c646765745f63757272656e" - "745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c646765745f6c65646765725f6f626a5f6669656c645f696e76" - "616c69645f736669656c646765745f74785f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f63757272656e745f6c" - "65646765725f6f626a5f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e6573746564" - "5f6669656c645f746f6f5f6269675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f6269675f736c696365616d6d5f" - "6b65796c65745f746f6f5f6269675f736c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f736c6963656d70746f6b65" - "6e5f6b65796c65745f746f6f5f6269675f736c6963655f6d70746964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f616464" - "5f6f6f625f736c69636532666c6f61745f73756274726163745f6f6f625f736c69636531666c6f61745f73756274726163745f6f6f625f736c" - "69636532666c6f61745f6d756c7469706c795f6f6f625f736c69636531666c6f61745f6d756c7469706c795f6f6f625f736c69636532666c6f" - "61745f6469766964655f6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c69636532666c6f61745f726f6f745f6f6f62" - "5f736c696365666c6f61745f706f775f6f6f625f736c696365666c6f61745f6c6f675f6f6f625f736c696365657363726f775f6b65796c6574" - "5f77726f6e675f73697a655f75696e7433326d70745f69737375616e63655f6b65796c65745f77726f6e675f73697a655f75696e7433326e66" - "745f6f666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f666665725f6b65796c65745f77726f6e675f73697a655f75" - "696e7433326f7261636c655f6b65796c65745f77726f6e675f73697a655f75696e7433327061796368616e5f6b65796c65745f77726f6e675f" - "73697a655f75696e7433327065726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f75696e7433327469" - "636b65745f6b65796c65745f77726f6e675f73697a655f75696e7433327661756c745f6b65796c65745f77726f6e675f73697a655f75696e74" - "33326765745f6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f6973737565725f77726f6e675f73697a655f75696e" - "743235366765745f6e66745f7461786f6e5f77726f6e675f73697a655f75696e743235366765745f6e66745f73657269616c5f77726f6e675f" - "73697a655f75696e743235366163636f756e745f6b65796c65745f77726f6e675f73697a655f6163636f756e746964636865636b5f6b65796c" - "65745f77726f6e675f73697a655f6163636f756e74696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f75" - "6e7469643163726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e7469643264656c65676174655f6b65796c" - "65745f77726f6e675f73697a655f6163636f756e7469643164656c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e" - "746964326465706f7369745f707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316465706f7369745f70" - "7265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e746964326469645f6b65796c65745f77726f6e675f73697a655f" - "6163636f756e746964657363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646c696e655f6b65796c65745f7772" - "6f6e675f73697a655f6163636f756e746964316c696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e746964326d70745f69" - "737375616e63655f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646d70746f6b656e5f6b65796c65745f77726f6e675f73" - "697a655f6163636f756e7469646e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646f666665725f6b" - "65796c65745f77726f6e675f73697a655f6163636f756e7469646f7261636c655f6b65796c65745f77726f6e675f73697a655f6163636f756e" - "7469647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964317061796368616e5f6b65796c65745f77726f" - "6e675f73697a655f6163636f756e746964327065726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f61" - "63636f756e7469647369676e6572735f6b65796c65745f77726f6e675f73697a655f6163636f756e7469647469636b65745f6b65796c65745f" - "77726f6e675f73697a655f6163636f756e7469647661756c745f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646765745f" - "6e66745f77726f6e675f73697a655f6163636f756e7469646d70746f6b656e5f6b65796c65745f6d707469645f77726f6e675f6c656e677468" - "004d0970726f64756365727302086c616e6775616765010452757374000c70726f6365737365642d6279010572757374631d312e38372e3020" - "2831373036376539616320323032352d30352d303929002c0f7461726765745f6665617475726573022b0f6d757461626c652d676c6f62616c" - "732b087369676e2d657874"; + "014104101d417141ea99c0004121103c200041003b01e801200220002802a0012001410210084171418b9ac0004124103c2000418080800836" + "02e801200041003b018e02200220002802a001200141042000418e026a220341021020417141af9ac0004122103c200041003b018e02200220" + "002802a00122052004411420022005200341021024417141d19ac0004128103c200041003b018e0220044114200220002802a0012205200220" + "05200341021024417141f99ac0004128103c200041003b018e02200220002802a00120044114200341021038417141a19bc0004126103c2000" + "41003b018e0220044114200220002802a001200341021038417141c79bc0004126103c200041003b018e02200220002802a001200441142003" + "41021039417141ed9bc000412d103c200041003b018e0220044114200220002802a0012003410210394171419a9cc000412d103c200041003b" + "018e02200220002802a00120034102103a417141c79cc0004120103c200041003b018e02200220002802a0012001410420034102102f417141" + "e79cc0004123103c200041003b018e02200220002802a00120044114419a85c00041142003410210224171418a9dc0004122103c200041003b" + "018e0220044114200220002802a001419a85c0004114200341021022417141ac9dc0004122103c200041003b018e02200220002802a0012001" + "4104200341021030417141ce9dc0004129103c200041003b018e0220094118200220002802a001200341021025417141f79dc0004124103c20" + "0041003b018e02200220002802a001200141042003410210314171419b9ec0004126103c200041003b018e02200220002802a0012001410420" + "0341021032417141c19ec0004122103c200041003b018e02200220002802a00120014104200341021033417141e39ec0004123103c20004100" + "3b018e02200220002802a0012004411420014104200341021034417141869fc0004125103c200041003b018e0220044114200220002802a001" + "20014104200341021034417141ab9fc0004125103c200041003b018e02200220002802a00120014104200341021035417141d09fc000413010" + "3c200041003b018e02200220002802a00120034102103b41714180a0c0004124103c200041003b018e02200220002802a00120014104200341" + "021036417141a4a0c0004123103c200041003b018e02200220002802a00120014104200341021037417141c7a0c0004122103c200041003b01" + "8e02200220002802a00141f189c0004120200341021018417141e9a0c000411d103c41e782c000410d200220002802a001101e417141918ac0" + "004123103c41e796abdd03410d41f189c000412041001000417341b48ac0004110103c41e796abdd03410d200641081026417341c48ac00041" + "1d103c41e796abdd03410d20044114101e417341e18ac0004118103c41e796abdd03410d419583c0004108101f417341f98ac0004117103c20" + "0220002802a001200241812041001000417441908bc000410e103c2002418120420110014174419e8bc0004112103c41e782c0004181202006" + "41081026417441b08bc000411b103c41e782c00041812020044114101e417441cb8bc0004116103c41e782c000418120419583c0004108101f" + "417441e18bc0004115103c41e782c000410d200220002802a001101f417141f68bc0004119103c200041003b018e02200220002802a0012004" + "411420034102102541714186a1c0004121103c41e782c000410d200220002802a001410210004171418f8cc0004114103c4101410020044114" + "101e410041a38cc000411a103c20004190026a240041010f0b0b418080c000410b417f20032003417f4e1bac1001000b0b92210200418080c0" + "000bae056572726f725f636f64653d54455354204641494c45442424242424205354415254494e47205741534d20455845435554494f4e2024" + "24242424746573745f616d656e646d656e74616d656e646d656e745f656e61626c656463616368655f6c65646765725f6f626a6765745f7478" + "5f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f61727261795f6c656e6765745f6c65646765725f6f626a5f" + "61727261795f6c656e6765745f74785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f6e65" + "737465645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e65737465645f61727261795f6c656e7570646174655f6461746174" + "657374206d65737361676574657374207075626b657974657374207369676e6174757265636865636b5f7369676765745f6e66745f666c6167" + "736765745f6e66745f7472616e736665725f66656574657374696e6720747261636574726163655f6163636f756e74400000000000005f7472" + "6163655f616d6f756e74400000000000000074726163655f616d6f756e745f7a65726f6765745f706172656e745f6c65646765725f68617368" + "5f6e65675f7074726765745f74785f61727261795f6c656e5f696e76616c69645f736669656c646765745f74785f6e65737465645f61727261" + "795f6c656e5f6e65675f7074726765745f74785f6e65737465645f61727261795f6c656e5f6e65675f6c656e6765745f74785f6e6573746564" + "5f61727261795f6c656e5f746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f7074725f6f6f6263616368655f6c" + "65646765725f6f626a5f7074725f6f6f6263616368655f6c65646765725f6f626a5f77726f6e675f6c656e5553443030303030303030303030" + "3030303030300041d685c0000bd11b74726163655f6e756d5f6f6f625f7374726765745f63757272656e745f6c65646765725f6f626a5f6172" + "7261795f6c656e5f696e76616c69645f736669656c646765745f6c65646765725f6f626a5f61727261795f6c656e5f696e76616c69645f7366" + "69656c64616d656e646d656e745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61626c65645f746f6f5f" + "6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f63757272656e745f6c656467" + "65725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e65737465" + "645f61727261795f6c656e5f746f6f5f6269675f736c6963657570646174655f646174615f746f6f5f6269675f736c69636574726163655f6f" + "6f625f736c69636574726163655f6f70617175655f666c6f61745f6f6f625f736c69636574726163655f616d6f756e745f6f6f625f736c6963" + "65666c6f61745f636f6d706172655f6f6f625f736c69636531666c6f61745f636f6d706172655f6f6f625f736c6963653263616368655f6c65" + "646765725f6f626a5f77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167735f77726f6e675f73697a655f75696e7432" + "35366765745f6e66745f7472616e736665725f6665655f77726f6e675f73697a655f75696e7432353630303030303030303030303030303030" + "3030303030303030303030303030303174726163655f6163636f756e745f77726f6e675f73697a655f6163636f756e745f696474726163655f" + "6f6f625f737472696e6774726163655f6f70617175655f666c6f61745f6f6f625f737472696e6774726163655f6163636f756e745f6f6f625f" + "737472696e6774726163655f616d6f756e745f6f6f625f737472696e6774726163655f746f6f5f6c6f6e6774726163655f6e756d5f746f6f5f" + "6c6f6e6774726163655f6f70617175655f666c6f61745f746f6f5f6c6f6e6774726163655f6163636f756e745f746f6f5f6c6f6e6774726163" + "655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77726f6e675f6c656e67746874726163655f696e76616c69645f61" + "735f68657874726163655f6163636f756e745f636865636b5f646573796e636765745f6c65646765725f73716e6765745f706172656e745f6c" + "65646765725f74696d656765745f706172656e745f6c65646765725f686173686765745f626173655f6665656765745f63757272656e745f6c" + "65646765725f6f626a5f6669656c646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65737465645f6669656c64676574" + "5f63757272656e745f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c65646765725f6f626a5f6e65737465645f666965" + "6c64636f6d707574655f7368613531325f68616c666765745f6e66746765745f6e66745f6973737565726765745f6e66745f7461786f6e6765" + "745f6e66745f73657269616c6765745f706172656e745f6c65646765725f686173685f6e65675f6c656e6765745f706172656e745f6c656467" + "65725f686173685f6275665f746f6f5f736d616c6c6765745f706172656e745f6c65646765725f686173685f6c656e5f746f6f5f6c6f6e6763" + "6865636b5f6b65796c65745f6f6f625f6c656e5f753332636865636b5f6b65796c65745f77726f6e675f6c656e5f753332666c6f61745f6672" + "6f6d5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e5f75696e7436346163636f756e745f6b65" + "796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f77726f6e675f6c656e6c696e655f6b65796c65745f6c656e5f6f6f625f63" + "757272656e63796c696e655f6b65796c65745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f6f6f625f61" + "7373657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f617373657432616d6d5f6b65796c65745f6c656e5f77726f6e675f" + "6e6f6e5f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6c656e5f77726f6e675f7872705f63757272656e63795f6c656e" + "616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e76616c69645f736669656c646765745f63757272656e745f6c656467" + "65725f6f626a5f6669656c645f696e76616c69645f736669656c646765745f6c65646765725f6f626a5f6669656c645f696e76616c69645f73" + "6669656c646765745f74785f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f" + "6f626a5f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f626a5f6e65737465645f6669656c64" + "5f746f6f5f6269675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f6269675f736c696365616d6d5f6b65796c6574" + "5f746f6f5f6269675f736c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f736c6963656d70746f6b656e5f6b65796c" + "65745f746f6f5f6269675f736c6963655f6d70746964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f73" + "6c69636532666c6f61745f73756274726163745f6f6f625f736c69636531666c6f61745f73756274726163745f6f6f625f736c69636532666c" + "6f61745f6d756c7469706c795f6f6f625f736c69636531666c6f61745f6d756c7469706c795f6f6f625f736c69636532666c6f61745f646976" + "6964655f6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c69636532666c6f61745f726f6f745f6f6f625f736c696365" + "666c6f61745f706f775f6f6f625f736c696365666c6f61745f6c6f675f6f6f625f736c696365657363726f775f6b65796c65745f77726f6e67" + "5f73697a655f75696e7433326d70745f69737375616e63655f6b65796c65745f77726f6e675f73697a655f75696e7433326e66745f6f666665" + "725f6b65796c65745f77726f6e675f73697a655f75696e7433326f666665725f6b65796c65745f77726f6e675f73697a655f75696e7433326f" + "7261636c655f6b65796c65745f77726f6e675f73697a655f75696e7433327061796368616e5f6b65796c65745f77726f6e675f73697a655f75" + "696e7433327065726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73697a655f75696e7433327469636b65745f6b" + "65796c65745f77726f6e675f73697a655f75696e7433327661756c745f6b65796c65745f77726f6e675f73697a655f75696e7433326765745f" + "6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f6973737565725f77726f6e675f73697a655f75696e743235366765" + "745f6e66745f7461786f6e5f77726f6e675f73697a655f75696e743235366765745f6e66745f73657269616c5f77726f6e675f73697a655f75" + "696e743235366163636f756e745f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964636865636b5f6b65796c65745f7772" + "6f6e675f73697a655f6163636f756e745f696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69" + "643163726564656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69643264656c65676174655f6b65796c6574" + "5f77726f6e675f73697a655f6163636f756e745f69643164656c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e74" + "5f6964326465706f7369745f707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964316465706f7369745f" + "707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964326469645f6b65796c65745f77726f6e675f73697a" + "655f6163636f756e745f6964657363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646c696e655f6b65796c65" + "745f77726f6e675f73697a655f6163636f756e745f6964316c696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964" + "326d70745f69737375616e63655f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f6b65796c65745f" + "77726f6e675f73697a655f6163636f756e745f69646e66745f6f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e745f" + "69646f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69646f7261636c655f6b65796c65745f77726f6e675f73" + "697a655f6163636f756e745f69647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f696431706179636861" + "6e5f6b65796c65745f77726f6e675f73697a655f6163636f756e745f6964327065726d697373696f6e65645f646f6d61696e5f6b65796c6574" + "5f77726f6e675f73697a655f6163636f756e745f69647369676e6572735f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69" + "647469636b65745f6b65796c65745f77726f6e675f73697a655f6163636f756e745f69647661756c745f6b65796c65745f77726f6e675f7369" + "7a655f6163636f756e745f69646765745f6e66745f77726f6e675f73697a655f6163636f756e745f69646d70746f6b656e5f6b65796c65745f" + "6d707469645f77726f6e675f6c656e677468004d0970726f64756365727302086c616e6775616765010452757374000c70726f636573736564" + "2d6279010572757374631d312e38372e30202831373036376539616320323032352d30352d303929002c0f7461726765745f66656174757265" + "73022b0f6d757461626c652d676c6f62616c732b087369676e2d657874"; extern std::string const floatTestsWasmHex = "0061736d0100000001430860077f7f7f7f7f7f7f017f60057f7f7f7f7f017f60047f7f7f7f" diff --git a/src/xrpld/app/wasm/detail/HostFuncImplGetter.cpp b/src/xrpld/app/wasm/detail/HostFuncImplGetter.cpp index 0a3247604a..163ab4e65f 100644 --- a/src/xrpld/app/wasm/detail/HostFuncImplGetter.cpp +++ b/src/xrpld/app/wasm/detail/HostFuncImplGetter.cpp @@ -35,77 +35,69 @@ getAnyFieldData(STBase const* obj) case STI_UNKNOWN: case STI_NOTPRESENT: return Unexpected(HostFunctionError::FIELD_NOT_FOUND); - break; - // LCOV_EXCL_STOP + // LCOV_EXCL_STOP + case STI_OBJECT: case STI_ARRAY: case STI_VECTOR256: return Unexpected(HostFunctionError::NOT_LEAF_FIELD); - break; + case STI_ACCOUNT: { auto const* account(static_cast(obj)); auto const& data = account->value(); return Bytes{data.begin(), data.end()}; } - break; - case STI_AMOUNT: - // will be processed by serializer - break; + case STI_ISSUE: { auto const* issue(static_cast(obj)); Asset const& asset(issue->value()); // XRP and IOU will be processed by serializer if (asset.holds()) { - // MPT auto const& mptIssue = asset.get(); auto const& mptID = mptIssue.getMptID(); return Bytes{mptID.cbegin(), mptID.cend()}; } + break; // Use serializer } - break; + case STI_VL: { auto const* vl(static_cast(obj)); auto const& data = vl->value(); return Bytes{data.begin(), data.end()}; } - break; - case STI_UINT16: { + + case STI_UINT16: return getIntBytes(obj); - } - break; - case STI_UINT32: { + + case STI_UINT32: return getIntBytes(obj); - } + // LCOV_EXCL_START - case STI_UINT64: { + case STI_UINT64: return getIntBytes(obj); - } - break; - case STI_INT32: { + + case STI_INT32: return getIntBytes(obj); - } - break; - case STI_INT64: { + + case STI_INT64: return getIntBytes(obj); - } - // LCOV_EXCL_STOP - break; + // LCOV_EXCL_STOP + case STI_UINT256: { auto const* uint256Obj(static_cast(obj)); auto const& data = uint256Obj->value(); return Bytes{data.begin(), data.end()}; } - break; + + case STI_AMOUNT: default: - break; // default to serializer + break; // Use serializer } Serializer msg; obj->add(msg); - auto const data = msg.getData(); - - return data; + return msg.getData(); } static Expected diff --git a/src/xrpld/app/wasm/detail/HostFuncWrapper.cpp b/src/xrpld/app/wasm/detail/HostFuncWrapper.cpp index 34cfac416e..0d245c526c 100644 --- a/src/xrpld/app/wasm/detail/HostFuncWrapper.cpp +++ b/src/xrpld/app/wasm/detail/HostFuncWrapper.cpp @@ -1355,6 +1355,10 @@ trace_wrap(void* env, wasm_val_vec_t const* params, wasm_val_vec_t* results) { return hfResult(results, asHex.error()); // LCOV_EXCL_LINE } + if (*asHex != 0 && *asHex != 1) + { + return hfResult(results, HostFunctionError::INVALID_PARAMS); + } return returnResult(runtime, params, results, hf->trace(*msg, *data, *asHex), index); }