예제 #1
0
파일: initiator.py 프로젝트: wooqii/raiden
def send_mediatedtransfer(
    initiator_state: InitiatorTransferState,
    channel_state: NettingChannelState,
    block_number: typing.BlockNumber,
) -> SendMediatedTransfer:
    """ Create a mediated transfer using channel.
    Raises:
        AssertionError: If the channel does not have enough capacity.
    """
    assert channel_state.token_address == initiator_state.transfer_description.token

    transfer_description = initiator_state.transfer_description
    lock_expiration = get_initial_lock_expiration(
        block_number,
        channel_state.settle_timeout,
    )

    mediatedtransfer_event = channel.send_mediatedtransfer(
        channel_state,
        transfer_description.initiator,
        transfer_description.target,
        transfer_description.amount,
        transfer_description.identifier,
        lock_expiration,
        transfer_description.hashlock,
    )
    assert mediatedtransfer_event

    initiator_state.transfer = mediatedtransfer_event.transfer

    return mediatedtransfer_event
예제 #2
0
def send_lockedtransfer(
        initiator_state: InitiatorTransferState,
        channel_state: NettingChannelState,
        message_identifier,
        block_number: typing.BlockNumber,
) -> SendLockedTransfer:
    """ Create a mediated transfer using channel.

    Raises:
        AssertionError: If the channel does not have enough capacity.
    """
    transfer_token_address = initiator_state.transfer_description.token_network_identifier
    assert channel_state.token_network_identifier == transfer_token_address

    transfer_description = initiator_state.transfer_description
    lock_expiration = get_initial_lock_expiration(
        block_number,
        channel_state.settle_timeout,
    )

    lockedtransfer_event = channel.send_lockedtransfer(
        channel_state,
        transfer_description.initiator,
        transfer_description.target,
        transfer_description.amount,
        message_identifier,
        transfer_description.payment_identifier,
        lock_expiration,
        transfer_description.secrethash,
    )
    assert lockedtransfer_event

    initiator_state.transfer = lockedtransfer_event.transfer

    return lockedtransfer_event
예제 #3
0
def send_lockedtransfer(
        initiator_state: InitiatorTransferState,
        channel_state: NettingChannelState,
        message_identifier,
        block_number: typing.BlockNumber,
) -> SendLockedTransfer:
    """ Create a mediated transfer using channel.

    Raises:
        AssertionError: If the channel does not have enough capacity.
    """
    transfer_token_address = initiator_state.transfer_description.token_network_identifier
    assert channel_state.token_network_identifier == transfer_token_address

    transfer_description = initiator_state.transfer_description
    lock_expiration = get_initial_lock_expiration(
        block_number,
        channel_state.settle_timeout,
    )

    lockedtransfer_event = channel.send_lockedtransfer(
        channel_state,
        transfer_description.initiator,
        transfer_description.target,
        transfer_description.amount,
        message_identifier,
        transfer_description.payment_identifier,
        lock_expiration,
        transfer_description.secrethash,
    )
    assert lockedtransfer_event

    initiator_state.transfer = lockedtransfer_event.transfer

    return lockedtransfer_event