mirror of
https://github.com/dogecoin/dogecoin.git
synced 2026-02-12 16:30:56 +00:00
Squash-merged on request. * Dogecoin address prefixes * Use "doge" for BECH32 addresses * Switch Bitcoin references to Dogecoin in Travis * Update addresses in dogecoin-tx tests * Use "doge" for BECH32 addresses * Remove functional tests which do not apply to Dogecoin (backwards compatibility tests do not have suitable clients to test against)
43 lines
1.9 KiB
Python
Executable File
43 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
# Copyright (c) 2016-2019 The Bitcoin Core developers
|
|
# Distributed under the MIT software license, see the accompanying
|
|
# file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
"""Test RPC commands for signing and verifying messages."""
|
|
|
|
from test_framework.test_framework import BitcoinTestFramework
|
|
from test_framework.util import assert_equal
|
|
|
|
class SignMessagesTest(BitcoinTestFramework):
|
|
def set_test_params(self):
|
|
self.setup_clean_chain = True
|
|
self.num_nodes = 1
|
|
self.extra_args = [["-addresstype=legacy"]]
|
|
|
|
def skip_test_if_missing_module(self):
|
|
self.skip_if_no_wallet()
|
|
|
|
def run_test(self):
|
|
message = 'This is just a test message'
|
|
|
|
self.log.info('test signing with priv_key')
|
|
priv_key = 'cmoaRwocDJHKj29vFykm1aUeNPHoLXR7Ycxpg6JvT8fzqQM33KMi'
|
|
address = 'nd1chsugZx2wqMLfQ9AsURGecqU1xeUHfB'
|
|
expected_signature = 'INbVnW4e6PeRmsv2Qgu8NuopvrVjkcxob+sX8OcZG0SALhWybUjzMLPdAsXI46YZGb0KQTRii+wWIQzRpG/U+S0='
|
|
signature = self.nodes[0].signmessagewithprivkey(priv_key, message)
|
|
assert_equal(expected_signature, signature)
|
|
assert self.nodes[0].verifymessage(address, signature, message)
|
|
|
|
self.log.info('test signing with an address with wallet')
|
|
address = self.nodes[0].getnewaddress()
|
|
signature = self.nodes[0].signmessage(address, message)
|
|
assert self.nodes[0].verifymessage(address, signature, message)
|
|
|
|
self.log.info('test verifying with another address should not work')
|
|
other_address = self.nodes[0].getnewaddress()
|
|
other_signature = self.nodes[0].signmessage(other_address, message)
|
|
assert not self.nodes[0].verifymessage(other_address, signature, message)
|
|
assert not self.nodes[0].verifymessage(address, other_signature, message)
|
|
|
|
if __name__ == '__main__':
|
|
SignMessagesTest().main()
|