⬆️ 🐛 Bump duneapi python dep (#20)

This commit is contained in:
r1oga
2022-11-13 15:43:26 +01:00
committed by GitHub
parent 6fd45fe195
commit 5db13c543c
8 changed files with 40 additions and 40 deletions

0
apis/query/.empty Normal file
View File

View File

@@ -1,7 +1,5 @@
FROM node:19-alpine
RUN apk update
RUN apk add python3 \
python3-dev \
@@ -10,7 +8,7 @@ RUN apk add python3 \
py3-pip \
bash
RUN pip install duneapi
RUN pip install duneapi==7.0.0
RUN npm i -g pnpm
@@ -23,6 +21,7 @@ RUN pnpm i --frozen-lockfile
COPY tsconfig.json .
COPY package-scripts.yaml .
COPY src src
COPY .empty .empty
EXPOSE 3000

View File

@@ -21,7 +21,7 @@ export class DuneRepository {
public async executeDuneQuery(
queryId: Query,
parameters?: Array<{
name: string
key: string
type: ParameterType
value: string | number
}>,

View File

@@ -33,9 +33,9 @@ export class QueryService {
}) {
return this.duneRepository
.executeDuneQuery(Query.Erc20, [
{ name: 'min', type: ParameterType.Number, value: Number(min) },
{ key: 'min', type: ParameterType.Number, value: Number(min) },
{
name: 'tokenAddress',
key: 'tokenAddress',
type: ParameterType.Text,
value: `'${tokenAddress}'`,
},

View File

@@ -3,31 +3,24 @@ import os
import sys
from duneapi.api import DuneAPI
from duneapi.types import QueryParameter
from duneapi.types import DashboardTile, DuneQuery
QUERY_PARAM_TYPES = {
'enum': QueryParameter.enum_type,
'date': QueryParameter.date_type,
'number': QueryParameter.number_type,
'text': QueryParameter.text_type,
}
def parse_parameters(_parameters: str):
return [QUERY_PARAM_TYPES[p['type']](p['name'], p['value']) for p in json.loads(_parameters)]
dune = DuneAPI(os.environ['DUNE_USER'], os.environ['DUNE_PWD'])
dune = DuneAPI(os.environ["DUNE_USER"], os.environ["DUNE_PWD"])
dune.login()
query_id = int(sys.argv[1])
parameters = None
# [{\"name\":\"min\",\"type\":\"number\",\"value\":10},{\"name\":\"tokenAddress\",\"type\":\"text\",\"value\":\"'0x1f9840a85d5af5bf1d1762f925bdaddc4201f984'\"}]
parameters = None
if len(sys.argv[1:]) == 2:
parameters = parse_parameters(sys.argv[2])
parameters = json.loads(sys.argv[2])
job_id = dune.execute(query_id, parameters)
records = dune.get_results(job_id)
# duneapi api is a bit weird, can't simply pass a query id and execute, need to provide a query_file parameter even
# if unused
dashboard_tile = DashboardTile.from_dict(
{"id": query_id, "parameters": parameters, "query_file": "./.empty", "network": "mainnet"}, os.getcwd()
)
dune_query = DuneQuery.from_tile(dashboard_tile)
records = dune.execute_and_await_results(dune_query)
print(json.dumps([r['address'] for r in records]))
print(json.dumps([r["address"] for r in records]))

View File

@@ -1,23 +1,26 @@
import json
import os
from duneapi.api import DuneAPI
from duneapi.types import QueryParameter
from duneapi.types import DuneQuery, DashboardTile
queries = {
'beacon': 1499468,
'tornado': 1499520,
'erc20_balance': 1500107
}
queries = {"beacon": 1499468, "tornado": 1499520, "erc20_balance": 1500107}
dune_api = DuneAPI(os.environ['DUNE_USER'], os.environ['DUNE_PWD'])
dune_api = DuneAPI(os.environ["DUNE_USER"], os.environ["DUNE_PWD"])
dune_api.login()
parameters = [QueryParameter.number_type('min', 10),
QueryParameter.text_type('tokenAddress',
"'0x1f9840a85d5af5bf1d1762f925bdaddc4201f984'")]
parameters = [
{"key": "min", "type": "number", "value": 10},
{"key": "tokenAddress", "type": "text", "value": "'0x1f9840a85d5af5bf1d1762f925bdaddc4201f984'"},
]
query_id = queries["erc20_balance"]
# duneapi api is a bit weird, can't simply pass a query id and execute, need to provide a query_file parameter even
# if unused
dashboard_tile = DashboardTile.from_dict(
{"id": query_id, "parameters": parameters, "query_file": "./empty", "network": "mainnet"}, "."
)
dune_query = DuneQuery.from_tile(dashboard_tile)
records = dune_api.execute_and_await_results(dune_query)
job_id = dune_api.execute(queries['erc20_balance'], parameters)
records = dune_api.get_results(job_id)
print([r['address'] for r in records])
print(json.dumps([r["address"] for r in records]))

View File

@@ -10,7 +10,7 @@ charset-normalizer==2.1.1
click==8.1.3
cytoolz==0.12.0
Deprecated==1.2.13
duneapi==6.1.2
duneapi==7.0.0
eth-abi==2.2.0
eth-account==0.5.9
eth-hash==0.5.0

View File

@@ -0,0 +1,5 @@
query BeaconDepositors{
depositors {
id
}
}