actually handle book_offers

This commit is contained in:
CJ Cobb
2021-01-27 10:19:48 -05:00
parent ae494e8ee1
commit 689f548fb7
2 changed files with 47 additions and 3 deletions

30
test.py
View File

@@ -87,15 +87,40 @@ async def ledger_data_full(ip, port, ledger):
print(e)
async def book_offers(ip, port, ledger, pay_currency, pay_issuer, get_currency, get_issuer):
address = 'ws://' + str(ip) + ':' + str(port)
try:
async with websockets.connect(address) as ws:
taker_gets = json.loads("{\"currency\":" + get_currency+"}")
if get_issuer is not None:
taker_gets["issuer"] = get_issuer
taker_pays = json.loads("{\"currency\":" + pay_currency + "}")
if pay_issuer is not None:
taker_pays["issuer"] = pay_issuer
await ws.send(json.dumps({"command":"book_offers","ledger_index":int(ledger), "taker_pays":taker_pays, "taker_gets":taker_gets}))
res = json.loads(await ws.recv())
print(res)
except websockets.exceptions.connectionclosederror as e:
print(e)
parser = argparse.ArgumentParser(description='test script for xrpl-reporting')
parser.add_argument('action', choices=["account_info", "tx", "account_tx", "ledger_data", "ledger_data_full"])
parser.add_argument('action', choices=["account_info", "tx", "account_tx", "ledger_data", "ledger_data_full", "book_offers"])
parser.add_argument('--ip', default='127.0.0.1')
parser.add_argument('--port', default='8080')
parser.add_argument('--hash')
parser.add_argument('--account', default="rLC64xxNif3GiY9FQnbaM4kcE6VvDhwRod")
parser.add_argument('--ledger')
parser.add_argument('--limit', default='200')
paresr.add_argument('--taker_pays_issuer')
parser.add_argument('--taker_pays_currency')
paresr.add_argument('--taker_gets_issuer')
parser.add_argument('--taker_gets_currency')
@@ -118,6 +143,9 @@ def run(args):
elif args.action == "ledger_data_full":
asyncio.get_event_loop().run_until_complete(
ledger_data_full(args.ip, args.port, args.ledger))
elif args.action == "book_offers":
asyncio.get_event_loop().run_until_complete(
book_offers(args.ip, args.port, args.ledger, args.taker_pays_currency, args.taker_pays_issuer, args.taker_gets_currency, args.taker_gets_issuer);
else:
print("incorrect arguments")

View File

@@ -35,13 +35,21 @@
#include <vector>
//------------------------------------------------------------------------------
enum RPCCommand { tx, account_tx, ledger, account_info, ledger_data };
enum RPCCommand {
tx,
account_tx,
ledger,
account_info,
ledger_data,
book_offers
};
std::unordered_map<std::string, RPCCommand> commandMap{
{"tx", tx},
{"account_tx", account_tx},
{"ledger", ledger},
{"account_info", account_info},
{"ledger_data", ledger_data}};
{"ledger_data", ledger_data},
{"book_offers", book_offers}};
boost::json::object
doAccountInfo(
@@ -62,6 +70,11 @@ boost::json::object
doLedgerData(
boost::json::object const& request,
CassandraFlatMapBackend const& backend);
boost::json::object
doBookOffers(
boost::json::object const& request,
CassandraFlatMapBackend const& backend,
std::shared_ptr<PgPool>& pgPool);
boost::json::object
buildResponse(
@@ -88,6 +101,9 @@ buildResponse(
case account_info:
return doAccountInfo(request, backend, pgPool);
break;
case book_offers:
return doBookOffers(request, backend, pgPool);
break;
default:
BOOST_LOG_TRIVIAL(error) << "Unknown command: " << command;
}