BtcTransactionPtr BtcHelper::WaitGetTransaction(const std::string &txId, const int32_t &timerMS, const int32_t &maxAttempts) { if(txId.empty()) return BtcTransactionPtr(); BtcTransactionPtr transaction = BtcTransactionPtr(); while(maxAttempts) { transaction = this->modules->btcJson->GetTransaction(txId); if(transaction != NULL) return transaction; btc::Sleep(timerMS); } return transaction; }
BtcTransactionPtr BtcJsonLegacy::GetTransaction(const std::string &txId, const bool& includeWatchonly) { Json::Value params = Json::Value(); params.append(txId); Json::Value result = Json::Value(); if(!ProcessRpcString( this->modules->btcRpc->SendRpc( CreateJsonQuery(METHOD_GETTRANSACTION, params)), result)) return BtcTransactionPtr(); // error if(!result.isObject()) return BtcTransactionPtr(); // error BtcTransactionPtr transaction = BtcTransactionPtr(new BtcTransaction(result)); return transaction; }
BtcTransactions BtcJsonLegacy::ListTransactions(const std::string &account, const int32_t &count, const int32_t &from, const bool &includeWatchonly) { Json::Value params = Json::Value(); params.append(account); params.append(count); params.append(from); Json::Value result = Json::Value(); if(!ProcessRpcString(this->modules->btcRpc->SendRpc(CreateJsonQuery(METHOD_LISTTRANSACTIONS, params)), result)) return BtcTransactions(); // error if(!result.isArray()) return BtcTransactions(); BtcTransactions transactions; for (Json::Value::ArrayIndex i = 0; i < result.size(); i++) { transactions.push_back(BtcTransactionPtr(new BtcTransaction(result[i]))); } return transactions; }