def test_sign_message_against_sign_hash_as_text(keyed_acct, message_text): # sign via hash msg_hash = defunct_hash_message(text=message_text) with pytest.deprecated_call(): signed_via_hash = keyed_acct.signHash(msg_hash) # sign via message signable_message = encode_defunct(text=message_text) signed_via_message = keyed_acct.sign_message(signable_message) assert signed_via_hash == signed_via_message
def test_wan_account_recover_message(acct): v, r, s = ( 28, '0xe6ca9bba58c88611fad66a6ce8f996908195593807c4b38bd528d2cff09d4eb3', '0x3e5bfbbf4d3e39b1a2fd816a7680c19ebebaf3a141b239934ad43cb33fcec8ce', ) message_text = "I♥SF" message = encode_defunct(text=message_text) from_account = acct.recover_message(message, vrs=(v, r, s)) assert from_account == '0x5ce9454909639D2D17A3F753ce7d93fa0b9aB12E'
def test_wan_account_sign(acct, message, key, expected_bytes, expected_hash, v, r, s, signature): signable = encode_defunct(text=message) signed = acct.sign_message(signable, private_key=key) assert signed.messageHash == signed['messageHash'] == expected_hash assert signed.v == signed['v'] == v assert signed.r == signed['r'] == r assert signed.s == signed['s'] == s assert signed.signature == signed['signature'] == signature account = acct.from_key(key) assert account.sign_message(signable) == signed
def test_sign_message_against_sign_hash_as_hex(keyed_acct, message_bytes): message_hex = to_hex(message_bytes) # sign via hash msg_hash_hex = defunct_hash_message(hexstr=message_hex) with pytest.deprecated_call(): signed_via_hash_hex = keyed_acct.signHash(msg_hash_hex) # sign via message signable_message_hex = encode_defunct(hexstr=message_hex) signed_via_message_hex = keyed_acct.sign_message(signable_message_hex) assert signed_via_hash_hex == signed_via_message_hex
def test_wan_account_recover_vrs(acct, raw_v, as_hex): # found a signature with a leading 0 byte in both r and s raw_r, raw_s = ( 143748089818580655331728101695676826715814583506606354117109114714663470502, 227853308212209543997879651656855994238138056366857653269155208245074180053, ) if as_hex: vrs = map(to_hex, (raw_v, raw_r, raw_s)) else: vrs = raw_v, raw_r, raw_s message = encode_defunct(text='10284') from_account = acct.recover_message(message, vrs=vrs) assert from_account == '0x2c7536E3605D9C16a7a3D7b1898e529396a65c23'
def test_wan_account_recover_signature_bytes(acct, signature_bytes): # found a signature with a leading 0 byte in both r and s message = encode_defunct(text='10284') from_account = acct.recover_message(message, signature=signature_bytes) assert from_account == '0x2c7536E3605D9C16a7a3D7b1898e529396a65c23'