updated test_all with ringsize 11 test data for create_transaction, and removed partially redundant create_transaction test so only one dataset has to be maintained (and since coverage is basically the same)

pull/29/head
Paul Shapiro 6 years ago
parent a1b0aab6f6
commit d8aa609fc1

@ -108,203 +108,6 @@ BOOST_AUTO_TEST_CASE(transfers__fee)
std::cout << "transfers__fee: est_fee with fee_per_kb " << fee_per_kb << ": " << est_fee << std::endl;
BOOST_REQUIRE(est_fee > 0);
}
BOOST_AUTO_TEST_CASE(transfers__create)
{
using namespace monero_transfer_utils;
using namespace monero_fork_rules;
TransactionConstruction_RetVals retVals;
monero_fork_rules::use_fork_rules_fn_type use_fork_rules_fn = [] (uint8_t version, int64_t early_blocks) -> bool
{
return monero_fork_rules::lightwallet_hardcoded__use_fork_rules(version, early_blocks);
};
cryptonote::network_type nettype = cryptonote::MAINNET;
string from_addressString = "43zxvpcj5Xv9SEkNXbMCG7LPQStHMpFCQCmkmR4u5nzjWwq5Xkv5VmGgYEsHXg4ja2FGRD5wMWbBVMijDTqmmVqm93wHGkg";
string sec_viewKey_string = "7bea1907940afdd480eff7c4bcadb478a0fbb626df9e3ed74ae801e18f53e104";
string sec_spendKey_string = "4e6d43cd03812b803c6f3206689f5fcc910005fc7e91d50d79b0776dbefcd803";
cryptonote::address_parse_info from_addr_info;
BOOST_REQUIRE(cryptonote::get_account_address_from_str(from_addr_info, nettype, from_addressString));
cryptonote::account_keys account_keys;
{
account_keys.m_account_address = from_addr_info.address;
//
crypto::secret_key sec_viewKey;
BOOST_REQUIRE(string_tools::hex_to_pod(sec_viewKey_string, sec_viewKey));
account_keys.m_view_secret_key = sec_viewKey;
//
crypto::secret_key sec_spendKey;
BOOST_REQUIRE(string_tools::hex_to_pod(sec_spendKey_string, sec_spendKey));
account_keys.m_spend_secret_key = sec_spendKey;
}
cout << "transfers__create: spend sec key: " << string_tools::pod_to_hex(account_keys.m_spend_secret_key) << endl;
cout << "transfers__create: spend pub key: " << string_tools::pod_to_hex(from_addr_info.address.m_spend_public_key) << endl;
//
optional<string> payment_id_string = string("b79f8efc81f58f67");
uint64_t sending_amount = 10000000000;
uint64_t fee_amount = 2167750000;
string to_address_string("43zxvpcj5Xv9SEkNXbMCG7LPQStHMpFCQCmkmR4u5nzjWwq5Xkv5VmGgYEsHXg4ja2FGRD5wMWbBVMijDTqmmVqm93wHGkg");
cryptonote::address_parse_info to_addr_info;
BOOST_REQUIRE(cryptonote::get_account_address_from_str(to_addr_info, nettype, to_address_string));
//
std::vector<uint8_t> extra;
bool payment_id_seen = false;
{ // Detect hash8 or hash32 char hex string as pid and configure 'extra' accordingly
bool r = false;
if (payment_id_string != none) {
crypto::hash payment_id;
r = monero_paymentID_utils::parse_long_payment_id(*payment_id_string, payment_id);
if (r) {
std::string extra_nonce;
cryptonote::set_payment_id_to_tx_extra_nonce(extra_nonce, payment_id);
r = cryptonote::add_extra_nonce_to_tx_extra(extra, extra_nonce);
} else {
crypto::hash8 payment_id8;
r = monero_paymentID_utils::parse_short_payment_id(*payment_id_string, payment_id8);
if (r) {
std::string extra_nonce;
cryptonote::set_encrypted_payment_id_to_tx_extra_nonce(extra_nonce, payment_id8);
r = cryptonote::add_extra_nonce_to_tx_extra(extra, extra_nonce);
}
}
payment_id_seen = true;
}
}
//
{ // payment id
if (to_addr_info.is_subaddress && payment_id_seen) {
BOOST_REQUIRE_MESSAGE(false, "Illegal: Never supply a pid with a subaddress."); // TODO: is this true?
return;
}
if (to_addr_info.has_payment_id) {
if (payment_id_seen) {
BOOST_REQUIRE(false); // can't use int addr at same time as supplying manual pid
return;
}
if (to_addr_info.is_subaddress) {
BOOST_REQUIRE(false); // should never happen .. logic err?
return;
}
std::string extra_nonce;
cryptonote::set_encrypted_payment_id_to_tx_extra_nonce(extra_nonce, to_addr_info.payment_id);
bool r = cryptonote::add_extra_nonce_to_tx_extra(extra, extra_nonce);
if (!r) {
BOOST_REQUIRE(false);
return;
}
payment_id_seen = true;
}
}
//
vector<SpendableOutput> outputs;
{ // required info from output
auto out = SpendableOutput{};
out.amount = 125000000000;
out.public_key = "596fa47b6b3905269503435099a05e3ede54564026c93cbe5285e2df074c7118";
out.rct = "920ee8d99299f304d17fdb104720d1f62be0b03383c7bb466ff39c6a264d80d616ce1eccd6c4de1cc0fba87e463f2e0c373146c475e8a1517f36e7a37351d50034688cc8cb528c14188cae45d89b313d444e583c9d68a32cb80938a5e2aa200b";
out.global_index = 6451664;
out.index = 0;
out.tx_pub_key = "0a86e588dc67ca11993737e003a9e60c57174a663a47495e3b1d764f486fc88f";
outputs.push_back(out);
}
//
vector<RandomAmountOutputs> mix_outs;
{
auto amountAndOuts = RandomAmountOutputs{};
amountAndOuts.amount = 0;
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 5260585; // this is, I believe, presently supplied as a string by the API, probably to avoid overflow
amountOutput.public_key = "da77082624fce921891c4fb80a1e7076a6714ca8c9fc547311737926a0b85a46";
amountOutput.rct = "bb227b27e36b7f3e695dffb641c29bb60bfd991accdb5ef4b580c9acd48c16b6";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 1929918;
amountOutput.public_key = "8c983e7053d7a1dc9de8ac00468bcf11836a787d712dc0c02bd54a3ee00a55e8";
amountOutput.rct = "8dec45867644d1a76aafe4487292d7cf401302e6bbbb99a61c2f3b6cef4f4f34";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 3921094;
amountOutput.public_key = "0133219bd5e247eef51003921ec792784c41fc34289c703e9326d46f78d9b10a";
amountOutput.rct = "75082f4ce31904acba4af37699c28d8d4f0f74fdf63b1e4a8069ebed50df3220";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 6627106;
amountOutput.public_key = "daef1663dd1084bd7fe585c3d493480ee1c4cefb93254eac5855afdf38f662b1";
amountOutput.rct = "1d96763c5bc3300090c286705b7d544f02c185d9be8c32baac6bbfb8e0d0d283";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 3308654;
amountOutput.public_key = "ae135f58762b1133667002538f8c353a1869db815aa686e2544b5243c2d2212f";
amountOutput.rct = "15046b93bb181189f2917eed38173202fbbb9cdbfcf3d1bc3e432df999ae1b1c";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 1972531;
amountOutput.public_key = "39e44fa88d684d71762c40eb64ac80ddc694b74a99ac445667bf433536c09c8f";
amountOutput.rct = "66a42d0e8123768b392ad4a230759258d9156fab1aea00a19b041832326aca0a";
amountAndOuts.outputs.push_back(amountOutput);
}
{
auto amountOutput = RandomAmountOutput{};
amountOutput.global_index = 3274424;
amountOutput.public_key = "a89b91648645ba6f32e214ba5720f5387376e5a144e698d5d5d1ebac971de349";
amountOutput.rct = "815a6b1da6fc6a3bd791c4342782381cf948ee822ac9da7149f1b3717e0266d2";
amountAndOuts.outputs.push_back(amountOutput);
}
mix_outs.push_back(amountAndOuts);
}
//
uint32_t subaddr_account_idx = 0;
std::unordered_map<crypto::public_key, cryptonote::subaddress_index> subaddresses;
subaddresses[account_keys.m_account_address.m_spend_public_key] = {0,0};
cout << "transfers__create: account_keys.m_account_address.m_spend_public_key: " << string_tools::pod_to_hex(account_keys.m_account_address.m_spend_public_key) << endl;
//
monero_transfer_utils::create_transaction(
retVals,
account_keys,
subaddr_account_idx,
subaddresses,
to_addr_info.address,
sending_amount,
112832250000, // change amount
fee_amount,
outputs,
mix_outs,
extra,
use_fork_rules_fn,
0, // unlock_time
true, // rct
nettype
);
if (retVals.errCode != noError) {
BOOST_REQUIRE_MESSAGE(false, "create_transaction failed");
return;
}
auto txBlob = t_serializable_object_to_blob(*retVals.tx);
size_t txBlob_byteLength = txBlob.size();
// cout << "txBlob: " << txBlob << endl;
cout << "transfers__create: txBlob_byteLength: " << txBlob_byteLength << endl;
BOOST_REQUIRE(txBlob_byteLength > 0);
// tx hash
auto tx_hash_string = epee::string_tools::pod_to_hex(cryptonote::get_transaction_hash(*retVals.tx));
auto signed_serialized_tx_string = epee::string_tools::buff_to_hex_nodelimer(cryptonote::tx_to_blob(*retVals.tx));
cout << "transfers__create: tx_hash_string: " << tx_hash_string << endl;
cout << "transfers__create: signed_serialized_tx_string: " << signed_serialized_tx_string << endl;
}
//
//
// Serialization bridge
@ -326,8 +129,8 @@ BOOST_AUTO_TEST_CASE(bridged__transfers__create)
using namespace monero_transfer_utils;
//
string from_address_string = "43zxvpcj5Xv9SEkNXbMCG7LPQStHMpFCQCmkmR4u5nzjWwq5Xkv5VmGgYEsHXg4ja2FGRD5wMWbBVMijDTqmmVqm93wHGkg";
string to_address_string = "43zxvpcj5Xv9SEkNXbMCG7LPQStHMpFCQCmkmR4u5nzjWwq5Xkv5VmGgYEsHXg4ja2FGRD5wMWbBVMijDTqmmVqm93wHGkg";
string amount_string = "10000000000";
string to_address_string = "4L6Gcy9TAHqPVPMnqa5cPtJK25tr7maE7LrJe67vzumiCtWwjDBvYnHZr18wFexJpih71Mxsjv8b7EpQftpB9NjPaRYYBm62jmF59EWcj6";
string amount_string = "1026830000";
//
boost::property_tree::ptree root;
root.put("nettype_string", string_from_nettype(MAINNET));
@ -335,21 +138,61 @@ BOOST_AUTO_TEST_CASE(bridged__transfers__create)
root.put("sec_viewKey_string", "7bea1907940afdd480eff7c4bcadb478a0fbb626df9e3ed74ae801e18f53e104");
root.put("sec_spendKey_string", "4e6d43cd03812b803c6f3206689f5fcc910005fc7e91d50d79b0776dbefcd803");
root.put("to_address_string", to_address_string);
root.put("payment_id_string", "b79f8efc81f58f67");
root.put("payment_id_string", "d2f602b240fbe624");
root.put("sending_amount", amount_string);
root.put("change_amount", "112832250000");
root.put("fee_amount", "2167750000");
root.put("change_amount", "0");
root.put("fee_amount", "2550170000");
root.put("unlock_time", "0");
//
boost::property_tree::ptree outputs;
{
boost::property_tree::ptree out;
out.put("amount", "125000000000");
out.put("public_key", "596fa47b6b3905269503435099a05e3ede54564026c93cbe5285e2df074c7118");
out.put("rct", "920ee8d99299f304d17fdb104720d1f62be0b03383c7bb466ff39c6a264d80d616ce1eccd6c4de1cc0fba87e463f2e0c373146c475e8a1517f36e7a37351d50034688cc8cb528c14188cae45d89b313d444e583c9d68a32cb80938a5e2aa200b");
out.put("global_index", "6451664");
out.put("amount", "330000000");
out.put("public_key", "f628f516cce1408ebfca9bb3a144ca044dd3f2de19711cc42fa4bf296b6761ca");
out.put("rct", "66fafd6d2a1d6e92e30ee7fae132bd24116c325fca4594225fdf6f40cebd39b386ec21d9bd200c6212027e79237ad5fc076caf5c35e625eb2eb10b82debf5900cd9b8805d566e1ae29f69672876921c8a0ce0c7c4d87cf52dbd483403f435c0c");
out.put("global_index", "7440388");
out.put("index", "1");
out.put("tx_pub_key", "d067e192807d4374aa7e8f832a0702b2c6f35fa30a5fae43a9ecddc3fde755d6");
outputs.push_back(std::make_pair("", out));
}
{
boost::property_tree::ptree out;
out.put("amount", "200000000");
out.put("public_key", "e92465cd124e98b3741b93d00346374eaf1cf37d3670eb21a595047d0b12accb");
out.put("rct", "9b59ae166065aef95ab4380e0827035ff5ad579a5b11e5bef305af5369e61d4a9b91bfb770cbb9ada6b704d118417724e2b5d8d208c13e4bb3af9a355f00500e48c770addbbc0fd595d0b1edf36b591dd58102b100140146e7d93371b01cce0e");
out.put("global_index", "7460517");
out.put("index", "0");
out.put("tx_pub_key", "e6bea5eaaff6beedc54dc5d4d24883fc18537af58425d584dad6d21fa6e1f27f");
outputs.push_back(std::make_pair("", out));
}
{
boost::property_tree::ptree out;
out.put("amount", "1000000000");
out.put("public_key", "14db00825a260f432c9cf1bc52cc65965e76b5519b228bfbfed2ce2c3119e73b");
out.put("rct", "f18df9fc7363f6d92c25716bb18e2428e4712732e2a67f24ae799406e5d1e90f739658d1831a13fd92d30db16a615624897513c795a62d29166756f5d8a4ca0ff3842a5578d04ab559f2440e4f5c9fc2dae4033d49fac5b57048d14a054fcc02");
out.put("global_index", "7348866");
out.put("index", "0");
out.put("tx_pub_key", "e0d953678f4ddbb39fac96a739d3a1e7ffaebf5f2e5f69b6a064567eb3c053f5");
outputs.push_back(std::make_pair("", out));
}
{
boost::property_tree::ptree out;
out.put("amount", "1337000000");
out.put("public_key", "5f871fe678a9dcba8ef682e8f7362cea200f42696c7dbe03f902ca19173eb147");
out.put("rct", "50b0100d12c4c8824b3f3a56b97feefa2b0829a3fdeefe19b7d6ebcf7b768450eb4112e86debb0d859da4c0c556c7720c5388eead19863229a3fc610c23093024d8bd6f881687518019c8cd7d61a40f3a7486546df4d318011eacd34f4b17b0f");
out.put("global_index", "7499194");
out.put("index", "1");
out.put("tx_pub_key", "1009aecc5f53f75b0731e0ccb3fd37ba2808a5c645a2a1f56861f121c926e4b5");
outputs.push_back(std::make_pair("", out));
}
{
boost::property_tree::ptree out;
out.put("amount", "710000000");
out.put("public_key", "4b4c3fcc8ab73628f298dc75fa5976e1812cd21bc77f30bfa6bb2eb6e713d2f7");
out.put("rct", "6b560a85f4b5ec7b4ccd4401717b84307e2b03c646340708028a6d97f41790e39f13da5d8ccd642d5693952a3c67b78ff297c8d718051c782b3f37ac6010cc069938fef32ffbe626e18685b7c13c17b53d3077f5bae52742daac2f29b6c9e708");
out.put("global_index", "7440663");
out.put("index", "0");
out.put("tx_pub_key", "0a86e588dc67ca11993737e003a9e60c57174a663a47495e3b1d764f486fc88f");
out.put("tx_pub_key", "976feee1972bbd05d6ac7d52ccb30614143c31021b3941e28de2cbb1f48a8ddf");
outputs.push_back(std::make_pair("", out));
}
root.add_child("outputs", outputs);
@ -361,53 +204,417 @@ BOOST_AUTO_TEST_CASE(bridged__transfers__create)
boost::property_tree::ptree mix_out_outputs;
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5260585");
mix_out_output.put("public_key", "da77082624fce921891c4fb80a1e7076a6714ca8c9fc547311737926a0b85a46");
mix_out_output.put("rct", "bb227b27e36b7f3e695dffb641c29bb60bfd991accdb5ef4b580c9acd48c16b6");
mix_out_output.put("global_index", "6022297");
mix_out_output.put("public_key", "c0961a16132c2af839abc41d6b9f53fd828997d7deb0fbeb64fa203bcce35c29");
mix_out_output.put("rct", "e8d57915f3b1d9440199e5bda9bcc6b214eee76a498ed983214f6187880062a4");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "1929918");
mix_out_output.put("public_key", "8c983e7053d7a1dc9de8ac00468bcf11836a787d712dc0c02bd54a3ee00a55e8");
mix_out_output.put("rct", "8dec45867644d1a76aafe4487292d7cf401302e6bbbb99a61c2f3b6cef4f4f34");
mix_out_output.put("global_index", "5844452");
mix_out_output.put("public_key", "2b9d22d274dc47783b820778cf5baa65a4f444dada4d0b5797923eefeb265bf6");
mix_out_output.put("rct", "72a9f57e82a884dd6494e8c816db5323bfeb18c1342f5712b7634afc9a4fa392");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3921094");
mix_out_output.put("public_key", "0133219bd5e247eef51003921ec792784c41fc34289c703e9326d46f78d9b10a");
mix_out_output.put("rct", "75082f4ce31904acba4af37699c28d8d4f0f74fdf63b1e4a8069ebed50df3220");
mix_out_output.put("global_index", "4517893");
mix_out_output.put("public_key", "66048decc2ee6fb747fe81855caee828bd164e8c99aa69fe66e936bbd53f877c");
mix_out_output.put("rct", "dcde26b254956195072da36c4defd7f2666014fea6a96db3498a29e28b26ad6d");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6627106");
mix_out_output.put("public_key", "daef1663dd1084bd7fe585c3d493480ee1c4cefb93254eac5855afdf38f662b1");
mix_out_output.put("rct", "1d96763c5bc3300090c286705b7d544f02c185d9be8c32baac6bbfb8e0d0d283");
mix_out_output.put("global_index", "6680101");
mix_out_output.put("public_key", "f319620061c4edb40976d32eab1e5dce7d12ad40bb2bea09e8ff4dde873bceaf");
mix_out_output.put("rct", "419b1d691a32f7425eee817eae8fac314db1d01c4793b5e18523b34cbe666fcf");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3308654");
mix_out_output.put("public_key", "ae135f58762b1133667002538f8c353a1869db815aa686e2544b5243c2d2212f");
mix_out_output.put("rct", "15046b93bb181189f2917eed38173202fbbb9cdbfcf3d1bc3e432df999ae1b1c");
mix_out_output.put("global_index", "6367881");
mix_out_output.put("public_key", "cce4ab9a29a5c199da114a2ba6a1136e0e977024babc4b755651aea36e3bca56");
mix_out_output.put("rct", "c701a4d8f1b46c0f852ee4806f097a732a1f6250fe1c972e7a797a1a76c13f91");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "1972531");
mix_out_output.put("public_key", "39e44fa88d684d71762c40eb64ac80ddc694b74a99ac445667bf433536c09c8f");
mix_out_output.put("rct", "66a42d0e8123768b392ad4a230759258d9156fab1aea00a19b041832326aca0a");
mix_out_output.put("global_index", "4012934");
mix_out_output.put("public_key", "593be9a93d96a7ffa35b71cf8ff86fa4742bef30e97240edcbeb8dbd692c6744");
mix_out_output.put("rct", "9b7f8c556e7ef5055c69fc8130d8a06ae06893d7430bcd0ce6cbbbb3fda743ca");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3274424");
mix_out_output.put("public_key", "a89b91648645ba6f32e214ba5720f5387376e5a144e698d5d5d1ebac971de349");
mix_out_output.put("rct", "815a6b1da6fc6a3bd791c4342782381cf948ee822ac9da7149f1b3717e0266d2");
mix_out_output.put("global_index", "3658900");
mix_out_output.put("public_key", "52d33ef82fe443eca4451debe75d02277e735c9755e1eecda7b8ec314d98207a");
mix_out_output.put("rct", "25b2f9e08f25defa09d9b4184cfd9f052920939b335942b7a21b5b937e712c86");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6271270");
mix_out_output.put("public_key", "676978466ebeeb3e37f361b97e47531219b24c796cd7a336fa760358f57dd8b9");
mix_out_output.put("rct", "2fd25fa0a5499132c0e84957e71c0ac968292cdcc2fbd14decc81c64423cba54");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6737337");
mix_out_output.put("public_key", "bff30dd5754ab7c6c5ff5beac28deb9ce8e3a52806b9534732ef2d463cb19042");
mix_out_output.put("rct", "a55b847032bbbe23ef54e73a7d0cae37533c260fb308ea7a735d49e5ee24eb11");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2853615");
mix_out_output.put("public_key", "d122c1bf187a0bba720c2662e9bf3801f7d9e833de4c0b0fd93c2c10cb8e8274");
mix_out_output.put("rct", "aacc7e6c7032370ca4d738ae0b4b4082f10c0e8f0f4c84490793ad90f6e261ba");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6988828");
mix_out_output.put("public_key", "f14eb3ea0127908704e8b4437644106ad567172cf04ba415d93c473d163aacd4");
mix_out_output.put("rct", "950b40e077358482e2baa20d814998a26d9ff05c27af4b4d3ca6da1aa1b0687f");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
mix_out.add_child("outputs", mix_out_outputs);
mix_outs.push_back(std::make_pair("", mix_out));
}
{
boost::property_tree::ptree mix_out;
mix_out.put("amount", "0");
boost::property_tree::ptree mix_out_outputs;
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5593429");
mix_out_output.put("public_key", "65dcd81a05df5f6638f144aefd87805c10418b1a6a66e4b86f0d7cf624ee524b");
mix_out_output.put("rct", "18b3d2851580a9466104c6e3345b252a58af0565d32e0973084abd49d5b995d6");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2694114");
mix_out_output.put("public_key", "945e10059f5096368a5b59df0501199053be2701d59d17d1c417f185b911db50");
mix_out_output.put("rct", "93ca380debeb12079a4a75df2f155c5b22b91a994739e6794c3e883ca735439f");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3588742");
mix_out_output.put("public_key", "227f77475495bbffb2233516eb3330d4c3abc8a47c4935cd6fd2618b6df655de");
mix_out_output.put("rct", "9c2d958dd948403a5dcb54db8db9ec958f07409e20c6389cb481975097bb4e3f");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6599417");
mix_out_output.put("public_key", "ed819b935266f190a38bc7d14359f852c084b3fc683faca6cca9bc52f7ad57a9");
mix_out_output.put("rct", "e112009aca4ee5d002e7a70a73da6093b05eb64569b1db0f13725b475c0e6100");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2836715");
mix_out_output.put("public_key", "60c37b65a6948241168db496f175df6efe12693eb7f854922093d5f4aa6822b6");
mix_out_output.put("rct", "221a566f64faec25a6c1b7748353c12f84ed766e3346be60c84985a52fc1a9af");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "293661");
mix_out_output.put("public_key", "26a971d54288152a77822e3041b2b6637b8a3b421683baa34de9d28910e473b1");
mix_out_output.put("rct", "ac32d38b0fe3797ee8cb0b1a1e613469ec099723304b683d9c4038bcdfe1d9b3");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3772025");
mix_out_output.put("public_key", "de0a55a60cf58eaa39131bd98e60170abad6de0f6d605d8645db655462da17f0");
mix_out_output.put("rct", "1dfdf954ee0239adc4a57daf75cfa7f3ff601efc4a16c4af70036f33e663789b");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5685659");
mix_out_output.put("public_key", "bb669c043cdfb9827dc96e8f0016c33ca1099eefa6a065b6cc062eac539df492");
mix_out_output.put("rct", "fff3e0762ff14ac9281e7c5ae9de42a2d7b83848331fc0a07315a42412482f5c");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "4436753");
mix_out_output.put("public_key", "d2f349d469c62323f73501357a09219031e19b5580b7375a5ff303ead3b7bdda");
mix_out_output.put("rct", "f531214063a18eed0dafa7497da165c67d7af11bb2fe225ed05b215c29bfb468");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5725205");
mix_out_output.put("public_key", "6dc84dfdf3227f619b3017171beed53da8ea463bca1f270c929575addee0e428");
mix_out_output.put("rct", "47179835b5bf8ab50cfe36b2aec373b91b8119c56fbe73ba142dba5282abb6a9");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6328492");
mix_out_output.put("public_key", "d373bc1a510934ab1d1cab891f5ddb3490d6a3f4fa8f71cf90ca0b5f9583625c");
mix_out_output.put("rct", "d08b9958636dacd9cc470e19c40e34855623168053fd6f03d0f05a51a2e2b616");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
mix_out.add_child("outputs", mix_out_outputs);
mix_outs.push_back(std::make_pair("", mix_out));
}
{
boost::property_tree::ptree mix_out;
mix_out.put("amount", "0");
boost::property_tree::ptree mix_out_outputs;
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "1472497");
mix_out_output.put("public_key", "f52425f85472b0b733f1926ed505d12136bf144763265ac3fe1729746d1819b1");
mix_out_output.put("rct", "82080aed958e8501c4205753f1b0410a5cdb357afbd00fc5db0457b2b6f04829");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "4114941");
mix_out_output.put("public_key", "b736816eed46887c1f2fbde7b7be061b1b05cef9b700e9b9d81e48a922de7ff7");
mix_out_output.put("rct", "e626ecae8d0c05ce7b27250d769d8588734f11b0abde348778b53bea5c9c6136");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6467586");
mix_out_output.put("public_key", "56cdce2f6fe0472eb41beb8952ad3e1d0a850f8d9a000c19eafff8fdb99a5ffc");
mix_out_output.put("rct", "a0cb89d5071b4470add8b1e1d9fd8b580a566371cfff68b3c581c10273067e59");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2092106");
mix_out_output.put("public_key", "3b727da9cede03d84c67efddd732ff0ff0df00f9b30dc0ef9edb398a2a1aa485");
mix_out_output.put("rct", "eab9cf089147ea5eb2ce72b0412af6e37dc2457c154b98bfc4872d0eb89025b8");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5311080");
mix_out_output.put("public_key", "61653c30bc414e61b63802c7b8d03eed7deeec46a43cb551b0758c4aabfc737d");
mix_out_output.put("rct", "ff6f6268694861466c853b4ced591ff29e83f37a058d0e0fc5977e213c431d29");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "4213697");
mix_out_output.put("public_key", "9e3dae8a108c9f72ec250e2de1f0820ff1903c5d65e19fb96fb1b53a7908bf18");
mix_out_output.put("rct", "1209e3c83e761660956db24def7573825bc70890163e921aabf1b32cabf5e66c");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5038411");
mix_out_output.put("public_key", "669d3298f64b9c511e39a77b23d802f8f415de0a383c215a25a5973c35529606");
mix_out_output.put("rct", "0d7f4ed0d50e4e45d838dc76fac13e6377f8e37f8054fdd9a7ebdae9e31f88e0");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5416381");
mix_out_output.put("public_key", "fbcf98f4d25b7aca7c92c554d51a1270dd3794a5de32297acee7a41ba753a71f");
mix_out_output.put("rct", "c3f666fc7b99983d906db6f50f0bb4043abf64faaa94ee89c196125327bdbb15");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3124362");
mix_out_output.put("public_key", "0a062df5f30bf16384c4c840df9cb76bd25d37baaf2250c0a51593c69bbf332a");
mix_out_output.put("rct", "addb3000d7da14d2dcba39459ccba013c26c0c558a3b9abff80e3d33bb4e7057");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "7424088");
mix_out_output.put("public_key", "094130eef4b50f62510631fdc1cbdf3608a76267eafa3488c5d748b410a1aced");
mix_out_output.put("rct", "db70b06b7f24a85cc330d0376d0d6be7ffef7994f8f61e9a67f516cdcb6c6045");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5878908");
mix_out_output.put("public_key", "3a51d8cd4a985504e7cc5165923f24be258d3155b5fdb7a83241eda2b89dd593");
mix_out_output.put("rct", "06324483a8212c1f4ab771be9c763dd9eb1a7233c08a9fbbd6abd08e691aac57");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
mix_out.add_child("outputs", mix_out_outputs);
mix_outs.push_back(std::make_pair("", mix_out));
}
{
boost::property_tree::ptree mix_out;
mix_out.put("amount", "0");
boost::property_tree::ptree mix_out_outputs;
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6479541");
mix_out_output.put("public_key", "b8e9d322417663c0245ae172cadc58f249d61169f6ae0ae7b831cb6f62cdfb85");
mix_out_output.put("rct", "f2a4ac6c5ff9670158486c03418a5f312bdbe84222f5e89385a51363bab7bdaa");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6104091");
mix_out_output.put("public_key", "9fc9e838438ababa62835fda758ae9c55ea43c8da1fa94213b4c77b2622b6df5");
mix_out_output.put("rct", "9341b536f88275932cd44b06373434d39707ab3ba5f1fbdddc02544c2f8bcde7");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "7216082");
mix_out_output.put("public_key", "387c093f78ac0d734b7af04d05055e11f6c9dc7536a1dfa2ccadd60c79693960");
mix_out_output.put("rct", "4244f9aec800e371c7c2c7a663108bf2d0b8eb6d59ba08c32040fba2eca80be8");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "4364145");
mix_out_output.put("public_key", "d99460fd75c8414f565db04ff11b0d3cf6898efef35c528c624a9662f3d49996");
mix_out_output.put("rct", "98bc320bb539668969eec42a944c429b36ec7e61b8935e4e9c41192b3d39c32f");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "3591861");
mix_out_output.put("public_key", "543b3eafd209344a02ad8a60035322be2e796a4d718926330faa9adcac2697df");
mix_out_output.put("rct", "edae851e4e4faeef79f32e582cccb72c89af6636b56cf966f8e670c4e97a50cb");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2010861");
mix_out_output.put("public_key", "c748b1f34c16a23943884672b155a0224faab8c9779bd2a244b1480da226637f");
mix_out_output.put("rct", "c01f86c86759a2e4feb80cef76f16a5fffd61b78d612c04388a1cf36ee71de78");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "2120332");
mix_out_output.put("public_key", "1d57d35f0b87441599b9c48d292098fb199e962566dfc51a0a3ca6061757ec84");
mix_out_output.put("rct", "40ff33c909f1216e30dfa723c5518def95da6b8db566cd099a8b6e4e19c1e022");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6647347");
mix_out_output.put("public_key", "934f700ab34a84e6e72ed30f7f7d54b9b346f4bb6e6d3a74ea21977f293e7167");
mix_out_output.put("rct", "9734fe3e0face374bcf73a4ad9d25306106af490a9790343718e2c7ad20c1c60");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "7216401");
mix_out_output.put("public_key", "855707ad257220dcc3bfeeee2dc8efc4ab9e62c07a3f38b4a4ed535db86497cc");
mix_out_output.put("rct", "9f9d585c34594b4a3e268eb4cbfa45f1e542d233f1655e432ff03055667189d1");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5170016");
mix_out_output.put("public_key", "56f6c97015849075c8a4831feba5dcc7989f735edde9e6181613e62b3b4bfa1c");
mix_out_output.put("rct", "37d189c9576596ab3a525901eb0065fffbe3cecccc35337ef1f441d61ed187d5");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6993012");
mix_out_output.put("public_key", "dfba264e3a2f43c4b6597eccfaafa768dc3903c0aae0b19d55e42f9ffd1089f0");
mix_out_output.put("rct", "f37edf74d0252af96d73d2ff3881f11352dbd585dc9f7fb80e95b39a33059057");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
mix_out.add_child("outputs", mix_out_outputs);
mix_outs.push_back(std::make_pair("", mix_out));
}
{
boost::property_tree::ptree mix_out;
mix_out.put("amount", "0");
boost::property_tree::ptree mix_out_outputs;
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5657940");
mix_out_output.put("public_key", "b20f3aefea422d4abb5630a4f0b0edd890b1c1c3a6a206ece616932df0f4a38a");
mix_out_output.put("rct", "cda43d468ae84656b1a5fa05bde97fe48cf9ab360c73c2194882b525d4cdd49d");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "7439656");
mix_out_output.put("public_key", "2765f455e2453084e922946a3959c1972317cf72003aebee9f1e2a0f9602f10f");
mix_out_output.put("rct", "51373d766c61a16a0aa87da436b907392b8fcbcd89fe62a2f512f3a5dddf3180");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5931827");
mix_out_output.put("public_key", "54a71ff9b44ccfeaaa06ef7a8876bacd77cfb2d33083444f44c3621c6b0e9273");
mix_out_output.put("rct", "116b1f52b0c1837118f91c20b3c67fc12bff591b0261a192fe80213642ce4c80");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6976496");
mix_out_output.put("public_key", "2ea7c464e6f725fb3f1bec5e771cea42d6407c9613bb5a0858c0ffce9c3fc587");
mix_out_output.put("rct", "c11e79051291fb33dbd2e7126a79cbdaf76840075243520e25dd4ce7bf23c079");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6801722");
mix_out_output.put("public_key", "0352533ce5bc4bfaff6a406374921163d353035b24d9fdb26878537508430461");
mix_out_output.put("rct", "94bcab060f1fe54f2e96daceb982fc542a3579fdf4508c0cb03de49e59e34ffc");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "7008591");
mix_out_output.put("public_key", "62ef63653d5e195ee635ff41738fd6c7c98120199c7ebdb7748718e8da013114");
mix_out_output.put("rct", "41632747629f85f497d59df18d93c53ffed0900033e351fa033e2384c07b256b");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5901945");
mix_out_output.put("public_key", "de8852684cf5fcc95874544f74c454941da0abb8573cb1ce869c7fe2a3011845");
mix_out_output.put("rct", "46680c09305e48b4d97df127274fbb03481065080921f5f9c6efa260d8bf1973");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6137605");
mix_out_output.put("public_key", "70e57222f46ea5ed95a840f66872e42c651fec12eb7bf9ccfa15043152eec1a9");
mix_out_output.put("rct", "66d2aa8e721a8c4114a68f93193e85930970ce501cde42523905755c1bc46d0b");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "4489250");
mix_out_output.put("public_key", "4f7cdd2b88421f3869e5539ea492e3f43bb552f6a8c877f1626ec2fe10659cbc");
mix_out_output.put("rct", "2c1281cd0018325498d7a72778bfe840309b34ba743418b251d4181a0e7c9825");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "5900487");
mix_out_output.put("public_key", "9c9937b31202ed6d6b030ecd4f923ecad0ef132ad5a808b5c61008b88ccb9dad");
mix_out_output.put("rct", "ad11ddcc44a83d3acdd02c7db7313d939ba71437ce91dfcdf4e3107618d5e58b");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
{
boost::property_tree::ptree mix_out_output;
mix_out_output.put("global_index", "6117071");
mix_out_output.put("public_key", "8517e656a1e53d4d0a6265cefd71cc48cbab59303695bb5f5007bef635c522fc");
mix_out_output.put("rct", "fc53cdb49f07621b85bfd0997cd54ab2f83fa70ca73c7962f2b42e05361b832e");
mix_out_outputs.push_back(std::make_pair("", mix_out_output));
}
mix_out.add_child("outputs", mix_out_outputs);
mix_outs.push_back(std::make_pair("", mix_out));
}

Loading…
Cancel
Save