コード例 #1
0
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
コード例 #2
0
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
コード例 #3
0
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
コード例 #4
0
ファイル: test_views.py プロジェクト: weilbith/raiden
def test_role_from_transfer_task_raises_value_error():
    with pytest.raises(ValueError):
        role_from_transfer_task(object())