def test_staking_transaction(): transaction = Transaction( chain=1, nonce=4_294_967_295, fee=57000, value=5_000_000, to_address=Config.STAKING_ADDRESS, unlock_sig=Config.COINBASE_UNLOCK_SIGNATURE, ) assert transaction.validate() is False with pytest.raises(TransactionNotValid, match=errors.TRANSACTION_INVALID_STAKING): transaction.validate_fields(raise_exception=True) transaction = Transaction( chain=1, nonce=4_294_967_295, fee=57000, value=5_000_000, to_address=Config.STAKING_ADDRESS, ) transaction = transaction.sign(unhexlify(WALLET_1["private_key"])) assert transaction.validate() is True
def test_unlock_sig(mocker): """ Test to validate the field 'unlock_sig' from a transaction """ transaction = Transaction( chain=1, nonce=10, fee=50, value=5_000_000, to_address="1H7NtUENrEbwSVm52fHePzBnu4W3bCqimP", unlock_sig=Config.COINBASE_UNLOCK_SIGNATURE, ) assert transaction.validate_fields() == True assert transaction.validate_fields(raise_exception=True) == True transaction.unlock_sig = binascii.unhexlify("0" * 258) assert transaction.validate_fields() == False with pytest.raises(TransactionNotValid, match=errors.TRANSACTION_FIELD_SIGNATURE): transaction.validate_fields(raise_exception=True) transaction.unlock_sig = binascii.unhexlify("1" * 256) assert transaction.validate_fields() == True assert transaction.validate_fields(raise_exception=True) == True