mirror of
https://github.com/Xahau/xahaud.git
synced 2025-12-06 17:27:52 +00:00
@@ -2,8 +2,6 @@
|
|||||||
NIH dep: wasmedge: web assembly runtime for hooks.
|
NIH dep: wasmedge: web assembly runtime for hooks.
|
||||||
#]===================================================================]
|
#]===================================================================]
|
||||||
|
|
||||||
find_package(Curses REQUIRED)
|
|
||||||
include_directories(${CURSES_INCLUDE_DIR})
|
|
||||||
find_package(LLVM REQUIRED CONFIG)
|
find_package(LLVM REQUIRED CONFIG)
|
||||||
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
|
message(STATUS "Found LLVM ${LLVM_PACKAGE_VERSION}")
|
||||||
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
|
message(STATUS "Using LLVMConfig.cmake in: ${LLVM_DIR}")
|
||||||
@@ -26,7 +24,6 @@ ExternalProject_Add (wasmedge_src
|
|||||||
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
|
||||||
-DLLVM_DIR=${LLVM_DIR}
|
-DLLVM_DIR=${LLVM_DIR}
|
||||||
-DLLVM_LIBRARY_DIR=${LLVM_LIBRARY_DIR}
|
-DLLVM_LIBRARY_DIR=${LLVM_LIBRARY_DIR}
|
||||||
-DLLVM_ENABLE_TERMINFO=OFF
|
|
||||||
$<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
|
$<$<NOT:$<BOOL:${is_multiconfig}>>:-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}>
|
||||||
$<$<BOOL:${MSVC}>:
|
$<$<BOOL:${MSVC}>:
|
||||||
"-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP -march=native"
|
"-DCMAKE_C_FLAGS=-GR -Gd -fp:precise -FS -MP -march=native"
|
||||||
@@ -66,6 +63,4 @@ set_target_properties (wasmedge PROPERTIES
|
|||||||
"${wasmedge_src_BINARY_DIR}/include/api/"
|
"${wasmedge_src_BINARY_DIR}/include/api/"
|
||||||
)
|
)
|
||||||
target_link_libraries (ripple_libs INTERFACE wasmedge)
|
target_link_libraries (ripple_libs INTERFACE wasmedge)
|
||||||
target_link_libraries(ripple_libs INTERFACE ${CURSES_LIBRARY})
|
|
||||||
target_link_libraries(ripple_libs INTERFACE xar)
|
|
||||||
add_library (NIH::WasmEdge ALIAS wasmedge)
|
add_library (NIH::WasmEdge ALIAS wasmedge)
|
||||||
|
|||||||
@@ -79,7 +79,7 @@ Invoke::calculateBaseFee(ReadView const& view, STTx const& tx)
|
|||||||
XRPAmount extraFee{0};
|
XRPAmount extraFee{0};
|
||||||
|
|
||||||
if (tx.isFieldPresent(sfBlob))
|
if (tx.isFieldPresent(sfBlob))
|
||||||
extraFee += XRPAmount{ static_cast<XRPAmount>(tx.getFieldVL(sfBlob).size()) };
|
extraFee += XRPAmount{ tx.getFieldVL(sfBlob).size() };
|
||||||
|
|
||||||
if (tx.isFieldPresent(sfHookParameters))
|
if (tx.isFieldPresent(sfHookParameters))
|
||||||
{
|
{
|
||||||
@@ -93,7 +93,7 @@ Invoke::calculateBaseFee(ReadView const& view, STTx const& tx)
|
|||||||
(param.isFieldPresent(sfHookParameterValue) ?
|
(param.isFieldPresent(sfHookParameterValue) ?
|
||||||
param.getFieldVL(sfHookParameterValue).size() : 0);
|
param.getFieldVL(sfHookParameterValue).size() : 0);
|
||||||
}
|
}
|
||||||
extraFee += XRPAmount { static_cast<XRPAmount>(paramBytes) };
|
extraFee += XRPAmount { paramBytes };
|
||||||
}
|
}
|
||||||
|
|
||||||
return Transactor::calculateBaseFee(view, tx) + extraFee;
|
return Transactor::calculateBaseFee(view, tx) + extraFee;
|
||||||
|
|||||||
@@ -547,7 +547,7 @@ SetHook::calculateBaseFee(ReadView const& view, STTx const& tx)
|
|||||||
(param.isFieldPresent(sfHookParameterValue) ?
|
(param.isFieldPresent(sfHookParameterValue) ?
|
||||||
param.getFieldVL(sfHookParameterValue).size() : 0);
|
param.getFieldVL(sfHookParameterValue).size() : 0);
|
||||||
}
|
}
|
||||||
extraFee += XRPAmount { static_cast<XRPAmount>(paramBytes) };
|
extraFee += XRPAmount { paramBytes };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -69,281 +69,281 @@ private:
|
|||||||
Json::Value ret{Json::objectValue};
|
Json::Value ret{Json::objectValue};
|
||||||
ret[jss::TYPES] = Json::objectValue;
|
ret[jss::TYPES] = Json::objectValue;
|
||||||
|
|
||||||
// auto const translate = [](std::string inp) -> std::string {
|
auto const translate = [](std::string inp) -> std::string {
|
||||||
// auto replace = [&](const char* f, const char* r) -> std::string {
|
auto replace = [&](const char* f, const char* r) -> std::string {
|
||||||
// std::string out = inp;
|
std::string out = inp;
|
||||||
// boost::replace_all(out, f, r);
|
boost::replace_all(out, f, r);
|
||||||
// return out;
|
return out;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// auto find = [&](const char* s) -> bool {
|
auto find = [&](const char* s) -> bool {
|
||||||
// return inp.find(s) != std::string::npos;
|
return inp.find(s) != std::string::npos;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// if (find("UINT"))
|
if (find("UINT"))
|
||||||
// {
|
{
|
||||||
// if (find("256") || find("160") || find("128"))
|
if (find("256") || find("160") || find("128"))
|
||||||
// return replace("UINT", "Hash");
|
return replace("UINT", "Hash");
|
||||||
// else
|
else
|
||||||
// return replace("UINT", "UInt");
|
return replace("UINT", "UInt");
|
||||||
// }
|
}
|
||||||
|
|
||||||
// if (inp == "OBJECT")
|
if (inp == "OBJECT")
|
||||||
// return "STObject";
|
return "STObject";
|
||||||
// if (inp == "ARRAY")
|
if (inp == "ARRAY")
|
||||||
// return "STArray";
|
return "STArray";
|
||||||
// if (inp == "AMM")
|
if (inp == "AMM")
|
||||||
// return "AMM";
|
return "AMM";
|
||||||
// if (inp == "ACCOUNT")
|
if (inp == "ACCOUNT")
|
||||||
// return "AccountID";
|
return "AccountID";
|
||||||
// if (inp == "LEDGERENTRY")
|
if (inp == "LEDGERENTRY")
|
||||||
// return "LedgerEntry";
|
return "LedgerEntry";
|
||||||
// if (inp == "NOTPRESENT")
|
if (inp == "NOTPRESENT")
|
||||||
// return "NotPresent";
|
return "NotPresent";
|
||||||
// if (inp == "PATHSET")
|
if (inp == "PATHSET")
|
||||||
// return "PathSet";
|
return "PathSet";
|
||||||
// if (inp == "VL")
|
if (inp == "VL")
|
||||||
// return "Blob";
|
return "Blob";
|
||||||
// if (inp == "DIR_NODE")
|
if (inp == "DIR_NODE")
|
||||||
// return "DirectoryNode";
|
return "DirectoryNode";
|
||||||
// if (inp == "PAYCHAN")
|
if (inp == "PAYCHAN")
|
||||||
// return "PayChannel";
|
return "PayChannel";
|
||||||
|
|
||||||
// static const std::map<std::string, std::string>
|
static const std::map<std::string, std::string>
|
||||||
// capitalization_exceptions = {
|
capitalization_exceptions = {
|
||||||
// {"NFTOKEN", "NFToken"},
|
{"NFTOKEN", "NFToken"},
|
||||||
// {"UNL", "UNL"},
|
{"UNL", "UNL"},
|
||||||
// {"XCHAIN", "XChain"},
|
{"XCHAIN", "XChain"},
|
||||||
// {"ID", "ID"},
|
{"ID", "ID"},
|
||||||
// {"AMM", "AMM"},
|
{"AMM", "AMM"},
|
||||||
// {"URITOKEN", "URIToken"},
|
{"URITOKEN", "URIToken"},
|
||||||
// {"URI", "URI"}};
|
{"URI", "URI"}};
|
||||||
|
|
||||||
// std::string out;
|
std::string out;
|
||||||
// size_t pos = 0;
|
size_t pos = 0;
|
||||||
// for (;;)
|
for (;;)
|
||||||
// {
|
{
|
||||||
// pos = inp.find("_");
|
pos = inp.find("_");
|
||||||
// if (pos == std::string::npos)
|
if (pos == std::string::npos)
|
||||||
// pos = inp.size();
|
pos = inp.size();
|
||||||
// std::string token = inp.substr(0, pos);
|
std::string token = inp.substr(0, pos);
|
||||||
// if (auto const e = capitalization_exceptions.find(token);
|
if (auto const e = capitalization_exceptions.find(token);
|
||||||
// e != capitalization_exceptions.end())
|
e != capitalization_exceptions.end())
|
||||||
// out += e->second;
|
out += e->second;
|
||||||
// else if (token.size() > 1)
|
else if (token.size() > 1)
|
||||||
// {
|
{
|
||||||
// boost::algorithm::to_lower(token);
|
boost::algorithm::to_lower(token);
|
||||||
// token.data()[0] -= ('a' - 'A');
|
token.data()[0] -= ('a' - 'A');
|
||||||
// out += token;
|
out += token;
|
||||||
// }
|
}
|
||||||
// else
|
else
|
||||||
// out += token;
|
out += token;
|
||||||
// if (pos == inp.size())
|
if (pos == inp.size())
|
||||||
// break;
|
break;
|
||||||
// inp = inp.substr(pos + 1);
|
inp = inp.substr(pos + 1);
|
||||||
// }
|
}
|
||||||
// return out;
|
return out;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// ret[jss::TYPES]["Done"] = -1;
|
ret[jss::TYPES]["Done"] = -1;
|
||||||
// std::map<int32_t, std::string> type_map{{-1, "Done"}};
|
std::map<int32_t, std::string> type_map{{-1, "Done"}};
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<SerializedTypeID>())
|
for (auto [value, name] : magic_enum::enum_entries<SerializedTypeID>())
|
||||||
// {
|
{
|
||||||
// std::string type_name =
|
std::string type_name =
|
||||||
// translate(STR(name).substr(4) /* remove STI_ */);
|
translate(STR(name).substr(4) /* remove STI_ */);
|
||||||
// int32_t type_value = std::stoi(STR(value));
|
int32_t type_value = std::stoi(STR(value));
|
||||||
// ret[jss::TYPES][type_name] = type_value;
|
ret[jss::TYPES][type_name] = type_value;
|
||||||
// type_map[type_value] = type_name;
|
type_map[type_value] = type_name;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// ret[jss::LEDGER_ENTRY_TYPES] = Json::objectValue;
|
ret[jss::LEDGER_ENTRY_TYPES] = Json::objectValue;
|
||||||
// ret[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1;
|
ret[jss::LEDGER_ENTRY_TYPES][jss::Invalid] = -1;
|
||||||
|
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<LedgerEntryType>())
|
for (auto [value, name] : magic_enum::enum_entries<LedgerEntryType>())
|
||||||
// ret[jss::LEDGER_ENTRY_TYPES]
|
ret[jss::LEDGER_ENTRY_TYPES]
|
||||||
// [translate(STR(name).substr(2) /* remove lt_ */)] =
|
[translate(STR(name).substr(2) /* remove lt_ */)] =
|
||||||
// std::stoi(STR(value));
|
std::stoi(STR(value));
|
||||||
|
|
||||||
// ret[jss::FIELDS] = Json::arrayValue;
|
ret[jss::FIELDS] = Json::arrayValue;
|
||||||
|
|
||||||
// uint32_t i = 0;
|
uint32_t i = 0;
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "Generic";
|
a[0U] = "Generic";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 0;
|
v[jss::nth] = 0;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Unknown";
|
v[jss::type] = "Unknown";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "Invalid";
|
a[0U] = "Invalid";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = -1;
|
v[jss::nth] = -1;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Unknown";
|
v[jss::type] = "Unknown";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "ObjectEndMarker";
|
a[0U] = "ObjectEndMarker";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 1;
|
v[jss::nth] = 1;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = true;
|
v[jss::isSigningField] = true;
|
||||||
// v[jss::type] = "STObject";
|
v[jss::type] = "STObject";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "ArrayEndMarker";
|
a[0U] = "ArrayEndMarker";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 1;
|
v[jss::nth] = 1;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = true;
|
v[jss::isSigningField] = true;
|
||||||
// v[jss::type] = "STArray";
|
v[jss::type] = "STArray";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "hash";
|
a[0U] = "hash";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 257;
|
v[jss::nth] = 257;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Hash256";
|
v[jss::type] = "Hash256";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "index";
|
a[0U] = "index";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 258;
|
v[jss::nth] = 258;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Hash256";
|
v[jss::type] = "Hash256";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "taker_gets_funded";
|
a[0U] = "taker_gets_funded";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 258;
|
v[jss::nth] = 258;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Amount";
|
v[jss::type] = "Amount";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// {
|
{
|
||||||
// Json::Value a = Json::arrayValue;
|
Json::Value a = Json::arrayValue;
|
||||||
// a[0U] = "taker_pays_funded";
|
a[0U] = "taker_pays_funded";
|
||||||
// Json::Value v = Json::objectValue;
|
Json::Value v = Json::objectValue;
|
||||||
// v[jss::nth] = 259;
|
v[jss::nth] = 259;
|
||||||
// v[jss::isVLEncoded] = false;
|
v[jss::isVLEncoded] = false;
|
||||||
// v[jss::isSerialized] = false;
|
v[jss::isSerialized] = false;
|
||||||
// v[jss::isSigningField] = false;
|
v[jss::isSigningField] = false;
|
||||||
// v[jss::type] = "Amount";
|
v[jss::type] = "Amount";
|
||||||
// a[1U] = v;
|
a[1U] = v;
|
||||||
// ret[jss::FIELDS][i++] = a;
|
ret[jss::FIELDS][i++] = a;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// for (auto const& [code, f] : ripple::SField::knownCodeToField)
|
for (auto const& [code, f] : ripple::SField::knownCodeToField)
|
||||||
// {
|
{
|
||||||
// if (f->fieldName == "")
|
if (f->fieldName == "")
|
||||||
// continue;
|
continue;
|
||||||
|
|
||||||
// Json::Value innerObj = Json::objectValue;
|
Json::Value innerObj = Json::objectValue;
|
||||||
|
|
||||||
// uint32_t fc = code & 0xFFU;
|
uint32_t fc = code & 0xFFU;
|
||||||
// uint32_t tc = code >> 16U;
|
uint32_t tc = code >> 16U;
|
||||||
|
|
||||||
// innerObj[jss::nth] = fc;
|
innerObj[jss::nth] = fc;
|
||||||
|
|
||||||
// innerObj[jss::isVLEncoded] =
|
innerObj[jss::isVLEncoded] =
|
||||||
// (tc == 7U /* Blob */ || tc == 8U /* AccountID */ ||
|
(tc == 7U /* Blob */ || tc == 8U /* AccountID */ ||
|
||||||
// tc == 19U /* Vector256 */);
|
tc == 19U /* Vector256 */);
|
||||||
|
|
||||||
// innerObj[jss::isSerialized] =
|
innerObj[jss::isSerialized] =
|
||||||
// (tc <
|
(tc <
|
||||||
// 10000); /* TRANSACTION, LEDGER_ENTRY, VALIDATION, METADATA */
|
10000); /* TRANSACTION, LEDGER_ENTRY, VALIDATION, METADATA */
|
||||||
|
|
||||||
// innerObj[jss::isSigningField] = f->shouldInclude(false);
|
innerObj[jss::isSigningField] = f->shouldInclude(false);
|
||||||
|
|
||||||
// innerObj[jss::type] = type_map[tc];
|
innerObj[jss::type] = type_map[tc];
|
||||||
|
|
||||||
// Json::Value innerArray = Json::arrayValue;
|
Json::Value innerArray = Json::arrayValue;
|
||||||
// innerArray[0U] = f->fieldName;
|
innerArray[0U] = f->fieldName;
|
||||||
// innerArray[1U] = innerObj;
|
innerArray[1U] = innerObj;
|
||||||
|
|
||||||
// ret[jss::FIELDS][i++] = innerArray;
|
ret[jss::FIELDS][i++] = innerArray;
|
||||||
// }
|
}
|
||||||
|
|
||||||
// ret[jss::TRANSACTION_RESULTS] = Json::objectValue;
|
ret[jss::TRANSACTION_RESULTS] = Json::objectValue;
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TELcodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TELcodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TEMcodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TEMcodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TEFcodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TEFcodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TERcodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TERcodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TEScodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TEScodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TECcodes>())
|
for (auto [value, name] : magic_enum::enum_entries<TECcodes>())
|
||||||
// ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
ret[jss::TRANSACTION_RESULTS][STR(name)] = std::stoi(STR(value));
|
||||||
|
|
||||||
|
|
||||||
// auto const translate_tt = [](std::string inp) -> std::string {
|
auto const translate_tt = [](std::string inp) -> std::string {
|
||||||
// if (inp == "PaychanClaim")
|
if (inp == "PaychanClaim")
|
||||||
// return "PaymentChannelClaim";
|
return "PaymentChannelClaim";
|
||||||
// if (inp == "PaychanCreate")
|
if (inp == "PaychanCreate")
|
||||||
// return "PaymentChannelCreate";
|
return "PaymentChannelCreate";
|
||||||
// if (inp == "PaychanFund")
|
if (inp == "PaychanFund")
|
||||||
// return "PaymentChannelFund";
|
return "PaymentChannelFund";
|
||||||
// if (inp == "RegularKeySet")
|
if (inp == "RegularKeySet")
|
||||||
// return "SetRegularKey";
|
return "SetRegularKey";
|
||||||
// if (inp == "HookSet")
|
if (inp == "HookSet")
|
||||||
// return "SetHook";
|
return "SetHook";
|
||||||
// return inp;
|
return inp;
|
||||||
// };
|
};
|
||||||
|
|
||||||
// ret[jss::TRANSACTION_TYPES] = Json::objectValue;
|
ret[jss::TRANSACTION_TYPES] = Json::objectValue;
|
||||||
// ret[jss::TRANSACTION_TYPES][jss::Invalid] = -1;
|
ret[jss::TRANSACTION_TYPES][jss::Invalid] = -1;
|
||||||
// for (auto [value, name] : magic_enum::enum_entries<TxType>())
|
for (auto [value, name] : magic_enum::enum_entries<TxType>())
|
||||||
// ret[jss::TRANSACTION_TYPES][translate_tt(translate(STR(name).substr(2)))] =
|
ret[jss::TRANSACTION_TYPES][translate_tt(translate(STR(name).substr(2)))] =
|
||||||
// std::stoi(STR(value));
|
std::stoi(STR(value));
|
||||||
|
|
||||||
// // generate hash
|
// generate hash
|
||||||
// {
|
{
|
||||||
// const std::string out = Json::FastWriter().write(ret);
|
const std::string out = Json::FastWriter().write(ret);
|
||||||
// defsHash =
|
defsHash =
|
||||||
// ripple::sha512Half(ripple::Slice{out.data(), out.size()});
|
ripple::sha512Half(ripple::Slice{out.data(), out.size()});
|
||||||
// ret[jss::hash] = to_string(*defsHash);
|
ret[jss::hash] = to_string(*defsHash);
|
||||||
// }
|
}
|
||||||
|
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user