def test_receive_hashlocktransfer_unknown(raiden_network): app0 = raiden_network[0] # pylint: disable=unbalanced-tuple-unpacking graph0 = app0.raiden.channelgraphs.values()[0] other_key = PrivateKey(HASH2) other_address = privatekey_to_address(HASH2) amount = 10 refund_transfer = make_refund_transfer( identifier=1, nonce=1, token=graph0.token_address, transferred_amount=amount, recipient=app0.raiden.address, locksroot=HASH, amount=amount, hashlock=HASH, ) sign_and_send(refund_transfer, other_key, other_address, app0) secret = Secret(1, HASH, graph0.token_address) sign_and_send(secret, other_key, other_address, app0) secret_request = SecretRequest(1, HASH, 1) sign_and_send(secret_request, other_key, other_address, app0) reveal_secret = RevealSecret(HASH) sign_and_send(reveal_secret, other_key, other_address, app0)
def test_decode_tampered_refund_transfer(tester_state, tester_nettingchannel_library_address): privatekey0 = tester.DEFAULT_KEY address0 = privatekey_to_address(privatekey0) decoder = deploy_decoder_tester(tester_state, tester_nettingchannel_library_address) refund_transfer = make_refund_transfer() refund_transfer.sign(PrivateKey(privatekey0), address0) message_encoded = refund_transfer.encode() transfer_raw, _ = decoder.getTransferRawAddress(message_encoded) names_slices = compute_slices(messages.RefundTransfer.fields_spec) for name, slice_ in names_slices.iteritems(): if name == 'signature': continue tampered_transfer = bytearray(transfer_raw) tampered_transfer.pop(slice_.start) tampered_transfer = str(tampered_transfer) with pytest.raises(TransactionFailed): decoder.decodeTransfer(tampered_transfer) tampered_transfer = bytearray(transfer_raw) tampered_transfer.pop(slice_.stop - 1) tampered_transfer = str(tampered_transfer) with pytest.raises(TransactionFailed): decoder.decodeTransfer(tampered_transfer)
def test_receive_hashlocktransfer_unknown(raiden_network, token_addresses): app0 = raiden_network[0] token_address = token_addresses[0] other_key = HOP1_KEY other_address = HOP1 amount = 10 refund_transfer_message = make_refund_transfer( identifier=1, nonce=1, token=token_address, channel=other_address, transferred_amount=amount, recipient=app0.raiden.address, locksroot=UNIT_HASHLOCK, amount=amount, hashlock=UNIT_HASHLOCK, ) sign_and_inject(refund_transfer_message, other_key, other_address, app0) secret = Secret( identifier=1, nonce=1, channel=make_address(), transferred_amount=amount, locksroot=UNIT_HASHLOCK, secret=UNIT_SECRET, ) sign_and_inject(secret, other_key, other_address, app0) secret_request_message = SecretRequest(1, UNIT_HASHLOCK, 1) sign_and_inject(secret_request_message, other_key, other_address, app0) reveal_secret_message = RevealSecret(UNIT_SECRET) sign_and_inject(reveal_secret_message, other_key, other_address, app0)
def run_test_receive_secrethashtransfer_unknown(raiden_network, token_addresses): app0 = raiden_network[0] token_address = token_addresses[0] token_network_identifier = views.get_token_network_identifier_by_token_address( views.state_from_app(app0), app0.raiden.default_registry.address, token_address, ) other_key = HOP1_KEY other_signer = LocalSigner(other_key) channel_identifier = make_channel_identifier() amount = 10 refund_transfer_message = make_refund_transfer( payment_identifier=1, nonce=1, token_network_address=token_network_identifier, token=token_address, channel_identifier=channel_identifier, transferred_amount=amount, recipient=app0.raiden.address, locksroot=UNIT_SECRETHASH, amount=amount, secrethash=UNIT_SECRETHASH, ) sign_and_inject(refund_transfer_message, other_signer, app0) unlock = Unlock( chain_id=UNIT_CHAIN_ID, message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, nonce=1, channel_identifier=channel_identifier, token_network_address=token_network_identifier, transferred_amount=amount, locked_amount=0, locksroot=UNIT_SECRETHASH, secret=UNIT_SECRET, ) sign_and_inject(unlock, other_signer, app0) secret_request_message = SecretRequest( message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, secrethash=UNIT_SECRETHASH, amount=1, expiration=refund_transfer_message.lock.expiration, ) sign_and_inject(secret_request_message, other_signer, app0) reveal_secret_message = RevealSecret( message_identifier=random.randint(0, UINT64_MAX), secret=UNIT_SECRET, ) sign_and_inject(reveal_secret_message, other_signer, app0)
def test_receive_secrethashtransfer_unknown(raiden_network, token_addresses): app0 = raiden_network[0] token_address = token_addresses[0] token_network_identifier = views.get_token_network_identifier_by_token_address( views.state_from_app(app0), app0.raiden.default_registry.address, token_address, ) other_key = HOP1_KEY other_address = HOP1 channel_identifier = make_channel_identifier() amount = 10 refund_transfer_message = make_refund_transfer( payment_identifier=1, nonce=1, token_network_address=token_network_identifier, token=token_address, channel_identifier=channel_identifier, transferred_amount=amount, recipient=app0.raiden.address, locksroot=UNIT_SECRETHASH, amount=amount, secrethash=UNIT_SECRETHASH, ) sign_and_inject(refund_transfer_message, other_key, other_address, app0) secret = Secret( chain_id=UNIT_CHAIN_ID, message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, nonce=1, channel_identifier=channel_identifier, token_network_address=token_network_identifier, transferred_amount=amount, locked_amount=0, locksroot=UNIT_SECRETHASH, secret=UNIT_SECRET, ) sign_and_inject(secret, other_key, other_address, app0) secret_request_message = SecretRequest( message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, secrethash=UNIT_SECRETHASH, amount=1, expiration=refund_transfer_message.lock.expiration, ) sign_and_inject(secret_request_message, other_key, other_address, app0) reveal_secret_message = RevealSecret( message_identifier=random.randint(0, UINT64_MAX), secret=UNIT_SECRET, ) sign_and_inject(reveal_secret_message, other_key, other_address, app0)
def test_refund_transfer_min_max(amount, payment_identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, payment_identifier=payment_identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(PRIVKEY) assert RefundTransfer.from_dict(refund_transfer.to_dict()) == refund_transfer
def test_refund_transfer_min_max(amount, identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, identifier=identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(PRIVKEY, ADDRESS) assert decode(refund_transfer.encode()) == refund_transfer
def test_refund_transfer_min_max(amount, payment_identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, payment_identifier=payment_identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(signer) assert RefundTransfer.from_dict(refund_transfer.to_dict()) == refund_transfer
def test_refund_transfer_min_max(amount, payment_identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, payment_identifier=payment_identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(PRIVKEY) assert refund_transfer.sender == ADDRESS assert decode(refund_transfer.encode()) == refund_transfer
def test_receive_secrethashtransfer_unknown(raiden_network, token_addresses): app0 = raiden_network[0] token_address = token_addresses[0] token_network_identifier = views.get_token_network_identifier_by_token_address( views.state_from_app(app0), app0.raiden.default_registry.address, token_address, ) other_key = HOP1_KEY other_address = HOP1 amount = 10 refund_transfer_message = make_refund_transfer( payment_identifier=1, nonce=1, token_network_address=token_network_identifier, token=token_address, channel=other_address, transferred_amount=amount, recipient=app0.raiden.address, locksroot=UNIT_SECRETHASH, amount=amount, secrethash=UNIT_SECRETHASH, ) sign_and_inject(refund_transfer_message, other_key, other_address, app0) secret = Secret( message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, nonce=1, channel=make_address(), token_network_address=token_network_identifier, transferred_amount=amount, locked_amount=0, locksroot=UNIT_SECRETHASH, secret=UNIT_SECRET, ) sign_and_inject(secret, other_key, other_address, app0) secret_request_message = SecretRequest( message_identifier=random.randint(0, UINT64_MAX), payment_identifier=1, secrethash=UNIT_SECRETHASH, amount=1, ) sign_and_inject(secret_request_message, other_key, other_address, app0) reveal_secret_message = RevealSecret( message_identifier=random.randint(0, UINT64_MAX), secret=UNIT_SECRET, ) sign_and_inject(reveal_secret_message, other_key, other_address, app0)
def test_refund_transfer_min_max(amount, identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, identifier=identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(PRIVKEY, ADDRESS) assert RefundTransfer.from_dict( refund_transfer.to_dict()) == refund_transfer
def test_refund_transfer_min_max(amount, payment_identifier, nonce, transferred_amount): refund_transfer = make_refund_transfer( amount=amount, payment_identifier=payment_identifier, nonce=nonce, transferred_amount=transferred_amount, ) refund_transfer.sign(PRIVKEY, UNIT_CHAIN_ID) assert refund_transfer.sender == ADDRESS assert decode(refund_transfer.encode()) == refund_transfer
def test_decode_refund_transfer( amount, identifier, nonce, transferred_amount, locksroot, tester_state, tester_nettingchannel_library_address): privatekey0 = tester.DEFAULT_KEY address0 = privatekey_to_address(privatekey0) decoder = deploy_decoder_tester(tester_state, tester_nettingchannel_library_address) refund_transfer = make_refund_transfer( amount=amount, identifier=identifier, nonce=nonce, transferred_amount=transferred_amount, locksroot=locksroot, ) refund_transfer.sign(PrivateKey(privatekey0), address0) assert_decoder_results(refund_transfer, decoder)
def test_receive_hashlocktransfer_unknown(raiden_network): app0 = raiden_network[0] # pylint: disable=unbalanced-tuple-unpacking graph0 = list(app0.raiden.token_to_channelgraph.values())[0] other_key = PrivateKey(HASH2) other_address = privatekey_to_address(HASH2) amount = 10 refund_transfer = make_refund_transfer( identifier=1, nonce=1, token=graph0.token_address, channel=other_address, transferred_amount=amount, recipient=app0.raiden.address, locksroot=UNIT_HASHLOCK, amount=amount, hashlock=UNIT_HASHLOCK, ) sign_and_send(refund_transfer, other_key, other_address, app0) secret = Secret( identifier=1, nonce=1, channel=make_address(), transferred_amount=amount, locksroot=UNIT_HASHLOCK, secret=UNIT_SECRET, ) sign_and_send(secret, other_key, other_address, app0) secret_request = SecretRequest(1, UNIT_HASHLOCK, 1) sign_and_send(secret_request, other_key, other_address, app0) reveal_secret = RevealSecret(UNIT_SECRET) sign_and_send(reveal_secret, other_key, other_address, app0)
def test_refund_transfer_out_of_bounds_values(): for args in REFUND_TRANSFER_INVALID_VALUES: with pytest.raises(ValueError): make_refund_transfer(**args)
def test_refund_transfer_out_of_bounds_values(): for args in REFUND_TRANSFER_INVALID_VALUES: with pytest.raises(ValueError): make_refund_transfer(**args)
def test_refund_transfer_out_of_bounds_values(args): with pytest.raises(ValueError): make_refund_transfer(**args)