blockchain , sdchain cpp sdk and demo
Dependencies: EthernetInterface mbed-rtos mbed uniqueCPUID
Fork of bcsdk by
main.cpp@15:7ec76c840343, 2018-06-06 (annotated)
- Committer:
- webmaster
- Date:
- Wed Jun 06 06:14:09 2018 +0000
- Revision:
- 15:7ec76c840343
- Parent:
- 14:59412fcf8fa2
sdchain demo with light
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
gsteiert | 0:28bc7ce77e20 | 1 | #include "mbed.h" |
gsteiert | 0:28bc7ce77e20 | 2 | #include "EthernetInterface.h" |
MrAI | 11:6d9cefb14158 | 3 | //#include "SDFileSystem.h" |
gsteiert | 0:28bc7ce77e20 | 4 | #include <stdio.h> |
webmaster | 9:d7468574ef8f | 5 | #include "uniqueCPUID.h" |
webmaster | 15:7ec76c840343 | 6 | #include <sstream> // header of stringsteam |
webmaster | 8:f2a567ee3a46 | 7 | |
webmaster | 8:f2a567ee3a46 | 8 | #include <iostream> |
webmaster | 8:f2a567ee3a46 | 9 | #include <string> |
webmaster | 8:f2a567ee3a46 | 10 | #include "UnitTest.h" |
webmaster | 8:f2a567ee3a46 | 11 | //#include "BlockChain.h" |
webmaster | 8:f2a567ee3a46 | 12 | #include "MockHsm.h" |
webmaster | 10:aabd720e632c | 13 | #include "Asset.h" |
webmaster | 10:aabd720e632c | 14 | #include "Transaction.h" |
webmaster | 10:aabd720e632c | 15 | #include "Account.h" |
webmaster | 10:aabd720e632c | 16 | #include "Key.h" |
MrAI | 12:1b24ea479a59 | 17 | #include "Payment.h" |
MrAI | 12:1b24ea479a59 | 18 | #include "ServerInfo.h" |
MrAI | 12:1b24ea479a59 | 19 | #include "Order.h" |
webmaster | 8:f2a567ee3a46 | 20 | |
webmaster | 8:f2a567ee3a46 | 21 | using namespace std; |
gsteiert | 0:28bc7ce77e20 | 22 | |
gsteiert | 0:28bc7ce77e20 | 23 | #define HTTPD_SERVER_PORT 80 |
gsteiert | 0:28bc7ce77e20 | 24 | #define HTTPD_MAX_REQ_LENGTH 1023 |
gsteiert | 0:28bc7ce77e20 | 25 | #define HTTPD_MAX_HDR_LENGTH 255 |
gsteiert | 0:28bc7ce77e20 | 26 | #define HTTPD_MAX_FNAME_LENGTH 127 |
gsteiert | 3:4f71a37a1ed2 | 27 | #define HTTPD_MAX_DNAME_LENGTH 127 |
gsteiert | 3:4f71a37a1ed2 | 28 | |
webmaster | 10:aabd720e632c | 29 | #define DEBUG_LOG 1 |
webmaster | 10:aabd720e632c | 30 | |
webmaster | 8:f2a567ee3a46 | 31 | const char* ECHO_SERVER_ADDRESS = "192.168.31.185"; |
webmaster | 8:f2a567ee3a46 | 32 | const int ECHO_SERVER_PORT = 10003; |
webmaster | 8:f2a567ee3a46 | 33 | |
gsteiert | 3:4f71a37a1ed2 | 34 | Serial uart(USBTX, USBRX); |
gsteiert | 0:28bc7ce77e20 | 35 | |
gsteiert | 6:ca17ce165ebc | 36 | //SDFileSystem sd(p5, p6, p7, p8, "sd"); // LPC1768 MBD2PMD |
gsteiert | 5:27b09a0f3fb6 | 37 | //SDFileSystem sd(P0_18, P0_17, P0_15, P0_16, "sd"); // Seeeduino Arch Pro SPI2SD |
MrAI | 11:6d9cefb14158 | 38 | //SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); // K64F |
gsteiert | 3:4f71a37a1ed2 | 39 | |
gsteiert | 0:28bc7ce77e20 | 40 | EthernetInterface eth; |
gsteiert | 0:28bc7ce77e20 | 41 | TCPSocketServer server; |
gsteiert | 0:28bc7ce77e20 | 42 | TCPSocketConnection client; |
webmaster | 8:f2a567ee3a46 | 43 | TCPSocketConnection my_client; |
gsteiert | 0:28bc7ce77e20 | 44 | |
gsteiert | 0:28bc7ce77e20 | 45 | char buffer[HTTPD_MAX_REQ_LENGTH+1]; |
gsteiert | 0:28bc7ce77e20 | 46 | char httpHeader[HTTPD_MAX_HDR_LENGTH+1]; |
gsteiert | 3:4f71a37a1ed2 | 47 | char fileName[HTTPD_MAX_FNAME_LENGTH+1]; |
gsteiert | 3:4f71a37a1ed2 | 48 | char dirName[HTTPD_MAX_DNAME_LENGTH+1]; |
gsteiert | 0:28bc7ce77e20 | 49 | char *uristr; |
gsteiert | 0:28bc7ce77e20 | 50 | char *eou; |
gsteiert | 0:28bc7ce77e20 | 51 | char *qrystr; |
gsteiert | 0:28bc7ce77e20 | 52 | |
gsteiert | 0:28bc7ce77e20 | 53 | FILE *fp; |
gsteiert | 0:28bc7ce77e20 | 54 | int rdCnt; |
gsteiert | 0:28bc7ce77e20 | 55 | |
webmaster | 8:f2a567ee3a46 | 56 | // function declation |
webmaster | 8:f2a567ee3a46 | 57 | int test_socket_client(void); |
webmaster | 8:f2a567ee3a46 | 58 | int socket_init(); |
webmaster | 8:f2a567ee3a46 | 59 | int socket_fini(); |
webmaster | 8:f2a567ee3a46 | 60 | |
webmaster | 10:aabd720e632c | 61 | |
webmaster | 9:d7468574ef8f | 62 | void test_uuid() |
webmaster | 9:d7468574ef8f | 63 | { |
webmaster | 9:d7468574ef8f | 64 | char pUUID[128] = {0}; |
webmaster | 9:d7468574ef8f | 65 | getUniqueIDAsStr(pUUID); |
webmaster | 9:d7468574ef8f | 66 | printf("CPUID = %s \n",pUUID); |
webmaster | 9:d7468574ef8f | 67 | //printUniqueId(uart); |
webmaster | 9:d7468574ef8f | 68 | } |
webmaster | 8:f2a567ee3a46 | 69 | |
webmaster | 10:aabd720e632c | 70 | int test_MockHsm() |
webmaster | 10:aabd720e632c | 71 | { |
webmaster | 10:aabd720e632c | 72 | MockHsm mh; |
webmaster | 10:aabd720e632c | 73 | mh.setAlias("t_key_6"); |
webmaster | 10:aabd720e632c | 74 | cout<<mh.getAlias()<<endl; |
webmaster | 10:aabd720e632c | 75 | cout<<mh.createKey()<<endl; |
webmaster | 10:aabd720e632c | 76 | cout<< mh.listKeys() <<endl; |
webmaster | 10:aabd720e632c | 77 | return 0; |
webmaster | 10:aabd720e632c | 78 | } |
webmaster | 10:aabd720e632c | 79 | |
webmaster | 10:aabd720e632c | 80 | int test_Asset() |
webmaster | 10:aabd720e632c | 81 | { |
webmaster | 10:aabd720e632c | 82 | Asset asset; |
webmaster | 10:aabd720e632c | 83 | asset.setAlias("t_asset_6"); |
webmaster | 10:aabd720e632c | 84 | |
webmaster | 10:aabd720e632c | 85 | cout<< asset.createAsset() << endl; |
webmaster | 10:aabd720e632c | 86 | cout<< asset.listAssets() << endl; |
webmaster | 10:aabd720e632c | 87 | |
webmaster | 10:aabd720e632c | 88 | |
webmaster | 10:aabd720e632c | 89 | return 0; |
webmaster | 10:aabd720e632c | 90 | } |
webmaster | 10:aabd720e632c | 91 | |
webmaster | 10:aabd720e632c | 92 | int test_Account() |
webmaster | 10:aabd720e632c | 93 | { |
webmaster | 10:aabd720e632c | 94 | Key key; |
webmaster | 10:aabd720e632c | 95 | key.setAlias("t_key"); |
webmaster | 10:aabd720e632c | 96 | key.listKeys(); |
webmaster | 10:aabd720e632c | 97 | |
webmaster | 10:aabd720e632c | 98 | Account act(key); |
webmaster | 10:aabd720e632c | 99 | act.setAlias("t_acc_8"); |
webmaster | 10:aabd720e632c | 100 | act.createAccount(); |
webmaster | 10:aabd720e632c | 101 | act.listAccounts(); |
webmaster | 10:aabd720e632c | 102 | |
webmaster | 10:aabd720e632c | 103 | return 0; |
webmaster | 10:aabd720e632c | 104 | } |
webmaster | 10:aabd720e632c | 105 | |
webmaster | 10:aabd720e632c | 106 | int test_transaction(string type) |
webmaster | 10:aabd720e632c | 107 | { |
webmaster | 10:aabd720e632c | 108 | Transaction ts; |
webmaster | 10:aabd720e632c | 109 | //cout << ts.buildTransaction() << endl; |
webmaster | 10:aabd720e632c | 110 | ts.buildTransaction(type); |
webmaster | 10:aabd720e632c | 111 | ts.signTransaction(); |
webmaster | 10:aabd720e632c | 112 | ts.submitTransaction(); |
webmaster | 10:aabd720e632c | 113 | ts.listTransactions(); |
webmaster | 10:aabd720e632c | 114 | return 0; |
webmaster | 10:aabd720e632c | 115 | } |
webmaster | 10:aabd720e632c | 116 | |
webmaster | 10:aabd720e632c | 117 | int test_transaction() |
webmaster | 10:aabd720e632c | 118 | { |
webmaster | 10:aabd720e632c | 119 | vector<Actions> vActions; |
webmaster | 10:aabd720e632c | 120 | Actions act; |
webmaster | 10:aabd720e632c | 121 | MbedJSONValue reference_data; |
webmaster | 10:aabd720e632c | 122 | |
webmaster | 10:aabd720e632c | 123 | act.accounts_alias = "t_acc_1"; |
webmaster | 10:aabd720e632c | 124 | act.amount = 51; |
webmaster | 10:aabd720e632c | 125 | act.asset_alias = "t_asset"; |
webmaster | 10:aabd720e632c | 126 | act.reference_data = reference_data; |
webmaster | 10:aabd720e632c | 127 | act.type = "spend_account"; |
webmaster | 10:aabd720e632c | 128 | vActions.push_back(act); |
webmaster | 10:aabd720e632c | 129 | |
webmaster | 10:aabd720e632c | 130 | Actions act1 = {"t_acc_2", "t_asset", 49, reference_data, "spend_account" }; |
webmaster | 10:aabd720e632c | 131 | Actions act2 = {"tom", "t_asset", 80, reference_data, "control_account"}; |
webmaster | 10:aabd720e632c | 132 | Actions act3 = {"Jerry", "t_asset", 20, reference_data, "control_account"}; |
webmaster | 10:aabd720e632c | 133 | |
webmaster | 10:aabd720e632c | 134 | vActions.push_back(act1); |
webmaster | 10:aabd720e632c | 135 | vActions.push_back(act2); |
webmaster | 10:aabd720e632c | 136 | vActions.push_back(act3); |
webmaster | 10:aabd720e632c | 137 | printf("=============2========\r\n"); |
webmaster | 10:aabd720e632c | 138 | Transaction ts; |
webmaster | 10:aabd720e632c | 139 | ts.buildTransaction(vActions); |
webmaster | 10:aabd720e632c | 140 | ts.signTransaction(); |
webmaster | 10:aabd720e632c | 141 | ts.submitTransaction(); |
webmaster | 10:aabd720e632c | 142 | ts.listTransactions(); |
webmaster | 10:aabd720e632c | 143 | |
webmaster | 10:aabd720e632c | 144 | return 0; |
webmaster | 10:aabd720e632c | 145 | } |
webmaster | 10:aabd720e632c | 146 | |
webmaster | 10:aabd720e632c | 147 | |
webmaster | 15:7ec76c840343 | 148 | // cover int to string |
webmaster | 15:7ec76c840343 | 149 | void int2str(const int &int_temp,string &string_temp) |
webmaster | 15:7ec76c840343 | 150 | { |
webmaster | 15:7ec76c840343 | 151 | stringstream stream; |
webmaster | 15:7ec76c840343 | 152 | stream<<int_temp; |
webmaster | 15:7ec76c840343 | 153 | string_temp=stream.str(); //此处也可以用 stream>>string_temp |
webmaster | 15:7ec76c840343 | 154 | } |
MrAI | 12:1b24ea479a59 | 155 | |
webmaster | 15:7ec76c840343 | 156 | // cover string to int |
webmaster | 15:7ec76c840343 | 157 | void str2int(int &int_temp,const string &string_temp) |
webmaster | 15:7ec76c840343 | 158 | { |
webmaster | 15:7ec76c840343 | 159 | stringstream stream(string_temp); |
webmaster | 15:7ec76c840343 | 160 | stream>>int_temp; |
webmaster | 15:7ec76c840343 | 161 | } |
webmaster | 15:7ec76c840343 | 162 | |
webmaster | 15:7ec76c840343 | 163 | // cover string to long |
webmaster | 15:7ec76c840343 | 164 | void str2long(long &long_temp,const string &string_temp) |
webmaster | 15:7ec76c840343 | 165 | { |
webmaster | 15:7ec76c840343 | 166 | stringstream stream(string_temp); |
webmaster | 15:7ec76c840343 | 167 | stream>>long_temp; |
webmaster | 15:7ec76c840343 | 168 | } |
webmaster | 15:7ec76c840343 | 169 | |
webmaster | 15:7ec76c840343 | 170 | |
webmaster | 15:7ec76c840343 | 171 | long sd_account() |
MrAI | 12:1b24ea479a59 | 172 | { |
MrAI | 12:1b24ea479a59 | 173 | string balance = ""; |
MrAI | 12:1b24ea479a59 | 174 | Account act; |
MrAI | 12:1b24ea479a59 | 175 | balance = act.getBalance(); |
MrAI | 12:1b24ea479a59 | 176 | cout << "Extract json content from http message:"<<balance.c_str() << endl; |
MrAI | 12:1b24ea479a59 | 177 | if (balance.empty()) |
MrAI | 12:1b24ea479a59 | 178 | { |
MrAI | 12:1b24ea479a59 | 179 | return -1; |
MrAI | 12:1b24ea479a59 | 180 | } |
MrAI | 12:1b24ea479a59 | 181 | // decode content json |
MrAI | 12:1b24ea479a59 | 182 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 183 | //string err = parse(objJson, balance.c_str()); |
MrAI | 12:1b24ea479a59 | 184 | //int iLedger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 185 | //bool bSuccess = objJson["success"].get<bool>(); |
MrAI | 12:1b24ea479a59 | 186 | //int iCurrenciesNum = objJson["balances"].size(); |
MrAI | 12:1b24ea479a59 | 187 | /*for (int i = 0;i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 188 | { |
MrAI | 12:1b24ea479a59 | 189 | string value = objJson["balances"][i]["value"].get<string>(); |
MrAI | 12:1b24ea479a59 | 190 | string currency = objJson["balances"][i]["currency"].get<string>(); |
MrAI | 12:1b24ea479a59 | 191 | string counterparty = objJson["balances"][i]["counterparty"].get<string>(); |
MrAI | 12:1b24ea479a59 | 192 | cout << i << ":" << currency << "--" << value << "--" << counterparty << endl; |
MrAI | 12:1b24ea479a59 | 193 | }*/ |
MrAI | 12:1b24ea479a59 | 194 | string err = act.getParseMbedJson(objJson, balance.c_str()); |
MrAI | 12:1b24ea479a59 | 195 | int iLedger = act.getLedger(objJson); |
MrAI | 12:1b24ea479a59 | 196 | bool bSuccess = act.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 197 | int iCurrenciesNum = act.getBalanceSize(objJson,"balances"); |
MrAI | 13:e77c7ae3a285 | 198 | char pLedger[16] = {0}; |
MrAI | 13:e77c7ae3a285 | 199 | sprintf(pLedger, "%d", iLedger); |
MrAI | 13:e77c7ae3a285 | 200 | cout<<"Ledger is :"<<pLedger<<endl; |
webmaster | 15:7ec76c840343 | 201 | long sda = 0; |
MrAI | 12:1b24ea479a59 | 202 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 203 | { |
MrAI | 12:1b24ea479a59 | 204 | string value = act.getBalanceArray(objJson, "balances", i, "value"); |
MrAI | 12:1b24ea479a59 | 205 | string currency = act.getBalanceArray(objJson, "balances", i, "currency"); |
MrAI | 12:1b24ea479a59 | 206 | string counterparty = act.getBalanceArray(objJson, "balances", i, "counterparty"); |
MrAI | 12:1b24ea479a59 | 207 | cout << "The " << i <<" record:" << endl << "value:" << value << endl << "currency:"<<currency<<endl |
MrAI | 12:1b24ea479a59 | 208 | << "counterparty:" << counterparty << endl; |
webmaster | 15:7ec76c840343 | 209 | if("SDA" == currency) str2long(sda,value); |
MrAI | 12:1b24ea479a59 | 210 | } |
webmaster | 15:7ec76c840343 | 211 | return sda; |
MrAI | 12:1b24ea479a59 | 212 | } |
MrAI | 12:1b24ea479a59 | 213 | |
MrAI | 12:1b24ea479a59 | 214 | int sd_wallet() |
MrAI | 12:1b24ea479a59 | 215 | { |
MrAI | 14:59412fcf8fa2 | 216 | |
MrAI | 12:1b24ea479a59 | 217 | string strJson = ""; |
MrAI | 14:59412fcf8fa2 | 218 | cout<<"sd_wallet func"<<endl; |
MrAI | 12:1b24ea479a59 | 219 | Account act; |
MrAI | 14:59412fcf8fa2 | 220 | cout<<"act.getWallet()...begin"<<endl; |
MrAI | 12:1b24ea479a59 | 221 | strJson = act.getWallet (); |
MrAI | 14:59412fcf8fa2 | 222 | cout<<"act.getWallet()...end"<<endl; |
MrAI | 12:1b24ea479a59 | 223 | cout << "Extract json content from http message:"<<strJson.c_str() << endl; |
MrAI | 12:1b24ea479a59 | 224 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 225 | { |
MrAI | 12:1b24ea479a59 | 226 | return -1; |
MrAI | 12:1b24ea479a59 | 227 | } |
MrAI | 12:1b24ea479a59 | 228 | // decode content json |
MrAI | 12:1b24ea479a59 | 229 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 230 | // string err = parse(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 231 | // bool bSuccess = objJson["success"].get<bool>(); |
MrAI | 12:1b24ea479a59 | 232 | // if (bSuccess) |
MrAI | 12:1b24ea479a59 | 233 | // { |
MrAI | 12:1b24ea479a59 | 234 | // string address = objJson["wallet"]["address"].get<string>(); |
MrAI | 12:1b24ea479a59 | 235 | // string secret = objJson["wallet"]["secret"].get<string>(); |
MrAI | 12:1b24ea479a59 | 236 | // cout << "wallet:" << address << "--" << secret << endl; |
MrAI | 12:1b24ea479a59 | 237 | // } |
MrAI | 12:1b24ea479a59 | 238 | string err = act.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 239 | bool bSuccess = act.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 240 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 241 | { |
MrAI | 12:1b24ea479a59 | 242 | string address1 = act.getKeyValue(objJson, "wallet", "address"); |
MrAI | 12:1b24ea479a59 | 243 | string secret1 = act.getKeyValue(objJson, "wallet", "secret"); |
MrAI | 12:1b24ea479a59 | 244 | cout << "address:" << address1 << endl << "secret:" << secret1 << endl; |
MrAI | 12:1b24ea479a59 | 245 | } |
MrAI | 12:1b24ea479a59 | 246 | |
MrAI | 12:1b24ea479a59 | 247 | return 0; |
MrAI | 12:1b24ea479a59 | 248 | } |
MrAI | 12:1b24ea479a59 | 249 | |
MrAI | 12:1b24ea479a59 | 250 | int sd_postpayment()//支付请求 |
MrAI | 12:1b24ea479a59 | 251 | { |
MrAI | 12:1b24ea479a59 | 252 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 253 | Payment pay; |
MrAI | 12:1b24ea479a59 | 254 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 255 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 256 | string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 257 | string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 258 | string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 259 | string amount = "20"; |
MrAI | 12:1b24ea479a59 | 260 | string MemoType = "memos"; |
MrAI | 12:1b24ea479a59 | 261 | string MemoData = "memos"; |
MrAI | 12:1b24ea479a59 | 262 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 263 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 264 | pay.SetJsonBody(mbJson, secret, src_acc, dst_acc, amount, MemoType, MemoData); |
MrAI | 12:1b24ea479a59 | 265 | strJson = pay.PostPayment(mbJson, strUrl, strWallet,""); |
MrAI | 12:1b24ea479a59 | 266 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 267 | { |
MrAI | 12:1b24ea479a59 | 268 | return -1; |
MrAI | 12:1b24ea479a59 | 269 | } |
MrAI | 12:1b24ea479a59 | 270 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 271 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 272 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 273 | { |
MrAI | 12:1b24ea479a59 | 274 | string hash = pay.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 275 | string status_url = pay.getKeyValue(objJson, "status_url"); |
MrAI | 12:1b24ea479a59 | 276 | cout << "hash:" << hash << endl; |
MrAI | 12:1b24ea479a59 | 277 | cout << "status_url:" << status_url << endl; |
MrAI | 12:1b24ea479a59 | 278 | } |
MrAI | 12:1b24ea479a59 | 279 | return 0; |
MrAI | 12:1b24ea479a59 | 280 | } |
MrAI | 12:1b24ea479a59 | 281 | |
MrAI | 12:1b24ea479a59 | 282 | int sd_getpaymentinfo() |
MrAI | 12:1b24ea479a59 | 283 | { |
MrAI | 12:1b24ea479a59 | 284 | Payment pay; |
MrAI | 12:1b24ea479a59 | 285 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 286 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 287 | string strWallet = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 288 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 289 | string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 290 | strJson = pay.GetPaymentInfo(strUrl, strWallet, strHash); |
MrAI | 12:1b24ea479a59 | 291 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 292 | { |
MrAI | 12:1b24ea479a59 | 293 | return -1; |
MrAI | 12:1b24ea479a59 | 294 | } |
MrAI | 12:1b24ea479a59 | 295 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 296 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 297 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 298 | { |
MrAI | 12:1b24ea479a59 | 299 | string hash = pay.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 300 | string ledger = pay.getKeyValue(objJson, "ledger"); |
MrAI | 12:1b24ea479a59 | 301 | string state = pay.getKeyValue(objJson, "state"); |
MrAI | 12:1b24ea479a59 | 302 | string source_account = pay.getKeyValue(objJson, "source_account"); |
MrAI | 12:1b24ea479a59 | 303 | string dst_account = pay.getKeyValue(objJson, "destination_account"); |
MrAI | 12:1b24ea479a59 | 304 | string amount_cur = pay.getKeyValue(objJson, "amount", "currency"); |
MrAI | 12:1b24ea479a59 | 305 | string value = pay.getKeyValue(objJson, "amount", "value"); |
MrAI | 12:1b24ea479a59 | 306 | string amount_issuer = pay.getKeyValue(objJson, "amount", "issuer"); |
MrAI | 12:1b24ea479a59 | 307 | string currency = pay.getKeyValue(objJson, "currency"); |
MrAI | 12:1b24ea479a59 | 308 | string issuer = pay.getKeyValue(objJson, "issuer"); |
MrAI | 12:1b24ea479a59 | 309 | string direction = pay.getKeyValue(objJson, "direction"); |
MrAI | 12:1b24ea479a59 | 310 | string timestamp = pay.getKeyValue(objJson, "timestamp"); |
MrAI | 12:1b24ea479a59 | 311 | string fee = pay.getKeyValue(objJson, "fee"); |
MrAI | 13:e77c7ae3a285 | 312 | cout << "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< " state:" << state |
MrAI | 13:e77c7ae3a285 | 313 | <<endl<< " source_account:" << source_account <<endl<< " dst_account:" << dst_account |
MrAI | 13:e77c7ae3a285 | 314 | <<endl<< " amount_cur:" << amount_cur <<endl<< " value:" << value <<endl<< " amount_issuer:" << amount_issuer |
MrAI | 13:e77c7ae3a285 | 315 | <<endl<< " currency:" << currency <<endl<< " issuer" << issuer <<endl<< " direction" << direction |
MrAI | 13:e77c7ae3a285 | 316 | <<endl<< " timestamp:" << timestamp <<endl<< " fee" << fee <<endl; |
MrAI | 12:1b24ea479a59 | 317 | int iCurrenciesNum = pay.getBalanceSize(objJson, "memos"); |
MrAI | 12:1b24ea479a59 | 318 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 319 | { |
MrAI | 12:1b24ea479a59 | 320 | string memo_type = pay.getBalanceArray(objJson, "memos", i, "memo_type"); |
MrAI | 12:1b24ea479a59 | 321 | string memo_data = pay.getBalanceArray(objJson, "memos", i, "memo_data"); |
MrAI | 12:1b24ea479a59 | 322 | cout << i << ":" << memo_type << "--" << memo_data << endl; |
MrAI | 12:1b24ea479a59 | 323 | } |
MrAI | 12:1b24ea479a59 | 324 | |
MrAI | 12:1b24ea479a59 | 325 | } |
MrAI | 12:1b24ea479a59 | 326 | return 0; |
MrAI | 12:1b24ea479a59 | 327 | } |
MrAI | 12:1b24ea479a59 | 328 | |
MrAI | 12:1b24ea479a59 | 329 | int sd_gettransactions() |
MrAI | 12:1b24ea479a59 | 330 | { |
MrAI | 12:1b24ea479a59 | 331 | Payment pay; |
MrAI | 12:1b24ea479a59 | 332 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 333 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 334 | string strHash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 335 | string strUrl = "/v1/transactions/"; |
MrAI | 12:1b24ea479a59 | 336 | strJson = pay.GetPaymentInfo(strUrl,"", strHash); |
MrAI | 12:1b24ea479a59 | 337 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 338 | { |
MrAI | 12:1b24ea479a59 | 339 | return -1; |
MrAI | 12:1b24ea479a59 | 340 | } |
MrAI | 12:1b24ea479a59 | 341 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 342 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 343 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 344 | { |
MrAI | 12:1b24ea479a59 | 345 | string TransactionType = pay.getKeyValue(objJson, "transaction", "TransactionType"); |
MrAI | 12:1b24ea479a59 | 346 | int Flags = pay.getKeyValueInt(objJson, "transaction", "Flags"); |
MrAI | 12:1b24ea479a59 | 347 | int Sequence = pay.getKeyValueInt(objJson, "transaction", "Sequence"); |
MrAI | 12:1b24ea479a59 | 348 | int LastLedgerSequence = pay.getKeyValueInt(objJson, "transaction", "LastLedgerSequence"); |
MrAI | 12:1b24ea479a59 | 349 | string Amount = pay.getKeyValue(objJson, "transaction", "Amount"); |
MrAI | 12:1b24ea479a59 | 350 | string Fee = pay.getKeyValue(objJson, "transaction", "Fee"); |
MrAI | 12:1b24ea479a59 | 351 | string SigningPubKey = pay.getKeyValue(objJson, "transaction", "SigningPubKey"); |
MrAI | 12:1b24ea479a59 | 352 | string TxnSignature = pay.getKeyValue(objJson, "transaction", "TxnSignature"); |
MrAI | 12:1b24ea479a59 | 353 | string Account = pay.getKeyValue(objJson, "transaction", "Account"); |
MrAI | 12:1b24ea479a59 | 354 | string Destination = pay.getKeyValue(objJson, "transaction", "Destination"); |
MrAI | 12:1b24ea479a59 | 355 | int iCurrenciesNum = pay.getBalanceSize(objJson,"transaction","Memos"); |
MrAI | 12:1b24ea479a59 | 356 | // for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 357 | // { |
MrAI | 12:1b24ea479a59 | 358 | // string MemoType = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoType"); |
MrAI | 12:1b24ea479a59 | 359 | // string MemoData = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "MemoData"); |
MrAI | 12:1b24ea479a59 | 360 | // string parsed_memo_type = pay.getBalanceArray(objJson, "transaction", "Memos", "Memo", i, "parsed_memo_type"); |
MrAI | 12:1b24ea479a59 | 361 | // cout << i << ":" << MemoType << "--" << MemoData << "--" << parsed_memo_type << endl; |
MrAI | 12:1b24ea479a59 | 362 | // } |
MrAI | 12:1b24ea479a59 | 363 | int date = pay.getKeyValueInt(objJson, "transaction", "date"); |
MrAI | 12:1b24ea479a59 | 364 | string hash = pay.getKeyValue(objJson, "transaction", "hash"); |
MrAI | 12:1b24ea479a59 | 365 | int inLedger = pay.getKeyValueInt(objJson, "transaction", "inLedger"); |
MrAI | 12:1b24ea479a59 | 366 | int ledger_index = pay.getKeyValueInt(objJson, "transaction", "ledger_index"); |
MrAI | 12:1b24ea479a59 | 367 | bool validated = pay.getKeyValueBool(objJson, "transaction", "validated"); |
MrAI | 13:e77c7ae3a285 | 368 | cout<<"TransactionType:"<<TransactionType<<endl<<"Amount:"<<Amount<<endl<<"Fee:"<<Fee<<endl |
MrAI | 13:e77c7ae3a285 | 369 | <<"SigningPubKey:"<<SigningPubKey<<endl<<"TxnSignature:"<<TxnSignature<<endl |
MrAI | 13:e77c7ae3a285 | 370 | <<"Account:"<<Account<<endl<<"Destination:"<<Destination<<endl; |
MrAI | 12:1b24ea479a59 | 371 | } |
MrAI | 12:1b24ea479a59 | 372 | return 0; |
MrAI | 12:1b24ea479a59 | 373 | } |
MrAI | 12:1b24ea479a59 | 374 | |
MrAI | 12:1b24ea479a59 | 375 | int sd_getpaymenthistory() |
MrAI | 12:1b24ea479a59 | 376 | { |
MrAI | 12:1b24ea479a59 | 377 | Payment pay; |
MrAI | 12:1b24ea479a59 | 378 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 379 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 380 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 381 | string strUrl = "/v1/accounts/payments/"; |
MrAI | 12:1b24ea479a59 | 382 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 383 | string src_acc = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 384 | string dst_acc = "69Hu8QsnEZUP4f3AVYSW7rkpLVm6DAEq9y"; |
MrAI | 12:1b24ea479a59 | 385 | string direction = "incoming"; |
MrAI | 12:1b24ea479a59 | 386 | int start_ledger = 1; |
MrAI | 12:1b24ea479a59 | 387 | int end_ledger = 10000; |
MrAI | 12:1b24ea479a59 | 388 | int per_page = 10; |
MrAI | 12:1b24ea479a59 | 389 | int page = 1; |
MrAI | 12:1b24ea479a59 | 390 | pay.SetJsonBody(mbJson, src_acc, dst_acc, direction, start_ledger, end_ledger, per_page, page); |
MrAI | 12:1b24ea479a59 | 391 | strJson = pay.PostPayment(mbJson, strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 392 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 393 | { |
MrAI | 12:1b24ea479a59 | 394 | return -1; |
MrAI | 12:1b24ea479a59 | 395 | } |
MrAI | 12:1b24ea479a59 | 396 | string err = pay.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 397 | bool bSuccess = pay.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 398 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 399 | { |
MrAI | 12:1b24ea479a59 | 400 | int iCurrenciesNum = pay.getBalanceSize(objJson,"payments"); |
MrAI | 12:1b24ea479a59 | 401 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 402 | { |
MrAI | 12:1b24ea479a59 | 403 | string hash = pay.getBalanceArray(objJson, "payments", i, "hash"); |
MrAI | 12:1b24ea479a59 | 404 | string ledger = pay.getBalanceArray(objJson, "payments", i, "ledger"); |
MrAI | 12:1b24ea479a59 | 405 | string source_account = pay.getBalanceArray(objJson, "payments", i, "source_account"); |
MrAI | 12:1b24ea479a59 | 406 | string destination_account = pay.getBalanceArray(objJson, "payments", i, "destination_account"); |
MrAI | 12:1b24ea479a59 | 407 | string currency = pay.getBalanceArray(objJson, "payments", "amount", i,currency); |
MrAI | 12:1b24ea479a59 | 408 | string value = pay.getBalanceArray(objJson, "payments", "amount", i, value); |
MrAI | 12:1b24ea479a59 | 409 | string issuer = pay.getBalanceArray(objJson, "payments", "amount", i, issuer); |
MrAI | 12:1b24ea479a59 | 410 | string direction = pay.getBalanceArray(objJson, "payments", i, "direction"); |
MrAI | 12:1b24ea479a59 | 411 | string timestamp = pay.getBalanceArray(objJson, "payments", i, "timestamp"); |
MrAI | 12:1b24ea479a59 | 412 | string fee = pay.getBalanceArray(objJson, "payments", i, "fee"); |
MrAI | 12:1b24ea479a59 | 413 | int iCurrenciesNum = pay.getBalanceSize(objJson, "transaction", "Memos"); |
MrAI | 12:1b24ea479a59 | 414 | for (int j = 0; j < iCurrenciesNum; j++) |
MrAI | 12:1b24ea479a59 | 415 | { |
MrAI | 12:1b24ea479a59 | 416 | string memo_type = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_type"); |
MrAI | 12:1b24ea479a59 | 417 | string memo_data = pay.getBalanceArray(objJson, "transaction", "memos", i, "memo_data"); |
MrAI | 12:1b24ea479a59 | 418 | cout << i << ":" << memo_type << "--" << memo_data << endl; |
MrAI | 12:1b24ea479a59 | 419 | } |
MrAI | 13:e77c7ae3a285 | 420 | cout<<"hash:"<<hash<<endl<<"ledger:"<<ledger<<endl<<"source_account:"<<source_account<<endl |
MrAI | 13:e77c7ae3a285 | 421 | <<"destination_account:"<<destination_account<<endl<<"currency:"<<currency<<endl<<"timestamp:" |
MrAI | 13:e77c7ae3a285 | 422 | <<timestamp<<endl; |
MrAI | 12:1b24ea479a59 | 423 | } |
MrAI | 12:1b24ea479a59 | 424 | } |
MrAI | 12:1b24ea479a59 | 425 | return 0; |
MrAI | 12:1b24ea479a59 | 426 | } |
MrAI | 12:1b24ea479a59 | 427 | |
MrAI | 12:1b24ea479a59 | 428 | int sd_getdefaultfee() |
MrAI | 12:1b24ea479a59 | 429 | { |
MrAI | 12:1b24ea479a59 | 430 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 431 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 432 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 433 | string strUrl = "/v1/transaction-fee"; |
MrAI | 12:1b24ea479a59 | 434 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 435 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 436 | { |
MrAI | 12:1b24ea479a59 | 437 | return -1; |
MrAI | 12:1b24ea479a59 | 438 | } |
MrAI | 12:1b24ea479a59 | 439 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 440 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 441 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 442 | { |
MrAI | 12:1b24ea479a59 | 443 | string fee = serInfo.getKeyValue(objJson, "fee"); |
MrAI | 12:1b24ea479a59 | 444 | cout << "fee:" << fee << endl; |
MrAI | 12:1b24ea479a59 | 445 | } |
MrAI | 12:1b24ea479a59 | 446 | return 0; |
MrAI | 12:1b24ea479a59 | 447 | } |
MrAI | 12:1b24ea479a59 | 448 | |
MrAI | 12:1b24ea479a59 | 449 | int sd_getserverinfo() |
MrAI | 12:1b24ea479a59 | 450 | { |
MrAI | 12:1b24ea479a59 | 451 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 452 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 453 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 454 | string strUrl = "/v1/server"; |
MrAI | 12:1b24ea479a59 | 455 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 456 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 457 | { |
MrAI | 12:1b24ea479a59 | 458 | return -1; |
MrAI | 12:1b24ea479a59 | 459 | } |
MrAI | 12:1b24ea479a59 | 460 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 461 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 462 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 463 | { |
MrAI | 12:1b24ea479a59 | 464 | string complete_ledgers = serInfo.getKeyValue(objJson, "sdchaind_server_status", "complete_ledgers"); |
MrAI | 12:1b24ea479a59 | 465 | string server_state = serInfo.getKeyValue(objJson, "sdchaind_server_status", "server_state"); |
MrAI | 12:1b24ea479a59 | 466 | int reserve_base_sda = serInfo.getKeyValueInt(objJson, "sdchaind_server_status", "reserve_base_sda"); |
MrAI | 13:e77c7ae3a285 | 467 | cout << "complete_ledgers:" << complete_ledgers <<endl<< "server_state:" << server_state<<endl << "reserve_base_sda:" << reserve_base_sda << endl; |
MrAI | 12:1b24ea479a59 | 468 | } |
MrAI | 12:1b24ea479a59 | 469 | return 0; |
MrAI | 12:1b24ea479a59 | 470 | } |
MrAI | 12:1b24ea479a59 | 471 | |
MrAI | 12:1b24ea479a59 | 472 | int sd_getserverconnected() |
MrAI | 12:1b24ea479a59 | 473 | { |
MrAI | 12:1b24ea479a59 | 474 | ServerInfo serInfo; |
MrAI | 12:1b24ea479a59 | 475 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 476 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 477 | string strUrl = "/v1/server/connected"; |
MrAI | 12:1b24ea479a59 | 478 | strJson = serInfo.GetPaymentInfo(strUrl, "", ""); |
MrAI | 12:1b24ea479a59 | 479 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 480 | { |
MrAI | 12:1b24ea479a59 | 481 | return -1; |
MrAI | 12:1b24ea479a59 | 482 | } |
MrAI | 12:1b24ea479a59 | 483 | string err = serInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 484 | bool bSuccess = serInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 485 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 486 | { |
MrAI | 12:1b24ea479a59 | 487 | bool connected = serInfo.getKeyValueBool(objJson, "connected"); |
MrAI | 13:e77c7ae3a285 | 488 | if(connected) |
MrAI | 13:e77c7ae3a285 | 489 | {cout<<"server is running"<<endl;} |
MrAI | 13:e77c7ae3a285 | 490 | else |
MrAI | 13:e77c7ae3a285 | 491 | {cout<<"server stopped"<<endl;} |
MrAI | 12:1b24ea479a59 | 492 | } |
MrAI | 12:1b24ea479a59 | 493 | return 0; |
MrAI | 12:1b24ea479a59 | 494 | } |
MrAI | 12:1b24ea479a59 | 495 | |
MrAI | 12:1b24ea479a59 | 496 | int sd_queryorderlist() |
MrAI | 12:1b24ea479a59 | 497 | { |
MrAI | 12:1b24ea479a59 | 498 | Order orderInfo; |
MrAI | 12:1b24ea479a59 | 499 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 500 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 501 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 502 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 503 | strJson = orderInfo.GetPaymentInfo(strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 504 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 505 | { |
MrAI | 12:1b24ea479a59 | 506 | return -1; |
MrAI | 12:1b24ea479a59 | 507 | } |
MrAI | 12:1b24ea479a59 | 508 | string err = orderInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 509 | bool bSuccess = orderInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 510 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 511 | { |
MrAI | 12:1b24ea479a59 | 512 | int ledger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 513 | bool validated = orderInfo.getKeyValueBool(objJson, "validated"); |
MrAI | 12:1b24ea479a59 | 514 | int iCurrenciesNum = orderInfo.getBalanceSize(objJson, "orders"); |
MrAI | 12:1b24ea479a59 | 515 | for (int i = 0; i < iCurrenciesNum; i++) |
MrAI | 12:1b24ea479a59 | 516 | { |
MrAI | 12:1b24ea479a59 | 517 | string type = orderInfo.getBalanceArray(objJson, "orders", i, "type"); |
MrAI | 12:1b24ea479a59 | 518 | string currency_gets = orderInfo.getBalanceArray(objJson, "orders","taker_gets",i,"currency"); |
MrAI | 12:1b24ea479a59 | 519 | string value_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "value"); |
MrAI | 12:1b24ea479a59 | 520 | string counterparty_gets = orderInfo.getBalanceArray(objJson, "orders", "taker_gets", i, "counterparty"); |
MrAI | 12:1b24ea479a59 | 521 | string currency_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "currency"); |
MrAI | 12:1b24ea479a59 | 522 | string value_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "value"); |
MrAI | 12:1b24ea479a59 | 523 | string counterparty_pays = orderInfo.getBalanceArray(objJson, "orders", "taker_pays", i, "counterparty"); |
MrAI | 13:e77c7ae3a285 | 524 | cout << "type:" << type <<endl<< "currency_gets:" << currency_gets <<endl<< "value_gets:" << value_gets<<endl |
MrAI | 13:e77c7ae3a285 | 525 | << "counterparty_gets:" << counterparty_gets <<endl<< "currency_pays:" << currency_pays<<endl |
MrAI | 13:e77c7ae3a285 | 526 | << "value_pays:" << value_pays <<endl<< "counterparty_pays:" << counterparty_pays << endl; |
MrAI | 12:1b24ea479a59 | 527 | } |
MrAI | 13:e77c7ae3a285 | 528 | cout << "ledger:" << ledger <<endl<< "validated:" << validated << endl; |
MrAI | 12:1b24ea479a59 | 529 | } |
MrAI | 12:1b24ea479a59 | 530 | return 0; |
MrAI | 12:1b24ea479a59 | 531 | } |
MrAI | 12:1b24ea479a59 | 532 | |
MrAI | 12:1b24ea479a59 | 533 | int sd_commitorder() |
MrAI | 12:1b24ea479a59 | 534 | { |
MrAI | 12:1b24ea479a59 | 535 | Order orderCommit; |
MrAI | 12:1b24ea479a59 | 536 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 537 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 538 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 539 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 540 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 541 | string secret = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 542 | orderCommit.SetJsonBody(mbJson, secret, "buy", "SDA", "", "4", "CNY", "6UPd52jHtu1d88nc3S3WeroACFQpKfybhU", "22"); |
MrAI | 12:1b24ea479a59 | 543 | strJson = orderCommit.PostPayment(mbJson, strUrl, strWallet, ""); |
MrAI | 12:1b24ea479a59 | 544 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 545 | { |
MrAI | 12:1b24ea479a59 | 546 | return -1; |
MrAI | 12:1b24ea479a59 | 547 | } |
MrAI | 12:1b24ea479a59 | 548 | string err = orderCommit.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 549 | bool bSuccess = orderCommit.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 550 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 551 | { |
MrAI | 12:1b24ea479a59 | 552 | string account = orderCommit.getKeyValue(objJson, "order", "account"); |
MrAI | 12:1b24ea479a59 | 553 | string currency_g = orderCommit.getKeyValue(objJson, "taker_gets", "currency"); |
MrAI | 12:1b24ea479a59 | 554 | string value_g = orderCommit.getKeyValue(objJson, "taker_gets", "value"); |
MrAI | 12:1b24ea479a59 | 555 | string counterparty_g = orderCommit.getKeyValue(objJson, "taker_gets", "counterparty"); |
MrAI | 12:1b24ea479a59 | 556 | string currency_p = orderCommit.getKeyValue(objJson, "taker_pays", "currency"); |
MrAI | 12:1b24ea479a59 | 557 | string value_p = orderCommit.getKeyValue(objJson, "taker_pays", "value"); |
MrAI | 12:1b24ea479a59 | 558 | string counterparty_p = orderCommit.getKeyValue(objJson, "taker_pays", "counterparty"); |
MrAI | 12:1b24ea479a59 | 559 | string fee = orderCommit.getKeyValue(objJson, "order", "fee"); |
MrAI | 12:1b24ea479a59 | 560 | string type = orderCommit.getKeyValue(objJson, "order", "type"); |
MrAI | 12:1b24ea479a59 | 561 | int sequence = orderCommit.getKeyValueInt(objJson, "order","sequence"); |
MrAI | 12:1b24ea479a59 | 562 | string hash = orderCommit.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 563 | int ledger = orderCommit.getLedger(objJson); |
MrAI | 12:1b24ea479a59 | 564 | string state = orderCommit.getKeyValue(objJson, "state"); |
MrAI | 13:e77c7ae3a285 | 565 | cout<<"account:"<<account<<endl<<"fee:"<<fee<<endl<<"hash:"<<hash<<endl<<"state:"<<state<<endl; |
MrAI | 12:1b24ea479a59 | 566 | } |
MrAI | 12:1b24ea479a59 | 567 | return 0; |
MrAI | 12:1b24ea479a59 | 568 | } |
MrAI | 12:1b24ea479a59 | 569 | |
MrAI | 12:1b24ea479a59 | 570 | int sd_deleteorder() |
MrAI | 12:1b24ea479a59 | 571 | { |
MrAI | 12:1b24ea479a59 | 572 | Order orderCommit; |
MrAI | 12:1b24ea479a59 | 573 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 574 | MbedJSONValue mbJson; |
MrAI | 12:1b24ea479a59 | 575 | MbedJSONValue val; |
MrAI | 12:1b24ea479a59 | 576 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 577 | string strUrl = "/v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 578 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 579 | string strNum = "1234"; |
MrAI | 12:1b24ea479a59 | 580 | val["secret"] = "sh7dqVn8mhg6BqGfAQyaYVUwK2zkR"; |
MrAI | 12:1b24ea479a59 | 581 | strJson = orderCommit.PostOrder(val, strUrl, strWallet, strNum); |
MrAI | 12:1b24ea479a59 | 582 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 583 | { |
MrAI | 12:1b24ea479a59 | 584 | return -1; |
MrAI | 12:1b24ea479a59 | 585 | } |
MrAI | 12:1b24ea479a59 | 586 | string err = orderCommit.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 587 | bool bSuccess = orderCommit.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 588 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 589 | { |
MrAI | 12:1b24ea479a59 | 590 | string account = orderCommit.getKeyValue(objJson, "order", "account"); |
MrAI | 12:1b24ea479a59 | 591 | string fee = orderCommit.getKeyValue(objJson, "order", "fee"); |
MrAI | 12:1b24ea479a59 | 592 | string offer_sequence = orderCommit.getKeyValue(objJson, "order", "offer_sequence"); |
MrAI | 12:1b24ea479a59 | 593 | string sequence = orderCommit.getKeyValue(objJson, "order", "sequence"); |
MrAI | 12:1b24ea479a59 | 594 | string hash = orderCommit.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 595 | string ledger = orderCommit.getKeyValue(objJson, "ledger"); |
MrAI | 12:1b24ea479a59 | 596 | string state = orderCommit.getKeyValue(objJson, "state"); |
MrAI | 13:e77c7ae3a285 | 597 | cout << "account:" << account <<endl<< "fee:" << fee <<endl<< "offer_sequence:" << offer_sequence<<endl |
MrAI | 13:e77c7ae3a285 | 598 | << "sequence:" << sequence <<endl<< "hash:" << hash <<endl<<"ledger:" << ledger <<endl<< "state:" << state << endl; |
MrAI | 12:1b24ea479a59 | 599 | } |
MrAI | 12:1b24ea479a59 | 600 | return 0; |
MrAI | 12:1b24ea479a59 | 601 | } |
MrAI | 12:1b24ea479a59 | 602 | |
MrAI | 12:1b24ea479a59 | 603 | int sd_queryorderdetailed() |
MrAI | 12:1b24ea479a59 | 604 | { |
MrAI | 12:1b24ea479a59 | 605 | cout << "call sd_queryorderdetailed begin" << endl; |
MrAI | 12:1b24ea479a59 | 606 | Order orderInfo; |
MrAI | 12:1b24ea479a59 | 607 | MbedJSONValue objJson; |
MrAI | 12:1b24ea479a59 | 608 | string strJson = ""; |
MrAI | 12:1b24ea479a59 | 609 | string strUrl = " /v1/accounts/orders/"; |
MrAI | 12:1b24ea479a59 | 610 | string strWallet = "6ByxwCh2Lqwwr3pk6mh4GBb4bsqFz2zAKY"; |
MrAI | 12:1b24ea479a59 | 611 | string hash = "EF252979355F2666486F69E9C96D137265214DE65B14E1136ECCDCE84F09AD11"; |
MrAI | 12:1b24ea479a59 | 612 | strJson = orderInfo.GetPaymentInfo(strUrl, strWallet,hash); |
MrAI | 12:1b24ea479a59 | 613 | if (strJson.empty()) |
MrAI | 12:1b24ea479a59 | 614 | { |
MrAI | 12:1b24ea479a59 | 615 | cout << "call sd_queryorderdetailed exception quit" << endl; |
MrAI | 12:1b24ea479a59 | 616 | return -1; |
MrAI | 12:1b24ea479a59 | 617 | } |
MrAI | 12:1b24ea479a59 | 618 | string err = orderInfo.getParseMbedJson(objJson, strJson.c_str()); |
MrAI | 12:1b24ea479a59 | 619 | bool bSuccess = orderInfo.getRequestRet(objJson); |
MrAI | 12:1b24ea479a59 | 620 | if (bSuccess) |
MrAI | 12:1b24ea479a59 | 621 | { |
MrAI | 12:1b24ea479a59 | 622 | string hash = orderInfo.getKeyValue(objJson, "hash"); |
MrAI | 12:1b24ea479a59 | 623 | int ledger = objJson["ledger"].get<int>(); |
MrAI | 12:1b24ea479a59 | 624 | int iBalanceNum = orderInfo.getBalanceSize(objJson, "balance_changes"); |
MrAI | 12:1b24ea479a59 | 625 | for (int i = 0; i < iBalanceNum; i++) |
MrAI | 12:1b24ea479a59 | 626 | { |
MrAI | 12:1b24ea479a59 | 627 | string counterparty = orderInfo.getBalanceArray(objJson, "balance_changes", i, "counterparty"); |
MrAI | 13:e77c7ae3a285 | 628 | cout<<"counterparty:"<<counterparty<<endl; |
MrAI | 12:1b24ea479a59 | 629 | } |
MrAI | 12:1b24ea479a59 | 630 | int iOrderChangesNum = orderInfo.getBalanceSize(objJson, "order_changes"); |
MrAI | 12:1b24ea479a59 | 631 | for (int j = 0; j < iOrderChangesNum; j++) |
MrAI | 12:1b24ea479a59 | 632 | { |
MrAI | 12:1b24ea479a59 | 633 | string currency_gets = orderInfo.getBalanceArray(objJson, "order_changes", "taker_gets", j, "currency"); |
MrAI | 13:e77c7ae3a285 | 634 | cout<<"currency_gets:"<<currency_gets<<endl; |
MrAI | 12:1b24ea479a59 | 635 | } |
MrAI | 13:e77c7ae3a285 | 636 | cout<<"hash:"<<hash<<endl; |
MrAI | 12:1b24ea479a59 | 637 | |
MrAI | 12:1b24ea479a59 | 638 | } |
MrAI | 12:1b24ea479a59 | 639 | cout << "call sd_queryorderdetailed end" << endl; |
MrAI | 12:1b24ea479a59 | 640 | return 0; |
MrAI | 12:1b24ea479a59 | 641 | } |
webmaster | 10:aabd720e632c | 642 | |
webmaster | 8:f2a567ee3a46 | 643 | |
webmaster | 8:f2a567ee3a46 | 644 | int socket_init() |
webmaster | 8:f2a567ee3a46 | 645 | { |
webmaster | 8:f2a567ee3a46 | 646 | int ret = 0; |
webmaster | 8:f2a567ee3a46 | 647 | // EthernetInterface eth; |
webmaster | 8:f2a567ee3a46 | 648 | printf("Initializing Ethernet\n"); |
webmaster | 8:f2a567ee3a46 | 649 | ret = eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 650 | //eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use static ip |
webmaster | 8:f2a567ee3a46 | 651 | printf("Connecting\n"); |
webmaster | 8:f2a567ee3a46 | 652 | ret = eth.connect(); |
webmaster | 8:f2a567ee3a46 | 653 | printf("IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 654 | |
webmaster | 8:f2a567ee3a46 | 655 | return ret; |
webmaster | 8:f2a567ee3a46 | 656 | } |
webmaster | 8:f2a567ee3a46 | 657 | |
webmaster | 8:f2a567ee3a46 | 658 | int socket_fini() |
webmaster | 8:f2a567ee3a46 | 659 | { |
webmaster | 8:f2a567ee3a46 | 660 | return eth.disconnect(); |
webmaster | 8:f2a567ee3a46 | 661 | } |
webmaster | 8:f2a567ee3a46 | 662 | |
webmaster | 8:f2a567ee3a46 | 663 | int test_socket_client(void) |
webmaster | 8:f2a567ee3a46 | 664 | { |
webmaster | 8:f2a567ee3a46 | 665 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 666 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 667 | printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 668 | wait(1); |
webmaster | 8:f2a567ee3a46 | 669 | } |
webmaster | 8:f2a567ee3a46 | 670 | printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 671 | |
webmaster | 8:f2a567ee3a46 | 672 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 673 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 674 | printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 675 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 676 | |
webmaster | 8:f2a567ee3a46 | 677 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 678 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 679 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 680 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 681 | printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 682 | |
webmaster | 8:f2a567ee3a46 | 683 | // Clean up |
webmaster | 8:f2a567ee3a46 | 684 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 685 | |
webmaster | 8:f2a567ee3a46 | 686 | return 0; |
webmaster | 8:f2a567ee3a46 | 687 | } |
webmaster | 8:f2a567ee3a46 | 688 | |
MrAI | 11:6d9cefb14158 | 689 | /* |
gsteiert | 0:28bc7ce77e20 | 690 | void get_file(char* uri) |
gsteiert | 0:28bc7ce77e20 | 691 | { |
gsteiert | 3:4f71a37a1ed2 | 692 | uart.printf("get_file %s\n", uri); |
gsteiert | 0:28bc7ce77e20 | 693 | char *lstchr = strrchr(uri, NULL) -1; |
gsteiert | 0:28bc7ce77e20 | 694 | if ('/' == *lstchr) { |
gsteiert | 3:4f71a37a1ed2 | 695 | uart.printf("Open directory /sd%s\n", uri); |
gsteiert | 0:28bc7ce77e20 | 696 | *lstchr = 0; |
gsteiert | 3:4f71a37a1ed2 | 697 | sprintf(fileName, "/sd%s", uri); |
gsteiert | 3:4f71a37a1ed2 | 698 | DIR *d = opendir(fileName); |
gsteiert | 0:28bc7ce77e20 | 699 | if (d != NULL) { |
gsteiert | 0:28bc7ce77e20 | 700 | sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 701 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 3:4f71a37a1ed2 | 702 | sprintf(httpHeader,"<html><head><title>Directory Listing</title></head><body><h1>%s Directory Listing</h1><ul>", uri); |
gsteiert | 0:28bc7ce77e20 | 703 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 704 | struct dirent *p; |
gsteiert | 0:28bc7ce77e20 | 705 | while((p = readdir(d)) != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 706 | sprintf(dirName, "%s/%s", fileName, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 707 | uart.printf("%s\n", dirName); |
gsteiert | 3:4f71a37a1ed2 | 708 | DIR *subDir = opendir(dirName); |
gsteiert | 3:4f71a37a1ed2 | 709 | if (subDir != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 710 | sprintf(httpHeader,"<li><a href=\"./%s/\">%s/</a></li>", p->d_name, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 711 | } else { |
gsteiert | 3:4f71a37a1ed2 | 712 | sprintf(httpHeader,"<li><a href=\"./%s\">%s</a></li>", p->d_name, p->d_name); |
gsteiert | 3:4f71a37a1ed2 | 713 | } |
gsteiert | 0:28bc7ce77e20 | 714 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 715 | } |
gsteiert | 0:28bc7ce77e20 | 716 | } |
gsteiert | 0:28bc7ce77e20 | 717 | closedir(d); |
gsteiert | 3:4f71a37a1ed2 | 718 | uart.printf("Directory closed\n"); |
gsteiert | 0:28bc7ce77e20 | 719 | sprintf(httpHeader,"</ul></body></html>"); |
gsteiert | 0:28bc7ce77e20 | 720 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 721 | } else { |
gsteiert | 3:4f71a37a1ed2 | 722 | sprintf(fileName, "/sd%s", uri); |
gsteiert | 3:4f71a37a1ed2 | 723 | fp = fopen(fileName, "r"); |
gsteiert | 0:28bc7ce77e20 | 724 | if (fp == NULL) { |
gsteiert | 7:04744a9ce2b9 | 725 | uart.printf("File not found\n"); |
gsteiert | 0:28bc7ce77e20 | 726 | sprintf(httpHeader,"HTTP/1.1 404 Not Found \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 727 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 728 | client.send(uri,strlen(uri)); |
gsteiert | 0:28bc7ce77e20 | 729 | } else { |
gsteiert | 7:04744a9ce2b9 | 730 | uart.printf("Sending: header"); |
gsteiert | 0:28bc7ce77e20 | 731 | sprintf(httpHeader,"HTTP/1.1 200 OK\r\nContent-Type: text/html\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 732 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 7:04744a9ce2b9 | 733 | uart.printf(" file"); |
gsteiert | 0:28bc7ce77e20 | 734 | while ((rdCnt = fread(buffer, sizeof( char ), 1024, fp)) == 1024) { |
gsteiert | 0:28bc7ce77e20 | 735 | client.send(buffer, rdCnt); |
gsteiert | 7:04744a9ce2b9 | 736 | uart.printf("."); |
gsteiert | 0:28bc7ce77e20 | 737 | } |
gsteiert | 0:28bc7ce77e20 | 738 | client.send(buffer, rdCnt); |
gsteiert | 0:28bc7ce77e20 | 739 | fclose(fp); |
gsteiert | 7:04744a9ce2b9 | 740 | uart.printf("done\n"); |
gsteiert | 0:28bc7ce77e20 | 741 | } |
gsteiert | 0:28bc7ce77e20 | 742 | } |
gsteiert | 0:28bc7ce77e20 | 743 | } |
gsteiert | 0:28bc7ce77e20 | 744 | |
webmaster | 8:f2a567ee3a46 | 745 | int main_1 (void) |
gsteiert | 0:28bc7ce77e20 | 746 | { |
gsteiert | 3:4f71a37a1ed2 | 747 | // Serial Interface eth; |
gsteiert | 3:4f71a37a1ed2 | 748 | uart.baud(115200); |
gsteiert | 5:27b09a0f3fb6 | 749 | uart.printf("Initializing\n"); |
gsteiert | 3:4f71a37a1ed2 | 750 | |
gsteiert | 3:4f71a37a1ed2 | 751 | // Check File System |
gsteiert | 5:27b09a0f3fb6 | 752 | uart.printf("Checking File System\n"); |
gsteiert | 3:4f71a37a1ed2 | 753 | DIR *d = opendir("/sd/"); |
gsteiert | 3:4f71a37a1ed2 | 754 | if (d != NULL) { |
gsteiert | 3:4f71a37a1ed2 | 755 | uart.printf("SD Card Present\n"); |
gsteiert | 3:4f71a37a1ed2 | 756 | } else { |
gsteiert | 3:4f71a37a1ed2 | 757 | uart.printf("SD Card Root Directory Not Found\n"); |
gsteiert | 3:4f71a37a1ed2 | 758 | } |
gsteiert | 3:4f71a37a1ed2 | 759 | |
gsteiert | 0:28bc7ce77e20 | 760 | // EthernetInterface eth; |
gsteiert | 5:27b09a0f3fb6 | 761 | uart.printf("Initializing Ethernet\n"); |
webmaster | 8:f2a567ee3a46 | 762 | //eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 763 | eth.init("192.168.31.186", "255.255.255.0", "192.168.31.1"); //Use |
gsteiert | 5:27b09a0f3fb6 | 764 | uart.printf("Connecting\n"); |
gsteiert | 0:28bc7ce77e20 | 765 | eth.connect(); |
gsteiert | 3:4f71a37a1ed2 | 766 | uart.printf("IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 767 | |
webmaster | 8:f2a567ee3a46 | 768 | //test socket client |
webmaster | 8:f2a567ee3a46 | 769 | //my_client.connect("192.168.31.185",10003); |
webmaster | 8:f2a567ee3a46 | 770 | //my_client.send_all("hello world",11); |
webmaster | 8:f2a567ee3a46 | 771 | |
webmaster | 8:f2a567ee3a46 | 772 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 773 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 774 | uart.printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 775 | wait(1); |
webmaster | 8:f2a567ee3a46 | 776 | } |
webmaster | 8:f2a567ee3a46 | 777 | uart.printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 778 | |
webmaster | 8:f2a567ee3a46 | 779 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 780 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 781 | uart.printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 782 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 783 | |
webmaster | 8:f2a567ee3a46 | 784 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 785 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 786 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 787 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 788 | uart.printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 789 | |
webmaster | 8:f2a567ee3a46 | 790 | // Clean up |
webmaster | 8:f2a567ee3a46 | 791 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 792 | //////////////////////////////////////////////////////////////////////////// |
gsteiert | 0:28bc7ce77e20 | 793 | |
gsteiert | 0:28bc7ce77e20 | 794 | // TCPSocketServer server; |
gsteiert | 0:28bc7ce77e20 | 795 | server.bind(HTTPD_SERVER_PORT); |
gsteiert | 0:28bc7ce77e20 | 796 | server.listen(); |
gsteiert | 5:27b09a0f3fb6 | 797 | uart.printf("Server Listening\n"); |
gsteiert | 0:28bc7ce77e20 | 798 | |
gsteiert | 0:28bc7ce77e20 | 799 | while (true) { |
gsteiert | 3:4f71a37a1ed2 | 800 | uart.printf("\nWait for new connection...\r\n"); |
gsteiert | 0:28bc7ce77e20 | 801 | server.accept(client); |
gsteiert | 0:28bc7ce77e20 | 802 | client.set_blocking(false, 1500); // Timeout after (1.5)s |
webmaster | 8:f2a567ee3a46 | 803 | |
webmaster | 8:f2a567ee3a46 | 804 | my_client.send_all("hello world",11); |
gsteiert | 0:28bc7ce77e20 | 805 | |
gsteiert | 3:4f71a37a1ed2 | 806 | uart.printf("Connection from: %s\r\n", client.get_address()); |
gsteiert | 0:28bc7ce77e20 | 807 | while (true) { |
gsteiert | 0:28bc7ce77e20 | 808 | int n = client.receive(buffer, sizeof(buffer)); |
gsteiert | 0:28bc7ce77e20 | 809 | if (n <= 0) break; |
gsteiert | 3:4f71a37a1ed2 | 810 | uart.printf("Recieved Data: %d\r\n\r\n%.*s\r\n",n,n,buffer); |
gsteiert | 0:28bc7ce77e20 | 811 | if (n >= 1024) { |
gsteiert | 0:28bc7ce77e20 | 812 | sprintf(httpHeader,"HTTP/1.1 413 Request Entity Too Large \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 813 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 814 | client.send(buffer,n); |
gsteiert | 0:28bc7ce77e20 | 815 | break; |
gsteiert | 0:28bc7ce77e20 | 816 | } else { |
gsteiert | 0:28bc7ce77e20 | 817 | buffer[n]=0; |
gsteiert | 0:28bc7ce77e20 | 818 | } |
gsteiert | 0:28bc7ce77e20 | 819 | if (!strncmp(buffer, "GET ", 4)) { |
gsteiert | 0:28bc7ce77e20 | 820 | uristr = buffer + 4; |
gsteiert | 0:28bc7ce77e20 | 821 | eou = strstr(uristr, " "); |
gsteiert | 0:28bc7ce77e20 | 822 | if (eou == NULL) { |
gsteiert | 0:28bc7ce77e20 | 823 | sprintf(httpHeader,"HTTP/1.1 400 Bad Request \r\nContent-Type: text\r\nConnection: Close\r\n\r\n"); |
gsteiert | 0:28bc7ce77e20 | 824 | client.send(httpHeader,strlen(httpHeader)); |
gsteiert | 0:28bc7ce77e20 | 825 | client.send(buffer,n); |
gsteiert | 0:28bc7ce77e20 | 826 | } else { |
gsteiert | 0:28bc7ce77e20 | 827 | *eou = 0; |
gsteiert | 3:4f71a37a1ed2 | 828 | get_file(uristr); |
gsteiert | 0:28bc7ce77e20 | 829 | } |
gsteiert | 0:28bc7ce77e20 | 830 | } |
gsteiert | 0:28bc7ce77e20 | 831 | } |
gsteiert | 0:28bc7ce77e20 | 832 | |
gsteiert | 0:28bc7ce77e20 | 833 | client.close(); |
gsteiert | 0:28bc7ce77e20 | 834 | } |
gsteiert | 0:28bc7ce77e20 | 835 | } |
MrAI | 11:6d9cefb14158 | 836 | */ |
webmaster | 8:f2a567ee3a46 | 837 | |
webmaster | 8:f2a567ee3a46 | 838 | int main_2() { |
webmaster | 8:f2a567ee3a46 | 839 | // Serial Interface eth; |
webmaster | 8:f2a567ee3a46 | 840 | uart.baud(115200); |
webmaster | 8:f2a567ee3a46 | 841 | uart.printf("Initializing\n"); |
webmaster | 8:f2a567ee3a46 | 842 | |
webmaster | 8:f2a567ee3a46 | 843 | EthernetInterface eth; |
webmaster | 8:f2a567ee3a46 | 844 | eth.init(); //Use DHCP |
webmaster | 8:f2a567ee3a46 | 845 | eth.connect(); |
webmaster | 8:f2a567ee3a46 | 846 | printf("\nClient IP Address is %s\n", eth.getIPAddress()); |
webmaster | 8:f2a567ee3a46 | 847 | |
webmaster | 8:f2a567ee3a46 | 848 | // Connect to Server |
webmaster | 8:f2a567ee3a46 | 849 | TCPSocketConnection socket; |
webmaster | 8:f2a567ee3a46 | 850 | while (socket.connect(ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT) < 0) { |
webmaster | 8:f2a567ee3a46 | 851 | printf("Unable to connect to (%s) on port (%d)\n", ECHO_SERVER_ADDRESS, ECHO_SERVER_PORT); |
webmaster | 8:f2a567ee3a46 | 852 | wait(1); |
webmaster | 8:f2a567ee3a46 | 853 | } |
webmaster | 8:f2a567ee3a46 | 854 | printf("Connected to Server at %s\n",ECHO_SERVER_ADDRESS); |
webmaster | 8:f2a567ee3a46 | 855 | |
webmaster | 8:f2a567ee3a46 | 856 | // Send message to server |
webmaster | 8:f2a567ee3a46 | 857 | char hello[] = "Hello World"; |
webmaster | 8:f2a567ee3a46 | 858 | printf("Sending message to Server : '%s' \n",hello); |
webmaster | 8:f2a567ee3a46 | 859 | socket.send_all(hello, sizeof(hello) - 1); |
webmaster | 8:f2a567ee3a46 | 860 | |
webmaster | 8:f2a567ee3a46 | 861 | // Receive message from server |
webmaster | 8:f2a567ee3a46 | 862 | char buf[256]; |
webmaster | 8:f2a567ee3a46 | 863 | int n = socket.receive(buf, 256); |
webmaster | 8:f2a567ee3a46 | 864 | buf[n] = '\0'; |
webmaster | 8:f2a567ee3a46 | 865 | printf("Received message from server: '%s'\n", buf); |
webmaster | 8:f2a567ee3a46 | 866 | |
webmaster | 8:f2a567ee3a46 | 867 | // Clean up |
webmaster | 8:f2a567ee3a46 | 868 | socket.close(); |
webmaster | 8:f2a567ee3a46 | 869 | eth.disconnect(); |
webmaster | 8:f2a567ee3a46 | 870 | |
webmaster | 8:f2a567ee3a46 | 871 | while(true) {} |
webmaster | 15:7ec76c840343 | 872 | } |
webmaster | 15:7ec76c840343 | 873 | |
webmaster | 15:7ec76c840343 | 874 | DigitalOut myled1(LED1); |
webmaster | 15:7ec76c840343 | 875 | DigitalOut myled2(LED2); |
webmaster | 15:7ec76c840343 | 876 | DigitalOut myled3(LED3); |
webmaster | 15:7ec76c840343 | 877 | |
webmaster | 15:7ec76c840343 | 878 | int main(void) |
webmaster | 15:7ec76c840343 | 879 | { |
webmaster | 15:7ec76c840343 | 880 | printf("main start\n"); |
webmaster | 15:7ec76c840343 | 881 | |
webmaster | 15:7ec76c840343 | 882 | // test_uuid(); |
webmaster | 15:7ec76c840343 | 883 | |
webmaster | 15:7ec76c840343 | 884 | |
webmaster | 15:7ec76c840343 | 885 | socket_init(); |
webmaster | 15:7ec76c840343 | 886 | |
webmaster | 15:7ec76c840343 | 887 | // cout<<"**************************GET NEW WALLET****************************"<<endl; |
webmaster | 15:7ec76c840343 | 888 | // sd_wallet(); |
webmaster | 15:7ec76c840343 | 889 | // wait(2); |
webmaster | 15:7ec76c840343 | 890 | cout<<"**************************GET ACCOUNT BALANCE************************"<<endl; |
webmaster | 15:7ec76c840343 | 891 | while(1) |
webmaster | 15:7ec76c840343 | 892 | { |
webmaster | 15:7ec76c840343 | 893 | long balance = sd_account(); |
webmaster | 15:7ec76c840343 | 894 | wait(2); |
webmaster | 15:7ec76c840343 | 895 | if(balance > 2000000) |
webmaster | 15:7ec76c840343 | 896 | { |
webmaster | 15:7ec76c840343 | 897 | myled1 = 1; |
webmaster | 15:7ec76c840343 | 898 | myled2 = 0; |
webmaster | 15:7ec76c840343 | 899 | myled3 = 0; |
webmaster | 15:7ec76c840343 | 900 | } |
webmaster | 15:7ec76c840343 | 901 | else |
webmaster | 15:7ec76c840343 | 902 | { |
webmaster | 15:7ec76c840343 | 903 | myled1 = 0; |
webmaster | 15:7ec76c840343 | 904 | myled2 = 1; |
webmaster | 15:7ec76c840343 | 905 | myled3 = 0; |
webmaster | 15:7ec76c840343 | 906 | } |
webmaster | 15:7ec76c840343 | 907 | } |
webmaster | 15:7ec76c840343 | 908 | |
webmaster | 15:7ec76c840343 | 909 | /* |
webmaster | 15:7ec76c840343 | 910 | cout<<"*************************POST PAYMENT REQUEST********************"<<endl; |
webmaster | 15:7ec76c840343 | 911 | sd_postpayment(); |
webmaster | 15:7ec76c840343 | 912 | wait(2); |
webmaster | 15:7ec76c840343 | 913 | cout<<"*************************GET PAYMENT INFO****************"<<endl; |
webmaster | 15:7ec76c840343 | 914 | sd_getpaymentinfo(); |
webmaster | 15:7ec76c840343 | 915 | wait(2); |
webmaster | 15:7ec76c840343 | 916 | cout<<"*************************GET TRANSACTIONS INFO***********"<<endl; |
webmaster | 15:7ec76c840343 | 917 | sd_gettransactions(); |
webmaster | 15:7ec76c840343 | 918 | wait(2); |
webmaster | 15:7ec76c840343 | 919 | cout<<"*************************GET PAYMENT HISTORY*****************"<<endl; |
webmaster | 15:7ec76c840343 | 920 | sd_getpaymenthistory(); |
webmaster | 15:7ec76c840343 | 921 | wait(2); |
webmaster | 15:7ec76c840343 | 922 | cout<<"*************************GET DEFAULT FEE**********************"<<endl; |
webmaster | 15:7ec76c840343 | 923 | sd_getdefaultfee(); |
webmaster | 15:7ec76c840343 | 924 | wait(2); |
webmaster | 15:7ec76c840343 | 925 | cout<<"*************************GET SERVER INFO******************"<<endl; |
webmaster | 15:7ec76c840343 | 926 | sd_getserverinfo(); |
webmaster | 15:7ec76c840343 | 927 | wait(2); |
webmaster | 15:7ec76c840343 | 928 | cout<<"*************************GET SERVER CONNECTED******************"<<endl; |
webmaster | 15:7ec76c840343 | 929 | sd_getserverconnected(); |
webmaster | 15:7ec76c840343 | 930 | wait(2); |
webmaster | 15:7ec76c840343 | 931 | cout<<"*************************GET ORDER LIST********************"<<endl; |
webmaster | 15:7ec76c840343 | 932 | sd_queryorderlist(); |
webmaster | 15:7ec76c840343 | 933 | wait(2); |
webmaster | 15:7ec76c840343 | 934 | cout<<"*************************POST ORDER INFO********************"<<endl; |
webmaster | 15:7ec76c840343 | 935 | sd_commitorder(); |
webmaster | 15:7ec76c840343 | 936 | wait(2); |
webmaster | 15:7ec76c840343 | 937 | cout<<"*************************DELETE ORDER INFO********************"<<endl; |
webmaster | 15:7ec76c840343 | 938 | sd_deleteorder(); |
webmaster | 15:7ec76c840343 | 939 | wait(2); |
webmaster | 15:7ec76c840343 | 940 | cout<<"*************************GET ORDER DETAILED*******************"<<endl; |
webmaster | 15:7ec76c840343 | 941 | sd_queryorderdetailed(); |
webmaster | 15:7ec76c840343 | 942 | |
webmaster | 15:7ec76c840343 | 943 | */ |
webmaster | 15:7ec76c840343 | 944 | |
webmaster | 15:7ec76c840343 | 945 | //char isContinue = 'y'; |
webmaster | 15:7ec76c840343 | 946 | // do |
webmaster | 15:7ec76c840343 | 947 | //{ |
webmaster | 15:7ec76c840343 | 948 | //tring type = "spend_account"; |
webmaster | 15:7ec76c840343 | 949 | //string type = "issue"; |
webmaster | 15:7ec76c840343 | 950 | //test_transaction(type); |
webmaster | 15:7ec76c840343 | 951 | //est_transaction(); |
webmaster | 15:7ec76c840343 | 952 | //rintf("=============5========\n"); |
webmaster | 15:7ec76c840343 | 953 | // }while(1); |
webmaster | 15:7ec76c840343 | 954 | //}while (isContinue = getch() != 'q'); |
webmaster | 15:7ec76c840343 | 955 | |
webmaster | 15:7ec76c840343 | 956 | |
webmaster | 15:7ec76c840343 | 957 | //test_socket_client(); |
webmaster | 15:7ec76c840343 | 958 | |
webmaster | 15:7ec76c840343 | 959 | socket_fini(); |
webmaster | 15:7ec76c840343 | 960 | |
webmaster | 15:7ec76c840343 | 961 | printf("main end\n"); |
webmaster | 15:7ec76c840343 | 962 | return 0; |
webmaster | 8:f2a567ee3a46 | 963 | } |