2 sql = """with token_prices as ( select token_address, date_trunc('day', recorded_hour) :: date as date, avg(close) as price from solana.core.ez_token_prices_hourly group by token_address, date ), swap_volumes as ( select date_trunc('day', block_timestamp) :: date as date, swap_from_mint, sum(swap_from_amount) as swapvol from solana.core.fact_swaps where succeeded and swap_program like 'jupiter%' and block_timestamp > current_date - interval '7 day' group by 1, swap_from_mint ) select sv.date, sum(sv.swapvol * tp.price) as volume_in_usd from swap_volumes sv join token_prices tp on sv.swap_from_mint = tp.token_address and sv.date = tp.date group by sv.date order by sv.date desc""" 3 """Run the query against Flipside's query engine and await the results""" ----> 4 query_result_set = flipside.query(sql) File /opt/anaconda/miniconda3/envs/spire/lib/python3.10/site-packages/flipside/flipside.py:48, in Flipside.query(self, sql, ttl_minutes, max_age_minutes, cached, timeout_minutes, retry_interval_seconds, page_size, page_number, data_source, data_provider) 33 def query( 34 self, 35 sql, (...) 44 data_provider=DEFAULT_DATA_PROVIDER, 45 ) -> QueryResultSet: 46 query_integration = CompassQueryIntegration(self.rpc) ---> 48 return query_integration.run( 49 Query( 50 sql=sql, 51 ttl_minutes=ttl_minutes, 52 timeout_minutes=timeout_minutes, 53 max_age_minutes=max_age_minutes, 54 retry_interval_seconds=retry_interval_seconds, 55 page_size=page_size, 56 page_number=page_number, 57 cached=cached, 58 sdk_package=SDK_PACKAGE, 59 sdk_version=SDK_VERSION, 60 data_source=data_source, 61 data_provider=data_provider, 62 ) 63 ) File /opt/anaconda/miniconda3/envs/spire/lib/python3.10/site-packages/flipside/integrations/query_integration/compass_query_integration.py:58, in CompassQueryIntegration.run(self, query) 40 query = self._set_query_defaults(query) 42 create_query_run_params = CreateQueryRunRpcParams( 43 resultTTLHours=int(query.ttl_minutes / 60) 44 if query.ttl_minutes (...) 56 dataProvider=query.data_provider if query.data_provider else "flipside", 57 ) ---> 58 created_query = self.rpc.create_query(create_query_run_params) 59 if created_query.error: 60 raise get_exception_by_error_code( 61 error_code=created_query.error.code if created_query.error else None, 62 message=created_query.error.message if created_query.error else None, 63 ) File /opt/anaconda/miniconda3/envs/spire/lib/python3.10/site-packages/flipside/rpc.py:73, in RPC.create_query(self, params) 66 with self.session.post( 67 self.url, 68 data=json.dumps(CreateQueryRunRpcRequest(params=[params]).dict()), 69 headers=self._headers, 70 ) as result: 71 data = self._handle_response(result, "createQueryRun") ---> 73 create_query_resp = CreateQueryRunRpcResponse(**data) 75 return create_query_resp File /opt/anaconda/miniconda3/envs/spire/lib/python3.10/site-packages/pydantic/main.py:341, in pydantic.main.BaseModel.__init__() ValidationError: 4 validation errors for CreateQueryRunRpcResponse jsonrpc field required (type=value_error.missing) id field required (type=value_error.missing) error -> code field required (type=value_error.missing) error -> message field required (type=value_error.missing)