Skip to content

Commit f85d5f5

Browse files
authored
Merge pull request #40 from stakewise/add-test-vote
Add test vote
2 parents a80f99a + 32f22ac commit f85d5f5

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

deploy/docker-compose.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ volumes:
2121
services:
2222
oracle:
2323
container_name: oracle
24-
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.0
24+
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.1
2525
restart: always
2626
entrypoint: ["python"]
2727
command: ["oracle/oracle/main.py"]
@@ -30,7 +30,7 @@ services:
3030

3131
keeper:
3232
container_name: keeper
33-
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.0
33+
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.1
3434
restart: always
3535
entrypoint: ["python"]
3636
command: ["oracle/keeper/main.py"]

oracle/common/settings.py

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
REWARD_VOTE_FILENAME = "reward-vote.json"
66
DISTRIBUTOR_VOTE_FILENAME = "distributor-vote.json"
77
VALIDATOR_VOTE_FILENAME = "validator-vote.json"
8+
TEST_VOTE_FILENAME = "test-vote.json"
89

910
# supported networks
1011
MAINNET = "mainnet"

oracle/oracle/clients.py

+6-3
Original file line numberDiff line numberDiff line change
@@ -24,27 +24,30 @@
2424
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
2525
)
2626

27+
# set default timeout to 5 minutes
28+
DEFAULT_TIMEOUT = 5 * 60
29+
2730

2831
@backoff.on_exception(backoff.expo, Exception, max_time=300)
2932
async def execute_sw_gql_query(query: DocumentNode, variables: Dict) -> Dict:
3033
"""Executes GraphQL query."""
31-
transport = AIOHTTPTransport(url=STAKEWISE_SUBGRAPH_URL)
34+
transport = AIOHTTPTransport(url=STAKEWISE_SUBGRAPH_URL, timeout=DEFAULT_TIMEOUT)
3235
async with Client(transport=transport) as session:
3336
return await session.execute(query, variable_values=variables)
3437

3538

3639
@backoff.on_exception(backoff.expo, Exception, max_time=300)
3740
async def execute_uniswap_v3_gql_query(query: DocumentNode, variables: Dict) -> Dict:
3841
"""Executes GraphQL query."""
39-
transport = AIOHTTPTransport(url=UNISWAP_V3_SUBGRAPH_URL)
42+
transport = AIOHTTPTransport(url=UNISWAP_V3_SUBGRAPH_URL, timeout=DEFAULT_TIMEOUT)
4043
async with Client(transport=transport) as session:
4144
return await session.execute(query, variable_values=variables)
4245

4346

4447
@backoff.on_exception(backoff.expo, Exception, max_time=300)
4548
async def execute_ethereum_gql_query(query: DocumentNode, variables: Dict) -> Dict:
4649
"""Executes GraphQL query."""
47-
transport = AIOHTTPTransport(url=ETHEREUM_SUBGRAPH_URL)
50+
transport = AIOHTTPTransport(url=ETHEREUM_SUBGRAPH_URL, timeout=DEFAULT_TIMEOUT)
4851
async with Client(transport=transport) as session:
4952
return await session.execute(query, variable_values=variables)
5053

oracle/oracle/main.py

+11-12
Original file line numberDiff line numberDiff line change
@@ -5,27 +5,22 @@
55
from typing import Any
66

77
import aiohttp
8-
from decouple import UndefinedValueError
98
from eth_account import Account
109
from eth_account.signers.local import LocalAccount
1110

1211
from oracle.common.health_server import create_health_server_runner, start_health_server
13-
from oracle.common.settings import ENABLE_HEALTH_SERVER, LOG_LEVEL
12+
from oracle.common.settings import ENABLE_HEALTH_SERVER, LOG_LEVEL, TEST_VOTE_FILENAME
1413
from oracle.oracle.distributor.controller import DistributorController
1514
from oracle.oracle.eth1 import (
1615
check_oracle_account,
1716
get_finalized_block,
1817
get_voting_parameters,
18+
submit_vote,
1919
)
2020
from oracle.oracle.health_server import oracle_routes
2121
from oracle.oracle.rewards.controller import RewardsController
2222
from oracle.oracle.rewards.eth2 import get_finality_checkpoints, get_genesis
23-
from oracle.oracle.settings import (
24-
AWS_ACCESS_KEY_ID,
25-
AWS_SECRET_ACCESS_KEY,
26-
ORACLE_PRIVATE_KEY,
27-
ORACLE_PROCESS_INTERVAL,
28-
)
23+
from oracle.oracle.settings import ORACLE_PRIVATE_KEY, ORACLE_PROCESS_INTERVAL
2924
from oracle.oracle.validators.controller import ValidatorsController
3025

3126
logging.basicConfig(
@@ -60,10 +55,14 @@ def exit_gracefully(self, signum: int, frame: Any) -> None:
6055
async def main() -> None:
6156
oracle: LocalAccount = Account.from_key(ORACLE_PRIVATE_KEY)
6257

63-
if not (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY):
64-
raise UndefinedValueError(
65-
"AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY env variables must be specified"
66-
)
58+
# try submitting test vote
59+
# noinspection PyTypeChecker
60+
submit_vote(
61+
oracle=oracle,
62+
encoded_data=b"test data",
63+
vote={"name": "test vote"},
64+
name=TEST_VOTE_FILENAME,
65+
)
6766

6867
# check stakewise graphql connection
6968
await get_finalized_block()

0 commit comments

Comments
 (0)