Пример #1
0
def depoist_out(address, value):
    channel_name = get_channelnames_via_address(address)
    if channel_name:
        sender, receiver = split_channel_name(channel_name)
        ch = Channel(sender, receiver)
        ch.delete_channle_in_database()
        ch.delete_channel()
    else:
        return None
    return address
Пример #2
0
def regist_channel(sender_addr, receiver_addr, asset_type, deposit,
                   open_blockchain):
    """
    This func is to register channel
    :param sender_addr: String, the sender address
    :param receiver_addr: String, receiver's address
    :param asset_type: String, asset type should be symbol name , asset id should be configured in the configure.json
    :param deposit:  String, depoist number in block chain
    :param open_blockchain:  Open block chain number
    :return: Dictionary, {"channel_name":channel_name,
                "trad_info":raw_tans}
    """
    channel = Channel(sender_addr, receiver_addr)
    logger.info('start to register channel')
    if channel.qeury_channel():
        return {"error": "channel already exist"}
    else:
        channel_name = channel.create(sender_deposit=int(deposit),
                                      open_block_number=int(open_blockchain),
                                      settle_timeout=10)
        if not channel_name:
            return {
                "channel_name": None,
                "contract_address": None,
                "trad_info": "on pub key or not register pub key"
            }
        channel.qeury_channel()
        raw_tans, tx_id, state = blockchain.deposit_transaction(
            asset_type, sender_addr, channel.contract_address, int(deposit))
        if state:
            channel.update_channel_to_database(tx_id=tx_id,
                                               state=State.OPENING)
            return {
                "channel_name": channel_name,
                "contract_address": channel.contract_address,
                "trad_info": raw_tans
            }
        else:
            channel.delete_channel()
            channel.delete_channel_in_database()
            return {
                "channel_name": None,
                "contract_address": None,
                "trad_info": raw_tans
            }