Example #1
0
    async def get(self):
        redis = self.application.redis
        keys = await redis.hlen('public_res')
        logger.debug('Length = %d', keys)

        if keys:
            cached = await redis.hgetall('public_res', encoding='utf-8')
            return self.json_response(
                {k: json.loads(v)
                 for k, v in cached.items()})

        relayers = [
            model_to_dict(relayer or {}) for relayer in Relayer.select()
        ]
        contracts = [
            model_to_dict(c or {})
            for c in Contract.select().where(Contract.obsolete == False)
        ]
        tokens = [model_to_dict(token or {}) for token in Token.select()]
        self.json_response({
            'Relayers': relayers,
            'Contracts': contracts,
            'Tokens': tokens
        })
        await redis.hmset_dict('public_res',
                               Relayers=json.dumps(relayers),
                               Contracts=json.dumps(contracts),
                               Tokens=json.dumps(tokens))
    async def get(self):
        relayers = [model_to_dict(relayer or {}) for relayer in Relayer.select()]
        tokens = [model_to_dict(token or {}) for token in Token.select()]
        domains = [model_to_dict(domain or {}) for domain in Domain.select()]
        contracts = Blockchain.contracts

        self.json_response({
            'Relayers': relayers,
            'Contracts': contracts,
            'Tokens': tokens,
            'Domains': domains
        })
    async def post(self, user=None):
        """Add new tokens"""
        tokens = self.request_body

        if not tokens:
            raise InvalidValueException('Invalid empty payload')

        b = Blockchain()
        if not isinstance(tokens, list):
            token = tokens
            address = b.web3.toChecksumAddress(token['address'])
            b.updateToken(address)
            obj = Token.select().where(Token.address == address).get()
            return self.json_response(model_to_dict(obj))

        result = []
        for token in tokens:
            address = b.web3.toChecksumAddress(token['address'])
            b.updateToken(address)
            obj = Token.select().where(Token.address == address).get()
            result.append(model_to_dict(obj))

        self.json_response(result)
Example #4
0
 async def get(self):
     relayers = [
         model_to_dict(relayer or {}) for relayer in Relayer.select()
     ]
     contracts = [
         model_to_dict(c or {})
         for c in Contract.select().where(Contract.obsolete == False)
     ]
     tokens = [model_to_dict(token or {}) for token in Token.select()]
     self.json_response({
         'Relayers': relayers,
         'Contracts': contracts,
         'Tokens': tokens
     })
Example #5
0
 def get(self, user=None):
     """Return all available tokens for trading"""
     tokens = [model_to_dict(token or {}) for token in Token.select()]
     self.json_response(tokens)