forward blockchain type to TransactionBody

This commit is contained in:
einhornimmond 2021-04-06 13:10:50 +02:00
parent 9ea97bfb4d
commit d659dfb886
8 changed files with 294 additions and 183 deletions

View File

@ -5,7 +5,7 @@
#include "Poco/DeflatingStream.h"
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 6 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#include "../controller/NodeServer.h"
@ -27,7 +27,7 @@ enum PageType
PAGE_GET_TRANSACTION_RPC_CALL
};
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 1 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
#include "../ServerConfig.h"
@ -40,7 +40,7 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
if (_compressResponse) response.set("Content-Encoding", "gzip");
Poco::Net::HTMLForm form(request, request.stream());
#line 28 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 28 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
const char* pageName = "Node Server Test";
PageType page = PAGE_CHOOSE_TEST;
@ -115,7 +115,7 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
auto node_servers = controller::NodeServer::load(model::table::NODE_SERVER_GRADIDO_NODE);
auto hedera_topics = controller::HederaTopic::listAll();
#line 3 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 3 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
bool withMaterialIcons = false;
std::ostream& _responseStream = response.send();
@ -130,20 +130,20 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "<meta charset=\"UTF-8\">\n";
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1, shrink-to-fit=no\">\n";
responseStream << "<title>Gradido Login Server: ";
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 11 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( pageName );
responseStream << "</title>\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 12 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 12 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/main.css\">\n";
#line 13 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 13 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
if(withMaterialIcons) { responseStream << "\n";
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 14 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "css/materialdesignicons.min.css\">\n";
#line 15 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 15 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "</head>\n";
responseStream << "<body>\n";
@ -152,29 +152,29 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t\t<div class=\"nav-vertical\">\n";
responseStream << "\t\t\t\t<ul>\n";
responseStream << "\t\t\t\t\t";
#line 22 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#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<li><a href=\"";
#line 23 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 23 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( user->getGroupBaseUrl() );
responseStream << "/\"><span class=\"link-title\">Startseite</span></a></li>\n";
responseStream << "\t\t\t\t\t";
#line 24 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 24 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 25 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 25 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/groups\"><span class=\"link-title\">Gruppen</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 26 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 26 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Node Server</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 27 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 27 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/hedera_account\"><span class=\"link-title\">Hedera Accounts</span></a></li>\n";
responseStream << "\t\t\t\t\t<li><a href=\"";
#line 28 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_large.cpsp"
#line 28 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\header_large.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Hedera Topics</span></a></li>\n";
responseStream << "\t\t\t\t</ul>\n";
@ -183,131 +183,131 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t<div class=\"content\">";
// end include header_large.cpsp
responseStream << "\n";
#line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 103 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getErrorsHtml() );
responseStream << "\n";
responseStream << "<div class=\"center-form-container\">\n";
responseStream << "\t<!-- Tab links -->\n";
responseStream << "\t<div class=\"tab\">\n";
responseStream << "\t <button class=\"tablinks ";
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 107 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_RUN_4_SET_TEST == page) { responseStream << " active ";
#line 107 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 107 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\" onclick=\"openTab(event, 'test-4')\">Test 6-Set (3 AddMember, Creation, 2 Transfer)</button>\n";
responseStream << "\t <button class=\"tablinks ";
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 108 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_GET_TRANSACTION_RPC_CALL == page) { responseStream << " active ";
#line 108 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 108 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\" onclick=\"openTab(event, 'gn-jsonrpc')\" title=\"call via json-rpc to gradido node with getTransactions\">getTransactions</button>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"test-4\" class=\"tabcontent\" ";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 110 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_RUN_4_SET_TEST == page) { responseStream << " style=\"display:block\" ";
#line 110 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 110 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Test 6-Set (3 AddMember, Creation, 2 Transfer)</</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 115 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 115 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/adminNodeServerTest\">\n";
responseStream << "\t\t\t\t<p>1. Create three new accounts and show user public keys for comparisation</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 117 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[0]) { responseStream << " checked=\"checked\" ";
#line 117 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 117 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-2\" value=\"1\"/> 2. Send a add-member transaction to hedera topic with one signature (first user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 118 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 118 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[1]) { responseStream << " checked=\"checked\" ";
#line 118 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 118 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-3\" value=\"1\"/> 3. Send a add-member transaction to hedera topic with two signatures (first user and second user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 119 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[2]) { responseStream << " checked=\"checked\" ";
#line 119 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 119 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-4\" value=\"1\"/> 4. Send a creation transaction to second user, signed by first user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 120 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[3]) { responseStream << " checked=\"checked\" ";
#line 120 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 120 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-5\" value=\"1\"/> 5. Send a transfer transaction from second user to first user signed by second user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 121 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[4]) { responseStream << " checked=\"checked\" ";
#line 121 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 121 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-6\" value=\"1\"/> 6. Send a add-member transaction to hedera topic 2 with one signature (third user)</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 122 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[5]) { responseStream << " checked=\"checked\" ";
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 122 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-7\" value=\"1\"/> 7. Send a cross group transfer from second user to third user signed by second user</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 123 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[6]) { responseStream << " checked=\"checked\" ";
#line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 123 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-8\" value=\"1\"/> 8. Wait x seconds to give hedera time to process transactions</p>\n";
responseStream << "\t\t\t\t<p><input class=\"form-checkbox\" type=\"checkbox\" ";
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 124 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(steps[7]) { responseStream << " checked=\"checked\" ";
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 124 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " name=\"step-9\" value=\"1\"/> 9. Ask choosen node for transaction and print result</p>\n";
responseStream << "\t\t\t\t<fieldset>\n";
responseStream << "\t\t\t\t\t<legend>Group 1 </legend>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-node-servers\">Node Server for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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\t<a href=\"";
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 129 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 130 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-node-servers\" id=\"test-node-servers\">\n";
responseStream << "\t\t\t\t\t\t";
#line 132 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 132 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server.isNull() && node_server->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 135 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 135 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 136 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 136 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-hedera-topic\">Hedera Topic for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 139 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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\t<a href=\"";
#line 140 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 140 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Edit Hedera-Topics</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 141 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 141 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-hedera-topic\" id=\"test-hedera-topic\">\n";
responseStream << "\t\t\t\t\t\t";
#line 143 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 143 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) {
auto model = (*it)->getModel();
auto hedera_account = (*it)->getAutoRenewAccount();
@ -316,24 +316,24 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
}
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!hedera_topic.isNull() && hedera_topic->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getName() );
responseStream << ", group: ";
#line 150 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 150 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 151 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 151 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t</fieldset>\n";
@ -341,56 +341,56 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t\t\t\t<legend>Group 2 </legend>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-node-servers2\">Node Server for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 157 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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\t<a href=\"";
#line 158 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 158 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 159 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 159 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-node-servers2\" id=\"test-node-servers2\">\n";
responseStream << "\t\t\t\t\t\t";
#line 161 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 161 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server2.isNull() && node_server2->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 164 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 164 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 165 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 165 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t\t<label class=\"form-label\" for=\"test-hedera-topic2\">Hedera Topic for tests</label>\n";
responseStream << "\t\t\t\t\t";
#line 168 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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\t<a href=\"";
#line 169 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 169 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/topic\"><span class=\"link-title\">Edit Hedera-Topics</span></a>\n";
responseStream << "\t\t\t\t\t";
#line 170 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 170 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t<select name=\"test-hedera-topic2\" id=\"test-hedera-topic2\">\n";
responseStream << "\t\t\t\t\t\t";
#line 172 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 172 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = hedera_topics.begin(); it != hedera_topics.end(); it++) {
auto model = (*it)->getModel();
auto hedera_account = (*it)->getAutoRenewAccount();
@ -399,36 +399,36 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
}
responseStream << "\n";
responseStream << "\t\t\t\t\t\t\t<option title=\"";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!hedera_topic2.isNull() && hedera_topic2->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getName() );
responseStream << ", group: ";
#line 179 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 179 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t\t";
#line 180 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 180 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t\t</select>\n";
responseStream << "\t\t\t\t</fieldset>\n";
responseStream << "\t\t\t\t\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-timeout\">Timeout waiting for hedera in seconds</label>\n";
responseStream << "\t\t\t\t<input name=\"test-timeout\" id=\"test-timeout\" type=\"number\" value=\"";
#line 185 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 185 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( hedera_timeout );
responseStream << "\"> seconds \n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-part-timeout\">Timeout between transactions to prevent out-of-order</label>\n";
responseStream << "\t\t\t\t<input name=\"test-part-timeout\" id=\"test-part-timeout\" type=\"number\" value=\"";
#line 187 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 187 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( sleep_ms_between_transactions );
responseStream << "\"> ms\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"Run 6-Test\">\n";
@ -436,54 +436,54 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t<div id=\"gn-jsonrpc\" class=\"tabcontent\" ";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 192 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(PAGE_GET_TRANSACTION_RPC_CALL == page) { responseStream << " style=\"display:block\" ";
#line 192 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 192 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">\n";
responseStream << "\t\t<div class=\"center-form-title\">\n";
responseStream << "\t\t\t<h3>Test 4-Set (2 AddMember, Creation, Transfer)</</h3>\n";
responseStream << "\t\t</div>\n";
responseStream << "\t\t<div class=\"center-form-form\">\n";
responseStream << "\t\t\t<form method=\"POST\" action=\"";
#line 197 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 197 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/adminNodeServerTest\">\n";
responseStream << "\t\t\t\t<label class=\"form-label\" for=\"test-node-servers\">Node Server to call</label>\n";
responseStream << "\t\t\t\t";
#line 199 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 199 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(node_servers.size() == 0) { responseStream << "\n";
responseStream << "\t\t\t\t\t<a href=\"";
#line 200 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 200 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( getBaseUrl() );
responseStream << "/nodes\"><span class=\"link-title\">Edit Node-Servers</span></a>\n";
responseStream << "\t\t\t\t";
#line 201 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 201 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t<select name=\"test-node-servers\" id=\"test-node-servers\">\n";
responseStream << "\t\t\t\t\t";
#line 203 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 203 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
for(auto it = node_servers.begin(); it != node_servers.end(); it++) {
auto model = (*it)->getModel();
responseStream << "\n";
responseStream << "\t\t\t\t\t\t<option title=\"";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->toString() );
responseStream << "\" value=\"";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getID() );
responseStream << "\" ";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!node_server.isNull() && node_server->getModel()->getID() == model->getID()) { responseStream << "selected=\"selected\"";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << ">";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getUrlWithPort() );
responseStream << ", group: ";
#line 206 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 206 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( model->getGroupId() );
responseStream << "</option>\n";
responseStream << "\t\t\t\t\t";
#line 207 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 207 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t</select>\n";
responseStream << "\t\t\t\t<input class=\"center-form-submit form-button\" type=\"submit\" name=\"submit\" value=\"json-rpc getTransactions\">\n";
@ -491,13 +491,13 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t</div>\n";
responseStream << "\t</div>\n";
responseStream << "\t";
#line 213 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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<ul>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>1. Create three new accounts and show user public keys for comparisation: </p>\n";
responseStream << "\t\t\t";
#line 217 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 217 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
Profiler time2;
auto group_id = hedera_topic->getModel()->getGroupId();
@ -528,42 +528,42 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
user_3->login(password3);
responseStream << "\t\t\t\n";
responseStream << "\t\t\t<fieldset><legend>";
#line 246 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 246 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_group->getModel()->getName() );
responseStream << "</legend>\n";
responseStream << "\t\t\t\t<p>User 1: ";
#line 247 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 247 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_1->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t\t<p>User 2: ";
#line 248 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 248 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_2->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<fieldset><legend>";
#line 250 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 250 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_group2->getModel()->getName() );
responseStream << "</legend>\n";
responseStream << "\t\t\t\t<p>User 3: ";
#line 251 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 251 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( user_3->getPublicHex() );
responseStream << "</p>\n";
responseStream << "\t\t\t</fieldset>\n";
responseStream << "\t\t\t<p>Time: ";
#line 253 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 253 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>2. Send a add-member transaction to hedera topic with one signature (first user)</p>\n";
responseStream << "\t\t\t";
#line 257 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 257 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[0]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 261 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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);
@ -571,27 +571,27 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
auto transaction1_json = transaction1->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 267 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 267 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction1_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 268 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 268 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 269 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 269 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>3. Send a add-member transaction to hedera topic with two signatures (first user and second user)</p>\n";
responseStream << "\t\t\t";
#line 273 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 273 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[1]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 277 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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);
@ -602,86 +602,86 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
auto transaction2_json = transaction2->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 286 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 286 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction2_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 287 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 287 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 288 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 288 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>4. Send a creation transaction to second user, signed by first user</p>\n";
responseStream << "\t\t\t";
#line 292 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 292 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[2]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 296 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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");
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<p>";
#line 303 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 303 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction3_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 304 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 304 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 305 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 305 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>5. Send a transfer transaction from second user to first user signed by second user</p>\n";
responseStream << "\t\t\t";
#line 309 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 309 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[3]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 313 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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");
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<p>";
#line 321 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 321 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction4_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 322 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 322 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 323 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 323 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>6. Send a add-member transaction to hedera topic 2 with one signature (third user)</p>\n";
responseStream << "\t\t\t";
#line 327 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 327 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[4]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 331 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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);
@ -690,30 +690,30 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
auto transaction5_json = transaction5->getTransactionAsJson(true);
responseStream << "\n";
responseStream << "\t\t\t<p>";
#line 338 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 338 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction5_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t";
#line 339 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 339 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 340 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 340 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>7. Send a cross group transfer from second user to third user signed by second user</p>\n";
responseStream << "\t\t\t";
#line 344 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 344 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[5]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 348 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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", false);
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<div class=\"alert alert-error\" role=\"alert\">\n";
@ -721,7 +721,7 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t\t\t\t<span>Error creating Transaction</span>\n";
responseStream << "\t\t\t\t</div>\n";
responseStream << "\t\t\t\t";
#line 357 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 357 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
Poco::Thread::sleep(sleep_ms_between_transactions);
@ -730,42 +730,42 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
auto paired_transaction = transaction6[0]->getPairedTransaction();
responseStream << "\n";
responseStream << "\t\t\t\t\t<p>";
#line 364 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 364 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_json) );
responseStream << "</p>\t\t\n";
responseStream << "\t\t\t\t\t";
#line 365 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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 << "<p>";
#line 367 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 367 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(transaction6_2_json) );
responseStream << "</p>\n";
responseStream << "\t\t\t\t\t";
#line 368 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 368 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t\t";
#line 369 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 369 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\t\t";
#line 370 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 370 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << " \n";
responseStream << "\t\t\t<p>Time: ";
#line 371 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 371 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>8. Wait ";
#line 374 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 374 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( hedera_timeout );
responseStream << " seconds to give hedera time to process transactions</p>\n";
responseStream << "\t\t\t";
#line 375 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 375 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
if(!steps[6]) { responseStream << "\n";
responseStream << "\t\t\t\t<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 377 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 377 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} else {
Poco::Thread::sleep(hedera_timeout * 1000);
} responseStream << "\n";
@ -773,12 +773,12 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << "\t\t<li>\n";
responseStream << "\t\t\t<p>9. Ask choosen node for transaction and print result</p>\n";
responseStream << "\t\t\t";
#line 383 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 383 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
time2.reset();
if(!steps[7] || node_server.isNull()) {
responseStream << "<p>skipped</p>\n";
responseStream << "\t\t\t";
#line 386 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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());
@ -791,20 +791,20 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
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_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 397 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) );
#line 397 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 397 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
}
} responseStream << "\n";
responseStream << "\t\t\t<p>Time: ";
#line 400 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 400 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time2.string() );
responseStream << "</p>\n";
responseStream << "\t\t</li>\n";
responseStream << "\t</ul>\n";
responseStream << "\t";
#line 403 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#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();
@ -819,23 +819,23 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
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_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 416 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( DataTypeConverter::replaceNewLineWithBr(answear_string) );
#line 416 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 416 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
}
responseStream << "\n";
responseStream << "\t\t<p>Time: ";
#line 419 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 419 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( time3.string() );
responseStream << "</p>\n";
responseStream << "\t";
#line 420 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 420 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
} responseStream << "\n";
responseStream << "\t\n";
responseStream << "</div>\n";
responseStream << "<script type=\"text/javascript\" src=\"";
#line 423 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
#line 423 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\adminNodeServerTest.cpsp"
responseStream << ( ServerConfig::g_php_serverPath );
responseStream << "/js/tabs.js\"></script>\n";
// begin include footer.cpsp
@ -845,14 +845,14 @@ void AdminNodeServerTestPage::handleRequest(Poco::Net::HTTPServerRequest& reques
responseStream << " </div>\n";
responseStream << " <div class=\"bottomleft\">\n";
responseStream << " ";
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
#line 6 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( mTimeProfiler.string() );
responseStream << "\n";
responseStream << " </div>\n";
responseStream << " <div class=\"bottomright\">\n";
responseStream << " <p>Login Server in Entwicklung</p>\n";
responseStream << " <p>Alpha ";
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
#line 10 "F:\\Gradido\\gradido_stage2\\login_server\\src\\cpsp\\footer.cpsp"
responseStream << ( ServerConfig::g_versionString );
responseStream << "</p>\n";
responseStream << " </div>\n";

View File

@ -14,6 +14,7 @@ Poco::JSON::Object* JsonCreateTransaction::handle(Poco::Dynamic::Var params)
int session_id = 0;
std::string transaction_type;
std::string blockchain_type;
// if is json object
if (params.type() == typeid(Poco::JSON::Object::Ptr)) {
@ -26,6 +27,7 @@ Poco::JSON::Object* JsonCreateTransaction::handle(Poco::Dynamic::Var params)
try {
paramJsonObject->get("session_id").convert(session_id);
paramJsonObject->get("transaction_type").convert(transaction_type);
paramJsonObject->get("blockchain_type").convert(blockchain_type);
paramJsonObject->get("memo").convert(mMemo);
}
catch (Poco::Exception& ex) {
@ -35,6 +37,10 @@ Poco::JSON::Object* JsonCreateTransaction::handle(Poco::Dynamic::Var params)
else {
return stateError("parameter format unknown");
}
mBlockchainType = model::gradido::TransactionBody::blockchainTypeFromString(blockchain_type);
if (model::gradido::BLOCKCHAIN_UNKNOWN == mBlockchainType) {
return stateError("unknown blockchain type");
}
// allow session_id from community server (allowed caller)
// else use cookie (if call cames from vue)
if (!session_id) {
@ -53,7 +59,12 @@ Poco::JSON::Object* JsonCreateTransaction::handle(Poco::Dynamic::Var params)
return customStateError("code error", "user is zero");
}
if (mBlockchainType == model::gradido::BLOCKCHAIN_HEDERA) {
getTargetGroup(params);
}
else {
mTargetGroup = controller::Group::load(user->getModel()->getGroupId());
}
if (transaction_type == "transfer") {
return transfer(params);
}
@ -107,7 +118,7 @@ Poco::JSON::Object* JsonCreateTransaction::transfer(Poco::Dynamic::Var params)
}
}
if (!result) {
model::gradido::Transaction::createTransfer(mSession->getNewUser(), target_pubkey, mTargetGroup, amount, mMemo);
model::gradido::Transaction::createTransfer(mSession->getNewUser(), target_pubkey, mTargetGroup, amount, mMemo, mBlockchainType);
result = stateSuccess();
}
mm->releaseMemory(target_pubkey);
@ -173,7 +184,7 @@ Poco::JSON::Object* JsonCreateTransaction::creation(Poco::Dynamic::Var params)
}
if(!result) {
model::gradido::Transaction::createCreation(mReceiverUser, amount, target_date, mMemo);
model::gradido::Transaction::createCreation(mReceiverUser, amount, target_date, mMemo, mBlockchainType);
result = stateSuccess();
}
mm->releaseMemory(target_pubkey);
@ -183,6 +194,9 @@ Poco::JSON::Object* JsonCreateTransaction::creation(Poco::Dynamic::Var params)
}
Poco::JSON::Object* JsonCreateTransaction::groupMemberUpdate(Poco::Dynamic::Var params)
{
if (mBlockchainType == model::gradido::BLOCKCHAIN_MYSQL) {
return stateError("groupMemberUpdate not allowed with mysql blockchain");
}
if (mTargetGroup.isNull()) {
return stateError("target_group not found");
}

View File

@ -4,6 +4,7 @@
#include "JsonRequestHandler.h"
#include "../SingletonManager/SessionManager.h"
#include "../controller/Group.h"
#include "../model/gradido/TransactionBody.h"
class JsonCreateTransaction : public JsonRequestHandler
{
@ -22,6 +23,8 @@ protected:
std::string mMemo;
Poco::AutoPtr<controller::Group> mTargetGroup;
Poco::AutoPtr<controller::User> mReceiverUser;
model::gradido::BlockchainType mBlockchainType;
};
#endif // __JSON_INTERFACE_JSON_CREATE_TRANSACTION_

View File

@ -80,7 +80,13 @@ namespace model {
return result;
}
Poco::AutoPtr<Transaction> Transaction::createCreation(Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo)
Poco::AutoPtr<Transaction> Transaction::createCreation(
Poco::AutoPtr<controller::User> receiver,
Poco::UInt32 amount,
Poco::DateTime targetDate,
const std::string& memo,
BlockchainType blockchainType
)
{
auto em = ErrorManager::getInstance();
static const char* function_name = "Transaction::create creation";
@ -98,7 +104,7 @@ namespace model {
em->sendErrorsAsEmail();
return nullptr;
}
auto body = TransactionBody::create(memo, receiver, amount, targetDate);
auto body = TransactionBody::create(memo, receiver, amount, targetDate, blockchainType);
Poco::AutoPtr<Transaction> result = new Transaction(body);
auto model = result->getModel();
model->setHederaId(topic_id->getModel()->getID());
@ -107,7 +113,15 @@ namespace model {
return result;
}
std::vector<Poco::AutoPtr<Transaction>> Transaction::createTransfer(Poco::AutoPtr<controller::User> sender, const MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo, bool inbound/* = true*/)
std::vector<Poco::AutoPtr<Transaction>> Transaction::createTransfer(
Poco::AutoPtr<controller::User> sender,
const MemoryBin* receiverPubkey,
Poco::AutoPtr<controller::Group> receiverGroup,
Poco::UInt32 amount,
const std::string& memo,
BlockchainType blockhainType,
bool inbound/* = true*/
)
{
std::vector<Poco::AutoPtr<Transaction>> results;
auto em = ErrorManager::getInstance();
@ -123,7 +137,7 @@ namespace model {
// LOCAL Transfer
if (receiverGroup.isNull() || sender_model->getGroupId() == receiverGroup->getModel()->getID())
{
auto body = TransactionBody::create(memo, sender, receiverPubkey, amount);
auto body = TransactionBody::create(memo, sender, receiverPubkey, amount, blockhainType);
Poco::AutoPtr<Transaction> transaction = new Transaction(body);
auto topic_id = controller::HederaId::find(sender_model->getGroupId(), network_type);
if (topic_id.isNull()) {
@ -172,7 +186,7 @@ namespace model {
return results;
}
auto body = TransactionBody::create(memo, sender, receiverPubkey, amount, pairedTransactionId, transaction_group);
auto body = TransactionBody::create(memo, sender, receiverPubkey, amount, blockhainType, pairedTransactionId, transaction_group);
Poco::AutoPtr<Transaction> transaction = new Transaction(body);
transaction->getModel()->setHederaId(topic_id->getModel()->getID());
auto transfer_transaction = transaction->getTransactionBody()->getTransferTransaction();
@ -216,7 +230,14 @@ namespace model {
return true;
}
Poco::AutoPtr<Transaction> Transaction::createTransfer(const MemoryBin* senderPubkey, Poco::AutoPtr<controller::User> receiver, std::string senderGroupAlias, Poco::UInt32 amount, const std::string& memo)
Poco::AutoPtr<Transaction> Transaction::createTransfer(
const MemoryBin* senderPubkey,
Poco::AutoPtr<controller::User> receiver,
std::string senderGroupAlias,
Poco::UInt32 amount,
const std::string& memo,
BlockchainType blockchainType
)
{
Poco::AutoPtr<Transaction> result;
auto em = ErrorManager::getInstance();

View File

@ -18,6 +18,9 @@
namespace model {
namespace gradido {
class Transaction : public GradidoTask
{
public:
@ -30,10 +33,31 @@ namespace model {
static Poco::AutoPtr<Transaction> createGroupMemberUpdate(Poco::AutoPtr<controller::User> user, Poco::AutoPtr<controller::Group> group);
//! \brief transfer
//! \return for cross group transaction return two transactions
static std::vector<Poco::AutoPtr<Transaction>> createTransfer(Poco::AutoPtr<controller::User> sender, const MemoryBin* receiverPubkey, Poco::AutoPtr<controller::Group> receiverGroup, Poco::UInt32 amount, const std::string& memo, bool inbound = true);
Poco::AutoPtr<Transaction> createTransfer(const MemoryBin* senderPubkey, Poco::AutoPtr<controller::User> receiver, std::string senderGroupAlias, Poco::UInt32 amount, const std::string& memo);
static std::vector<Poco::AutoPtr<Transaction>> createTransfer(
Poco::AutoPtr<controller::User> sender,
const MemoryBin* receiverPubkey,
Poco::AutoPtr<controller::Group> receiverGroup,
Poco::UInt32 amount,
const std::string& memo,
BlockchainType blockchainType,
bool inbound = true);
Poco::AutoPtr<Transaction> createTransfer(
const MemoryBin* senderPubkey,
Poco::AutoPtr<controller::User> receiver,
std::string senderGroupAlias,
Poco::UInt32 amount,
const std::string& memo,
BlockchainType blockchainType);
//! \brief creation transaction
static Poco::AutoPtr<Transaction> createCreation(Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate, const std::string& memo);
static Poco::AutoPtr<Transaction> createCreation(
Poco::AutoPtr<controller::User> receiver,
Poco::UInt32 amount,
Poco::DateTime targetDate,
const std::string& memo,
BlockchainType blockchainType);
static Poco::AutoPtr<Transaction> load(model::table::PendingTask* dbModel);
bool sign(Poco::AutoPtr<controller::User> user);

View File

@ -36,7 +36,14 @@ namespace model {
return obj;
}
Poco::AutoPtr<TransactionBody> TransactionBody::create(const std::string& memo, Poco::AutoPtr<controller::User> sender, const MemoryBin* receiverPublicKey, Poco::UInt32 amount, Poco::Timestamp pairedTransactionId, Poco::AutoPtr<controller::Group> group/* = nullptr*/)
Poco::AutoPtr<TransactionBody> TransactionBody::create(
const std::string& memo,
Poco::AutoPtr<controller::User> sender,
const MemoryBin* receiverPublicKey,
Poco::UInt32 amount,
BlockchainType blockchainType,
Poco::Timestamp pairedTransactionId,
Poco::AutoPtr<controller::Group> group/* = nullptr*/)
{
if (sender.isNull() || !sender->getModel()) {
return nullptr;
@ -78,6 +85,7 @@ namespace model {
*receiver = std::string((const char*)receiverPublicKey->data(), receiverPublicKey->size());
obj->mType = TRANSACTION_TRANSFER;
obj->mBlockchainType = blockchainType;
obj->mTransactionSpecific = new TransactionTransfer(memo, obj->mTransactionBody.transfer());
obj->mTransactionSpecific->prepare();
@ -173,7 +181,13 @@ namespace model {
return obj;
}
Poco::AutoPtr<TransactionBody> TransactionBody::create(const std::string& memo, Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate)
Poco::AutoPtr<TransactionBody> TransactionBody::create(
const std::string& memo,
Poco::AutoPtr<controller::User> receiver,
Poco::UInt32 amount,
Poco::DateTime targetDate,
BlockchainType blockchainType
)
{
if (receiver.isNull() || !receiver->getModel()) {
return nullptr;
@ -294,5 +308,16 @@ namespace model {
{
return mTransactionSpecific;
}
BlockchainType TransactionBody::blockchainTypeFromString(const std::string& blockainTypeString)
{
if (blockainTypeString == "db" || blockainTypeString == "mysql" || blockainTypeString == "mariadb") {
return BLOCKCHAIN_MYSQL;
}
else if (blockainTypeString == "hedera") {
return BLOCKCHAIN_HEDERA;
}
return BLOCKCHAIN_UNKNOWN;
}
}
}

View File

@ -21,6 +21,13 @@ namespace model {
TRANSACTION_GROUP_MEMBER_UPDATE
};
enum BlockchainType
{
BLOCKCHAIN_MYSQL,
BLOCKCHAIN_HEDERA,
BLOCKCHAIN_UNKNOWN
};
class TransactionBody : public Poco::RefCountedObject, UniLib::lib::MultithreadContainer
@ -33,11 +40,25 @@ namespace model {
//! \brief GradidoTransfer Transaction
//! \param group if group.isNull() it is a local transfer, else cross group transfer,
//! \param group if group is same as sender group outbound, else inbound
static Poco::AutoPtr<TransactionBody> create(const std::string& memo, Poco::AutoPtr<controller::User> sender, const MemoryBin* receiverPublicKey, Poco::UInt32 amount, Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr<controller::Group> group = nullptr);
static Poco::AutoPtr<TransactionBody> create(
const std::string& memo,
Poco::AutoPtr<controller::User> sender,
const MemoryBin* receiverPublicKey,
Poco::UInt32 amount,
BlockchainType blockchainType,
Poco::Timestamp pairedTransactionId = Poco::Timestamp(),
Poco::AutoPtr<controller::Group> group = nullptr
);
static Poco::AutoPtr<TransactionBody> create(const std::string& memo, const MemoryBin* senderPublicKey, Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::Timestamp pairedTransactionId = Poco::Timestamp(), Poco::AutoPtr<controller::Group> group = nullptr);
static Poco::AutoPtr<TransactionBody> create(const std::string& memo, const MemoryBin* senderPublicKey, const MemoryBin* receiverPublicKey, Poco::UInt32 amount, const std::string groupAlias, TransactionTransferType transferType, Poco::Timestamp pairedTransactionId = Poco::Timestamp());
//! \brief GradidoCreation Transaction
static Poco::AutoPtr<TransactionBody> create(const std::string& memo, Poco::AutoPtr<controller::User> receiver, Poco::UInt32 amount, Poco::DateTime targetDate);
static Poco::AutoPtr<TransactionBody> create(
const std::string& memo,
Poco::AutoPtr<controller::User> receiver,
Poco::UInt32 amount,
Poco::DateTime targetDate,
BlockchainType blockchainType
);
static Poco::AutoPtr<TransactionBody> load(const std::string& protoMessageBin);
@ -59,11 +80,14 @@ namespace model {
GroupMemberUpdate* getGroupMemberUpdate();
TransactionBase* getTransactionBase();
static BlockchainType blockchainTypeFromString(const std::string& blockainTypeString);
protected:
TransactionBody();
proto::gradido::TransactionBody mTransactionBody;
TransactionBase* mTransactionSpecific;
TransactionType mType;
BlockchainType mBlockchainType;
};
}
}

View File

@ -294,7 +294,7 @@ enum PageType
if(!steps[2]) { %>
<p>skipped</p>
<% } else {
auto transaction3 = model::gradido::Transaction::createCreation(user_2, 10000000, Poco::DateTime(), "Test Creation");
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);
@ -312,7 +312,7 @@ enum PageType
<p>skipped</p>
<% } 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");
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);
@ -347,7 +347,7 @@ enum PageType
<p>skipped</p>
<% } 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", false);
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()) {
%>
<div class="alert alert-error" role="alert">