signed and unsiged tx files prefixes updated

master
moneroexamples 8 years ago
parent fb8bb27005
commit d373e5f196

@ -9,8 +9,8 @@
#define BLOCKCHAIN_DB DB_LMDB #define BLOCKCHAIN_DB DB_LMDB
#define UNSIGNED_TX_PREFIX "Monero unsigned tx set\002" #define UNSIGNED_TX_PREFIX "Monero unsigned tx set\003"
#define SIGNED_TX_PREFIX "Monero signed tx set\002" #define SIGNED_TX_PREFIX "Monero signed tx set\003"
#define KEY_IMAGE_EXPORT_FILE_MAGIC "Monero key image export\002" #define KEY_IMAGE_EXPORT_FILE_MAGIC "Monero key image export\002"
#define OUTPUT_EXPORT_FILE_MAGIC "Monero output export\003" #define OUTPUT_EXPORT_FILE_MAGIC "Monero output export\003"

@ -1513,6 +1513,8 @@ public:
const size_t magiclen = strlen(UNSIGNED_TX_PREFIX); const size_t magiclen = strlen(UNSIGNED_TX_PREFIX);
string data_prefix = xmreg::make_printable(decoded_raw_tx_data.substr(0, magiclen));
bool unsigned_tx_given {false}; bool unsigned_tx_given {false};
if (strncmp(decoded_raw_tx_data.c_str(), UNSIGNED_TX_PREFIX, magiclen) == 0) if (strncmp(decoded_raw_tx_data.c_str(), UNSIGNED_TX_PREFIX, magiclen) == 0)
@ -1525,6 +1527,7 @@ public:
{"testnet" , testnet}, {"testnet" , testnet},
{"unsigned_tx_given" , unsigned_tx_given}, {"unsigned_tx_given" , unsigned_tx_given},
{"have_raw_tx" , true}, {"have_raw_tx" , true},
{"data_prefix" , data_prefix},
{"txs" , mstch::array{}} {"txs" , mstch::array{}}
}; };
@ -1787,12 +1790,18 @@ public:
const size_t magiclen = strlen(SIGNED_TX_PREFIX); const size_t magiclen = strlen(SIGNED_TX_PREFIX);
string data_prefix = xmreg::make_printable(decoded_raw_tx_data.substr(0, magiclen));
if (strncmp(decoded_raw_tx_data.c_str(), SIGNED_TX_PREFIX, magiclen) != 0) if (strncmp(decoded_raw_tx_data.c_str(), SIGNED_TX_PREFIX, magiclen) != 0)
{ {
cout << "The data is neither unsigned nor signed tx!" << endl; string msg = fmt::format("The data is neither unsigned nor signed tx! Its prefix is: {:s}",
return string( "The data is neither unsigned nor signed tx!"); data_prefix);
cout << msg << endl;
return string(msg);
} }
context["data_prefix"] = data_prefix;
bool r {false}; bool r {false};
@ -2055,12 +2064,15 @@ public:
const size_t magiclen = strlen(SIGNED_TX_PREFIX); const size_t magiclen = strlen(SIGNED_TX_PREFIX);
string data_prefix = xmreg::make_printable(decoded_raw_tx_data.substr(0, magiclen));
// initalize page template context map // initalize page template context map
mstch::map context { mstch::map context {
{"testnet" , testnet}, {"testnet" , testnet},
{"have_raw_tx" , true}, {"have_raw_tx" , true},
{"has_error" , false}, {"has_error" , false},
{"error_msg" , string {}}, {"error_msg" , string {}},
{"data_prefix" , data_prefix},
{"txs" , mstch::array{}} {"txs" , mstch::array{}}
}; };
@ -2074,7 +2086,8 @@ public:
if (strncmp(decoded_raw_tx_data.c_str(), SIGNED_TX_PREFIX, magiclen) != 0) if (strncmp(decoded_raw_tx_data.c_str(), SIGNED_TX_PREFIX, magiclen) != 0)
{ {
string error_msg = fmt::format("The data does not appear to be signed raw tx!"); string error_msg = fmt::format("The data does not appear to be signed raw tx! Data prefix: {:s}",
data_prefix);
context["has_error"] = true; context["has_error"] = true;
context["error_msg"] = error_msg; context["error_msg"] = error_msg;

@ -22,6 +22,9 @@
</div> </div>
<div class="center"> <div class="center">
<h3>Data file prefix: {{data_prefix}}</h3>
{{#unsigned_tx_given}} {{#unsigned_tx_given}}
<h3>Details of unsigned raw tx data given</h3> <h3>Details of unsigned raw tx data given</h3>

@ -1245,5 +1245,43 @@ make_tx_from_json(const string& json_str, transaction& tx)
return true; return true;
} }
string
make_printable(const string& in_s)
{
string output;
for (char c: in_s)
{
if (isprint(c))
{
output += c;
}
else
{
switch(c){
case '\000': output += "\\000";break;
case '\001': output += "\\001";break;
case '\002': output += "\\002";break;
case '\003': output += "\\003";break;
case '\004': output += "\\004";break;
case '\005': output += "\\005";break;
case '\006': output += "\\006";break;
case '\007': output += "\\007";break;
// there are more case but for now its ok
default:
stringstream ss;
ss << std::hex << (int)c;
output += "0x" + ss.str();
break;
}
}
}
return output;
}
} }

@ -297,6 +297,8 @@ void chunks(Iterator begin,
bool bool
make_tx_from_json(const string& json_str, transaction& tx); make_tx_from_json(const string& json_str, transaction& tx);
string
make_printable(const string& in_s);
} }
#endif //XMREG01_TOOLS_H #endif //XMREG01_TOOLS_H

Loading…
Cancel
Save