二期c++接口

Dependencies:   EthernetInterface mbed-rtos mbed uniqueCPUID

Fork of bcsdk by Heng Well

Committer:
MrAI
Date:
Thu May 17 13:36:46 2018 +0000
Revision:
13:e77c7ae3a285
Parent:
12:1b24ea479a59
Child:
14:59412fcf8fa2
????????

Who changed what in which revision?

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