def test_hash(): ping = Ping( nonce=0, current_protocol_version=constants.PROTOCOL_VERSION, signature=constants.EMPTY_SIGNATURE, ) ping.sign(signer)
def test_signature(): ping = Ping( nonce=0, current_protocol_version=constants.PROTOCOL_VERSION, signature=constants.EMPTY_SIGNATURE, ) ping.sign(signer) assert ping.sender == ADDRESS # test that the valid v values are accepted message_data = ping._data_to_sign() # This signature will sometimes end up with v being 0, sometimes 1 signature = signer.sign(data=message_data, v=0) assert ADDRESS == recover(message_data, signature) # This signature will sometimes end up with v being 27, sometimes 28 signature = signer.sign(data=message_data, v=27) assert ADDRESS == recover(message_data, signature) # test that other v values are rejected signature = signature[:-1] + bytes([29]) with pytest.raises(InvalidSignature): recover(message_data, signature) signature = signature[:-1] + bytes([37]) with pytest.raises(InvalidSignature): recover(message_data, signature) signature = signature[:-1] + bytes([38]) with pytest.raises(InvalidSignature): recover(message_data, signature)
def test_encoding(): ping = Ping( nonce=0, current_protocol_version=constants.PROTOCOL_VERSION, signature=constants.EMPTY_SIGNATURE, ) ping.sign(signer) assert ping.sender == ADDRESS
def test_signature(): ping = Ping(nonce=0, current_protocol_version=0, signature=EMPTY_SIGNATURE) ping.sign(signer) assert ping.sender == ADDRESS