def on_get(self, req, resp, network_id=None): resp.status = falcon.HTTP_200 # TODO make caching more generic for custom resources cache_key = '{}-{}'.format(req.method, req.url) console_handler = logging.StreamHandler() console_handler.setLevel('INFO') logger = logging.getLogger('yee') logger.setLevel('INFO') logger.addHandler(console_handler) # logger.info(cache_key) response = self.cache_region.get(cache_key, self.cache_expiration_time) if response is NO_VALUE: substrate01 = SubstrateInterface(SHARDS_TABLE['shard.0']) substrate02 = SubstrateInterface(SHARDS_TABLE['shard.1']) substrate03 = SubstrateInterface(SHARDS_TABLE['shard.2']) substrate04 = SubstrateInterface(SHARDS_TABLE['shard.3']) shard01 = substrate01.get_block_header(None) shard01['finalizedNum'] = substrate01.get_block_number( substrate01.get_chain_finalised_head()) shard02 = substrate02.get_block_header(None) shard02['finalizedNum'] = substrate02.get_block_number( substrate02.get_chain_finalised_head()) shard03 = substrate03.get_block_header(None) shard03['finalizedNum'] = substrate03.get_block_number( substrate03.get_chain_finalised_head()) shard04 = substrate04.get_block_header(None) shard04['finalizedNum'] = substrate04.get_block_number( substrate04.get_chain_finalised_head()) response = self.get_jsonapi_response(data={ 'type': 'FinalizedHeadList', 'attributes': { 'shard01': shard01, 'shard02': shard02, 'shard03': shard03, 'shard04': shard04 } }, ) self.cache_region.set(cache_key, response) resp.set_header('X-Cache', 'MISS') else: resp.set_header('X-Cache', 'HIT') resp.media = response
def on_get(self, req, resp): substrate = SubstrateInterface(SUBSTRATE_RPC_URL) # Get Parent hash json_block = substrate.get_block_header(req.params.get('block_hash')) # Get metadata metadata_decoder = substrate.get_block_metadata(json_block['parentHash']) # Get events for block hash events_decoder = substrate.get_block_events(req.params.get('block_hash'), metadata_decoder=metadata_decoder) resp.status = falcon.HTTP_201 resp.media = {'events': events_decoder.value, 'runtime': substrate.get_block_runtime_version(req.params.get('block_hash'))}
def on_get(self, req, resp): substrate = SubstrateInterface( url=SUBSTRATE_RPC_URL, runtime_config=RuntimeConfiguration(), type_registry_preset=settings.TYPE_REGISTRY ) # Get Parent hash json_block = substrate.get_block_header(req.params.get('block_hash')) # Get metadata metadata_decoder = substrate.get_block_metadata(json_block['parentHash']) # Get events for block hash events_decoder = substrate.get_block_events(req.params.get('block_hash'), metadata_decoder=metadata_decoder) resp.status = falcon.HTTP_201 resp.media = {'events': events_decoder.value, 'runtime': substrate.get_block_runtime_version(req.params.get('block_hash'))}