def get_transfer_from_task( secrethash: SecretHash, transfer_task: TransferTask ) -> Tuple[LockedTransferType, str]: role = views.role_from_transfer_task(transfer_task) transfer: LockedTransferType if isinstance(transfer_task, InitiatorTask): transfer = transfer_task.manager_state.initiator_transfers[secrethash].transfer elif isinstance(transfer_task, MediatorTask): pairs = transfer_task.mediator_state.transfers_pair if pairs: transfer = pairs[-1].payer_transfer elif transfer_task.mediator_state.waiting_transfer: transfer = transfer_task.mediator_state.waiting_transfer.transfer elif isinstance(transfer_task, TargetTask): transfer = transfer_task.target_state.transfer else: raise ValueError("get_tranfer_from_task for a non TransferTask argument") return transfer, role
def get_transfer_from_task( secrethash: typing.SecretHash, transfer_task: TransferTask, ) -> LockedTransferState: transfer = None role = views.role_from_transfer_task(transfer_task) if role == 'initiator': transfer = transfer_task.manager_state.initiator_transfers[ secrethash].transfer elif role == 'mediator': pairs = transfer_task.mediator_state.transfers_pair if pairs: transfer = pairs[-1].payer_transfer elif transfer_task.mediator_state.waiting_transfer: transfer = transfer_task.mediator_state.waiting_transfer.transfer elif role == 'target': transfer = transfer_task.target_state.transfer return transfer, role
def transfer_tasks_view( transfer_tasks: Dict[SecretHash, TransferTask], token_address: TokenAddress = None, channel_id: ChannelID = None, ) -> List[Dict[str, Any]]: view = list() for secrethash, transfer_task in transfer_tasks.items(): transfer = get_transfer_from_task(secrethash, transfer_task) if transfer is None: continue if token_address is not None: if transfer.token != token_address: continue elif channel_id is not None: if transfer.balance_proof.channel_identifier != channel_id: continue role = views.role_from_transfer_task(transfer_task) view.append(flatten_transfer(transfer, role)) return view
def test_role_from_transfer_task_raises_value_error(): with pytest.raises(ValueError): role_from_transfer_task(object())