drk.py 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #!/usr/bin/env python
  2. from util import arg_parser
  3. import aiohttp
  4. import asyncio
  5. class DarkClient:
  6. # TODO: generate random ID (4 byte unsigned int) (rand range 0 - max size
  7. # uint32
  8. def __init__(self, client_session):
  9. self.url = "http://localhost:8000/"
  10. self.client_session = client_session
  11. self.payload = {
  12. "method": [],
  13. "params": [],
  14. "jsonrpc": [],
  15. "id": [],
  16. }
  17. async def key_gen(self, payload):
  18. payload['method'] = "key_gen"
  19. payload['jsonrpc'] = "2.0"
  20. payload['id'] = "0"
  21. key = await self.__request(payload)
  22. print(key)
  23. async def get_info(self, payload):
  24. payload['method'] = "get_info"
  25. payload['jsonrpc'] = "2.0"
  26. payload['id'] = "0"
  27. info = await self.__request(payload)
  28. print(info)
  29. async def stop(self, payload):
  30. payload['method'] = "stop"
  31. payload['jsonrpc'] = "2.0"
  32. payload['id'] = "0"
  33. stop = await self.__request(payload)
  34. print(stop)
  35. async def say_hello(self, payload):
  36. payload['method'] = "say_hello"
  37. payload['jsonrpc'] = "2.0"
  38. payload['id'] = "0"
  39. hello = await self.__request(payload)
  40. print(hello)
  41. async def create_wallet(self, payload):
  42. payload['method'] = "create_wallet"
  43. payload['jsonrpc'] = "2.0"
  44. payload['id'] = "0"
  45. wallet = await self.__request(payload)
  46. print(wallet)
  47. async def create_cashier_wallet(self, payload):
  48. payload['method'] = "create_cashier_wallet"
  49. payload['jsonrpc'] = "2.0"
  50. payload['id'] = "0"
  51. wallet = await self.__request(payload)
  52. print(wallet)
  53. async def test_wallet(self, payload):
  54. payload['method'] = "test_wallet"
  55. payload['jsonrpc'] = "2.0"
  56. payload['id'] = "0"
  57. test = await self.__request(payload)
  58. print(test)
  59. async def __request(self, payload):
  60. async with self.client_session.post(self.url, json=payload) as response:
  61. resp = await response.text()
  62. print(resp)
  63. async def main():
  64. try:
  65. async with aiohttp.ClientSession() as session:
  66. client = DarkClient(session)
  67. await arg_parser(client)
  68. except aiohttp.ClientConnectorError as err:
  69. print('CONNECTION ERROR:', str(err))
  70. except Exception as err:
  71. print("ERROR: ", str(err))
  72. if __name__ == "__main__":
  73. loop = asyncio.get_event_loop()
  74. loop.run_until_complete(main())