mirror of
https://github.com/IT4Change/gradido.git
synced 2025-12-13 07:45:54 +00:00
update proto files matching with pauls proto version, update code which use them
This commit is contained in:
parent
3df0d461b1
commit
662aed72b9
@ -5,14 +5,14 @@
|
|||||||
#include "Poco/DeflatingStream.h"
|
#include "Poco/DeflatingStream.h"
|
||||||
|
|
||||||
|
|
||||||
#line 7 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 7 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
|
||||||
#include "sodium.h"
|
#include "sodium.h"
|
||||||
#include "../proto/gradido/TransactionBody.pb.h"
|
#include "../proto/gradido/TransactionBody.pb.h"
|
||||||
#include "../controller/User.h"
|
#include "../controller/User.h"
|
||||||
#include "../model/TransactionBase.h"
|
#include "../model/TransactionBase.h"
|
||||||
#include "../model/TransactionCreation.h"
|
#include "../model/TransactionCreation.h"
|
||||||
#line 1 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
#line 1 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\header_old.cpsp"
|
||||||
|
|
||||||
#include "../ServerConfig.h"
|
#include "../ServerConfig.h"
|
||||||
|
|
||||||
@ -31,10 +31,10 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
if (_compressResponse) response.set("Content-Encoding", "gzip");
|
||||||
|
|
||||||
Poco::Net::HTMLForm form(request, request.stream());
|
Poco::Net::HTMLForm form(request, request.stream());
|
||||||
#line 14 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 14 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
|
||||||
const char* pageName = "Decode Transaction";
|
const char* pageName = "Decode Transaction";
|
||||||
model::messages::gradido::TransactionBody transactionBody;
|
proto::gradido::TransactionBody transactionBody;
|
||||||
bool decoded = false;
|
bool decoded = false;
|
||||||
bool adminUser = false;
|
bool adminUser = false;
|
||||||
if(mSession && mSession->getNewUser()) {
|
if(mSession && mSession->getNewUser()) {
|
||||||
@ -99,12 +99,12 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "<meta charset=\"UTF-8\">\n";
|
responseStream << "<meta charset=\"UTF-8\">\n";
|
||||||
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
responseStream << "<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n";
|
||||||
responseStream << "<title>Gradido Login Server: ";
|
responseStream << "<title>Gradido Login Server: ";
|
||||||
#line 9 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
#line 9 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( pageName );
|
responseStream << ( pageName );
|
||||||
responseStream << "</title>\n";
|
responseStream << "</title>\n";
|
||||||
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
|
responseStream << "<!--<link rel=\"stylesheet\" type=\"text/css\" href=\"css/styles.min.css\">-->\n";
|
||||||
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
responseStream << "<link rel=\"stylesheet\" type=\"text/css\" href=\"";
|
||||||
#line 11 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
#line 11 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( ServerConfig::g_php_serverPath );
|
responseStream << ( ServerConfig::g_php_serverPath );
|
||||||
responseStream << "/css/styles.css\">\n";
|
responseStream << "/css/styles.css\">\n";
|
||||||
responseStream << "<style type=\"text/css\" >\n";
|
responseStream << "<style type=\"text/css\" >\n";
|
||||||
@ -149,7 +149,7 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "<div class=\"versionstring dev-info\">\n";
|
responseStream << "<div class=\"versionstring dev-info\">\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
responseStream << "\t<p class=\"grd_small\">Login Server in Entwicklung</p>\n";
|
||||||
responseStream << "\t<p class=\"grd_small\">Alpha ";
|
responseStream << "\t<p class=\"grd_small\">Alpha ";
|
||||||
#line 53 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\header_old.cpsp"
|
#line 53 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\header_old.cpsp"
|
||||||
responseStream << ( ServerConfig::g_versionString );
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
@ -158,84 +158,79 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "<div class=\"grd_container\">\n";
|
responseStream << "<div class=\"grd_container\">\n";
|
||||||
responseStream << "\t<h1>Transaktion dekodieren</h1>\n";
|
responseStream << "\t<h1>Transaktion dekodieren</h1>\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 72 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 72 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( getErrorsHtml() );
|
responseStream << ( getErrorsHtml() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t<form method=\"POST\">\n";
|
responseStream << "\t<form method=\"POST\">\n";
|
||||||
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
|
responseStream << "\t\t<fieldset class=\"grd_container_small\">\n";
|
||||||
responseStream << "\t\t\t<legend>Transaktion dekodieren</legend>\n";
|
responseStream << "\t\t\t<legend>Transaktion dekodieren</legend>\n";
|
||||||
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"transaction\">";
|
responseStream << "\t\t\t<textarea style=\"width:100%;height:100px\" name=\"transaction\">";
|
||||||
#line 76 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 76 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( !form.empty() ? form.get("transaction", "") : "" );
|
responseStream << ( !form.empty() ? form.get("transaction", "") : "" );
|
||||||
responseStream << "</textarea>\n";
|
responseStream << "</textarea>\n";
|
||||||
responseStream << "\t\t</fieldset>\n";
|
responseStream << "\t\t</fieldset>\n";
|
||||||
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Dekodieren\">\n";
|
responseStream << "\t\t<input class=\"grd-form-bn grd-form-bn-succeed\" type=\"submit\" name=\"submit\" value=\"Dekodieren\">\n";
|
||||||
responseStream << "\t</form>\n";
|
responseStream << "\t</form>\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 80 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 80 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
if(decoded) { responseStream << "\n";
|
if(decoded) { responseStream << "\n";
|
||||||
responseStream << "\t\t<p><b>Verwendungszweck:</b></p>\n";
|
responseStream << "\t\t<p><b>Verwendungszweck:</b></p>\n";
|
||||||
responseStream << "\t\t<p>";
|
responseStream << "\t\t<p>";
|
||||||
#line 82 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 82 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( transactionBody.memo() );
|
responseStream << ( transactionBody.memo() );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 83 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 83 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
if(transactionBody.has_transfer()) {
|
if(transactionBody.has_transfer()) {
|
||||||
auto transfer = transactionBody.transfer();
|
auto transfer = transactionBody.transfer();
|
||||||
|
char hex[65]; memset(hex, 0, 65);
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t<h3>Transfer</h3>\n";
|
responseStream << "\t\t\t";
|
||||||
responseStream << "\t\t<b>Sender</b>\n";
|
#line 87 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << "\t\t";
|
if(transfer.has_local()) {
|
||||||
#line 88 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
auto local_transfer = transfer.local();
|
||||||
for(int i = 0; i < transfer.senderamounts_size(); i++) {
|
auto sender_pubkey = local_transfer.sender().pubkey();
|
||||||
auto sender = transfer.senderamounts(i);
|
auto receiver_pubkey = local_transfer.receiver();
|
||||||
char hex[65]; memset(hex, 0, 65);
|
sodium_bin2hex(hex, 65, (const unsigned char*)sender_pubkey.data(), sender_pubkey.size());
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t<p>pubkey: ";
|
responseStream << "\t\t\t\t<h3>Local Transfer</h3>\n";
|
||||||
#line 93 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
responseStream << "\t\t\t\t<b>From: </b>";
|
||||||
|
#line 94 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( hex );
|
responseStream << ( hex );
|
||||||
responseStream << "</p>\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t<p>amount: ";
|
responseStream << "\t\t\t\t";
|
||||||
#line 94 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 95 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( TransactionBase::amountToString(sender.amount()) );
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver_pubkey.data(), receiver_pubkey.size()); responseStream << "\n";
|
||||||
responseStream << " GDD</p>\n";
|
responseStream << "\t\t\t\t<b>To: </b>";
|
||||||
responseStream << "\t\t";
|
#line 96 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
#line 95 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
|
||||||
} responseStream << "\n";
|
|
||||||
responseStream << "\t\t<b>Receiver</b>\n";
|
|
||||||
responseStream << "\t\t";
|
|
||||||
#line 97 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
|
||||||
for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
|
||||||
auto receiver = transfer.receiveramounts(i);
|
|
||||||
char hex[65]; memset(hex, 0, 65);
|
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
|
||||||
responseStream << "\n";
|
|
||||||
responseStream << "\t\t\t<p>pubkey: ";
|
|
||||||
#line 102 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
|
||||||
responseStream << ( hex );
|
responseStream << ( hex );
|
||||||
responseStream << "</p>\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t\t<p>amount: ";
|
responseStream << "\t\t\t\t<b>Amount: </b>";
|
||||||
#line 103 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 97 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( TransactionBase::amountToString(receiver.amount()) );
|
responseStream << ( TransactionBase::amountToString(local_transfer.sender().amount()) );
|
||||||
responseStream << " GDD</p>\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t\t";
|
||||||
#line 104 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 98 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
|
} else { responseStream << "\n";
|
||||||
|
responseStream << "\t\t\t\t<h3>- Not implemented yet (Group Transfer) -</h3>\n";
|
||||||
|
responseStream << "\t\t\t";
|
||||||
|
#line 100 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 105 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 102 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} else if(transactionBody.has_creation()) {
|
} else if(transactionBody.has_creation()) {
|
||||||
auto creation = transactionBody.creation();
|
auto creation = transactionBody.creation();
|
||||||
|
|
||||||
TransactionCreation creationObject("", creation);
|
TransactionCreation creationObject("", creation);
|
||||||
auto receiver = creation.receiveramount();
|
auto receiver = creation.receiveramount();
|
||||||
|
|
||||||
char hex[65]; memset(hex, 0, 65);
|
char hex[65]; memset(hex, 0, 65);
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.pubkey().data(), receiver.pubkey().size());
|
||||||
|
|
||||||
Poco::AutoPtr<controller::User> user = nullptr;
|
Poco::AutoPtr<controller::User> user = nullptr;
|
||||||
if(adminUser) {
|
if(adminUser) {
|
||||||
user = controller::User::create();
|
user = controller::User::create();
|
||||||
if(!user->load((const unsigned char*)receiver.ed25519_receiver_pubkey().data())) {
|
if(!user->load((const unsigned char*)receiver.pubkey().data())) {
|
||||||
user.assign(nullptr);
|
user.assign(nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -243,36 +238,36 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << "\t\t<h3>Creation</h3>\n";
|
responseStream << "\t\t<h3>Creation</h3>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 122 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 121 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
if(!adminUser || user.isNull() || !user->getModel()) { responseStream << "\n";
|
if(!adminUser || user.isNull() || !user->getModel()) { responseStream << "\n";
|
||||||
responseStream << "\t\t<p>pubkey: ";
|
responseStream << "\t\t<p>pubkey: ";
|
||||||
#line 123 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 122 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( hex );
|
responseStream << ( hex );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 124 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 123 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} else { responseStream << "\n";
|
} else { responseStream << "\n";
|
||||||
responseStream << "\t\t<p>user: </p>\n";
|
responseStream << "\t\t<p>user: </p>\n";
|
||||||
responseStream << "\t\t<p>";
|
responseStream << "\t\t<p>";
|
||||||
#line 126 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 125 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( user->getModel()->toHTMLString() );
|
responseStream << ( user->getModel()->toHTMLString() );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 127 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 126 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t\t<p>amount: ";
|
responseStream << "\t\t<p>amount: ";
|
||||||
#line 128 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 127 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( TransactionBase::amountToString(receiver.amount()) );
|
responseStream << ( TransactionBase::amountToString(receiver.amount()) );
|
||||||
responseStream << " GDD</p>\n";
|
responseStream << " GDD</p>\n";
|
||||||
responseStream << "\t\t<p>target date: ";
|
responseStream << "\t\t<p>target date: ";
|
||||||
#line 129 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 128 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
responseStream << ( creationObject.getTargetDateString() );
|
responseStream << ( creationObject.getTargetDateString() );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << "\t\t";
|
responseStream << "\t\t";
|
||||||
#line 130 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 129 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "\t";
|
responseStream << "\t";
|
||||||
#line 131 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\decodeTransaction.cpsp"
|
#line 130 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\decodeTransaction.cpsp"
|
||||||
} responseStream << "\n";
|
} responseStream << "\n";
|
||||||
responseStream << "</div>\n";
|
responseStream << "</div>\n";
|
||||||
// begin include footer.cpsp
|
// begin include footer.cpsp
|
||||||
@ -282,14 +277,14 @@ void DecodeTransactionPage::handleRequest(Poco::Net::HTTPServerRequest& request,
|
|||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <div class=\"bottomleft\">\n";
|
responseStream << " <div class=\"bottomleft\">\n";
|
||||||
responseStream << " ";
|
responseStream << " ";
|
||||||
#line 6 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
|
#line 6 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\footer.cpsp"
|
||||||
responseStream << ( mTimeProfiler.string() );
|
responseStream << ( mTimeProfiler.string() );
|
||||||
responseStream << "\n";
|
responseStream << "\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
responseStream << " <div class=\"bottomright\">\n";
|
responseStream << " <div class=\"bottomright\">\n";
|
||||||
responseStream << " <p>Login Server in Entwicklung</p>\n";
|
responseStream << " <p>Login Server in Entwicklung</p>\n";
|
||||||
responseStream << " <p>Alpha ";
|
responseStream << " <p>Alpha ";
|
||||||
#line 10 "F:\\Gradido\\gradido_login_server\\src\\cpsp\\footer.cpsp"
|
#line 10 "D:\\code\\gradido\\gradido_login_server_grpc\\src\\cpsp\\footer.cpsp"
|
||||||
responseStream << ( ServerConfig::g_versionString );
|
responseStream << ( ServerConfig::g_versionString );
|
||||||
responseStream << "</p>\n";
|
responseStream << "</p>\n";
|
||||||
responseStream << " </div>\n";
|
responseStream << " </div>\n";
|
||||||
|
|||||||
@ -1,72 +1,73 @@
|
|||||||
#include "TransactionCreation.h"
|
#include "TransactionCreation.h"
|
||||||
#include "Poco/DateTimeFormatter.h"
|
#include "Poco/DateTimeFormatter.h"
|
||||||
#include <sodium.h>
|
#include <sodium.h>
|
||||||
|
|
||||||
TransactionCreation::TransactionCreation(const std::string& memo, const model::messages::gradido::TransactionCreation& protoCreation)
|
//TransactionCreation::TransactionCreation(const std::string& memo, const model::messages::gradido::TransactionCreation& protoCreation)
|
||||||
: TransactionBase(memo), mProtoCreation(protoCreation), mReceiverUser(nullptr)
|
TransactionCreation::TransactionCreation(const std::string& memo, const proto::gradido::GradidoCreation& protoCreation)
|
||||||
{
|
: TransactionBase(memo), mProtoCreation(protoCreation), mReceiverUser(nullptr)
|
||||||
memset(mReceiverPublicHex, 0, 65);
|
{
|
||||||
}
|
memset(mReceiverPublicHex, 0, 65);
|
||||||
|
}
|
||||||
TransactionCreation::~TransactionCreation()
|
|
||||||
{
|
TransactionCreation::~TransactionCreation()
|
||||||
if (mReceiverUser) {
|
{
|
||||||
delete mReceiverUser;
|
if (mReceiverUser) {
|
||||||
mReceiverUser = nullptr;
|
delete mReceiverUser;
|
||||||
}
|
mReceiverUser = nullptr;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
int TransactionCreation::prepare()
|
|
||||||
{
|
int TransactionCreation::prepare()
|
||||||
const static char functionName[] = { "TransactionCreation::prepare" };
|
{
|
||||||
if (!mProtoCreation.has_receiveramount()) {
|
const static char functionName[] = { "TransactionCreation::prepare" };
|
||||||
addError(new Error(functionName, "hasn't receiver amount"));
|
if (!mProtoCreation.has_receiveramount()) {
|
||||||
return -1;
|
addError(new Error(functionName, "hasn't receiver amount"));
|
||||||
}
|
return -1;
|
||||||
auto receiverAmount = mProtoCreation.receiveramount();
|
}
|
||||||
|
auto receiverAmount = mProtoCreation.receiveramount();
|
||||||
if (receiverAmount.amount() <= 0) {
|
|
||||||
addError(new Error(functionName, "amount must be > 0"));
|
if (receiverAmount.amount() <= 0) {
|
||||||
return -4;
|
addError(new Error(functionName, "amount must be > 0"));
|
||||||
}
|
return -4;
|
||||||
if (receiverAmount.amount() > 10000000) {
|
}
|
||||||
addError(new Error(functionName, "amount must be <= 1000 GDD"));
|
if (receiverAmount.amount() > 10000000) {
|
||||||
return -5;
|
addError(new Error(functionName, "amount must be <= 1000 GDD"));
|
||||||
}
|
return -5;
|
||||||
|
}
|
||||||
auto receiverPublic = receiverAmount.ed25519_receiver_pubkey();
|
|
||||||
if (receiverPublic.size() != 32) {
|
auto receiverPublic = receiverAmount.ed25519_receiver_pubkey();
|
||||||
addError(new Error(functionName, "receiver public invalid (size not 32)"));
|
if (receiverPublic.size() != 32) {
|
||||||
return -2;
|
addError(new Error(functionName, "receiver public invalid (size not 32)"));
|
||||||
}
|
return -2;
|
||||||
mReceiverUser = new User((const unsigned char*)receiverPublic.data());
|
}
|
||||||
getErrors(mReceiverUser);
|
mReceiverUser = new User((const unsigned char*)receiverPublic.data());
|
||||||
if (mReceiverUser->getUserState() == USER_EMPTY) {
|
getErrors(mReceiverUser);
|
||||||
sodium_bin2hex(mReceiverPublicHex, 65, (const unsigned char*)receiverPublic.data(), receiverPublic.size());
|
if (mReceiverUser->getUserState() == USER_EMPTY) {
|
||||||
delete mReceiverUser;
|
sodium_bin2hex(mReceiverPublicHex, 65, (const unsigned char*)receiverPublic.data(), receiverPublic.size());
|
||||||
mReceiverUser = nullptr;
|
delete mReceiverUser;
|
||||||
}
|
mReceiverUser = nullptr;
|
||||||
else {
|
}
|
||||||
memcpy(mReceiverPublicHex, mReceiverUser->getPublicKeyHex().data(), 64);
|
else {
|
||||||
// uncomment because not correctly working
|
memcpy(mReceiverPublicHex, mReceiverUser->getPublicKeyHex().data(), 64);
|
||||||
/*if (!mReceiverUser->validateIdentHash(mProtoCreation.ident_hash())) {
|
// uncomment because not correctly working
|
||||||
addError(new Error(functionName, "ident hash isn't the same"));
|
/*if (!mReceiverUser->validateIdentHash(mProtoCreation.ident_hash())) {
|
||||||
addError(new ParamError(functionName, "hash calculated from email: ", mReceiverUser->getEmail()));
|
addError(new Error(functionName, "ident hash isn't the same"));
|
||||||
addError(new ParamError(functionName, "hash: ", std::to_string(mProtoCreation.ident_hash())));
|
addError(new ParamError(functionName, "hash calculated from email: ", mReceiverUser->getEmail()));
|
||||||
return -3;
|
addError(new ParamError(functionName, "hash: ", std::to_string(mProtoCreation.ident_hash())));
|
||||||
}*/
|
return -3;
|
||||||
}
|
}*/
|
||||||
//
|
}
|
||||||
|
//
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
return 0;
|
||||||
|
}
|
||||||
std::string TransactionCreation::getTargetDateString()
|
|
||||||
{
|
std::string TransactionCreation::getTargetDateString()
|
||||||
// proto format is seconds, poco timestamp format is microseconds
|
{
|
||||||
Poco::Timestamp pocoStamp(mProtoCreation.target_date().seconds() * 1000*1000);
|
// proto format is seconds, poco timestamp format is microseconds
|
||||||
//Poco::DateTime(pocoStamp);
|
Poco::Timestamp pocoStamp(mProtoCreation.target_date().seconds() * 1000*1000);
|
||||||
return Poco::DateTimeFormatter::format(pocoStamp, "%d. %b %y");
|
//Poco::DateTime(pocoStamp);
|
||||||
}
|
return Poco::DateTimeFormatter::format(pocoStamp, "%d. %b %y");
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@ -12,26 +12,26 @@
|
|||||||
#pragma warning(disable:4800)
|
#pragma warning(disable:4800)
|
||||||
|
|
||||||
#include "TransactionBase.h"
|
#include "TransactionBase.h"
|
||||||
#include "../proto/gradido/TransactionCreation.pb.h"
|
#include "../proto/gradido/GradidoCreation.pb.h"
|
||||||
#include "User.h"
|
#include "User.h"
|
||||||
|
|
||||||
class TransactionCreation : public TransactionBase
|
class TransactionCreation : public TransactionBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TransactionCreation(const std::string& memo, const model::messages::gradido::TransactionCreation& protoCreation);
|
TransactionCreation(const std::string& memo, const proto::gradido::GradidoCreation& protoCreation);
|
||||||
~TransactionCreation();
|
~TransactionCreation();
|
||||||
|
|
||||||
int prepare();
|
int prepare();
|
||||||
|
|
||||||
inline User* getUser() { return mReceiverUser; }
|
inline User* getUser() { return mReceiverUser; }
|
||||||
inline google::protobuf::int64 getAmount() { return mProtoCreation.receiveramount().amount(); }
|
inline google::protobuf::int64 getAmount() { return mProtoCreation.receiver().amount(); }
|
||||||
inline char* getPublicHex() { return mReceiverPublicHex; }
|
inline char* getPublicHex() { return mReceiverPublicHex; }
|
||||||
|
|
||||||
inline std::string getAmountString() { return amountToString(getAmount()); }
|
inline std::string getAmountString() { return amountToString(getAmount()); }
|
||||||
std::string getTargetDateString();
|
std::string getTargetDateString();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
const model::messages::gradido::TransactionCreation& mProtoCreation;
|
const proto::gradido::GradidoCreation& mProtoCreation;
|
||||||
char mReceiverPublicHex[65];
|
char mReceiverPublicHex[65];
|
||||||
User* mReceiverUser;
|
User* mReceiverUser;
|
||||||
};
|
};
|
||||||
|
|||||||
@ -1,172 +1,203 @@
|
|||||||
#include "TransactionTransfer.h"
|
#include "TransactionTransfer.h"
|
||||||
|
|
||||||
const std::string TransactionTransfer::mInvalidIndexMessage("invalid index");
|
const std::string TransactionTransfer::mInvalidIndexMessage("invalid index");
|
||||||
|
|
||||||
TransactionTransfer::KontoTableEntry::KontoTableEntry(model::table::User* user, google::protobuf::int64 amount, bool negativeAmount/* = false*/)
|
TransactionTransfer::KontoTableEntry::KontoTableEntry(model::table::User* user, google::protobuf::int64 amount, bool negativeAmount/* = false*/)
|
||||||
{
|
{
|
||||||
//<span class="content-cell">Normaler User <info@software-labor.de></span>
|
//<span class="content-cell">Normaler User <info@software-labor.de></span>
|
||||||
if (!user) return;
|
if (!user) return;
|
||||||
|
|
||||||
composeAmountCellString(amount, negativeAmount);
|
composeAmountCellString(amount, negativeAmount);
|
||||||
|
|
||||||
/*kontoNameCell = "<td>";
|
/*kontoNameCell = "<td>";
|
||||||
kontoNameCell += user->getFirstName();
|
kontoNameCell += user->getFirstName();
|
||||||
kontoNameCell += " ";
|
kontoNameCell += " ";
|
||||||
kontoNameCell += user->getLastName();
|
kontoNameCell += user->getLastName();
|
||||||
kontoNameCell += " <";
|
kontoNameCell += " <";
|
||||||
kontoNameCell += user->getEmail();
|
kontoNameCell += user->getEmail();
|
||||||
kontoNameCell += "></td>";*/
|
kontoNameCell += "></td>";*/
|
||||||
kontoNameCell = "<span class=\"content-cell\">";
|
kontoNameCell = "<span class=\"content-cell\">";
|
||||||
kontoNameCell += user->getNameWithEmailHtml();
|
kontoNameCell += user->getNameWithEmailHtml();
|
||||||
kontoNameCell += "</span>";
|
kontoNameCell += "</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
TransactionTransfer::KontoTableEntry::KontoTableEntry(const std::string& pubkeyHex, google::protobuf::int64 amount, bool negativeAmount/* = false*/)
|
TransactionTransfer::KontoTableEntry::KontoTableEntry(const std::string& pubkeyHex, google::protobuf::int64 amount, bool negativeAmount/* = false*/)
|
||||||
{
|
{
|
||||||
composeAmountCellString(amount, negativeAmount);
|
composeAmountCellString(amount, negativeAmount);
|
||||||
//kontoNameCell = "<td class=\"small\">0x" + pubkeyHex + "</td>";
|
//kontoNameCell = "<td class=\"small\">0x" + pubkeyHex + "</td>";
|
||||||
kontoNameCell = "<span class = \"content-cell\">" + pubkeyHex + "</span>";
|
kontoNameCell = "<span class = \"content-cell\">" + pubkeyHex + "</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransactionTransfer::KontoTableEntry::composeAmountCellString(google::protobuf::int64 amount, bool negativeAmount)
|
void TransactionTransfer::KontoTableEntry::composeAmountCellString(google::protobuf::int64 amount, bool negativeAmount)
|
||||||
{
|
{
|
||||||
//<span class="content-cell alert-color">-10 GDD</span>
|
//<span class="content-cell alert-color">-10 GDD</span>
|
||||||
//<span class="content-cell success-color">10 GDD</span>
|
//<span class="content-cell success-color">10 GDD</span>
|
||||||
amountCell = "<span class=\"content-cell ";
|
amountCell = "<span class=\"content-cell ";
|
||||||
if (negativeAmount) {
|
if (negativeAmount) {
|
||||||
amountCell += "alert-color\">-";
|
amountCell += "alert-color\">-";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
amountCell += "success-color\">";
|
amountCell += "success-color\">";
|
||||||
}
|
}
|
||||||
amountCell += amountToString(amount);
|
amountCell += amountToString(amount);
|
||||||
//amountCell += " GDD</td>";
|
//amountCell += " GDD</td>";
|
||||||
amountCell += " GDD</span>";
|
amountCell += " GDD</span>";
|
||||||
}
|
}
|
||||||
|
|
||||||
// ********************************************************************************************************************************
|
// ********************************************************************************************************************************
|
||||||
|
|
||||||
TransactionTransfer::TransactionTransfer(const std::string& memo, const model::messages::gradido::Transfer& protoTransfer)
|
//TransactionTransfer::TransactionTransfer(const std::string& memo, const model::messages::gradido::Transfer& protoTransfer)
|
||||||
: TransactionBase(memo), mProtoTransfer(protoTransfer)
|
TransactionTransfer::TransactionTransfer(const std::string& memo, const proto::gradido::GradidoTransfer& protoTransfer)
|
||||||
{
|
: TransactionBase(memo), mProtoTransfer(protoTransfer)
|
||||||
|
{
|
||||||
}
|
|
||||||
|
}
|
||||||
TransactionTransfer::~TransactionTransfer()
|
|
||||||
{
|
TransactionTransfer::~TransactionTransfer()
|
||||||
mKontoTable.clear();
|
{
|
||||||
}
|
mKontoTable.clear();
|
||||||
|
}
|
||||||
int TransactionTransfer::prepare()
|
|
||||||
{
|
int TransactionTransfer::prepare()
|
||||||
lock();
|
{
|
||||||
const static char functionName[] = { "TransactionTransfer::prepare" };
|
lock();
|
||||||
if (mProtoTransfer.senderamounts_size() == 0) {
|
const static char functionName[] = { "TransactionTransfer::prepare" };
|
||||||
addError(new Error(functionName, "hasn't sender amount(s)"));
|
if (mProtoTransfer.senderamounts_size() == 0) {
|
||||||
unlock();
|
addError(new Error(functionName, "hasn't sender amount(s)"));
|
||||||
return -1;
|
unlock();
|
||||||
}
|
return -1;
|
||||||
if (mProtoTransfer.receiveramounts_size() == 0) {
|
}
|
||||||
addError(new Error(functionName, "hasn't receiver amount(s)"));
|
if (mProtoTransfer.receiveramounts_size() == 0) {
|
||||||
unlock();
|
addError(new Error(functionName, "hasn't receiver amount(s)"));
|
||||||
return -2;
|
unlock();
|
||||||
}
|
return -2;
|
||||||
mKontoTable.reserve(mProtoTransfer.senderamounts_size() + mProtoTransfer.receiveramounts_size());
|
}
|
||||||
|
mKontoTable.reserve(mProtoTransfer.senderamounts_size() + mProtoTransfer.receiveramounts_size());
|
||||||
//auto receiverAmount = mProtoTransfer.receiveramount();
|
|
||||||
//auto senderAmount
|
//auto receiverAmount = mProtoTransfer.receiveramount();
|
||||||
int senderSum = 0;
|
//auto senderAmount
|
||||||
int receiverSum = 0;
|
int senderSum = 0;
|
||||||
|
int receiverSum = 0;
|
||||||
char pubkeyHexTemp[65];
|
|
||||||
|
char pubkeyHexTemp[65];
|
||||||
for (int i = 0; i < mProtoTransfer.senderamounts_size(); i++) {
|
|
||||||
auto senderAmount = mProtoTransfer.senderamounts(i);
|
/*
|
||||||
auto pubkey = senderAmount.ed25519_sender_pubkey();
|
if (mProtoTransfer.has_local())
|
||||||
senderSum += senderAmount.amount();
|
{
|
||||||
if (pubkey.size() != 32) {
|
auto local_transfer = mProtoTransfer.local();
|
||||||
addError(new ParamError(functionName, "invalid public key for sender ", i));
|
auto sender = local_transfer.sender();
|
||||||
unlock();
|
auto sender_pubkey = sender.pubkey();
|
||||||
return -3;
|
auto receiver_pubkey = local_transfer.receiver();
|
||||||
}
|
auto amount = sender.amount();
|
||||||
//User user((const unsigned char*)pubkey.data());
|
auto sender_user = controller::User::create();
|
||||||
auto user = controller::User::create();
|
auto receiver_user = controller::User::create();
|
||||||
if (!user->load((const unsigned char*)pubkey.data())) {
|
|
||||||
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)pubkey.data(), pubkey.size());
|
if (!sender_user->load((const unsigned char*)sender_pubkey.data())) {
|
||||||
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, senderAmount.amount(), true));
|
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)sender_pubkey.data(), sender_pubkey.size());
|
||||||
}
|
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, -amount, true));
|
||||||
else {
|
}
|
||||||
mKontoTable.push_back(KontoTableEntry(user->getModel(), senderAmount.amount(), true));
|
else {
|
||||||
}
|
mKontoTable.push_back(KontoTableEntry(sender_user->getModel(), -amount, true));
|
||||||
}
|
}
|
||||||
for (int i = 0; i < mProtoTransfer.receiveramounts_size(); i++) {
|
|
||||||
auto receiverAmount = mProtoTransfer.receiveramounts(i);
|
if (!receiver_user->load((const unsigned char*)receiver_pubkey.data())) {
|
||||||
auto pubkey = receiverAmount.ed25519_receiver_pubkey();
|
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)receiver_pubkey.data(), receiver_pubkey.size());
|
||||||
receiverSum += receiverAmount.amount();
|
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, amount, true));
|
||||||
if (receiverAmount.ed25519_receiver_pubkey().size() != 32) {
|
}
|
||||||
addError(new ParamError(functionName, "invalid public key for receiver ", i));
|
else {
|
||||||
unlock();
|
mKontoTable.push_back(KontoTableEntry(sender_user->getModel(), amount, true));
|
||||||
return -4;
|
}
|
||||||
}
|
}
|
||||||
auto user = controller::User::create();
|
*/
|
||||||
if (!user->load((const unsigned char*)pubkey.data())) {
|
for (int i = 0; i < mProtoTransfer.senderamounts_size(); i++) {
|
||||||
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)pubkey.data(), pubkey.size());
|
auto senderAmount = mProtoTransfer.senderamounts(i);
|
||||||
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, receiverAmount.amount(), false));
|
auto pubkey = senderAmount.ed25519_sender_pubkey();
|
||||||
}
|
senderSum += senderAmount.amount();
|
||||||
else {
|
if (pubkey.size() != 32) {
|
||||||
mKontoTable.push_back(KontoTableEntry(user->getModel(), receiverAmount.amount(), false));
|
addError(new ParamError(functionName, "invalid public key for sender ", i));
|
||||||
}
|
unlock();
|
||||||
}
|
return -3;
|
||||||
if (senderSum != receiverSum) {
|
}
|
||||||
addError(new Error(functionName, "sender amounts sum != receiver amounts sum"));
|
//User user((const unsigned char*)pubkey.data());
|
||||||
unlock();
|
auto user = controller::User::create();
|
||||||
return -5;
|
if (!user->load((const unsigned char*)pubkey.data())) {
|
||||||
}
|
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)pubkey.data(), pubkey.size());
|
||||||
if (senderSum < 0) {
|
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, senderAmount.amount(), true));
|
||||||
addError(new Error(functionName, "negative amount not supported"));
|
}
|
||||||
unlock();
|
else {
|
||||||
return -6;
|
mKontoTable.push_back(KontoTableEntry(user->getModel(), senderAmount.amount(), true));
|
||||||
}
|
}
|
||||||
|
}
|
||||||
/*
|
for (int i = 0; i < mProtoTransfer.receiveramounts_size(); i++) {
|
||||||
mReceiverUser = new User(receiverPublic.data());
|
auto receiverAmount = mProtoTransfer.receiveramounts(i);
|
||||||
getErrors(mReceiverUser);
|
auto pubkey = receiverAmount.ed25519_receiver_pubkey();
|
||||||
if (mReceiverUser->getUserState() == USER_EMPTY) {
|
receiverSum += receiverAmount.amount();
|
||||||
sodium_bin2hex(mReceiverPublicHex, 65, (const unsigned char*)receiverPublic.data(), receiverPublic.size());
|
if (receiverAmount.ed25519_receiver_pubkey().size() != 32) {
|
||||||
delete mReceiverUser;
|
addError(new ParamError(functionName, "invalid public key for receiver ", i));
|
||||||
mReceiverUser = nullptr;
|
unlock();
|
||||||
}
|
return -4;
|
||||||
else {
|
}
|
||||||
memcpy(mReceiverPublicHex, mReceiverUser->getPublicKeyHex().data(), 64);
|
auto user = controller::User::create();
|
||||||
}
|
if (!user->load((const unsigned char*)pubkey.data())) {
|
||||||
//*/
|
sodium_bin2hex(pubkeyHexTemp, 65, (const unsigned char*)pubkey.data(), pubkey.size());
|
||||||
|
mKontoTable.push_back(KontoTableEntry(pubkeyHexTemp, receiverAmount.amount(), false));
|
||||||
unlock();
|
}
|
||||||
return 0;
|
else {
|
||||||
}
|
mKontoTable.push_back(KontoTableEntry(user->getModel(), receiverAmount.amount(), false));
|
||||||
|
}
|
||||||
const std::string& TransactionTransfer::getKontoNameCell(int index)
|
}
|
||||||
{
|
if (senderSum != receiverSum) {
|
||||||
|
addError(new Error(functionName, "sender amounts sum != receiver amounts sum"));
|
||||||
lock();
|
unlock();
|
||||||
if (index >= mKontoTable.size()) {
|
return -5;
|
||||||
unlock();
|
}
|
||||||
return mInvalidIndexMessage;
|
if (senderSum < 0) {
|
||||||
}
|
addError(new Error(functionName, "negative amount not supported"));
|
||||||
unlock();
|
unlock();
|
||||||
|
return -6;
|
||||||
return mKontoTable[index].kontoNameCell;
|
}
|
||||||
}
|
|
||||||
|
|
||||||
const std::string& TransactionTransfer::getAmountCell(int index)
|
/*
|
||||||
{
|
mReceiverUser = new User(receiverPublic.data());
|
||||||
lock();
|
getErrors(mReceiverUser);
|
||||||
if (index >= mKontoTable.size()) {
|
if (mReceiverUser->getUserState() == USER_EMPTY) {
|
||||||
unlock();
|
sodium_bin2hex(mReceiverPublicHex, 65, (const unsigned char*)receiverPublic.data(), receiverPublic.size());
|
||||||
return mInvalidIndexMessage;
|
delete mReceiverUser;
|
||||||
}
|
mReceiverUser = nullptr;
|
||||||
unlock();
|
}
|
||||||
|
else {
|
||||||
return mKontoTable[index].amountCell;
|
memcpy(mReceiverPublicHex, mReceiverUser->getPublicKeyHex().data(), 64);
|
||||||
}
|
}
|
||||||
|
//*/
|
||||||
|
|
||||||
|
unlock();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& TransactionTransfer::getKontoNameCell(int index)
|
||||||
|
{
|
||||||
|
|
||||||
|
lock();
|
||||||
|
if (index >= mKontoTable.size()) {
|
||||||
|
unlock();
|
||||||
|
return mInvalidIndexMessage;
|
||||||
|
}
|
||||||
|
unlock();
|
||||||
|
|
||||||
|
return mKontoTable[index].kontoNameCell;
|
||||||
|
}
|
||||||
|
|
||||||
|
const std::string& TransactionTransfer::getAmountCell(int index)
|
||||||
|
{
|
||||||
|
lock();
|
||||||
|
if (index >= mKontoTable.size()) {
|
||||||
|
unlock();
|
||||||
|
return mInvalidIndexMessage;
|
||||||
|
}
|
||||||
|
unlock();
|
||||||
|
|
||||||
|
return mKontoTable[index].amountCell;
|
||||||
|
}
|
||||||
|
|
||||||
|
>>>>>>> 1e4ae4a (update proto files matching with pauls proto version, update code which use them)
|
||||||
|
|||||||
@ -12,14 +12,14 @@
|
|||||||
#pragma warning(disable:4800)
|
#pragma warning(disable:4800)
|
||||||
|
|
||||||
#include "TransactionBase.h"
|
#include "TransactionBase.h"
|
||||||
#include "../proto/gradido/Transfer.pb.h"
|
#include "../proto/gradido/GradidoTransfer.pb.h"
|
||||||
|
|
||||||
#include "../controller/User.h"
|
#include "../controller/User.h"
|
||||||
|
|
||||||
class TransactionTransfer : public TransactionBase
|
class TransactionTransfer : public TransactionBase
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
TransactionTransfer(const std::string& memo, const model::messages::gradido::Transfer& protoTransfer);
|
TransactionTransfer(const std::string& memo, const proto::gradido::GradidoTransfer& protoTransfer);
|
||||||
~TransactionTransfer();
|
~TransactionTransfer();
|
||||||
|
|
||||||
int prepare();
|
int prepare();
|
||||||
@ -44,7 +44,7 @@ protected:
|
|||||||
void composeAmountCellString(google::protobuf::int64 amount, bool negativeAmount);
|
void composeAmountCellString(google::protobuf::int64 amount, bool negativeAmount);
|
||||||
};
|
};
|
||||||
|
|
||||||
const model::messages::gradido::Transfer& mProtoTransfer;
|
const proto::gradido::GradidoTransfer& mProtoTransfer;
|
||||||
std::vector<KontoTableEntry> mKontoTable;
|
std::vector<KontoTableEntry> mKontoTable;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@ -63,7 +63,7 @@ protected:
|
|||||||
TransactionType mType;
|
TransactionType mType;
|
||||||
std::string mProtoMessageBase64;
|
std::string mProtoMessageBase64;
|
||||||
|
|
||||||
model::messages::gradido::TransactionBody mTransactionBody;
|
proto::gradido::TransactionBody mTransactionBody;
|
||||||
TransactionBase* mTransactionSpecific;
|
TransactionBase* mTransactionSpecific;
|
||||||
|
|
||||||
HASH mHash;
|
HASH mHash;
|
||||||
|
|||||||
@ -11,8 +11,6 @@
|
|||||||
|
|
||||||
#include "../lib/Profiler.h"
|
#include "../lib/Profiler.h"
|
||||||
|
|
||||||
#include "../proto/gradido/Transaction.pb.h"
|
|
||||||
|
|
||||||
#include "sodium.h"
|
#include "sodium.h"
|
||||||
|
|
||||||
#include "../ServerConfig.h"
|
#include "../ServerConfig.h"
|
||||||
@ -99,8 +97,8 @@ int SigningTransaction::run() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
// get body bytes
|
// get body bytes
|
||||||
model::messages::gradido::Transaction transaction;
|
proto::gradido::GradidoTransaction transaction;
|
||||||
auto bodyBytes = transaction.mutable_bodybytes();
|
auto bodyBytes = transaction.mutable_body_bytes();
|
||||||
*bodyBytes = mProcessingeTransaction->getBodyBytes();
|
*bodyBytes = mProcessingeTransaction->getBodyBytes();
|
||||||
if (*bodyBytes == "") {
|
if (*bodyBytes == "") {
|
||||||
getErrors(mProcessingeTransaction);
|
getErrors(mProcessingeTransaction);
|
||||||
@ -135,7 +133,7 @@ int SigningTransaction::run() {
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
// add to message
|
// add to message
|
||||||
auto sigMap = transaction.mutable_sigmap();
|
auto sigMap = transaction.mutable_sig_map();
|
||||||
auto sigPair = sigMap->add_sigpair();
|
auto sigPair = sigMap->add_sigpair();
|
||||||
|
|
||||||
auto pubkeyBytes = sigPair->mutable_pubkey();
|
auto pubkeyBytes = sigPair->mutable_pubkey();
|
||||||
@ -150,7 +148,7 @@ int SigningTransaction::run() {
|
|||||||
/*std::string protoPrettyPrint;
|
/*std::string protoPrettyPrint;
|
||||||
google::protobuf::TextFormat::PrintToString(transaction, &protoPrettyPrint);
|
google::protobuf::TextFormat::PrintToString(transaction, &protoPrettyPrint);
|
||||||
printf("transaction pretty: %s\n", protoPrettyPrint.data());
|
printf("transaction pretty: %s\n", protoPrettyPrint.data());
|
||||||
model::messages::gradido::TransactionBody transactionBody;
|
proto::gradido::TransactionBody transactionBody;
|
||||||
transactionBody.MergeFromString(transaction.bodybytes());
|
transactionBody.MergeFromString(transaction.bodybytes());
|
||||||
google::protobuf::TextFormat::PrintToString(transactionBody, &protoPrettyPrint);
|
google::protobuf::TextFormat::PrintToString(transactionBody, &protoPrettyPrint);
|
||||||
printf("transaction body pretty: \n%s\n", protoPrettyPrint.data());
|
printf("transaction body pretty: \n%s\n", protoPrettyPrint.data());
|
||||||
|
|||||||
@ -8,7 +8,7 @@
|
|||||||
#include "../model/User.h"
|
#include "../model/User.h"
|
||||||
#include "../controller/User.h"
|
#include "../controller/User.h"
|
||||||
|
|
||||||
#include "../proto/gradido/Transaction.pb.h"
|
#include "../proto/gradido/GradidoTransaction.pb.h"
|
||||||
|
|
||||||
#include "ProcessingTransaction.h"
|
#include "ProcessingTransaction.h"
|
||||||
|
|
||||||
|
|||||||
@ -13,7 +13,7 @@
|
|||||||
%>
|
%>
|
||||||
<%%
|
<%%
|
||||||
const char* pageName = "Decode Transaction";
|
const char* pageName = "Decode Transaction";
|
||||||
model::messages::gradido::TransactionBody transactionBody;
|
proto::gradido::TransactionBody transactionBody;
|
||||||
bool decoded = false;
|
bool decoded = false;
|
||||||
bool adminUser = false;
|
bool adminUser = false;
|
||||||
if(mSession && mSession->getNewUser()) {
|
if(mSession && mSession->getNewUser()) {
|
||||||
@ -82,37 +82,36 @@
|
|||||||
<p><%= transactionBody.memo() %></p>
|
<p><%= transactionBody.memo() %></p>
|
||||||
<% if(transactionBody.has_transfer()) {
|
<% if(transactionBody.has_transfer()) {
|
||||||
auto transfer = transactionBody.transfer();
|
auto transfer = transactionBody.transfer();
|
||||||
|
char hex[65]; memset(hex, 0, 65);
|
||||||
%>
|
%>
|
||||||
<h3>Transfer</h3>
|
<% if(transfer.has_local()) {
|
||||||
<b>Sender</b>
|
auto local_transfer = transfer.local();
|
||||||
<% for(int i = 0; i < transfer.senderamounts_size(); i++) {
|
auto sender_pubkey = local_transfer.sender().pubkey();
|
||||||
auto sender = transfer.senderamounts(i);
|
auto receiver_pubkey = local_transfer.receiver();
|
||||||
char hex[65]; memset(hex, 0, 65);
|
sodium_bin2hex(hex, 65, (const unsigned char*)sender_pubkey.data(), sender_pubkey.size());
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)sender.ed25519_sender_pubkey().data(), sender.ed25519_sender_pubkey().size());
|
|
||||||
%>
|
%>
|
||||||
<p>pubkey: <%= hex %></p>
|
<h3>Local Transfer</h3>
|
||||||
<p>amount: <%= TransactionBase::amountToString(sender.amount()) %> GDD</p>
|
<b>From: </b><%= hex %>
|
||||||
<% } %>
|
<% sodium_bin2hex(hex, 65, (const unsigned char*)receiver_pubkey.data(), receiver_pubkey.size()); %>
|
||||||
<b>Receiver</b>
|
<b>To: </b><%= hex %>
|
||||||
<% for(int i = 0; i < transfer.receiveramounts_size(); i++) {
|
<b>Amount: </b><%= TransactionBase::amountToString(local_transfer.sender().amount()) %>
|
||||||
auto receiver = transfer.receiveramounts(i);
|
<% } else { %>
|
||||||
char hex[65]; memset(hex, 0, 65);
|
<h3>- Not implemented yet (Group Transfer) -</h3>
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
<% } %>
|
||||||
%>
|
|
||||||
<p>pubkey: <%= hex %></p>
|
|
||||||
<p>amount: <%= TransactionBase::amountToString(receiver.amount()) %> GDD</p>
|
|
||||||
<% } %>
|
|
||||||
<% } else if(transactionBody.has_creation()) {
|
<% } else if(transactionBody.has_creation()) {
|
||||||
auto creation = transactionBody.creation();
|
auto creation = transactionBody.creation();
|
||||||
|
|
||||||
TransactionCreation creationObject("", creation);
|
TransactionCreation creationObject("", creation);
|
||||||
auto receiver = creation.receiveramount();
|
auto receiver = creation.receiveramount();
|
||||||
|
|
||||||
char hex[65]; memset(hex, 0, 65);
|
char hex[65]; memset(hex, 0, 65);
|
||||||
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.ed25519_receiver_pubkey().data(), receiver.ed25519_receiver_pubkey().size());
|
sodium_bin2hex(hex, 65, (const unsigned char*)receiver.pubkey().data(), receiver.pubkey().size());
|
||||||
|
|
||||||
Poco::AutoPtr<controller::User> user = nullptr;
|
Poco::AutoPtr<controller::User> user = nullptr;
|
||||||
if(adminUser) {
|
if(adminUser) {
|
||||||
user = controller::User::create();
|
user = controller::User::create();
|
||||||
if(!user->load((const unsigned char*)receiver.ed25519_receiver_pubkey().data())) {
|
if(!user->load((const unsigned char*)receiver.pubkey().data())) {
|
||||||
user.assign(nullptr);
|
user.assign(nullptr);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user