add parameter from to listtransactions this allows querying for ranges, i.e. transact...
authorCarlo Alberto Ferraris <github@cafxx.strayorange.com>
Fri, 15 Apr 2011 06:24:59 +0000 (08:24 +0200)
committerCarlo Alberto Ferraris <github@cafxx.strayorange.com>
Fri, 15 Apr 2011 06:56:54 +0000 (08:56 +0200)
rpc.cpp

diff --git a/rpc.cpp b/rpc.cpp
index 93df5c2..69db71a 100644 (file)
--- a/rpc.cpp
+++ b/rpc.cpp
@@ -1084,8 +1084,8 @@ Value listtransactions(const Array& params, bool fHelp)
 {
     if (fHelp || params.size() > 2)
         throw runtime_error(
-            "listtransactions [account] [count=10]\n"
-            "Returns up to [count] most recent transactions for account <account>.");
+            "listtransactions [account] [count=10] [from=0]\n"
+            "Returns up to [count] most recent transactions skipping the first [from] transactions for account [account].");
 
     string strAccount = "*";
     if (params.size() > 0)
@@ -1093,6 +1093,9 @@ Value listtransactions(const Array& params, bool fHelp)
     int nCount = 10;
     if (params.size() > 1)
         nCount = params[1].get_int();
+    int nFrom = 0;
+    if (params.size() > 2)
+        nFrom = params[2].get_int();
 
     Array ret;
     CWalletDB walletdb;
@@ -1117,7 +1120,7 @@ Value listtransactions(const Array& params, bool fHelp)
         }
 
         // Now: iterate backwards until we have nCount items to return:
-        for (TxItems::reverse_iterator it = txByTime.rbegin(); it != txByTime.rend(); ++it)
+        for (TxItems::reverse_iterator it = txByTime.rbegin(), std::advance(it, nFrom); it != txByTime.rend(); ++it)
         {
             CWalletTx *const pwtx = (*it).second.first;
             if (pwtx != 0)