def test_handle_offchain_secretreveal(): """ The target node needs to inform the secret to the previous node to receive an updated balance proof. """ setup = make_target_state() state_change = ReceiveSecretReveal(UNIT_SECRET, setup.initiator) iteration = target.handle_offchain_secretreveal( target_state=setup.new_state, state_change=state_change, channel_state=setup.channel, pseudo_random_generator=setup.pseudo_random_generator, block_number=setup.block_number, ) assert len(iteration.events) == 1 reveal = iteration.events[0] assert isinstance(reveal, SendSecretReveal) assert iteration.new_state.state == 'reveal_secret' assert reveal.secret == UNIT_SECRET assert reveal.recipient == setup.new_state.route.node_address # if we get an empty hash secret make sure it's rejected secret = EMPTY_HASH state_change = ReceiveSecretReveal(secret, setup.initiator) iteration = target.handle_offchain_secretreveal( target_state=setup.new_state, state_change=state_change, channel_state=setup.channel, pseudo_random_generator=setup.pseudo_random_generator, block_number=setup.block_number, ) assert len(iteration.events) == 0
def test_handle_offchain_secretreveal(): """ The target node needs to inform the secret to the previous node to receive an updated balance proof. """ setup = make_target_state() state_change = ReceiveSecretReveal(UNIT_SECRET, setup.initiator) iteration = target.handle_offchain_secretreveal( target_state=setup.new_state, state_change=state_change, channel_state=setup.channel, pseudo_random_generator=setup.pseudo_random_generator, block_number=setup.block_number, ) assert len(iteration.events) == 1 reveal = iteration.events[0] assert isinstance(reveal, SendSecretReveal) assert iteration.new_state.state == 'reveal_secret' assert reveal.secret == UNIT_SECRET assert reveal.recipient == setup.new_state.route.node_address # if we get an empty hash secret make sure it's rejected secret = EMPTY_HASH state_change = ReceiveSecretReveal(secret, setup.initiator) iteration = target.handle_offchain_secretreveal( target_state=setup.new_state, state_change=state_change, channel_state=setup.channel, pseudo_random_generator=setup.pseudo_random_generator, block_number=setup.block_number, ) assert len(iteration.events) == 0
def test_handle_offchain_secretreveal(): """ The target node needs to inform the secret to the previous node to receive an updated balance proof. """ amount = 3 block_number = 1 expiration = block_number + factories.UNIT_REVEAL_TIMEOUT initiator = factories.HOP1 our_address = factories.ADDR secret = factories.UNIT_SECRET pseudo_random_generator = random.Random() channel_state, state = make_target_state( our_address, amount, block_number, initiator, expiration, ) state_change = ReceiveSecretReveal(secret, initiator) iteration = target.handle_offchain_secretreveal( state, state_change, channel_state, pseudo_random_generator, ) assert len(iteration.events) == 1 reveal = iteration.events[0] assert isinstance(reveal, SendSecretReveal) assert iteration.new_state.state == 'reveal_secret' assert reveal.secret == secret assert reveal.recipient == state.route.node_address