示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
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;
}