drk.py 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107
  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. #def ckeygen(self, payload):
  18. # payload['method'] = "cash_key_gen"
  19. # payload['jsonrpc'] = "2.0"
  20. # payload['id'] = "0"
  21. # ckeygen = self.__request(payload)
  22. # print(ckeygen)
  23. #def cashkey(self, payload):
  24. # payload['method'] = "get_cash_key"
  25. # payload['jsonrpc'] = "2.0"
  26. # payload['id'] = "0"
  27. # cashk = self.__request(payload)
  28. # print(cashk)
  29. #
  30. #def test_path(self, payload):
  31. # payload['method'] = "test_path"
  32. # payload['jsonrpc'] = "2.0"
  33. # payload['id'] = "0"
  34. # test = self.__request(payload)
  35. # print(test)
  36. async def key_gen(self, payload):
  37. payload['method'] = "key_gen"
  38. payload['jsonrpc'] = "2.0"
  39. payload['id'] = "0"
  40. key = await self.__request(payload)
  41. print(key)
  42. async def get_info(self, payload):
  43. payload['method'] = "get_info"
  44. payload['jsonrpc'] = "2.0"
  45. payload['id'] = "0"
  46. info = await self.__request(payload)
  47. print(info)
  48. async def stop(self, payload):
  49. payload['method'] = "stop"
  50. payload['jsonrpc'] = "2.0"
  51. payload['id'] = "0"
  52. stop = await self.__request(payload)
  53. print(stop)
  54. async def say_hello(self, payload):
  55. payload['method'] = "say_hello"
  56. payload['jsonrpc'] = "2.0"
  57. payload['id'] = "0"
  58. hello = await self.__request(payload)
  59. print(hello)
  60. async def create_wallet(self, payload):
  61. payload['method'] = "create_wallet"
  62. payload['jsonrpc'] = "2.0"
  63. payload['id'] = "0"
  64. wallet = await self.__request(payload)
  65. print(wallet)
  66. async def create_cashier_wallet(self, payload):
  67. payload['method'] = "create_cashier_wallet"
  68. payload['jsonrpc'] = "2.0"
  69. payload['id'] = "0"
  70. wallet = await self.__request(payload)
  71. print(wallet)
  72. async def __request(self, payload):
  73. async with self.client_session.post(self.url, json=payload) as response:
  74. resp = await response.text()
  75. print(resp)
  76. async def main():
  77. try:
  78. async with aiohttp.ClientSession() as session:
  79. client = DarkClient(session)
  80. await arg_parser(client)
  81. except aiohttp.ClientConnectorError as err:
  82. print('CONNECTION ERROR:', str(err))
  83. except Exception as err:
  84. print("ERROR: ", str(err))
  85. if __name__ == "__main__":
  86. loop = asyncio.get_event_loop()
  87. loop.run_until_complete(main())