blob: 609e37ad0462bc7d0e3e77f8c681a0d439f83959 [file] [log] [blame]
/*
* FOR TESTING PURPOSES
*
* Delete when c validation is completed and integrated with kv server
*/
#include "c_validator.h"
#include "sdk_transaction_manager.h"
#include <iostream>
#include <openssl/bytestring.h>
int main(int argc, char** argv) {
CValidator cval;
std::string fulfillment = argc < 2 ? "pGSAIB4t58gi0CHneoXjs358ykJTwUWGZkWkBo7DLZV64c2KgUDoeWkz2-KrjDXh5ulHa2t-WiF5TT4RnBhqrcXJulJ135i_ipXmtJkLUrsGy884eRNb2_LE8RU2CMtRe4J-3IYM"
: std::string(argv[1]);
std::string decoded_fulfillment = cval.CCFulfill(fulfillment);
// DER decode
uint8_t bytes[decoded_fulfillment.length()];
std::memcpy(bytes, decoded_fulfillment.data(), decoded_fulfillment.length());
std::cout<< "\nDER Decoding\n";
std::unique_ptr<std::vector<std::string>> der_decode_result = cval.DERDecode(decoded_fulfillment);
if (der_decode_result == nullptr) exit(1);
std::string public_key = der_decode_result->at(0);
std::string signature = der_decode_result->at(1);
cval.printHex(public_key);
cval.ConstructURI(public_key, signature);
/* // std::string tx = "{\"inputs\":[{\"owners_before\":[\"C1CECot9umaqYvCjpt31GiKpYmsaGWQDdnHJjCv8yQiS\"],\"fulfills\":{\"transaction_id\":\"123415ca19849d95571e0d828102365f24bd322a54d6701e477d32a5bd009c6f\",\"output_index\":0},\"fulfillment\":\"pGSAIKN9QFdMwU21tgN2hzUd8pi75C8EsQ6LjnMjLssTKgivgUAmOHl2O1vsWN_bvPjoofVWyHf1p_thSJIUNCkfNStc748Rz37tMPT8NouEgjIvwgXpM1zOvA3TmzdoCjpaNm0N\"}]}";
std::string tx = "{ \"inputs\":[ { \"owners_before\":[ \"C1CECot9umaqYvCjpt31GiKpYmsaGWQDdnHJjCv8yQiS\" ], \"fulfills\":{ \"transaction_id\":\"123415ca19849d95571e0d828102365f24bd322a54d6701e477d32a5bd009c6f\", \"output_index\":0 }, \"fulfillment\":\"pGSAIKN9QFdMwU21tgN2hzUd8pi75C8EsQ6LjnMjLssTKgivgUAmOHl2O1vsWN_bvPjoofVWyHf1p_thSJIUNCkfNStc748Rz37tMPT8NouEgjIvwgXpM1zOvA3TmzdoCjpaNm0N\" } ], \"outputs\":[ { \"public_keys\":[ \"DeVmcDk2G9TDYUtuLsozEWs9eCNRfbgfxaCntdKYKxXE\" ], \"condition\":{ \"details\":{ \"type\":\"ed25519-sha-256\", \"public_key\":\"DeVmcDk2G9TDYUtuLsozEWs9eCNRfbgfxaCntdKYKxXE\" }, \"uri\":\"ni:///sha-256;koZKY5-hToyQh-71lMhRS4WdYKFyNagSXEeBKxbuZpM?fpt=ed25519-sha-256&cost=131072\" }, \"amount\":\"1\" } ], \"operation\":\"TRANSFER\", \"metadata\":null, \"asset\":{ \"id\":\"123415ca19849d95571e0d828102365f24bd322a54d6701e477d32a5bd009c6f\" }, \"version\":\"2.0\", \"id\":\"780b0c416519aac2137c143ed1929b8783c99df001d3660a4b29508fad58443b\" }";
std::string tx2 = "{ \"inputs\":[ { \"owners_before\":[ \"DnnUfvQZgPkL1njR34LDZvJMwJgj7YQ5mrYP8XVzZg9y\" ], \"fulfills\":\"None\", \"fulfillment\":\"pGSAIL4GzPYkwd8ZlktV3gKtos1PjD2ryjlbconNp4wHcxKUgUBCH1jY4t3QsxZgRh9PvDY9bA5x1BQrQ_SATDqvlU-u0kPa06cyoEkHRdJcrxkOFg_RZRoqiqjpPXyLIhpJV6oN\" } ], \"outputs\":[ { \"public_keys\":[ \"HEoggCcFUqn61v9xNwjVeCdDXNNWcX4AXfermVbFKgw7\" ], \"condition\":{ \"details\":{ \"type\":\"ed25519-sha-256\", \"public_key\":\"HEoggCcFUqn61v9xNwjVeCdDXNNWcX4AXfermVbFKgw7\" }, \"uri\":\"ni:///sha-256;1EsVBQSH5bINVz55A7-Q7yg8RqQeRwex-RwLwuQwVaM?fpt=ed25519-sha-256&cost=131072\" }, \"amount\":\"1\" } ], \"operation\":\"CREATE\", \"metadata\":{ \"price\":\"100\" }, \"asset\":{ \"data\":{ \"token_for\":{ \"game_boy\":{ \"serial_number\":\"LR35902\" } }, \"description\":\"Time share token. Each token equals one hour of usage.\" } }, \"version\":\"2.0\", \"id\":\"61f7385eda0633220d3d6ad170b740511f97dc2d0875f9f0a46dd1705e484936\" }";
std::cout << cval.CreateMessage(tx) << std::endl;
// std::string tx2 = "{\"inputs\":[{\"owners_before\":[\"C1CECot9umaqYvCjpt31GiKpYmsaGWQDdnHJjCv8yQiS\"],\"fulfills\":{\"transaction_id\":\"123415ca19849d95571e0d828102365f24bd322a54d6701e477d32a5bd009c6f\",\"output_index\":0},\"fulfillment\":\"pGSAIKN9QFdMwU21tgN2hzUd8pi75C8EsQ6LjnMjLssTKgivgUAmOHl2O1vsWN_bvPjoofVWyHf1p_thSJIUNCkfNStc748Rz37tMPT8NouEgjIvwgXpM1zOvA3TmzdoCjpaNm0N\"}]}";
// std::cout << cval.SerializeJSON(tx2) << std::endl;
rapidjson::Document doc;
doc.Parse(tx2);
SDKTransaction sdktx(doc, true);
*/
}