Esempio n. 1
0
def test_transacting_power_sign_message(testerchain):

    # Manually create a TransactingPower
    eth_address = testerchain.etherbase_account
    power = TransactingPower(password=INSECURE_DEVELOPMENT_PASSWORD,
                             signer=Web3Signer(testerchain.client),
                             account=eth_address)

    # Manually unlock
    power.unlock(password=INSECURE_DEVELOPMENT_PASSWORD)

    # Sign
    data_to_sign = b'Premium Select Luxury Pencil Holder'
    signature = power.sign_message(message=data_to_sign)

    # Verify
    is_verified = verify_eip_191(address=eth_address,
                                 message=data_to_sign,
                                 signature=signature)
    assert is_verified is True

    # Test invalid address/pubkey pair
    is_verified = verify_eip_191(address=testerchain.client.accounts[1],
                                 message=data_to_sign,
                                 signature=signature)
    assert is_verified is False
Esempio n. 2
0
def test_transacting_power_sign_message(testerchain):

    # Manually create a TransactingPower
    testerchain.connect()
    eth_address = testerchain.etherbase_account
    power = TransactingPower(blockchain=testerchain,
                             password=INSECURE_DEVELOPMENT_PASSWORD,
                             account=eth_address)

    # The default state of the account is locked.
    # Test a signature without unlocking the account
    with pytest.raises(PowerUpError):
        power.sign_message(message=b'test')

    # Manually unlock
    power.unlock_account(password=INSECURE_DEVELOPMENT_PASSWORD)

    # Sign
    data_to_sign = b'Premium Select Luxury Pencil Holder'
    signature = power.sign_message(message=data_to_sign)

    # Verify
    is_verified = verify_eip_191(address=eth_address,
                                 message=data_to_sign,
                                 signature=signature)
    assert is_verified is True

    # Test invalid address/pubkey pair
    is_verified = verify_eip_191(address=testerchain.client.accounts[1],
                                 message=data_to_sign,
                                 signature=signature)
    assert is_verified is False

    # Test lockAccount call
    power.lock_account()

    # Test a signature without unlocking the account
    with pytest.raises(PowerUpError):
        power.sign_message(message=b'test')

    del power  # Locks account