#include "AdminNodeServerTestPage.h" #include "Poco/Net/HTTPServerRequest.h" #include "Poco/Net/HTTPServerResponse.h" #include "Poco/Net/HTMLForm.h" #include "Poco/DeflatingStream.h" #line 6 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" #include "../controller/NodeServer.h" #include "../controller/User.h" #include "../controller/HederaTopic.h" #include "../lib/DataTypeConverter.h" #include "../lib/Profiler.h" #include "../lib/JsonRPCRequest.h" #include "../model/gradido/Transaction.h" #include "Poco/Thread.h" #include "Poco/DateTime.h" #include "Poco/JSON/Stringifier.h" enum PageType { PAGE_CHOOSE_TEST, PAGE_RUN_4_SET_TEST, PAGE_GET_TRANSACTION_RPC_CALL }; #line 1 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" #include "../ServerConfig.h" void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& request, Poco::Net::HTTPServerResponse& response) { response.setChunkedTransferEncoding(true); response.setContentType("text/html"); bool _compressResponse(request.hasToken("Accept-Encoding", "gzip")); if (_compressResponse) response.set("Content-Encoding", "gzip"); Poco::Net::HTMLForm form(request, request.stream()); #line 28 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" const char* pageName = "Node Server Test"; PageType page = PAGE_CHOOSE_TEST; Poco::AutoPtr node_server; Poco::AutoPtr node_server2; Poco::AutoPtr user; Poco::AutoPtr hedera_topic; Poco::AutoPtr hedera_topic2; int hedera_timeout = 4; int sleep_ms_between_transactions = 1000; bool steps[8]; memset(steps, 1, 8 * sizeof(bool)); if(!form.empty()) { auto node_server_id_string = form.get("test-node-servers", ""); if(node_server_id_string != "") { int node_server_id = 0; if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(node_server_id_string, node_server_id )) { node_server = controller::NodeServer::load(node_server_id); } } node_server_id_string = form.get("test-node-servers2", ""); if(node_server_id_string != "") { int node_server_id = 0; if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(node_server_id_string, node_server_id )) { node_server2 = controller::NodeServer::load(node_server_id); } } auto topic_id_string = form.get("test-hedera-topic", ""); if(topic_id_string != "") { int topic_id = 0; if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(topic_id_string, topic_id)) { hedera_topic = controller::HederaTopic::load(topic_id); } } topic_id_string = form.get("test-hedera-topic2", ""); if(topic_id_string != "") { int topic_id = 0; if(DataTypeConverter::NUMBER_PARSE_OKAY == DataTypeConverter::strToInt(topic_id_string, topic_id)) { hedera_topic2 = controller::HederaTopic::load(topic_id); } } auto test_timeout_string = form.get("test-timeout", ""); if(test_timeout_string != "") { DataTypeConverter::strToInt(test_timeout_string, hedera_timeout); } auto test_part_timeout_string = form.get("test-part-timeout", ""); if(test_part_timeout_string != "") { DataTypeConverter::strToInt(test_part_timeout_string, sleep_ms_between_transactions); } auto submit = form.get("submit", ""); if(submit == "Run 6-Test") { page = PAGE_RUN_4_SET_TEST; } else if(submit == "json-rpc getTransactions") { page = PAGE_GET_TRANSACTION_RPC_CALL; } std::string step_temp; for(int i = 0; i < 8; i++) { std::string name = "step-"; name += std::to_string(i+2); step_temp = form.get(name, ""); if(step_temp == "1") { steps[i] = true; } else { steps[i] = false; } } } auto node_servers = controller::NodeServer::load(model::table::NODE_SERVER_GRADIDO_NODE); auto hedera_topics = controller::HederaTopic::listAll(); #line 3 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" bool withMaterialIcons = false; std::ostream& _responseStream = response.send(); Poco::DeflatingOutputStream _gzipStream(_responseStream, Poco::DeflatingStreamBuf::STREAM_GZIP, 1); std::ostream& responseStream = _compressResponse ? _gzipStream : _responseStream; responseStream << "\n"; // begin include header_large.cpsp responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "Gradido Login Server: "; #line 11 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" responseStream << ( pageName ); responseStream << "\n"; responseStream << "\n"; #line 13 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" if(withMaterialIcons) { responseStream << "\n"; responseStream << "\n"; #line 15 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" } responseStream << "\n"; responseStream << "\n"; responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t
    \n"; responseStream << "\t\t\t\t\t"; #line 22 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" if(!user.isNull()) { responseStream << "\n"; responseStream << "\t\t\t\t\t\t
  • getGroupBaseUrl() ); responseStream << "/\">Startseite
  • \n"; responseStream << "\t\t\t\t\t"; #line 24 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t
  • Gruppen
  • \n"; responseStream << "\t\t\t\t\t
  • Node Server
  • \n"; responseStream << "\t\t\t\t\t
  • Hedera Accounts
  • \n"; responseStream << "\t\t\t\t\t
  • Hedera Topics
  • \n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t
"; // end include header_large.cpsp responseStream << "\n"; #line 103 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( getErrorsHtml() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "\t\n"; responseStream << "\t
\n"; responseStream << "\t \n"; responseStream << "\t \n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Test 6-Set (3 AddMember, Creation, 2 Transfer)\n"; responseStream << "\t\t

\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t

1. Create three new accounts and show user public keys for comparisation

\n"; responseStream << "\t\t\t\t

2. Send a add-member transaction to hedera topic with one signature (first user)

\n"; responseStream << "\t\t\t\t

3. Send a add-member transaction to hedera topic with two signatures (first user and second user)

\n"; responseStream << "\t\t\t\t

4. Send a creation transaction to second user, signed by first user

\n"; responseStream << "\t\t\t\t

5. Send a transfer transaction from second user to first user signed by second user

\n"; responseStream << "\t\t\t\t

6. Send a add-member transaction to hedera topic 2 with one signature (third user)

\n"; responseStream << "\t\t\t\t

7. Send a cross group transfer from second user to third user signed by second user

\n"; responseStream << "\t\t\t\t

8. Wait x seconds to give hedera time to process transactions

\n"; responseStream << "\t\t\t\t

9. Ask choosen node for transaction and print result

\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\tGroup 1 \n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t"; #line 128 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(node_servers.size() == 0) { responseStream << "\n"; responseStream << "\t\t\t\t\t\tEdit Node-Servers\n"; responseStream << "\t\t\t\t\t"; #line 130 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t"; #line 139 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(hedera_topics.size() == 0) { responseStream << "\n"; responseStream << "\t\t\t\t\t\tEdit Hedera-Topics\n"; responseStream << "\t\t\t\t\t"; #line 141 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\tGroup 2 \n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t"; #line 157 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(node_servers.size() == 0) { responseStream << "\n"; responseStream << "\t\t\t\t\t\tEdit Node-Servers\n"; responseStream << "\t\t\t\t\t"; #line 159 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t\t"; #line 168 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(hedera_topics.size() == 0) { responseStream << "\n"; responseStream << "\t\t\t\t\t\tEdit Hedera-Topics\n"; responseStream << "\t\t\t\t\t"; #line 170 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\t\n"; responseStream << "\t\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t seconds \n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t ms\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t

Test 4-Set (2 AddMember, Creation, Transfer)\n"; responseStream << "\t\t

\n"; responseStream << "\t\t
\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t"; #line 199 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(node_servers.size() == 0) { responseStream << "\n"; responseStream << "\t\t\t\t\tEdit Node-Servers\n"; responseStream << "\t\t\t\t"; #line 201 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t\t\n"; responseStream << "\t\t\t
\n"; responseStream << "\t\t
\n"; responseStream << "\t
\n"; responseStream << "\t"; #line 213 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(PAGE_RUN_4_SET_TEST == page && !hedera_topic.isNull() && !node_server.isNull()) { responseStream << "\n"; responseStream << "\t
    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    1. Create three new accounts and show user public keys for comparisation:

    \n"; responseStream << "\t\t\t"; #line 217 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" Profiler time2; auto group_id = hedera_topic->getModel()->getGroupId(); auto group_id2 = hedera_topic2->getModel()->getGroupId(); auto user_group = controller::Group::load(group_id); auto user_group2 = controller::Group::load(group_id2); auto mnemonic_type = ServerConfig::MNEMONIC_BIP0039_SORTED_ORDER; std::string password1 = "hsaj(2askaslASlllak3wjjeudsaj"; auto user_1 = controller::User::create("testEmail@google.de", "Max", "Mustermann", group_id); auto passphrase_1 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]); auto gradido_key_pair_1 = KeyPairEd25519::create(passphrase_1); user_1->setGradidoKeyPair(gradido_key_pair_1); user_1->login(password1); std::string password2 = "uweia8saiSale,dsasA"; auto user_2 = controller::User::create("testEmail2@google.de", "MJax", "Mustrermann", group_id); auto passphrase_2 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]); auto gradido_key_pair_2 = KeyPairEd25519::create(passphrase_2); user_2->setGradidoKeyPair(gradido_key_pair_2); user_2->login(password2); std::string password3 = "jaue_skaiellasealaK"; auto user_3 = controller::User::create("testEmail3@gmail.com", "Morpheus", "Miaufull", group_id2); auto passphrase_3 = Passphrase::generate(&ServerConfig::g_Mnemonic_WordLists[mnemonic_type]); auto gradido_key_pair_3 = KeyPairEd25519::create(passphrase_3); user_3->setGradidoKeyPair(gradido_key_pair_3); user_3->login(password3); responseStream << "\t\t\t\n"; responseStream << "\t\t\t
    "; #line 246 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( user_group->getModel()->getName() ); responseStream << "\n"; responseStream << "\t\t\t\t

    User 1: "; #line 247 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( user_1->getPublicHex() ); responseStream << "

    \n"; responseStream << "\t\t\t\t

    User 2: "; #line 248 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( user_2->getPublicHex() ); responseStream << "

    \n"; responseStream << "\t\t\t
    \n"; responseStream << "\t\t\t
    "; #line 250 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( user_group2->getModel()->getName() ); responseStream << "\n"; responseStream << "\t\t\t\t

    User 3: "; #line 251 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( user_3->getPublicHex() ); responseStream << "

    \n"; responseStream << "\t\t\t
    \n"; responseStream << "\t\t\t

    Time: "; #line 253 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "\n"; responseStream << "\t\t

  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    2. Send a add-member transaction to hedera topic with one signature (first user)

    \n"; responseStream << "\t\t\t"; #line 257 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[0]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 261 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto transaction1 = model::gradido::Transaction::createGroupMemberUpdate(user_1, user_group); transaction1->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(1); transaction1->sign(user_1); auto transaction1_json = transaction1->getTransactionAsJson(true); responseStream << "\n"; responseStream << "\t\t\t

    "; #line 267 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction1_json) ); responseStream << "

    \n"; responseStream << "\t\t\t"; #line 268 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 269 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "\n"; responseStream << "\t\t

  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    3. Send a add-member transaction to hedera topic with two signatures (first user and second user)

    \n"; responseStream << "\t\t\t"; #line 273 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[1]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 277 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto transaction2 = model::gradido::Transaction::createGroupMemberUpdate(user_2, user_group); transaction2->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(2); transaction2->sign(user_2); // wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time Poco::Thread::sleep(sleep_ms_between_transactions); transaction2->sign(user_1); auto transaction2_json = transaction2->getTransactionAsJson(true); responseStream << "\n"; responseStream << "\t\t\t

    "; #line 286 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction2_json) ); responseStream << "

    \n"; responseStream << "\t\t\t"; #line 287 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 288 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "\n"; responseStream << "\t\t

  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    4. Send a creation transaction to second user, signed by first user

    \n"; responseStream << "\t\t\t"; #line 292 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[2]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 296 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto transaction3 = model::gradido::Transaction::createCreation(user_2, 10000000, Poco::DateTime(), "Test Creation", model::gradido::BLOCKCHAIN_HEDERA); // wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time Poco::Thread::sleep(sleep_ms_between_transactions); transaction3->sign(user_1); auto transaction3_json = transaction3->getTransactionAsJson(true); responseStream << "\n"; responseStream << "\t\t\t

    "; #line 303 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction3_json) ); responseStream << "

    \n"; responseStream << "\t\t\t"; #line 304 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 305 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "

    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    5. Send a transfer transaction from second user to first user signed by second user

    \n"; responseStream << "\t\t\t"; #line 309 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[3]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 313 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto user_1_pubkey = user_1->getModel()->getPublicKeyCopy(); auto transaction4 = model::gradido::Transaction::createTransfer(user_2, user_1_pubkey, user_group, 5000000, "Test Transfer", model::gradido::BLOCKCHAIN_HEDERA); // wait before sending fourth transaction, gn seems to crash by more than 3 transaction at nearly the same time Poco::Thread::sleep(sleep_ms_between_transactions); transaction4[0]->sign(user_2); auto transaction4_json = transaction4[0]->getTransactionAsJson(true); responseStream << "\n"; responseStream << "\t\t\t

    "; #line 321 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction4_json) ); responseStream << "

    \n"; responseStream << "\t\t\t"; #line 322 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 323 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "

    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    6. Send a add-member transaction to hedera topic 2 with one signature (third user)

    \n"; responseStream << "\t\t\t"; #line 327 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[4]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 331 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto transaction5 = model::gradido::Transaction::createGroupMemberUpdate(user_3, user_group2); transaction5->getTransactionBody()->getGroupMemberUpdate()->setMinSignatureCount(1); Poco::Thread::sleep(sleep_ms_between_transactions); transaction5->sign(user_3); auto transaction5_json = transaction5->getTransactionAsJson(true); responseStream << "\n"; responseStream << "\t\t\t

    "; #line 338 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction5_json) ); responseStream << "

    \n"; responseStream << "\t\t\t"; #line 339 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 340 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "

    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    7. Send a cross group transfer from second user to third user signed by second user

    \n"; responseStream << "\t\t\t"; #line 344 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[5]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 348 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto user_3_pubkey = user_3->getModel()->getPublicKeyCopy(); auto transaction6 = model::gradido::Transaction::createTransfer(user_2, user_3_pubkey, user_group2, 4000000, "Test Group Transfer", model::gradido::BLOCKCHAIN_HEDERA, false); if(!transaction6.size()) { responseStream << "\n"; responseStream << "\t\t\t\t
    \n"; responseStream << "\t\t\t\t\treport_problem\n"; responseStream << "\t\t\t\t\tError creating Transaction\n"; responseStream << "\t\t\t\t
    \n"; responseStream << "\t\t\t\t"; #line 357 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { Poco::Thread::sleep(sleep_ms_between_transactions); transaction6[0]->sign(user_2); auto transaction6_json = transaction6[0]->getTransactionAsJson(true); auto paired_transaction = transaction6[0]->getPairedTransaction(); responseStream << "\n"; responseStream << "\t\t\t\t\t

    "; #line 364 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_json) ); responseStream << "

    \t\t\n"; responseStream << "\t\t\t\t\t"; #line 365 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(!paired_transaction.isNull()) { auto transaction6_2_json = paired_transaction->getTransactionAsJson(true); responseStream << "

    "; #line 367 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_2_json) ); responseStream << "

    \n"; responseStream << "\t\t\t\t\t"; #line 368 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t\t"; #line 369 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t\t"; #line 370 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << " \n"; responseStream << "\t\t\t

    Time: "; #line 371 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "

    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    8. Wait "; #line 374 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( hedera_timeout ); responseStream << " seconds to give hedera time to process transactions

    \n"; responseStream << "\t\t\t"; #line 375 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" if(!steps[6]) { responseStream << "\n"; responseStream << "\t\t\t\t

    skipped

    \n"; responseStream << "\t\t\t"; #line 377 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { Poco::Thread::sleep(hedera_timeout * 1000); } responseStream << "\n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t
  • \n"; responseStream << "\t\t\t

    9. Ask choosen node for transaction and print result

    \n"; responseStream << "\t\t\t"; #line 383 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" time2.reset(); if(!steps[7] || node_server.isNull()) { responseStream << "

    skipped

    \n"; responseStream << "\t\t\t"; #line 386 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else { auto node_server_model = node_server->getModel(); JsonRPCRequest jsonrpc(node_server_model->getUrl(), node_server_model->getPort()); Poco::JSON::Object params; params.set("groupAlias", user_group->getModel()->getAlias()); params.set("lastKnownSequenceNumber", 0); auto gn_answear = jsonrpc.request("getTransactions", params); if(!gn_answear.isNull()) { std::stringstream ss; Poco::JSON::Stringifier::stringify(gn_answear, ss, 4, -1, Poco::JSON_PRESERVE_KEY_ORDER); std::string answear_string = ss.str(); responseStream << "\n"; responseStream << "\t\t\t\t\t"; #line 397 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) ); #line 397 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } } responseStream << "\n"; responseStream << "\t\t\t

    Time: "; #line 400 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time2.string() ); responseStream << "

    \n"; responseStream << "\t\t
  • \n"; responseStream << "\t
\n"; responseStream << "\t"; #line 403 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } else if(PAGE_GET_TRANSACTION_RPC_CALL == page && !node_server.isNull()) { Profiler time3; auto node_server_model = node_server->getModel(); auto user_group = controller::Group::load(node_server_model->getGroupId()); JsonRPCRequest jsonrpc(node_server_model->getUrl(), node_server_model->getPort()); Poco::JSON::Object params; params.set("groupAlias", user_group->getModel()->getAlias()); params.set("lastKnownSequenceNumber", 0); auto gn_answear = jsonrpc.request("getTransactions", params); if(!gn_answear.isNull()) { std::stringstream ss; Poco::JSON::Stringifier::stringify(gn_answear, ss, 4, -1, Poco::JSON_PRESERVE_KEY_ORDER); std::string answear_string = ss.str(); responseStream << "\n"; responseStream << "\t\t\t"; #line 416 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) ); #line 416 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\t

Time: "; #line 419 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" responseStream << ( time3.string() ); responseStream << "

\n"; responseStream << "\t"; #line 420 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp" } responseStream << "\n"; responseStream << "\t\n"; responseStream << "
\n"; responseStream << "\n"; // begin include footer.cpsp responseStream << "
\n"; responseStream << "

Copyright © Gradido 2020

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << " "; #line 6 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\footer.cpsp" responseStream << ( mTimeProfiler.string() ); responseStream << "\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "

Login Server in Entwicklung

\n"; responseStream << "

Alpha "; #line 10 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\footer.cpsp" responseStream << ( ServerConfig::g_versionString ); responseStream << "

\n"; responseStream << "
\n"; responseStream << "
\n"; responseStream << "\n"; responseStream << "\n"; responseStream << ""; // end include footer.cpsp responseStream << "\n"; if (_compressResponse) _gzipStream.close(); }