msg.py 980 B

12345678910111213141516171819202122232425262728293031323334
  1. #!/usr/bin/env python3
  2. #
  3. # mmgen = Multi-Mode GENerator, a command-line cryptocurrency wallet
  4. # Copyright (C)2013-2023 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
  9. # https://gitlab.com/mmgen/mmgen
  10. """
  11. proto.btc.msg: Bitcoin base protocol message signing classes
  12. """
  13. from ...msg import coin_msg
  14. class coin_msg(coin_msg):
  15. include_pubhash = True
  16. sigdata_pfx = None
  17. msghash_types = ('raw',) # first-listed is the default
  18. class unsigned(coin_msg.unsigned):
  19. async def do_sign(self,wif,message,msghash_type):
  20. return await self.rpc.call( 'signmessagewithprivkey', wif, message )
  21. class signed_online(coin_msg.signed_online):
  22. async def do_verify(self,addr,sig,message,msghash_type):
  23. return await self.rpc.call( 'verifymessage', addr, sig, message )
  24. class exported_sigs(coin_msg.exported_sigs,signed_online):
  25. pass