hwelltech block chain cpp sdk
Dependencies: EthernetInterface SDFileSystem mbed-rtos mbed uniqueCPUID
Fork of bcsdk by
bcsdk 是 block chain sdk 的简写。它是由江苏恒为信息科技有限公司开发的 BlockChain 的 基于 mbed os 的 C++ 版本SDK,它能帮助开发者快速的在支持 mbed os 的芯片上开发 BlockChain 的应用。 bcsdk 的demo文件中包含了BlockChain中的 Key、Account、Asset、Transaction等方面的示例。其中: (1) Key 加密私钥是区块链上的主要授权机制。他们控制资产单位的发行和转让。 资产或帐户将定义发行或转移所需的单个密钥。 在 Key_test.cpp 中,我们实现了: 创建HSM密钥 键入密钥别名的名称(例如'gold','silver','bronze'),密钥别名是用于区分密钥的标签。
(2) Asset 资产是一种可以在区块链上发布的值类型。资产的所有单位均可互换,可以在各方之间直接交易,无需发行人参与。 在 Asset_test.cpp 中,我们实现了: 创建资产 键入资产别名的名称(例如'gold','silver','bronze'),资产别名是用于区分资产的标签。 选择“Key”键以使用现有的HSM密键,此密钥将用于此帐户中资产单位的发放和转移。
(3) Account 加帐户是恒为区块链核心平台中的一个对象,通过创建和跟踪控制程序来跟踪区块链上的资产的所有权。创建帐户时,您提供一个或多个“root”密钥和仲裁。 在 Account_test.cpp 中,我们实现了: 创建帐户 1 输入帐户别名的名称(例如'alice','bob'),帐户别名是用于区分帐户的标签。 2 键入名称以生成新的HSM密钥(例如'alice key','bob key'),此密钥将用于此帐户中资产单位的发放和转移。
(4) Transaction 交易包含一个或多个输入,以及一个或多个输出。恒为区块链核心平台的API允许您使用操作(包括发出,支出和返还)构建交易。 在 Transaction_test.cpp 中,我们实现了: 资产的交易 1 添加“账户支出”操作 2 为资产别名选择“Asset” 3 输入“100”作为金额 4 添加“使用帐户控制”操作 5 为帐户别名选择“Account” 6 为资产别名选择“Asset” 7 输入“100”作为金额 8 “提交”
Transaction.cpp@10:aabd720e632c, 2017-11-03 (annotated)
- Committer:
- webmaster
- Date:
- Fri Nov 03 01:07:32 2017 +0000
- Revision:
- 10:aabd720e632c
publish v0.1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
webmaster | 10:aabd720e632c | 1 | #include "Transaction.h" |
webmaster | 10:aabd720e632c | 2 | #include "MbedJSONValue.h" |
webmaster | 10:aabd720e632c | 3 | #include <string> |
webmaster | 10:aabd720e632c | 4 | #include <stdio.h> |
webmaster | 10:aabd720e632c | 5 | |
webmaster | 10:aabd720e632c | 6 | // �������� |
webmaster | 10:aabd720e632c | 7 | // ע��json�Ǹ�����[] |
webmaster | 10:aabd720e632c | 8 | string Transaction::buildTransaction() |
webmaster | 10:aabd720e632c | 9 | { |
webmaster | 10:aabd720e632c | 10 | string strJson = ""; |
webmaster | 10:aabd720e632c | 11 | |
webmaster | 10:aabd720e632c | 12 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 13 | MbedJSONValue reference_data; |
webmaster | 10:aabd720e632c | 14 | MbedJSONValue valArray; |
webmaster | 10:aabd720e632c | 15 | |
webmaster | 10:aabd720e632c | 16 | //fill the object |
webmaster | 10:aabd720e632c | 17 | val["actions"][0]["account_alias"] = "t_acc_1"; |
webmaster | 10:aabd720e632c | 18 | val["actions"][0]["asset_alias"] = "t_asset"; |
webmaster | 10:aabd720e632c | 19 | val["actions"][0]["amount"] = 10; |
webmaster | 10:aabd720e632c | 20 | val["actions"][0]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 21 | val["actions"][0]["type"] = "spend_account"; |
webmaster | 10:aabd720e632c | 22 | |
webmaster | 10:aabd720e632c | 23 | val["actions"][1]["account_alias"] = "t_acc_2"; |
webmaster | 10:aabd720e632c | 24 | val["actions"][1]["asset_alias"] = "t_asset"; |
webmaster | 10:aabd720e632c | 25 | val["actions"][1]["amount"] = 10; |
webmaster | 10:aabd720e632c | 26 | val["actions"][1]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 27 | val["actions"][1]["type"] = "control_account"; |
webmaster | 10:aabd720e632c | 28 | |
webmaster | 10:aabd720e632c | 29 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 30 | valArray[0] = val; |
webmaster | 10:aabd720e632c | 31 | strJson = valArray.serialize(); |
webmaster | 10:aabd720e632c | 32 | |
webmaster | 10:aabd720e632c | 33 | printf("json: %s\r\n", strJson.c_str()); |
webmaster | 10:aabd720e632c | 34 | |
webmaster | 10:aabd720e632c | 35 | string strRep = ""; |
webmaster | 10:aabd720e632c | 36 | string strUrl = "/build-transaction"; |
webmaster | 10:aabd720e632c | 37 | client.http_post(strUrl,strJson,strRep); |
webmaster | 10:aabd720e632c | 38 | printf("=============4========\n"); |
webmaster | 10:aabd720e632c | 39 | |
webmaster | 10:aabd720e632c | 40 | // get http response content |
webmaster | 10:aabd720e632c | 41 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 42 | |
webmaster | 10:aabd720e632c | 43 | // decode content json |
webmaster | 10:aabd720e632c | 44 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 45 | parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 46 | m_valRep = valRep; |
webmaster | 10:aabd720e632c | 47 | |
webmaster | 10:aabd720e632c | 48 | std::string raw_transaction = valRep[0]["raw_transaction"].get<std::string>(); |
webmaster | 10:aabd720e632c | 49 | MbedJSONValue valSign; |
webmaster | 10:aabd720e632c | 50 | valSign = valRep[0]["signing_instructions"][0]; |
webmaster | 10:aabd720e632c | 51 | |
webmaster | 10:aabd720e632c | 52 | string xpub; |
webmaster | 10:aabd720e632c | 53 | xpub = valSign["witness_components"][0]["keys"][0]["xpub"].get<std::string>(); |
webmaster | 10:aabd720e632c | 54 | m_strXpub = xpub; |
webmaster | 10:aabd720e632c | 55 | |
webmaster | 10:aabd720e632c | 56 | return strJson; |
webmaster | 10:aabd720e632c | 57 | } |
webmaster | 10:aabd720e632c | 58 | |
webmaster | 10:aabd720e632c | 59 | string Transaction::buildTransaction(string type) |
webmaster | 10:aabd720e632c | 60 | { |
webmaster | 10:aabd720e632c | 61 | string strJson = ""; |
webmaster | 10:aabd720e632c | 62 | |
webmaster | 10:aabd720e632c | 63 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 64 | MbedJSONValue reference_data; |
webmaster | 10:aabd720e632c | 65 | MbedJSONValue valArray; |
webmaster | 10:aabd720e632c | 66 | |
webmaster | 10:aabd720e632c | 67 | //fill the object |
webmaster | 10:aabd720e632c | 68 | if (type == "spend_account") |
webmaster | 10:aabd720e632c | 69 | { |
webmaster | 10:aabd720e632c | 70 | amount = 10; |
webmaster | 10:aabd720e632c | 71 | sender = "t_acc_1"; |
webmaster | 10:aabd720e632c | 72 | receiver = "t_acc_2"; |
webmaster | 10:aabd720e632c | 73 | asset_alias = "t_asset"; |
webmaster | 10:aabd720e632c | 74 | |
webmaster | 10:aabd720e632c | 75 | val["actions"][0]["account_alias"] = sender; |
webmaster | 10:aabd720e632c | 76 | val["actions"][0]["asset_alias"] = asset_alias; |
webmaster | 10:aabd720e632c | 77 | val["actions"][0]["amount"] = amount; |
webmaster | 10:aabd720e632c | 78 | val["actions"][0]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 79 | val["actions"][0]["type"] = type; |
webmaster | 10:aabd720e632c | 80 | |
webmaster | 10:aabd720e632c | 81 | val["actions"][1]["account_alias"] = receiver; |
webmaster | 10:aabd720e632c | 82 | val["actions"][1]["asset_alias"] = asset_alias; |
webmaster | 10:aabd720e632c | 83 | val["actions"][1]["amount"] = amount; |
webmaster | 10:aabd720e632c | 84 | val["actions"][1]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 85 | val["actions"][1]["type"] = "control_account"; |
webmaster | 10:aabd720e632c | 86 | } |
webmaster | 10:aabd720e632c | 87 | else if (type == "issue") |
webmaster | 10:aabd720e632c | 88 | { |
webmaster | 10:aabd720e632c | 89 | amount = 1000; |
webmaster | 10:aabd720e632c | 90 | receiver = "t_acc_1"; |
webmaster | 10:aabd720e632c | 91 | asset_alias = "t_asset"; |
webmaster | 10:aabd720e632c | 92 | |
webmaster | 10:aabd720e632c | 93 | val["actions"][0]["asset_alias"] = asset_alias; |
webmaster | 10:aabd720e632c | 94 | val["actions"][0]["amount"] = amount; |
webmaster | 10:aabd720e632c | 95 | val["actions"][0]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 96 | val["actions"][0]["type"] = type; |
webmaster | 10:aabd720e632c | 97 | |
webmaster | 10:aabd720e632c | 98 | val["actions"][1]["account_alias"] = receiver; |
webmaster | 10:aabd720e632c | 99 | val["actions"][1]["asset_alias"] = asset_alias; |
webmaster | 10:aabd720e632c | 100 | val["actions"][1]["amount"] = amount; |
webmaster | 10:aabd720e632c | 101 | val["actions"][1]["reference_data"] = reference_data; |
webmaster | 10:aabd720e632c | 102 | val["actions"][1]["type"] = "control_account"; |
webmaster | 10:aabd720e632c | 103 | } |
webmaster | 10:aabd720e632c | 104 | |
webmaster | 10:aabd720e632c | 105 | |
webmaster | 10:aabd720e632c | 106 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 107 | valArray[0] = val; |
webmaster | 10:aabd720e632c | 108 | strJson = valArray.serialize(); |
webmaster | 10:aabd720e632c | 109 | |
webmaster | 10:aabd720e632c | 110 | //printf("json: %s\r\n", strJson.c_str()); |
webmaster | 10:aabd720e632c | 111 | |
webmaster | 10:aabd720e632c | 112 | string strRep = ""; |
webmaster | 10:aabd720e632c | 113 | string strUrl = "/build-transaction"; |
webmaster | 10:aabd720e632c | 114 | client.http_post(strUrl,strJson,strRep); |
webmaster | 10:aabd720e632c | 115 | |
webmaster | 10:aabd720e632c | 116 | |
webmaster | 10:aabd720e632c | 117 | // get http response content |
webmaster | 10:aabd720e632c | 118 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 119 | |
webmaster | 10:aabd720e632c | 120 | // decode content json |
webmaster | 10:aabd720e632c | 121 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 122 | parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 123 | m_valRep = valRep; |
webmaster | 10:aabd720e632c | 124 | |
webmaster | 10:aabd720e632c | 125 | std::string raw_transaction = valRep[0]["raw_transaction"].get<std::string>(); |
webmaster | 10:aabd720e632c | 126 | MbedJSONValue valSign; |
webmaster | 10:aabd720e632c | 127 | valSign = valRep[0]["signing_instructions"][0]; |
webmaster | 10:aabd720e632c | 128 | |
webmaster | 10:aabd720e632c | 129 | string xpub; |
webmaster | 10:aabd720e632c | 130 | xpub = valSign["witness_components"][0]["keys"][0]["xpub"].get<std::string>(); |
webmaster | 10:aabd720e632c | 131 | m_strXpub = xpub; |
webmaster | 10:aabd720e632c | 132 | |
webmaster | 10:aabd720e632c | 133 | return strJson; |
webmaster | 10:aabd720e632c | 134 | } |
webmaster | 10:aabd720e632c | 135 | |
webmaster | 10:aabd720e632c | 136 | string Transaction::buildTransaction(vector<Actions> &actions) |
webmaster | 10:aabd720e632c | 137 | { |
webmaster | 10:aabd720e632c | 138 | string strJson = ""; |
webmaster | 10:aabd720e632c | 139 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 140 | MbedJSONValue reference_data; |
webmaster | 10:aabd720e632c | 141 | MbedJSONValue valArray; |
webmaster | 10:aabd720e632c | 142 | printf("=============3========\r\n"); |
webmaster | 10:aabd720e632c | 143 | //fill the object |
webmaster | 10:aabd720e632c | 144 | vector<Actions>::iterator it; |
webmaster | 10:aabd720e632c | 145 | int i = 0; |
webmaster | 10:aabd720e632c | 146 | for (it = actions.begin(),i = 0; it != actions.end(); it++,i++) |
webmaster | 10:aabd720e632c | 147 | { |
webmaster | 10:aabd720e632c | 148 | printf("=============3.1========\r\n"); |
webmaster | 10:aabd720e632c | 149 | if (it->type == "spend_account") |
webmaster | 10:aabd720e632c | 150 | { |
webmaster | 10:aabd720e632c | 151 | val["actions"][i]["account_alias"] = it->accounts_alias; |
webmaster | 10:aabd720e632c | 152 | val["actions"][i]["asset_alias"] = it->asset_alias; |
webmaster | 10:aabd720e632c | 153 | val["actions"][i]["amount"] = it->amount; |
webmaster | 10:aabd720e632c | 154 | val["actions"][i]["reference_data"] = it->reference_data; |
webmaster | 10:aabd720e632c | 155 | val["actions"][i]["type"] = it->type; |
webmaster | 10:aabd720e632c | 156 | } |
webmaster | 10:aabd720e632c | 157 | else if (it->type == "issue") |
webmaster | 10:aabd720e632c | 158 | { |
webmaster | 10:aabd720e632c | 159 | val["actions"][i]["asset_alias"] = it->asset_alias; |
webmaster | 10:aabd720e632c | 160 | val["actions"][i]["amount"] = it->amount; |
webmaster | 10:aabd720e632c | 161 | val["actions"][i]["reference_data"] = it->reference_data; |
webmaster | 10:aabd720e632c | 162 | val["actions"][i]["type"] = it->type; |
webmaster | 10:aabd720e632c | 163 | } |
webmaster | 10:aabd720e632c | 164 | else if (it->type == "control_account") |
webmaster | 10:aabd720e632c | 165 | { |
webmaster | 10:aabd720e632c | 166 | val["actions"][i]["account_alias"] = it->accounts_alias; |
webmaster | 10:aabd720e632c | 167 | val["actions"][i]["asset_alias"] = it->asset_alias; |
webmaster | 10:aabd720e632c | 168 | val["actions"][i]["amount"] = it->amount; |
webmaster | 10:aabd720e632c | 169 | val["actions"][i]["reference_data"] = it->reference_data; |
webmaster | 10:aabd720e632c | 170 | val["actions"][i]["type"] = it->type; |
webmaster | 10:aabd720e632c | 171 | } |
webmaster | 10:aabd720e632c | 172 | printf("=============3.2========\r\n"); |
webmaster | 10:aabd720e632c | 173 | } |
webmaster | 10:aabd720e632c | 174 | |
webmaster | 10:aabd720e632c | 175 | printf("=============3.3========\r\n"); |
webmaster | 10:aabd720e632c | 176 | |
webmaster | 10:aabd720e632c | 177 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 178 | valArray[0] = val; |
webmaster | 10:aabd720e632c | 179 | strJson = valArray.serialize(); |
webmaster | 10:aabd720e632c | 180 | |
webmaster | 10:aabd720e632c | 181 | printf("json: %s\r\n", strJson.c_str()); |
webmaster | 10:aabd720e632c | 182 | |
webmaster | 10:aabd720e632c | 183 | string strRep = ""; |
webmaster | 10:aabd720e632c | 184 | string strUrl = "/build-transaction"; |
webmaster | 10:aabd720e632c | 185 | if (client.http_post(strUrl,strJson,strRep) < 0) |
webmaster | 10:aabd720e632c | 186 | { |
webmaster | 10:aabd720e632c | 187 | return "http post error"; |
webmaster | 10:aabd720e632c | 188 | } |
webmaster | 10:aabd720e632c | 189 | else if (strRep.find("HTTP/1.1 200 OK") < 0) |
webmaster | 10:aabd720e632c | 190 | { |
webmaster | 10:aabd720e632c | 191 | return strRep.substr(0,strRep.find_first_of("\r\n")); |
webmaster | 10:aabd720e632c | 192 | } |
webmaster | 10:aabd720e632c | 193 | |
webmaster | 10:aabd720e632c | 194 | // get http response content |
webmaster | 10:aabd720e632c | 195 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 196 | if (content.find("raw_transaction") < 0) |
webmaster | 10:aabd720e632c | 197 | { |
webmaster | 10:aabd720e632c | 198 | return content; |
webmaster | 10:aabd720e632c | 199 | } |
webmaster | 10:aabd720e632c | 200 | printf("=============4========\r\n"); |
webmaster | 10:aabd720e632c | 201 | // decode content json |
webmaster | 10:aabd720e632c | 202 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 203 | string err = parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 204 | int ret = 0; |
webmaster | 10:aabd720e632c | 205 | ret = err.find("error"); |
webmaster | 10:aabd720e632c | 206 | if ( ret > 1) |
webmaster | 10:aabd720e632c | 207 | { |
webmaster | 10:aabd720e632c | 208 | return err; |
webmaster | 10:aabd720e632c | 209 | } |
webmaster | 10:aabd720e632c | 210 | m_valRep = valRep; |
webmaster | 10:aabd720e632c | 211 | |
webmaster | 10:aabd720e632c | 212 | std::string raw_transaction = valRep[0]["raw_transaction"].get<std::string>(); |
webmaster | 10:aabd720e632c | 213 | MbedJSONValue valSign; |
webmaster | 10:aabd720e632c | 214 | valSign = valRep[0]["signing_instructions"][0]; |
webmaster | 10:aabd720e632c | 215 | |
webmaster | 10:aabd720e632c | 216 | string xpub; |
webmaster | 10:aabd720e632c | 217 | xpub = valSign["witness_components"][0]["keys"][0]["xpub"].get<std::string>(); |
webmaster | 10:aabd720e632c | 218 | m_strXpub = xpub; |
webmaster | 10:aabd720e632c | 219 | |
webmaster | 10:aabd720e632c | 220 | return strJson; |
webmaster | 10:aabd720e632c | 221 | } |
webmaster | 10:aabd720e632c | 222 | |
webmaster | 10:aabd720e632c | 223 | string Transaction::signTransaction() |
webmaster | 10:aabd720e632c | 224 | { |
webmaster | 10:aabd720e632c | 225 | string strJson = ""; |
webmaster | 10:aabd720e632c | 226 | |
webmaster | 10:aabd720e632c | 227 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 228 | |
webmaster | 10:aabd720e632c | 229 | //fill the object |
webmaster | 10:aabd720e632c | 230 | val["transactions"] = m_valRep; |
webmaster | 10:aabd720e632c | 231 | val["xpubs"][0] = m_strXpub; |
webmaster | 10:aabd720e632c | 232 | |
webmaster | 10:aabd720e632c | 233 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 234 | strJson = val.serialize(); |
webmaster | 10:aabd720e632c | 235 | |
webmaster | 10:aabd720e632c | 236 | string strRep = ""; |
webmaster | 10:aabd720e632c | 237 | string strUrl = "/mockhsm/sign-transaction"; |
webmaster | 10:aabd720e632c | 238 | client.http_post(strUrl,strJson,strRep); |
webmaster | 10:aabd720e632c | 239 | |
webmaster | 10:aabd720e632c | 240 | |
webmaster | 10:aabd720e632c | 241 | // get http response content |
webmaster | 10:aabd720e632c | 242 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 243 | |
webmaster | 10:aabd720e632c | 244 | // decode content json |
webmaster | 10:aabd720e632c | 245 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 246 | parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 247 | |
webmaster | 10:aabd720e632c | 248 | m_valRep = valRep; |
webmaster | 10:aabd720e632c | 249 | |
webmaster | 10:aabd720e632c | 250 | return strJson; |
webmaster | 10:aabd720e632c | 251 | } |
webmaster | 10:aabd720e632c | 252 | |
webmaster | 10:aabd720e632c | 253 | string Transaction::submitTransaction() |
webmaster | 10:aabd720e632c | 254 | { |
webmaster | 10:aabd720e632c | 255 | string strJson = ""; |
webmaster | 10:aabd720e632c | 256 | |
webmaster | 10:aabd720e632c | 257 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 258 | |
webmaster | 10:aabd720e632c | 259 | //fill the object |
webmaster | 10:aabd720e632c | 260 | val["transactions"] = m_valRep; |
webmaster | 10:aabd720e632c | 261 | |
webmaster | 10:aabd720e632c | 262 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 263 | strJson = val.serialize(); |
webmaster | 10:aabd720e632c | 264 | |
webmaster | 10:aabd720e632c | 265 | //printf("json: %s\r\n", strJson.c_str()); |
webmaster | 10:aabd720e632c | 266 | |
webmaster | 10:aabd720e632c | 267 | string strRep = ""; |
webmaster | 10:aabd720e632c | 268 | string strUrl = "/submit-transaction"; |
webmaster | 10:aabd720e632c | 269 | client.http_post(strUrl,strJson,strRep); |
webmaster | 10:aabd720e632c | 270 | |
webmaster | 10:aabd720e632c | 271 | // get http response content |
webmaster | 10:aabd720e632c | 272 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 273 | |
webmaster | 10:aabd720e632c | 274 | // decode content json |
webmaster | 10:aabd720e632c | 275 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 276 | parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 277 | |
webmaster | 10:aabd720e632c | 278 | id = valRep[0]["id"].get<std::string>(); |
webmaster | 10:aabd720e632c | 279 | |
webmaster | 10:aabd720e632c | 280 | return strJson; |
webmaster | 10:aabd720e632c | 281 | } |
webmaster | 10:aabd720e632c | 282 | |
webmaster | 10:aabd720e632c | 283 | string Transaction::listTransactions() |
webmaster | 10:aabd720e632c | 284 | { |
webmaster | 10:aabd720e632c | 285 | string strJson = ""; |
webmaster | 10:aabd720e632c | 286 | |
webmaster | 10:aabd720e632c | 287 | MbedJSONValue val; |
webmaster | 10:aabd720e632c | 288 | |
webmaster | 10:aabd720e632c | 289 | //fill the object |
webmaster | 10:aabd720e632c | 290 | val["filter"] = "id='" + id + "'"; |
webmaster | 10:aabd720e632c | 291 | |
webmaster | 10:aabd720e632c | 292 | //serialize it into a JSON string |
webmaster | 10:aabd720e632c | 293 | strJson = val.serialize(); |
webmaster | 10:aabd720e632c | 294 | |
webmaster | 10:aabd720e632c | 295 | //printf("json: %s\r\n", strJson.c_str()); |
webmaster | 10:aabd720e632c | 296 | |
webmaster | 10:aabd720e632c | 297 | string strRep = ""; |
webmaster | 10:aabd720e632c | 298 | string strUrl = "/list-transactions"; |
webmaster | 10:aabd720e632c | 299 | client.http_post(strUrl,strJson,strRep); |
webmaster | 10:aabd720e632c | 300 | |
webmaster | 10:aabd720e632c | 301 | |
webmaster | 10:aabd720e632c | 302 | // get http response content |
webmaster | 10:aabd720e632c | 303 | string content = client.get_content(strRep); |
webmaster | 10:aabd720e632c | 304 | |
webmaster | 10:aabd720e632c | 305 | // decode content json |
webmaster | 10:aabd720e632c | 306 | MbedJSONValue valRep; |
webmaster | 10:aabd720e632c | 307 | parse(valRep,content.c_str()); |
webmaster | 10:aabd720e632c | 308 | m_valRep = valRep; |
webmaster | 10:aabd720e632c | 309 | |
webmaster | 10:aabd720e632c | 310 | return strJson; |
webmaster | 10:aabd720e632c | 311 | } |