mirror of
https://github.com/XRPLF/rippled.git
synced 2026-04-29 15:37:57 +00:00
Fix traces (#6127)
* Fix traces * More tests for codecov * Review fixes * trace float test * Fix return value for traces * Remove SuiteJournalSink2 * Add explicit severity * Move logs to ApplyView * Add check for output strings * Merging fix
This commit is contained in:
@@ -62,19 +62,23 @@ static ApplyContext
|
||||
createApplyContext(
|
||||
test::jtx::Env& env,
|
||||
OpenView& ov,
|
||||
beast::Journal j,
|
||||
STTx const& tx = STTx(ttESCROW_FINISH, [](STObject&) {}))
|
||||
{
|
||||
ApplyContext ac{
|
||||
env.app(),
|
||||
ov,
|
||||
tx,
|
||||
tesSUCCESS,
|
||||
env.current()->fees().base,
|
||||
tapNONE,
|
||||
env.journal};
|
||||
env.app(), ov, tx, tesSUCCESS, env.current()->fees().base, tapNONE, j};
|
||||
return ac;
|
||||
}
|
||||
|
||||
static ApplyContext
|
||||
createApplyContext(
|
||||
test::jtx::Env& env,
|
||||
OpenView& ov,
|
||||
STTx const& tx = STTx(ttESCROW_FINISH, [](STObject&) {}))
|
||||
{
|
||||
return createApplyContext(env, ov, env.journal, tx);
|
||||
}
|
||||
|
||||
struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
{
|
||||
void
|
||||
@@ -1912,24 +1916,63 @@ struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
testcase("trace");
|
||||
using namespace test::jtx;
|
||||
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
{
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kTrace};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "test trace";
|
||||
std::string data = "abc";
|
||||
auto const slice = Slice(data.data(), data.size());
|
||||
auto const result = hfs.trace(msg, slice, false);
|
||||
BEAST_EXPECT(result.has_value());
|
||||
BEAST_EXPECT(result.value() == msg.size() + data.size());
|
||||
std::string msg = "test trace";
|
||||
std::string data = "abc";
|
||||
auto const slice = Slice(data.data(), data.size());
|
||||
auto const result = hfs.trace(msg, slice, false);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(result.value() == msg.size() + data.size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.find(msg) != std::string::npos);
|
||||
}
|
||||
|
||||
auto const resultHex = hfs.trace(msg, slice, true);
|
||||
BEAST_EXPECT(resultHex.has_value());
|
||||
BEAST_EXPECT(resultHex.value() == msg.size() + data.size() * 2);
|
||||
auto const resultHex = hfs.trace(msg, slice, true);
|
||||
if (BEAST_EXPECT(resultHex.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(resultHex.has_value());
|
||||
BEAST_EXPECT(resultHex.value() == msg.size() + data.size() * 2);
|
||||
auto const messages = sink.messages().str();
|
||||
std::string hex;
|
||||
hex.reserve(data.size() * 2);
|
||||
boost::algorithm::hex(
|
||||
data.begin(), data.end(), std::back_inserter(hex));
|
||||
BEAST_EXPECT(messages.find(msg) != std::string::npos);
|
||||
BEAST_EXPECT(messages.find(hex) != std::string::npos);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// logs disabled (trace < error)
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kError};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "test trace";
|
||||
std::string data = "abc";
|
||||
auto const slice = Slice(data.data(), data.size());
|
||||
auto const result = hfs.trace(msg, slice, false);
|
||||
BEAST_EXPECT(result && *result == msg.size() + data.size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.empty());
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1938,19 +1981,49 @@ struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
testcase("traceNum");
|
||||
using namespace test::jtx;
|
||||
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
{
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kTrace};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace number";
|
||||
int64_t num = 123456789;
|
||||
auto const result = hfs.traceNum(msg, num);
|
||||
BEAST_EXPECT(result.has_value());
|
||||
BEAST_EXPECT(result.value() == msg.size() + sizeof(num));
|
||||
std::string msg = "trace number";
|
||||
int64_t num = 123456789;
|
||||
auto const result = hfs.traceNum(msg, num);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(result.value() == msg.size() + sizeof(num));
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.find(msg) != std::string::npos);
|
||||
BEAST_EXPECT(
|
||||
messages.find(std::to_string(num)) != std::string::npos);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// logs disabled
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kError};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace number";
|
||||
int64_t num = 123456789;
|
||||
auto const result = hfs.traceNum(msg, num);
|
||||
BEAST_EXPECT(result && *result == msg.size() + sizeof(int64_t));
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.empty());
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
@@ -1959,22 +2032,47 @@ struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
testcase("traceAccount");
|
||||
using namespace test::jtx;
|
||||
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace account";
|
||||
// Valid account
|
||||
{
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kTrace};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace account";
|
||||
auto const result = hfs.traceAccount(msg, env.master.id());
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(
|
||||
result.value() ==
|
||||
msg.size() + toBase58(env.master.id()).size());
|
||||
result.value() == msg.size() + env.master.id().size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.find(msg) != std::string::npos);
|
||||
BEAST_EXPECT(
|
||||
messages.find(env.master.human()) != std::string::npos);
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// logs disabled
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kError};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
std::string msg = "trace account";
|
||||
auto const result = hfs.traceAccount(msg, env.master.id());
|
||||
BEAST_EXPECT(
|
||||
result && *result == msg.size() + env.master.id().size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.empty());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1984,46 +2082,72 @@ struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
testcase("traceAmount");
|
||||
using namespace test::jtx;
|
||||
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace amount";
|
||||
STAmount amount = XRP(12345);
|
||||
{
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kTrace};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace amount";
|
||||
STAmount amount = XRP(12345);
|
||||
{
|
||||
auto const result = hfs.traceAmount(msg, amount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
{
|
||||
BEAST_EXPECT(*result == msg.size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.find(msg) != std::string::npos);
|
||||
BEAST_EXPECT(
|
||||
messages.find(amount.getFullText()) !=
|
||||
std::string::npos);
|
||||
}
|
||||
}
|
||||
|
||||
// IOU amount
|
||||
Account const alice("alice");
|
||||
env.fund(XRP(1000), alice);
|
||||
env.close();
|
||||
STAmount iouAmount = env.master["USD"](100);
|
||||
{
|
||||
auto const result = hfs.traceAmount(msg, iouAmount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
BEAST_EXPECT(*result == msg.size());
|
||||
}
|
||||
|
||||
// MPT amount
|
||||
{
|
||||
auto const mptId = makeMptID(42, env.master.id());
|
||||
Asset mptAsset = Asset(mptId);
|
||||
STAmount mptAmount(mptAsset, 123456);
|
||||
auto const result = hfs.traceAmount(msg, mptAmount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
BEAST_EXPECT(*result == msg.size());
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
// logs disabled
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kError};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace amount";
|
||||
STAmount amount = XRP(12345);
|
||||
auto const result = hfs.traceAmount(msg, amount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
BEAST_EXPECT(
|
||||
result.value() == msg.size() + amount.getFullText().size());
|
||||
}
|
||||
|
||||
// IOU amount
|
||||
Account const alice("alice");
|
||||
env.fund(XRP(1000), alice);
|
||||
env.close();
|
||||
STAmount iouAmount = env.master["USD"](100);
|
||||
{
|
||||
auto const result = hfs.traceAmount(msg, iouAmount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
BEAST_EXPECT(
|
||||
result.value() ==
|
||||
msg.size() + iouAmount.getFullText().size());
|
||||
}
|
||||
|
||||
// MPT amount
|
||||
{
|
||||
auto const mptId = makeMptID(42, env.master.id());
|
||||
Asset mptAsset = Asset(mptId);
|
||||
STAmount mptAmount(mptAsset, 123456);
|
||||
auto const result = hfs.traceAmount(msg, mptAmount);
|
||||
if (BEAST_EXPECT(result.has_value()))
|
||||
BEAST_EXPECT(
|
||||
result.value() ==
|
||||
msg.size() + mptAmount.getFullText().size());
|
||||
BEAST_EXPECT(result && *result == msg.size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.empty());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2058,28 +2182,51 @@ struct HostFuncImpl_test : public beast::unit_test::suite
|
||||
testcase("FloatTrace");
|
||||
using namespace test::jtx;
|
||||
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace float";
|
||||
|
||||
{
|
||||
auto const result = hfs.traceFloat(msg, makeSlice(invalid));
|
||||
BEAST_EXPECT(
|
||||
result &&
|
||||
*result ==
|
||||
msg.size() + 14 /* error msg size*/ + invalid.size() * 2);
|
||||
Env env{*this};
|
||||
OpenView ov{*env.current()};
|
||||
ApplyContext ac = createApplyContext(env, ov);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace float";
|
||||
|
||||
{
|
||||
auto const result = hfs.traceFloat(msg, makeSlice(invalid));
|
||||
BEAST_EXPECT(
|
||||
result &&
|
||||
*result == msg.size() + makeSlice(invalid).size());
|
||||
}
|
||||
|
||||
{
|
||||
auto const result = hfs.traceFloat(msg, makeSlice(floatMaxExp));
|
||||
BEAST_EXPECT(
|
||||
result &&
|
||||
*result == msg.size() + makeSlice(floatMaxExp).size());
|
||||
}
|
||||
}
|
||||
|
||||
{
|
||||
auto const result = hfs.traceFloat(msg, makeSlice(floatMaxExp));
|
||||
// logs disabled
|
||||
Env env(*this);
|
||||
OpenView ov{*env.current()};
|
||||
test::StreamSink sink{beast::severities::kError};
|
||||
beast::Journal jlog{sink};
|
||||
ApplyContext ac = createApplyContext(env, ov, jlog);
|
||||
|
||||
auto const dummyEscrow =
|
||||
keylet::escrow(env.master, env.seq(env.master));
|
||||
WasmHostFunctionsImpl hfs(ac, dummyEscrow);
|
||||
|
||||
std::string msg = "trace float";
|
||||
|
||||
auto const result = hfs.traceFloat(msg, makeSlice(invalid));
|
||||
BEAST_EXPECT(
|
||||
result && *result == msg.size() + 19 /* string represenation*/);
|
||||
result && *result == msg.size() + makeSlice(invalid).size());
|
||||
auto const messages = sink.messages().str();
|
||||
BEAST_EXPECT(messages.empty());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -383,9 +383,12 @@ public:
|
||||
Expected<int32_t, HostFunctionError>
|
||||
trace(std::string_view const& msg, Slice const& data, bool asHex) override
|
||||
{
|
||||
auto const ret = msg.size() + data.size() * (asHex ? 2 : 1);
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
if (!asHex)
|
||||
@@ -407,15 +410,18 @@ public:
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return msg.size() + data.size() * (asHex ? 2 : 1);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
traceNum(std::string_view const& msg, int64_t data) override
|
||||
{
|
||||
auto const ret = msg.size() + sizeof(data);
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
j << "WASM TRACE NUM: " << msg << " " << data;
|
||||
@@ -423,15 +429,18 @@ public:
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
return msg.size() + sizeof(data);
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
traceAccount(std::string_view const& msg, AccountID const& account) override
|
||||
{
|
||||
auto const ret = msg.size() + account.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
if (!account)
|
||||
@@ -440,15 +449,23 @@ public:
|
||||
auto const accountStr = toBase58(account);
|
||||
|
||||
j << "WASM TRACE ACCOUNT: " << msg << " " << accountStr;
|
||||
return msg.size() + accountStr.size();
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
traceFloat(std::string_view const& msg, Slice const& data) override
|
||||
{
|
||||
auto const ret = msg.size() + data.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
auto const s = floatToString(data);
|
||||
@@ -457,20 +474,29 @@ public:
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
return msg.size() + s.size();
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
traceAmount(std::string_view const& msg, STAmount const& amount) override
|
||||
{
|
||||
auto const ret = msg.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
auto const amountStr = amount.getFullText();
|
||||
j << "WASM TRACE AMOUNT: " << msg << " " << amountStr;
|
||||
return msg.size() + amountStr.size();
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<Bytes, HostFunctionError>
|
||||
|
||||
@@ -703,7 +703,7 @@ struct Wasm_test : public beast::unit_test::suite
|
||||
Bytes const wasm(wasmStr.begin(), wasmStr.end());
|
||||
TestHostFunctions hfs(env, 0);
|
||||
|
||||
auto const allowance = 189'508;
|
||||
auto const allowance = 185'974;
|
||||
auto re = runEscrowWasm(wasm, hfs, ESCROW_FUNCTION_NAME, {}, allowance);
|
||||
|
||||
if (BEAST_EXPECT(re.has_value()))
|
||||
|
||||
@@ -248,7 +248,7 @@ pub extern "C" fn finish() -> i32 {
|
||||
account.0.len(),
|
||||
)
|
||||
},
|
||||
47,
|
||||
(message.len() + 20) as i32,
|
||||
"trace_account",
|
||||
);
|
||||
let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F]; // 95 drops of XRP
|
||||
@@ -261,7 +261,7 @@ pub extern "C" fn finish() -> i32 {
|
||||
amount.len(),
|
||||
)
|
||||
},
|
||||
19,
|
||||
message.len() as i32,
|
||||
"trace_amount",
|
||||
);
|
||||
let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]; // 0 drops of XRP
|
||||
@@ -274,7 +274,7 @@ pub extern "C" fn finish() -> i32 {
|
||||
amount.len(),
|
||||
)
|
||||
},
|
||||
18,
|
||||
message.len() as i32,
|
||||
"trace_amount_zero",
|
||||
);
|
||||
|
||||
@@ -307,32 +307,6 @@ pub extern "C" fn finish() -> i32 {
|
||||
"get_parent_ledger_hash_len_too_long",
|
||||
)
|
||||
});
|
||||
let message = "testing trace";
|
||||
check_result(
|
||||
unsafe {
|
||||
host::trace_account(
|
||||
message.as_ptr(),
|
||||
message.len(),
|
||||
account.0.as_ptr(),
|
||||
account.0.len(),
|
||||
)
|
||||
},
|
||||
47,
|
||||
"trace_account",
|
||||
);
|
||||
let amount = &[0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x5F]; // 95 drops of XRP
|
||||
check_result(
|
||||
unsafe {
|
||||
host::trace_amount(
|
||||
message.as_ptr(),
|
||||
message.len(),
|
||||
amount.as_ptr(),
|
||||
amount.len(),
|
||||
)
|
||||
},
|
||||
19,
|
||||
"trace_amount",
|
||||
);
|
||||
|
||||
// ########################################
|
||||
// Step #3: Test getData[Type] edge cases
|
||||
|
||||
@@ -661,251 +661,251 @@ extern std::string const codecovTestsWasmHex =
|
||||
"61696e5f6b65796c6574000108686f73745f6c69620e7369676e6572735f6b65796c657400"
|
||||
"0008686f73745f6c69620d7469636b65745f6b65796c6574000108686f73745f6c69620c76"
|
||||
"61756c745f6b65796c657400010303020a0505030100110619037f01418080c0000b7f0041"
|
||||
"a99ec0000b7f0041b09ec0000b072e04066d656d6f727902000666696e697368003d0a5f5f"
|
||||
"646174615f656e6403010b5f5f686561705f6261736503020a9e2702460002402000200147"
|
||||
"04402002200341004100410010001a20004100480d01418b80c000410b2000ad1001000b20"
|
||||
"0220032000ac10011a0f0b418b80c000410b2000ac1001000bd426020a7f017e230041f001"
|
||||
"6b22002400419680c000412341004100410010001a100241b9e00041b980c000410e103c10"
|
||||
"0341b2920441c780c0004116103c200041f0006a22044200370300200041e8006a22064200"
|
||||
"370300200041e0006a2203420037030020004200370358200041d8006a2201412010044120"
|
||||
"41d88cc0004116103c1005410a41dd80c000410c103c200041186a2207428182848890a0c0"
|
||||
"8001370300200041106a2208428182848890a0c08001370300200041086a22094281828488"
|
||||
"90a0c080013703002000428182848890a0c0800137030041e980c000410e1006410141f780"
|
||||
"c0004111103c200041201006410141f780c0004111103c4181802020014114100722024114"
|
||||
"4604400240200041266a200041da006a2d00003a00002000200029005f3703c80120002000"
|
||||
"41e4006a2900003700cd01200041306a20002900cd01370000200020002f00583b01242000"
|
||||
"200028005b360027200020002903c80137002b200442003703002006420037030020034200"
|
||||
"37030020004200370358200041246a2204411420014120100822024120470d002000413a6a"
|
||||
"20002d005a3a0000200041d0016a2202200041e7006a290000220a370300200041c7006a20"
|
||||
"0a370000200041cf006a200041ef006a290000370000200041d7006a200041f7006a2d0000"
|
||||
"3a0000200020002f01583b01382000200028005b36003b2000200029005f37003f20004138"
|
||||
"6a4120410010094101418881c0004110103c20064100360200200342003703002000420037"
|
||||
"03584181802020014114100a411441ee8cc000411c103c2006410036020020034200370300"
|
||||
"2000420037035841014181802020014114100b4114418a8dc0004114103c20004104360298"
|
||||
"01200041818020360258200041d8016a2203410036020020024200370300200042003703c8"
|
||||
"0120014104200041c8016a22064114100c4114419e8dc0004113103c200341003602002002"
|
||||
"4200370300200042003703c801200120002802980120064114100d411441b18dc000412310"
|
||||
"3c2003410036020020024200370300200042003703c8014101200120002802980120064114"
|
||||
"100e411441d48dc000411b103c4189803c100f4120419881c0004110103c4189803c101041"
|
||||
"2041a881c0004120103c41014189803c1011412041c881c0004118103c2001200028029801"
|
||||
"1012412041e081c0004117103c20012000280298011013412041f781c0004127103c410120"
|
||||
"0120002802980110144120419e82c000411f103c200441141015411441bd82c000410b103c"
|
||||
"200041e0016a220542003703002003420037030020024200370300200042003703c8012001"
|
||||
"200028029801200641201016412041ef8dc0004113103c41c882c000410c41d482c000410b"
|
||||
"41df82c000410e1017410141ed82c0004109103c200041b8016a2007290300370300200041"
|
||||
"b0016a2008290300370300200041a8016a2009290300370300200020002903003703a00120"
|
||||
"0341003b010020024200370300200042003703c80120044114200041a0016a220741202006"
|
||||
"41121018411241828ec0004107103c2003410036020020024200370300200042003703c801"
|
||||
"20074120200641141019411441898ec000410e103c200041003602c8012007412020064104"
|
||||
"101a410441978ec000410d103c20074120101b410841f682c000410d103c20074120101c41"
|
||||
"0a418383c0004114103c200041003602c8012007412020064104101d410441a48ec000410e"
|
||||
"103c419783c000410d20044114101e412f41a483c000410d103c419783c000410d41b183c0"
|
||||
"004108101f411341b983c000410c103c419783c000410d41c583c0004108101f411241cd83"
|
||||
"c0004111103c417f41041004417141de83c000411e103c200041003602c8012006417f1004"
|
||||
"417141b28ec000411e103c200041ca016a41003a0000200041003b01c80120064103100441"
|
||||
"7d41d08ec0004124103c200041003602c8012006418094ebdc031004417341f48ec0004123"
|
||||
"103c419783c000410d20044114101e412f41a483c000410d103c419783c000410d41b183c0"
|
||||
"004108101f411341b983c000410c103c200542003703002003420037030020024200370300"
|
||||
"200042003703c801200041d894ebdc036a220741082006412041001020417341978fc00041"
|
||||
"17103c200542003703002003420037030020024200370300200042003703c8012001200028"
|
||||
"0298012006412041001020417141ae8fc0004119103c4102100f416f41fc83c000411f103c"
|
||||
"417f20002802980110124171419b84c000411f103c2001417f1012417141ba84c000411f10"
|
||||
"3c20014181201012417441d984c0004120103c20072000280298011012417341f984c00041"
|
||||
"1f103c2007200028029801410110094173419885c0004118103c2001200028029801410110"
|
||||
"09417141b085c000411a103c20054200370300200342003703002002420037030020004200"
|
||||
"3703c8012007200028029801200641201008417341c78fc0004116103c2005420037030020"
|
||||
"03420037030020024200370300200042003703c80120012000280298012006412010084171"
|
||||
"41dd8fc0004118103c200542003703002003420037030020024200370300200042003703c8"
|
||||
"0120044114200441142007200028029801200641201021417341f58fc000411c103c200542"
|
||||
"003703002003420037030020024200370300200042003703c8012004411420044114200120"
|
||||
"00280298012006412010214171419190c000411e103c200542003703002003420037030020"
|
||||
"024200370300200042003703c80141959ec000411420072000280298012006412010224173"
|
||||
"41af90c0004119103c200542003703002003420037030020024200370300200042003703c8"
|
||||
"0141959ec00041142001200028029801200641201022417141c890c000411f103c20054200"
|
||||
"3703002003420037030020024200370300200042003703c80141959ec000411441ca85c000"
|
||||
"4114200641201022417141e790c0004129103c200542003703002003420037030020024200"
|
||||
"370300200042003703c80141de85c000412841959ec00041142006412010224171419091c0"
|
||||
"004125103c200041dc016a200041346a280100360200200041d4016a2000412c6a29010037"
|
||||
"0200200020002901243702cc01200041808080083602c801200041003b01c0012006411841"
|
||||
"959ec0004114200041c0016a220341021022417141b591c000410e103c2007200028029801"
|
||||
"422a10014173418686c0004111103c200041003b01c0014102200341021007416f41c391c0"
|
||||
"00411b103c200041003b01c001410220034102100a416f41de91c000412b103c200041003b"
|
||||
"01c0014101410220034102100b416f418992c0004123103c4102100f416f41fc83c000411f"
|
||||
"103c41021010416f419786c000412f103c410141021011416f41c686c0004127103c41e980"
|
||||
"c0004181201006417441ed86c000411f103c41e980c00041c10010064174418c87c000411a"
|
||||
"103c200041003b01c001200141812020034102100c417441ac92c0004121103c200041003b"
|
||||
"01c001200141812020034102100d417441cd92c0004131103c200041003b01c00141012001"
|
||||
"41812020034102100e417441fe92c0004129103c20014181201012417441a687c000412510"
|
||||
"3c20014181201013417441cb87c0004135103c4101200141812010144174418088c000412d"
|
||||
"103c20014181201015417441ad88c0004119103c419783c00041812041d482c000410b41df"
|
||||
"82c000410e1017417441ed82c0004109103c419783c000410d41d482c00041812041df82c0"
|
||||
"00410e1017417441ed82c0004109103c419783c000410d41d482c000410b41df82c0004181"
|
||||
"201017417441ed82c0004109103c200041003b01c0012001418120200341021016417441a7"
|
||||
"93c0004121103c200041003b01c00141959ec00041812041959ec000411420034102102241"
|
||||
"7441c893c0004118103c200041003b01c00120044114200441142001418120200341021023"
|
||||
"417441e093c000411f103c200041003b01c001200641812020044114200341021024417441"
|
||||
"ff93c0004122103c419783c000410d200720002802980141001000417341c688c000410f10"
|
||||
"3c200042d487b6f4c7d4b1c0003700c001419783c000410d200041c095ebdc036a22054108"
|
||||
"1025417341d588c000411c103c419783c000410d2007200028029801101f417341f188c000"
|
||||
"4116103c200541082003410810264173418789c0004118103c200341082005410810264173"
|
||||
"419f89c0004118103c200041003b01ec012005410820034108200041ec016a220241024100"
|
||||
"1027417341a194c0004114103c200041003b01ec0120034108200541082002410241001027"
|
||||
"417341b594c0004114103c200041003b01ec01200541082003410820024102410010284173"
|
||||
"41c994c0004119103c200041003b01ec0120034108200541082002410241001028417341e2"
|
||||
"94c0004119103c200041003b01ec0120054108200341082002410241001029417341fb94c0"
|
||||
"004119103c200041003b01ec01200341082005410820024102410010294173419495c00041"
|
||||
"19103c200041003b01ec012005410820034108200241024100102a417341ad95c000411710"
|
||||
"3c200041003b01ec012003410820054108200241024100102a417341c495c0004117103c20"
|
||||
"0041003b01ec01200541084103200241024100102b417341db95c0004114103c200041003b"
|
||||
"01ec01200541084103200241024100102c417341ef95c0004113103c200041003b01ec0120"
|
||||
"054108200241024100102d4173418296c0004113103c200120002802980141001009417141"
|
||||
"b789c0004123103c200041003b01ec01200441142001200028029801200241021018417141"
|
||||
"9596c000411a103c200041003b01ec012001200028029801200241021019417141af96c000"
|
||||
"4121103c200041003b01ec01200120002802980120024102101a417141d096c0004120103c"
|
||||
"2001200028029801101b417141da89c0004120103c2001200028029801101c417141fa89c0"
|
||||
"004127103c200041003602ec01200120002802980120024104101d417141f096c000412110"
|
||||
"3c200041003b01ec0120012000280298012002410210084171419197c0004123103c200041"
|
||||
"003b01ec012001200028029801410120024102102e417141b497c0004121103c200041003b"
|
||||
"01ec01200120002802980122052004411420012005200241021023417141d597c000412710"
|
||||
"3c200041003b01ec01200441142001200028029801220520012005200241021023417141fc"
|
||||
"97c0004127103c200041003b01ec0120012000280298012004411420024102102f417141a3"
|
||||
"98c0004125103c200041003b01ec0120044114200120002802980120024102102f417141c8"
|
||||
"98c0004125103c200041003b01ec01200120002802980120044114200241021030417141ed"
|
||||
"98c000412c103c200041003b01ec0120044114200120002802980120024102103041714199"
|
||||
"99c000412c103c200041003b01ec012001200028029801200241021031417141c599c00041"
|
||||
"1f103c200041003b01ec0120012000280298014101200241021032417141e499c000412210"
|
||||
"3c200041003b01ec0120012000280298012004411441ca85c0004114200241021021417141"
|
||||
"869ac0004121103c200041003b01ec0120044114200120002802980141ca85c00041142002"
|
||||
"41021021417141a79ac0004121103c200041003b01ec012001200028029801410120024102"
|
||||
"1033417141c89ac0004128103c200041003b01ec0120064118200120002802980120024102"
|
||||
"1024417141f09ac0004123103c200041003b01ec0120012000280298014101200241021034"
|
||||
"417141939bc0004125103c200041003b01ec01200120002802980141012002410210354171"
|
||||
"41b89bc0004121103c200041003b01ec0120012000280298014101200241021036417141d9"
|
||||
"9bc0004122103c200041003b01ec0120012000280298012004411441012002410210374171"
|
||||
"41fb9bc0004124103c200041003b01ec012004411420012000280298014101200241021037"
|
||||
"4171419f9cc0004124103c200041003b01ec01200120002802980141012002410210384171"
|
||||
"41c39cc000412f103c200041003b01ec012001200028029801200241021039417141f29cc0"
|
||||
"004123103c200041003b01ec012001200028029801410120024102103a417141959dc00041"
|
||||
"22103c200041003b01ec012001200028029801410120024102103b417141b79dc000412110"
|
||||
"3c200041003b01ec01200120002802980141a18ac0004120200241021018417141d89dc000"
|
||||
"411c103c419783c000410d2001200028029801101e417141c18ac0004122103c419797abdd"
|
||||
"03410d41a18ac000412041001000417341e38ac0004110103c419797abdd03410d20034108"
|
||||
"1025417341f38ac000411d103c419797abdd03410d20044114101e417341908bc000411810"
|
||||
"3c419797abdd03410d41b183c0004108101f417341a88bc0004117103c2001200028029801"
|
||||
"200141812041001000417441bf8bc000410e103c200141812042011001417441cd8bc00041"
|
||||
"12103c419783c000418120200341081025417441df8bc000411b103c419783c00041812020"
|
||||
"044114101e417441fa8bc0004116103c419783c00041812041b183c0004108101f41744190"
|
||||
"8cc0004115103c419783c000410d2001200028029801101f417141a58cc0004119103c2000"
|
||||
"41003b01ec01200120002802980120044114200241021024417141f49dc0004121103c4101"
|
||||
"410020044114101e412241be8cc000411a103c200041f0016a240041010f0b0b418080c000"
|
||||
"410b417f20022002417f4e1bac1001000b0b801e0200418080c0000bde056572726f725f63"
|
||||
"6f64653d54455354204641494c45442424242424205354415254494e47205741534d204558"
|
||||
"45435554494f4e2024242424246765745f6c65646765725f73716e6765745f706172656e74"
|
||||
"5f6c65646765725f74696d656765745f626173655f666565746573745f616d656e646d656e"
|
||||
"74616d656e646d656e745f656e61626c656463616368655f6c65646765725f6f626a676574"
|
||||
"5f74785f61727261795f6c656e6765745f63757272656e745f6c65646765725f6f626a5f61"
|
||||
"727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e6765745f74"
|
||||
"785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65646765725f"
|
||||
"6f626a5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f626a5f6e65"
|
||||
"737465645f61727261795f6c656e7570646174655f6461746174657374206d657373616765"
|
||||
"74657374207075626b657974657374207369676e6174757265636865636b5f736967676574"
|
||||
"5f6e66745f666c6167736765745f6e66745f7472616e736665725f66656574657374696e67"
|
||||
"20747261636574726163655f6163636f756e74400000000000005f74726163655f616d6f75"
|
||||
"6e74400000000000000074726163655f616d6f756e745f7a65726f6765745f706172656e74"
|
||||
"5f6c65646765725f686173685f6e65675f7074726765745f74785f61727261795f6c656e5f"
|
||||
"696e76616c69645f736669656c646765745f74785f6e65737465645f61727261795f6c656e"
|
||||
"5f6e65675f7074726765745f74785f6e65737465645f61727261795f6c656e5f6e65675f6c"
|
||||
"656e6765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6c6f6e67676574"
|
||||
"5f74785f6e65737465645f61727261795f6c656e5f7074725f6f6f6263616368655f6c6564"
|
||||
"6765725f6f626a5f7074725f6f6f6263616368655f6c65646765725f6f626a5f77726f6e67"
|
||||
"5f6c656e555344303030303030303030303030303030303000418686c0000b8f1874726163"
|
||||
"655f6e756d5f6f6f625f7374726765745f63757272656e745f6c65646765725f6f626a5f61"
|
||||
"727261795f6c656e5f696e76616c69645f736669656c646765745f6c65646765725f6f626a"
|
||||
"5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d656e745f656e"
|
||||
"61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61626c65645f"
|
||||
"746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f62"
|
||||
"69675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e6573746564"
|
||||
"5f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f6c65646765725f6f62"
|
||||
"6a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963657570646174"
|
||||
"655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c6963657472"
|
||||
"6163655f6f70617175655f666c6f61745f6f6f625f736c69636574726163655f616d6f756e"
|
||||
"745f6f6f625f736c696365666c6f61745f636f6d706172655f6f6f625f736c69636531666c"
|
||||
"6f61745f636f6d706172655f6f6f625f736c6963653263616368655f6c65646765725f6f62"
|
||||
"6a5f77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167735f77726f"
|
||||
"6e675f73697a655f75696e743235366765745f6e66745f7472616e736665725f6665655f77"
|
||||
"726f6e675f73697a655f75696e743235363030303030303030303030303030303030303030"
|
||||
"30303030303030303030303174726163655f6163636f756e745f77726f6e675f73697a655f"
|
||||
"6163636f756e74696474726163655f6f6f625f737472696e6774726163655f6f7061717565"
|
||||
"5f666c6f61745f6f6f625f737472696e6774726163655f6163636f756e745f6f6f625f7374"
|
||||
"72696e6774726163655f616d6f756e745f6f6f625f737472696e6774726163655f746f6f5f"
|
||||
"6c6f6e6774726163655f6e756d5f746f6f5f6c6f6e6774726163655f6f70617175655f666c"
|
||||
"6f61745f746f6f5f6c6f6e6774726163655f6163636f756e745f746f6f5f6c6f6e67747261"
|
||||
"63655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77726f6e675f"
|
||||
"6c656e67746874726163655f6163636f756e745f636865636b5f646573796e636765745f70"
|
||||
"6172656e745f6c65646765725f686173686765745f63757272656e745f6c65646765725f6f"
|
||||
"626a5f6669656c646765745f6c65646765725f6f626a5f6669656c646765745f74785f6e65"
|
||||
"737465645f6669656c646765745f63757272656e745f6c65646765725f6f626a5f6e657374"
|
||||
"65645f6669656c646765745f6c65646765725f6f626a5f6e65737465645f6669656c64636f"
|
||||
"6d707574655f7368613531325f68616c666765745f6e66746765745f6e66745f6973737565"
|
||||
"726765745f6e66745f7461786f6e6765745f6e66745f73657269616c6765745f706172656e"
|
||||
"745f6c65646765725f686173685f6e65675f6c656e6765745f706172656e745f6c65646765"
|
||||
"725f686173685f6275665f746f6f5f736d616c6c6765745f706172656e745f6c6564676572"
|
||||
"5f686173685f6c656e5f746f6f5f6c6f6e67666c6f61745f66726f6d5f75696e745f6c656e"
|
||||
"5f6f6f62666c6f61745f66726f6d5f75696e745f77726f6e675f6c656e6163636f756e745f"
|
||||
"6b65796c65745f6c656e5f6f6f626163636f756e745f6b65796c65745f77726f6e675f6c65"
|
||||
"6e6c696e655f6b65796c65745f6c656e5f6f6f625f63757272656e63796c696e655f6b6579"
|
||||
"6c65745f77726f6e675f6c656e5f63757272656e6379616d6d5f6b65796c65745f6c656e5f"
|
||||
"6f6f625f617373657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6c656e5f6173"
|
||||
"73657432616d6d5f6b65796c65745f6c656e5f77726f6e675f6e6f6e5f7872705f63757272"
|
||||
"656e63795f6c656e616d6d5f6b65796c65745f6c656e5f77726f6e675f7872705f63757272"
|
||||
"656e63795f6c656e616d6d5f6b65796c65745f6d70746765745f74785f6669656c645f696e"
|
||||
"76616c69645f736669656c646765745f63757272656e745f6c65646765725f6f626a5f6669"
|
||||
"656c645f696e76616c69645f736669656c646765745f6c65646765725f6f626a5f6669656c"
|
||||
"645f696e76616c69645f736669656c646765745f74785f6e65737465645f6669656c645f74"
|
||||
"6f6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e65"
|
||||
"737465645f6669656c645f746f6f5f6269675f736c6963656765745f6c65646765725f6f62"
|
||||
"6a5f6e65737465645f6669656c645f746f6f5f6269675f736c696365636f6d707574655f73"
|
||||
"68613531325f68616c665f746f6f5f6269675f736c696365616d6d5f6b65796c65745f746f"
|
||||
"6f5f6269675f736c69636563726564656e7469616c5f6b65796c65745f746f6f5f6269675f"
|
||||
"736c6963656d70746f6b656e5f6b65796c65745f746f6f5f6269675f736c6963655f6d7074"
|
||||
"6964666c6f61745f6164645f6f6f625f736c69636531666c6f61745f6164645f6f6f625f73"
|
||||
"6c69636532666c6f61745f73756274726163745f6f6f625f736c69636531666c6f61745f73"
|
||||
"756274726163745f6f6f625f736c69636532666c6f61745f6d756c7469706c795f6f6f625f"
|
||||
"736c69636531666c6f61745f6d756c7469706c795f6f6f625f736c69636532666c6f61745f"
|
||||
"6469766964655f6f6f625f736c69636531666c6f61745f6469766964655f6f6f625f736c69"
|
||||
"636532666c6f61745f726f6f745f6f6f625f736c696365666c6f61745f706f775f6f6f625f"
|
||||
"736c696365666c6f61745f6c6f675f6f6f625f736c6963656765745f6e66745f77726f6e67"
|
||||
"5f73697a655f75696e743235366765745f6e66745f6973737565725f77726f6e675f73697a"
|
||||
"655f75696e743235366765745f6e66745f7461786f6e5f77726f6e675f73697a655f75696e"
|
||||
"743235366765745f6e66745f73657269616c5f77726f6e675f73697a655f75696e74323536"
|
||||
"6163636f756e745f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646368"
|
||||
"65636b5f6b65796c65745f77726f6e675f73697a655f6163636f756e74696463726564656e"
|
||||
"7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e7469643163726564"
|
||||
"656e7469616c5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964326465"
|
||||
"6c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316465"
|
||||
"6c65676174655f6b65796c65745f77726f6e675f73697a655f6163636f756e746964326465"
|
||||
"706f7369745f707265617574685f6b65796c65745f77726f6e675f73697a655f6163636f75"
|
||||
"6e746964316465706f7369745f707265617574685f6b65796c65745f77726f6e675f73697a"
|
||||
"655f6163636f756e746964326469645f6b65796c65745f77726f6e675f73697a655f616363"
|
||||
"6f756e746964657363726f775f6b65796c65745f77726f6e675f73697a655f6163636f756e"
|
||||
"7469646c696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e746964316c"
|
||||
"696e655f6b65796c65745f77726f6e675f73697a655f6163636f756e746964326d70745f69"
|
||||
"737375616e63655f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646d70"
|
||||
"746f6b656e5f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646e66745f"
|
||||
"6f666665725f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646f666665"
|
||||
"725f6b65796c65745f77726f6e675f73697a655f6163636f756e7469646f7261636c655f6b"
|
||||
"65796c65745f77726f6e675f73697a655f6163636f756e7469647061796368616e5f6b6579"
|
||||
"6c65745f77726f6e675f73697a655f6163636f756e746964317061796368616e5f6b65796c"
|
||||
"65745f77726f6e675f73697a655f6163636f756e746964327065726d697373696f6e65645f"
|
||||
"646f6d61696e5f6b65796c65745f77726f6e675f73697a655f6163636f756e746964736967"
|
||||
"6e6572735f6b65796c65745f77726f6e675f73697a655f6163636f756e7469647469636b65"
|
||||
"745f6b65796c65745f77726f6e675f73697a655f6163636f756e7469647661756c745f6b65"
|
||||
"796c65745f77726f6e675f73697a655f6163636f756e7469646765745f6e66745f77726f6e"
|
||||
"675f73697a655f6163636f756e7469646d70746f6b656e5f6b65796c65745f6d707469645f"
|
||||
"77726f6e675f6c656e677468004d0970726f64756365727302086c616e6775616765010452"
|
||||
"757374000c70726f6365737365642d6279010572757374631d312e38352e31202834656231"
|
||||
"363132353020323032352d30332d313529002c0f7461726765745f6665617475726573022b"
|
||||
"0f6d757461626c652d676c6f62616c732b087369676e2d657874";
|
||||
"8f9ec0000b7f0041909ec0000b072e04066d656d6f727902000666696e697368003d0a5f5f"
|
||||
"646174615f656e6403010b5f5f686561705f6261736503020c01020ad62602460002402000"
|
||||
"20014704402002200341004100410010001a20004100480d01418b80c000410b2000ad1001"
|
||||
"000b200220032000ac10011a0f0b418b80c000410b2000ac1001000b8c26020a7f017e2300"
|
||||
"41f0016b22002400419680c000412341004100410010001a100241b9e00041b980c000410e"
|
||||
"103c100341b2920441c780c0004116103c200041f0006a22064200370300200041e8006a22"
|
||||
"054200370300200041e0006a2203420037030020004200370358200041d8006a2201412010"
|
||||
"04412041be8cc0004116103c1005410a41dd80c000410c103c200041186a22074281828488"
|
||||
"90a0c08001370300200041106a2208428182848890a0c08001370300200041086a22094281"
|
||||
"82848890a0c080013703002000428182848890a0c0800137030041e980c000410e10064101"
|
||||
"41f780c0004111103c200041201006410141f780c0004111103c4181802020014114100722"
|
||||
"0241144604400240200041266a200041da006a2d00003a00002000200029005f3703c80120"
|
||||
"00200041e4006a2900003700cd01200041306a20002900cd01370000200020002f00583b01"
|
||||
"242000200028005b360027200020002903c80137002b200642003703002005420037030020"
|
||||
"03420037030020004200370358200041246a2206411420014120100822024120470d002000"
|
||||
"413a6a20002d005a3a0000200041d0016a2202200041e7006a290000220a370300200041c7"
|
||||
"006a200a370000200041cf006a200041ef006a290000370000200041d7006a200041f7006a"
|
||||
"2d00003a0000200020002f01583b01382000200028005b36003b2000200029005f37003f20"
|
||||
"0041386a4120410010094101418881c0004110103c20054100360200200342003703002000"
|
||||
"42003703584181802020014114100a411441d48cc000411c103c2005410036020020034200"
|
||||
"3703002000420037035841014181802020014114100b411441f08cc0004114103c20004104"
|
||||
"36029801200041818020360258200041d8016a220341003602002002420037030020004200"
|
||||
"3703c80120014104200041c8016a22054114100c411441848dc0004113103c200341003602"
|
||||
"0020024200370300200042003703c801200120002802980120054114100d411441978dc000"
|
||||
"4123103c2003410036020020024200370300200042003703c8014101200120002802980120"
|
||||
"054114100e411441ba8dc000411b103c4189803c100f4120419881c0004110103c4189803c"
|
||||
"1010412041a881c0004120103c41014189803c1011412041c881c0004118103c2001200028"
|
||||
"0298011012412041e081c0004117103c20012000280298011013412041f781c0004127103c"
|
||||
"4101200120002802980110144120419e82c000411f103c200641141015411441bd82c00041"
|
||||
"0b103c200041e0016a220442003703002003420037030020024200370300200042003703c8"
|
||||
"012001200028029801200541201016412041d58dc0004113103c41c882c000410c41d482c0"
|
||||
"00410b41df82c000410e1017410141ed82c0004109103c200041b8016a2007290300370300"
|
||||
"200041b0016a2008290300370300200041a8016a2009290300370300200020002903003703"
|
||||
"a001200341003b010020024200370300200042003703c80120064114200041a0016a220741"
|
||||
"20200541121018411241e88dc0004107103c20034100360200200242003703002000420037"
|
||||
"03c80120074120200541141019411441ef8dc000410e103c200041003602c8012007412020"
|
||||
"054104101a410441fd8dc000410d103c20074120101b410841f682c000410d103c20074120"
|
||||
"101c410a418383c0004114103c200041003602c8012007412020054104101d4104418a8ec0"
|
||||
"00410e103c419783c000410d20064114101e412141a483c000410d103c419783c000410d41"
|
||||
"b183c0004108101f410d41b983c000410c103c419783c000410d41c583c0004108101f410d"
|
||||
"41cd83c0004111103c417f41041004417141de83c000411e103c200041003602c801200541"
|
||||
"7f1004417141988ec000411e103c200041ca016a41003a0000200041003b01c80120054103"
|
||||
"1004417d41b68ec0004124103c200041003602c8012005418094ebdc031004417341da8ec0"
|
||||
"004123103c200442003703002003420037030020024200370300200042003703c801200041"
|
||||
"d894ebdc036a220741082005412041001020417341fd8ec0004117103c2004420037030020"
|
||||
"03420037030020024200370300200042003703c80120012000280298012005412041001020"
|
||||
"417141948fc0004119103c4102100f416f41fc83c000411f103c417f200028029801101241"
|
||||
"71419b84c000411f103c2001417f1012417141ba84c000411f103c20014181201012417441"
|
||||
"d984c0004120103c20072000280298011012417341f984c000411f103c2007200028029801"
|
||||
"410110094173419885c0004118103c200120002802980141011009417141b085c000411a10"
|
||||
"3c200442003703002003420037030020024200370300200042003703c80120072000280298"
|
||||
"01200541201008417341ad8fc0004116103c20044200370300200342003703002002420037"
|
||||
"0300200042003703c8012001200028029801200541201008417141c38fc0004118103c2004"
|
||||
"42003703002003420037030020024200370300200042003703c80120064114200641142007"
|
||||
"200028029801200541201021417341db8fc000411c103c2004420037030020034200370300"
|
||||
"20024200370300200042003703c80120064114200641142001200028029801200541201021"
|
||||
"417141f78fc000411e103c2004420037030020034200370300200242003703002000420037"
|
||||
"03c80141fb9dc000411420072000280298012005412010224173419590c0004119103c2004"
|
||||
"42003703002003420037030020024200370300200042003703c80141fb9dc0004114200120"
|
||||
"0028029801200541201022417141ae90c000411f103c200442003703002003420037030020"
|
||||
"024200370300200042003703c80141fb9dc000411441ca85c0004114200541201022417141"
|
||||
"cd90c0004129103c200442003703002003420037030020024200370300200042003703c801"
|
||||
"41de85c000412841fb9dc0004114200541201022417141f690c0004125103c200041dc016a"
|
||||
"200041346a280100360200200041d4016a2000412c6a290100370200200020002901243702"
|
||||
"cc01200041808080083602c801200041003b01c0012005411841fb9dc0004114200041c001"
|
||||
"6a2203410210224171419b91c000410e103c2007200028029801422a10014173418686c000"
|
||||
"4111103c200041003b01c0014102200341021007416f41a991c000411b103c200041003b01"
|
||||
"c001410220034102100a416f41c491c000412b103c200041003b01c0014101410220034102"
|
||||
"100b416f41ef91c0004123103c4102100f416f41fc83c000411f103c41021010416f419786"
|
||||
"c000412f103c410141021011416f41c686c0004127103c41e980c0004181201006417441ed"
|
||||
"86c000411f103c41e980c00041c10010064174418c87c000411a103c200041003b01c00120"
|
||||
"0141812020034102100c4174419292c0004121103c200041003b01c0012001418120200341"
|
||||
"02100d417441b392c0004131103c200041003b01c0014101200141812020034102100e4174"
|
||||
"41e492c0004129103c20014181201012417441a687c0004125103c20014181201013417441"
|
||||
"cb87c0004135103c4101200141812010144174418088c000412d103c200141812010154174"
|
||||
"41ad88c0004119103c419783c00041812041d482c000410b41df82c000410e1017417441ed"
|
||||
"82c0004109103c419783c000410d41d482c00041812041df82c000410e1017417441ed82c0"
|
||||
"004109103c419783c000410d41d482c000410b41df82c0004181201017417441ed82c00041"
|
||||
"09103c200041003b01c00120014181202003410210164174418d93c0004121103c20004100"
|
||||
"3b01c00141fb9dc00041812041fb9dc0004114200341021022417441ae93c0004118103c20"
|
||||
"0041003b01c00120064114200641142001418120200341021023417441c693c000411f103c"
|
||||
"200041003b01c001200541812020064114200341021024417441e593c0004122103c419783"
|
||||
"c000410d200720002802980141001000417341c688c000410f103c200042d487b6f4c7d4b1"
|
||||
"c0003700c001419783c000410d200041c095ebdc036a220441081025417341d588c000411c"
|
||||
"103c419783c000410d2007200028029801101f417341f188c0004116103c20044108200341"
|
||||
"0810264173418789c0004118103c200341082004410810264173419f89c0004118103c2000"
|
||||
"41003b01ec012004410820034108200041ec016a22024102410010274173418794c0004114"
|
||||
"103c200041003b01ec01200341082004410820024102410010274173419b94c0004114103c"
|
||||
"200041003b01ec0120044108200341082002410241001028417341af94c0004119103c2000"
|
||||
"41003b01ec0120034108200441082002410241001028417341c894c0004119103c20004100"
|
||||
"3b01ec0120044108200341082002410241001029417341e194c0004119103c200041003b01"
|
||||
"ec0120034108200441082002410241001029417341fa94c0004119103c200041003b01ec01"
|
||||
"2004410820034108200241024100102a4173419395c0004117103c200041003b01ec012003"
|
||||
"410820044108200241024100102a417341aa95c0004117103c200041003b01ec0120044108"
|
||||
"4103200241024100102b417341c195c0004114103c200041003b01ec012004410841032002"
|
||||
"41024100102c417341d595c0004113103c200041003b01ec0120044108200241024100102d"
|
||||
"417341e895c0004113103c200120002802980141001009417141b789c0004123103c200041"
|
||||
"003b01ec01200641142001200028029801200241021018417141fb95c000411a103c200041"
|
||||
"003b01ec0120012000280298012002410210194171419596c0004121103c200041003b01ec"
|
||||
"01200120002802980120024102101a417141b696c0004120103c2001200028029801101b41"
|
||||
"7141da89c0004120103c2001200028029801101c417141fa89c0004127103c200041003602"
|
||||
"ec01200120002802980120024104101d417141d696c0004121103c200041003b01ec012001"
|
||||
"200028029801200241021008417141f796c0004123103c200041003b01ec01200120002802"
|
||||
"9801410120024102102e4171419a97c0004121103c200041003b01ec012001200028029801"
|
||||
"22042006411420012004200241021023417141bb97c0004127103c200041003b01ec012006"
|
||||
"41142001200028029801220420012004200241021023417141e297c0004127103c20004100"
|
||||
"3b01ec0120012000280298012006411420024102102f4171418998c0004125103c20004100"
|
||||
"3b01ec0120064114200120002802980120024102102f417141ae98c0004125103c20004100"
|
||||
"3b01ec01200120002802980120064114200241021030417141d398c000412c103c20004100"
|
||||
"3b01ec01200641142001200028029801200241021030417141ff98c000412c103c20004100"
|
||||
"3b01ec012001200028029801200241021031417141ab99c000411f103c200041003b01ec01"
|
||||
"20012000280298014101200241021032417141ca99c0004122103c200041003b01ec012001"
|
||||
"2000280298012006411441ca85c0004114200241021021417141ec99c0004121103c200041"
|
||||
"003b01ec0120064114200120002802980141ca85c00041142002410210214171418d9ac000"
|
||||
"4121103c200041003b01ec0120012000280298014101200241021033417141ae9ac0004128"
|
||||
"103c200041003b01ec01200541182001200028029801200241021024417141d69ac0004123"
|
||||
"103c200041003b01ec0120012000280298014101200241021034417141f99ac0004125103c"
|
||||
"200041003b01ec01200120002802980141012002410210354171419e9bc0004121103c2000"
|
||||
"41003b01ec0120012000280298014101200241021036417141bf9bc0004122103c20004100"
|
||||
"3b01ec012001200028029801200641144101200241021037417141e19bc0004124103c2000"
|
||||
"41003b01ec012006411420012000280298014101200241021037417141859cc0004124103c"
|
||||
"200041003b01ec0120012000280298014101200241021038417141a99cc000412f103c2000"
|
||||
"41003b01ec012001200028029801200241021039417141d89cc0004123103c200041003b01"
|
||||
"ec012001200028029801410120024102103a417141fb9cc0004122103c200041003b01ec01"
|
||||
"2001200028029801410120024102103b4171419d9dc0004121103c200041003b01ec012001"
|
||||
"20002802980141a18ac0004120200241021018417141be9dc000411c103c419783c000410d"
|
||||
"2001200028029801101e417141c18ac0004122103c419797abdd03410d41a18ac000412041"
|
||||
"001000417341e38ac0004110103c419797abdd03410d200341081025417341f38ac000411d"
|
||||
"103c419797abdd03410d20064114101e417341908bc0004118103c419797abdd03410d41c5"
|
||||
"83c0004108101f417341a88bc0004117103c20012000280298012001418120410010004174"
|
||||
"41bf8bc000410e103c200141812042011001417441cd8bc0004112103c419783c000418120"
|
||||
"200341081025417441df8bc000411b103c419783c00041812020064114101e417441fa8bc0"
|
||||
"004116103c419783c00041812041c583c0004108101f417441908cc0004115103c419783c0"
|
||||
"00410d2001200028029801101f417141a58cc0004119103c200041003b01ec012001200028"
|
||||
"02980120064114200241021024417141da9dc0004121103c200041f0016a240041010f0b0b"
|
||||
"418080c000410b417f20022002417f4e1bac1001000b0be61d0200418080c0000bde056572"
|
||||
"726f725f636f64653d54455354204641494c45442424242424205354415254494e47205741"
|
||||
"534d20455845435554494f4e2024242424246765745f6c65646765725f73716e6765745f70"
|
||||
"6172656e745f6c65646765725f74696d656765745f626173655f666565746573745f616d65"
|
||||
"6e646d656e74616d656e646d656e745f656e61626c656463616368655f6c65646765725f6f"
|
||||
"626a6765745f74785f61727261795f6c656e6765745f63757272656e745f6c65646765725f"
|
||||
"6f626a5f61727261795f6c656e6765745f6c65646765725f6f626a5f61727261795f6c656e"
|
||||
"6765745f74785f6e65737465645f61727261795f6c656e6765745f63757272656e745f6c65"
|
||||
"646765725f6f626a5f6e65737465645f61727261795f6c656e6765745f6c65646765725f6f"
|
||||
"626a5f6e65737465645f61727261795f6c656e7570646174655f6461746174657374206d65"
|
||||
"737361676574657374207075626b657974657374207369676e6174757265636865636b5f73"
|
||||
"69676765745f6e66745f666c6167736765745f6e66745f7472616e736665725f6665657465"
|
||||
"7374696e6720747261636574726163655f6163636f756e74400000000000005f7472616365"
|
||||
"5f616d6f756e74400000000000000074726163655f616d6f756e745f7a65726f6765745f70"
|
||||
"6172656e745f6c65646765725f686173685f6e65675f7074726765745f74785f6172726179"
|
||||
"5f6c656e5f696e76616c69645f736669656c646765745f74785f6e65737465645f61727261"
|
||||
"795f6c656e5f6e65675f7074726765745f74785f6e65737465645f61727261795f6c656e5f"
|
||||
"6e65675f6c656e6765745f74785f6e65737465645f61727261795f6c656e5f746f6f5f6c6f"
|
||||
"6e676765745f74785f6e65737465645f61727261795f6c656e5f7074725f6f6f6263616368"
|
||||
"655f6c65646765725f6f626a5f7074725f6f6f6263616368655f6c65646765725f6f626a5f"
|
||||
"77726f6e675f6c656e555344303030303030303030303030303030303000418686c0000bf5"
|
||||
"1774726163655f6e756d5f6f6f625f7374726765745f63757272656e745f6c65646765725f"
|
||||
"6f626a5f61727261795f6c656e5f696e76616c69645f736669656c646765745f6c65646765"
|
||||
"725f6f626a5f61727261795f6c656e5f696e76616c69645f736669656c64616d656e646d65"
|
||||
"6e745f656e61626c65645f746f6f5f6269675f736c696365616d656e646d656e745f656e61"
|
||||
"626c65645f746f6f5f6c6f6e676765745f74785f6e65737465645f61727261795f6c656e5f"
|
||||
"746f6f5f6269675f736c6963656765745f63757272656e745f6c65646765725f6f626a5f6e"
|
||||
"65737465645f61727261795f6c656e5f746f6f5f6269675f736c6963656765745f6c656467"
|
||||
"65725f6f626a5f6e65737465645f61727261795f6c656e5f746f6f5f6269675f736c696365"
|
||||
"7570646174655f646174615f746f6f5f6269675f736c69636574726163655f6f6f625f736c"
|
||||
"69636574726163655f6f70617175655f666c6f61745f6f6f625f736c69636574726163655f"
|
||||
"616d6f756e745f6f6f625f736c696365666c6f61745f636f6d706172655f6f6f625f736c69"
|
||||
"636531666c6f61745f636f6d706172655f6f6f625f736c6963653263616368655f6c656467"
|
||||
"65725f6f626a5f77726f6e675f73697a655f75696e743235366765745f6e66745f666c6167"
|
||||
"735f77726f6e675f73697a655f75696e743235366765745f6e66745f7472616e736665725f"
|
||||
"6665655f77726f6e675f73697a655f75696e74323536303030303030303030303030303030"
|
||||
"303030303030303030303030303030303174726163655f6163636f756e745f77726f6e675f"
|
||||
"73697a655f6163636f756e74696474726163655f6f6f625f737472696e6774726163655f6f"
|
||||
"70617175655f666c6f61745f6f6f625f737472696e6774726163655f6163636f756e745f6f"
|
||||
"6f625f737472696e6774726163655f616d6f756e745f6f6f625f737472696e677472616365"
|
||||
"5f746f6f5f6c6f6e6774726163655f6e756d5f746f6f5f6c6f6e6774726163655f6f706171"
|
||||
"75655f666c6f61745f746f6f5f6c6f6e6774726163655f6163636f756e745f746f6f5f6c6f"
|
||||
"6e6774726163655f616d6f756e745f746f6f5f6c6f6e6774726163655f616d6f756e745f77"
|
||||
"726f6e675f6c656e6774686765745f706172656e745f6c65646765725f686173686765745f"
|
||||
"63757272656e745f6c65646765725f6f626a5f6669656c646765745f6c65646765725f6f62"
|
||||
"6a5f6669656c646765745f74785f6e65737465645f6669656c646765745f63757272656e74"
|
||||
"5f6c65646765725f6f626a5f6e65737465645f6669656c646765745f6c65646765725f6f62"
|
||||
"6a5f6e65737465645f6669656c64636f6d707574655f7368613531325f68616c666765745f"
|
||||
"6e66746765745f6e66745f6973737565726765745f6e66745f7461786f6e6765745f6e6674"
|
||||
"5f73657269616c6765745f706172656e745f6c65646765725f686173685f6e65675f6c656e"
|
||||
"6765745f706172656e745f6c65646765725f686173685f6275665f746f6f5f736d616c6c67"
|
||||
"65745f706172656e745f6c65646765725f686173685f6c656e5f746f6f5f6c6f6e67666c6f"
|
||||
"61745f66726f6d5f75696e745f6c656e5f6f6f62666c6f61745f66726f6d5f75696e745f77"
|
||||
"726f6e675f6c656e6163636f756e745f6b65796c65745f6c656e5f6f6f626163636f756e74"
|
||||
"5f6b65796c65745f77726f6e675f6c656e6c696e655f6b65796c65745f6c656e5f6f6f625f"
|
||||
"63757272656e63796c696e655f6b65796c65745f77726f6e675f6c656e5f63757272656e63"
|
||||
"79616d6d5f6b65796c65745f6c656e5f6f6f625f617373657432616d6d5f6b65796c65745f"
|
||||
"6c656e5f77726f6e675f6c656e5f617373657432616d6d5f6b65796c65745f6c656e5f7772"
|
||||
"6f6e675f6e6f6e5f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6c65"
|
||||
"6e5f77726f6e675f7872705f63757272656e63795f6c656e616d6d5f6b65796c65745f6d70"
|
||||
"746765745f74785f6669656c645f696e76616c69645f736669656c646765745f6375727265"
|
||||
"6e745f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c64676574"
|
||||
"5f6c65646765725f6f626a5f6669656c645f696e76616c69645f736669656c646765745f74"
|
||||
"785f6e65737465645f6669656c645f746f6f5f6269675f736c6963656765745f6375727265"
|
||||
"6e745f6c65646765725f6f626a5f6e65737465645f6669656c645f746f6f5f6269675f736c"
|
||||
"6963656765745f6c65646765725f6f626a5f6e65737465645f6669656c645f746f6f5f6269"
|
||||
"675f736c696365636f6d707574655f7368613531325f68616c665f746f6f5f6269675f736c"
|
||||
"696365616d6d5f6b65796c65745f746f6f5f6269675f736c69636563726564656e7469616c"
|
||||
"5f6b65796c65745f746f6f5f6269675f736c6963656d70746f6b656e5f6b65796c65745f74"
|
||||
"6f6f5f6269675f736c6963655f6d70746964666c6f61745f6164645f6f6f625f736c696365"
|
||||
"31666c6f61745f6164645f6f6f625f736c69636532666c6f61745f73756274726163745f6f"
|
||||
"6f625f736c69636531666c6f61745f73756274726163745f6f6f625f736c69636532666c6f"
|
||||
"61745f6d756c7469706c795f6f6f625f736c69636531666c6f61745f6d756c7469706c795f"
|
||||
"6f6f625f736c69636532666c6f61745f6469766964655f6f6f625f736c69636531666c6f61"
|
||||
"745f6469766964655f6f6f625f736c69636532666c6f61745f726f6f745f6f6f625f736c69"
|
||||
"6365666c6f61745f706f775f6f6f625f736c696365666c6f61745f6c6f675f6f6f625f736c"
|
||||
"6963656765745f6e66745f77726f6e675f73697a655f75696e743235366765745f6e66745f"
|
||||
"6973737565725f77726f6e675f73697a655f75696e743235366765745f6e66745f7461786f"
|
||||
"6e5f77726f6e675f73697a655f75696e743235366765745f6e66745f73657269616c5f7772"
|
||||
"6f6e675f73697a655f75696e743235366163636f756e745f6b65796c65745f77726f6e675f"
|
||||
"73697a655f6163636f756e746964636865636b5f6b65796c65745f77726f6e675f73697a65"
|
||||
"5f6163636f756e74696463726564656e7469616c5f6b65796c65745f77726f6e675f73697a"
|
||||
"655f6163636f756e7469643163726564656e7469616c5f6b65796c65745f77726f6e675f73"
|
||||
"697a655f6163636f756e7469643264656c65676174655f6b65796c65745f77726f6e675f73"
|
||||
"697a655f6163636f756e7469643164656c65676174655f6b65796c65745f77726f6e675f73"
|
||||
"697a655f6163636f756e746964326465706f7369745f707265617574685f6b65796c65745f"
|
||||
"77726f6e675f73697a655f6163636f756e746964316465706f7369745f707265617574685f"
|
||||
"6b65796c65745f77726f6e675f73697a655f6163636f756e746964326469645f6b65796c65"
|
||||
"745f77726f6e675f73697a655f6163636f756e746964657363726f775f6b65796c65745f77"
|
||||
"726f6e675f73697a655f6163636f756e7469646c696e655f6b65796c65745f77726f6e675f"
|
||||
"73697a655f6163636f756e746964316c696e655f6b65796c65745f77726f6e675f73697a65"
|
||||
"5f6163636f756e746964326d70745f69737375616e63655f6b65796c65745f77726f6e675f"
|
||||
"73697a655f6163636f756e7469646d70746f6b656e5f6b65796c65745f77726f6e675f7369"
|
||||
"7a655f6163636f756e7469646e66745f6f666665725f6b65796c65745f77726f6e675f7369"
|
||||
"7a655f6163636f756e7469646f666665725f6b65796c65745f77726f6e675f73697a655f61"
|
||||
"63636f756e7469646f7261636c655f6b65796c65745f77726f6e675f73697a655f6163636f"
|
||||
"756e7469647061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e"
|
||||
"746964317061796368616e5f6b65796c65745f77726f6e675f73697a655f6163636f756e74"
|
||||
"6964327065726d697373696f6e65645f646f6d61696e5f6b65796c65745f77726f6e675f73"
|
||||
"697a655f6163636f756e7469647369676e6572735f6b65796c65745f77726f6e675f73697a"
|
||||
"655f6163636f756e7469647469636b65745f6b65796c65745f77726f6e675f73697a655f61"
|
||||
"63636f756e7469647661756c745f6b65796c65745f77726f6e675f73697a655f6163636f75"
|
||||
"6e7469646765745f6e66745f77726f6e675f73697a655f6163636f756e7469646d70746f6b"
|
||||
"656e5f6b65796c65745f6d707469645f77726f6e675f6c656e677468004d0970726f647563"
|
||||
"65727302086c616e6775616765010452757374000c70726f6365737365642d627901057275"
|
||||
"7374631d312e38392e30202832393438333838336520323032352d30382d3034290094010f"
|
||||
"7461726765745f6665617475726573082b0f6d757461626c652d676c6f62616c732b136e6f"
|
||||
"6e7472617070696e672d6670746f696e742b0b62756c6b2d6d656d6f72792b087369676e2d"
|
||||
"6578742b0f7265666572656e63652d74797065732b0a6d756c746976616c75652b0f62756c"
|
||||
"6b2d6d656d6f72792d6f70742b1663616c6c2d696e6469726563742d6f7665726c6f6e67";
|
||||
|
||||
extern std::string const floatTestsWasmHex =
|
||||
"0061736d0100000001430860077f7f7f7f7f7f7f017f60057f7f7f7f7f017f60047f7f7f7f"
|
||||
|
||||
@@ -715,11 +715,15 @@ WasmHostFunctionsImpl::trace(
|
||||
Slice const& data,
|
||||
bool asHex)
|
||||
{
|
||||
auto const ret = msg.size() + data.size() * (asHex ? 2 : 1);
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto j = getJournal().error();
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
|
||||
if (!asHex)
|
||||
{
|
||||
j << "HF TRACE (" << leKey.key << "): " << msg << " "
|
||||
@@ -735,19 +739,32 @@ WasmHostFunctionsImpl::trace(
|
||||
j << "HF DEV TRACE (" << leKey.key << "): " << msg << " " << hex;
|
||||
}
|
||||
|
||||
return msg.size() + data.size() * (asHex ? 2 : 1);
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
WasmHostFunctionsImpl::traceNum(std::string_view const& msg, int64_t data)
|
||||
{
|
||||
auto const ret = msg.size() + sizeof(data);
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto j = getJournal().error();
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
|
||||
j << "HF TRACE NUM(" << leKey.key << "): " << msg << " " << data;
|
||||
return msg.size() + sizeof(data);
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
@@ -755,16 +772,24 @@ WasmHostFunctionsImpl::traceAccount(
|
||||
std::string_view const& msg,
|
||||
AccountID const& account)
|
||||
{
|
||||
auto const ret = msg.size() + account.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto j = getJournal().error();
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
|
||||
auto const accountStr = toBase58(account);
|
||||
|
||||
j << "HF TRACE ACCOUNT(" << leKey.key << "): " << msg << " " << accountStr;
|
||||
return msg.size() + accountStr.size();
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
@@ -772,14 +797,22 @@ WasmHostFunctionsImpl::traceFloat(
|
||||
std::string_view const& msg,
|
||||
Slice const& data)
|
||||
{
|
||||
auto const ret = msg.size() + data.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto j = getJournal().error();
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
auto const s = floatToString(data);
|
||||
j << "HF TRACE FLOAT(" << leKey.key << "): " << msg << " " << s;
|
||||
return msg.size() + s.size();
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<int32_t, HostFunctionError>
|
||||
@@ -787,14 +820,22 @@ WasmHostFunctionsImpl::traceAmount(
|
||||
std::string_view const& msg,
|
||||
STAmount const& amount)
|
||||
{
|
||||
auto const ret = msg.size();
|
||||
#ifdef DEBUG_OUTPUT
|
||||
auto j = getJournal().error();
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
if (!getJournal().active(beast::severities::kTrace))
|
||||
return ret;
|
||||
auto j = getJournal().trace();
|
||||
#endif
|
||||
auto const amountStr = amount.getFullText();
|
||||
j << "HF TRACE AMOUNT(" << leKey.key << "): " << msg << " " << amountStr;
|
||||
return msg.size() + amountStr.size();
|
||||
|
||||
#ifdef DEBUG_OUTPUT
|
||||
j << std::endl;
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Expected<Bytes, HostFunctionError>
|
||||
|
||||
@@ -20,23 +20,25 @@ print_wasm_error(std::string_view msg, wasm_trap_t* trap, beast::Journal jlog)
|
||||
auto& j = std::cerr;
|
||||
#else
|
||||
auto j = jlog.warn();
|
||||
if (jlog.active(beast::severities::kWarning))
|
||||
#endif
|
||||
|
||||
wasm_byte_vec_t error_message WASM_EMPTY_VEC;
|
||||
|
||||
if (trap)
|
||||
wasm_trap_message(trap, &error_message);
|
||||
|
||||
if (error_message.size)
|
||||
{
|
||||
j << "WASMI Error: " << msg << ", "
|
||||
<< std::string_view(error_message.data, error_message.size - 1);
|
||||
}
|
||||
else
|
||||
j << "WASMI Error: " << msg;
|
||||
wasm_byte_vec_t error_message WASM_EMPTY_VEC;
|
||||
|
||||
if (error_message.size)
|
||||
wasm_byte_vec_delete(&error_message);
|
||||
if (trap)
|
||||
wasm_trap_message(trap, &error_message);
|
||||
|
||||
if (error_message.size)
|
||||
{
|
||||
j << "WASMI Error: " << msg << ", "
|
||||
<< std::string_view(error_message.data, error_message.size - 1);
|
||||
}
|
||||
else
|
||||
j << "WASMI Error: " << msg;
|
||||
|
||||
if (error_message.size)
|
||||
wasm_byte_vec_delete(&error_message);
|
||||
}
|
||||
|
||||
if (trap)
|
||||
wasm_trap_delete(trap);
|
||||
|
||||
Reference in New Issue
Block a user