def test_oracle_registration(): client = EpochClient() weather_oracle = WeatherOracle( query_format="{'city': str}", response_format="{'temp_c': int}", default_query_fee=0, default_fee=10, default_ttl=50, default_query_ttl=2, default_response_ttl=2, ) client.register_oracle(weather_oracle) client.listen_until(weather_oracle.is_ready, timeout=5) assert weather_oracle.oracle_id is not None
def test_oracle_query_received(): client = EpochClient() weather_oracle = WeatherOracle( query_format="{'city': str}", response_format="{'temp_c': int}", default_query_fee=0, default_fee=10, default_ttl=50, default_query_ttl=2, default_response_ttl=2, ) client.register_oracle(weather_oracle) client.listen_until(weather_oracle.is_ready, timeout=5) weather_query = WeatherQuery( oracle_pubkey=weather_oracle.oracle_id, query_fee=0, fee=10, query_ttl=2, response_ttl=2, ) client.mount(weather_query) weather_query.query("{'city': 'Berlin'}") client.listen_until(lambda: weather_query.response_received, timeout=5)
return self._success(ret_data) dev1_config = Config(external_host=3013, internal_host=3113, websocket_host=3114) oraclef_jean = OraclefJean( # example spec (this spec is fictional and will be defined later) query_format='''{'url': 'str', 'jq': 'str'}''', # example spec (this spec is fictional and will be defined later) response_format='''{'status': 'error'|'ok', 'message': 'str', 'data': {}}''', default_ttl=50, default_query_fee=4, default_fee=6, default_query_ttl=10, default_response_ttl=10, ) client = EpochClient(configs=dev1_config) client.register_oracle(oraclef_jean) client.listen_until(oraclef_jean.is_ready) print(f'''You can now query this oracle using the following parameters: oracle_pubkey: {oraclef_jean.oracle_id} query_fee: {oraclef_jean.get_query_fee()} query_ttl: {oraclef_jean.get_query_ttl()} response_ttl: {oraclef_jean.get_response_ttl()} fee: {oraclef_jean.get_fee()} query_format: {oraclef_jean.query_format} ''') print('Oracle ready') client.listen() print('Oracle Stopped')