def pyethapp_event_to_state_change(pyethapp_event): # pylint: disable=too-many-return-statements contract_address = pyethapp_event.originating_contract event = pyethapp_event.event_data # Raiden uses the binary representation of address internally, pyethapp # keeps the addresses in hex representation inside the events, so all # addresses inside the event_data must be decoded. if event['_event_type'] == 'TokenAdded': return ContractReceiveTokenAdded( contract_address, address_decoder(event['token_address']), address_decoder(event['channel_manager_address']), ) elif event['_event_type'] == 'ChannelNew': return ContractReceiveNewChannel( contract_address, address_decoder(event['netting_channel']), address_decoder(event['participant1']), address_decoder(event['participant2']), event['settle_timeout'], ) elif event['_event_type'] == 'ChannelNewBalance': return ContractReceiveBalance( contract_address, address_decoder(event['token_address']), address_decoder(event['participant']), event['balance'], event['block_number'], ) elif event['_event_type'] == 'ChannelClosed': return ContractReceiveClosed( contract_address, address_decoder(event['closing_address']), event['block_number'], ) elif event['_event_type'] == 'ChannelSettled': return ContractReceiveSettled( contract_address, event['block_number'], ) elif event['_event_type'] == 'ChannelSecretRevealed': return ContractReceiveWithdraw( contract_address, event['secret'], address_decoder(event['receiver_address']), ) else: return None
def event_to_state_change(event): # pylint: disable=too-many-return-statements contract_address = event.originating_contract event = event.event_data # Note: All addresses inside the event_data must be decoded. if event['_event_type'] == 'TokenAdded': result = ContractReceiveTokenAdded( contract_address, address_decoder(event['token_address']), address_decoder(event['channel_manager_address']), ) elif event['_event_type'] == 'ChannelNew': result = ContractReceiveNewChannel( contract_address, address_decoder(event['netting_channel']), address_decoder(event['participant1']), address_decoder(event['participant2']), event['settle_timeout'], ) elif event['_event_type'] == 'ChannelNewBalance': result = ContractReceiveBalance( contract_address, address_decoder(event['token_address']), address_decoder(event['participant']), event['balance'], event['block_number'], ) elif event['_event_type'] == 'ChannelClosed': result = ContractReceiveClosed( contract_address, address_decoder(event['closing_address']), event['block_number'], ) elif event['_event_type'] == 'ChannelSettled': result = ContractReceiveSettled( contract_address, event['block_number'], ) elif event['_event_type'] == 'ChannelSecretRevealed': result = ContractReceiveWithdraw( contract_address, event['secret'], address_decoder(event['receiver_address']), ) else: result = None return result