rpc.py 999 B

123456789101112131415161718192021222324252627282930313233343536
  1. #!/usr/bin/env python3
  2. #
  3. # MMGen Wallet, a terminal-based cryptocurrency wallet
  4. # Copyright (C)2013-2025 The MMGen Project <mmgen@tuta.io>
  5. # Licensed under the GNU General Public License, Version 3:
  6. # https://www.gnu.org/licenses
  7. # Public project repositories:
  8. # https://github.com/mmgen/mmgen-wallet
  9. # https://gitlab.com/mmgen/mmgen-wallet
  10. """
  11. test.cmdtest_d.httpd.thornode.rpc: Thornode RPC HTTP server
  12. """
  13. import re, json
  14. from wsgiref.util import request_uri
  15. from . import ThornodeServer
  16. class ThornodeRPCServer(ThornodeServer):
  17. name = 'thornode RPC server'
  18. def make_response_body(self, method, environ):
  19. req_str = request_uri(environ)
  20. if re.search(r'/bank/balances/(\S+)', req_str):
  21. data = {
  22. 'result': [
  23. {'denom': 'foocoin', 'amount': 321321321321},
  24. {'denom': 'rune', 'amount': 987654321321},
  25. {'denom': 'barcoin', 'amount': 123123123123},
  26. ]}
  27. else:
  28. raise ValueError(f'‘{req_str}’: malformed query path')
  29. return json.dumps(data).encode()