示例#1
0
 def delete_address(self, address):
     try:
         Session.query(ChannelAddrDataBase).filter(
             ChannelAddrDataBase.address == address).delete()
         Session.commit()
     except:
         raise
     return None
示例#2
0
 def delete_channel_in_database(self):
     try:
         Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).delete()
         Session.commit()
     except:
         raise
     return None
示例#3
0
 def query_channel_name(sender, receiver):
     channel1 = Session.query(ChannelDatabase).filter(ChannelDatabase.sender == sender). \
             filter(ChannelDatabase.receiver == receiver).filter(ChannelDatabase.state !=5).all()
     channel2 = Session.query(ChannelDatabase). \
             filter(ChannelDatabase.sender == receiver). \
             filter(ChannelDatabase.receiver == sender).filter(ChannelDatabase.state !=5).all()
     channel = channel1 if channel1 else channel2
     return channel[0].channel_name if channel else None
示例#4
0
 def get_publickey(address):
     try:
         result = Session.query(ChannelAddrDataBase).filter(
             ChannelAddrDataBase.address == address).one()
     except:
         return None
     return result.public_key
示例#5
0
 def query_address(self, address):
     try:
         result = Session.query(ChannelAddrDataBase).filter(
             ChannelAddrDataBase.address == address).one()
     except:
         return None
     return result
示例#6
0
def query_channel_from_address(address, role="both"):
    if role not in ("both", "sender", "receiver"):
        raise QureyRoleNotCorrect
    if role == "sender":
        return Session.query(ChannelDatabase).filter(
            ChannelDatabase.sender == address).all()
    elif role == "receiver":
        return Session.query(ChannelDatabase).filter(
            ChannelDatabase.receiver == address).all()
    else:
        result = Session.query(ChannelDatabase).filter(
            ChannelDatabase.sender == address).all()
        result.extend(
            Session.query(ChannelDatabase).filter(
                ChannelDatabase.receiver == address).all())
        return result
示例#7
0
 def set_message_done(address, channel_name):
     message = Session.query(MessageDatabase).filter(MessageDatabase.address == address).\
         filter(MessageDatabase.channel_name == channel_name).all()
     if message:
         message[0].state = "done"
         Session.commit()
     return None
示例#8
0
 def receiver_signature(self):
     try:
         ch = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         return ch.receiversignature
     except:
         return None
示例#9
0
 def qeury_channel(self):
     try:
         self.match = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         return True
     except:
         return False
示例#10
0
 def pull_message(address):
     message_info = {}
     messages = Session.query(MessageDatabase).filter(MessageDatabase.address == address). \
         filter(MessageDatabase.state == "pending").all()
     for m in messages:
         message_info.setdefault("channel_name", m.channel_name)
         message_info.setdefault("raw_tx", m.message)
     Session.commit()
     return message_info
示例#11
0
 def update_receiver_signature(self, signature):
     try:
         ch = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         ch.receiversignature = signature
         Session.commit()
         return True
     except:
         raise ChannelDBUpdateFail
示例#12
0
 def update_txid(self, tx_id):
     try:
         ch = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         ch.tx_id = tx_id
         Session.commit()
         return True
     except:
         raise ChannelDBUpdateFail
示例#13
0
 def update_channel_state(self, state):
     try:
         ch = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         ch.state = state.value
         Session.commit()
         return True
     except:
         raise ChannelDBUpdateFail
示例#14
0
 def update_channel_deposit(self, sender_deposit, receiver_deposit):
     try:
         ch = Session.query(ChannelDatabase).filter(
             ChannelDatabase.channel_name == self.channelname).one()
         ch.sender_deposit = sender_deposit
         ch.receiver_deposit = receiver_deposit
         Session.commit()
         return True
     except:
         raise ChannelDBUpdateFail