Skip to content

Commit

Permalink
Merge pull request #40 from stakewise/add-test-vote
Browse files Browse the repository at this point in the history
Add test vote
  • Loading branch information
tsudmi authored Dec 23, 2021
2 parents a80f99a + 32f22ac commit f85d5f5
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 17 deletions.
4 changes: 2 additions & 2 deletions deploy/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ volumes:
services:
oracle:
container_name: oracle
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.0
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.1
restart: always
entrypoint: ["python"]
command: ["oracle/oracle/main.py"]
Expand All @@ -30,7 +30,7 @@ services:

keeper:
container_name: keeper
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.0
image: europe-west4-docker.pkg.dev/stakewiselabs/public/oracle:v2.0.1
restart: always
entrypoint: ["python"]
command: ["oracle/keeper/main.py"]
Expand Down
1 change: 1 addition & 0 deletions oracle/common/settings.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
REWARD_VOTE_FILENAME = "reward-vote.json"
DISTRIBUTOR_VOTE_FILENAME = "distributor-vote.json"
VALIDATOR_VOTE_FILENAME = "validator-vote.json"
TEST_VOTE_FILENAME = "test-vote.json"

# supported networks
MAINNET = "mainnet"
Expand Down
9 changes: 6 additions & 3 deletions oracle/oracle/clients.py
Original file line number Diff line number Diff line change
Expand Up @@ -24,27 +24,30 @@
aws_secret_access_key=AWS_SECRET_ACCESS_KEY,
)

# set default timeout to 5 minutes
DEFAULT_TIMEOUT = 5 * 60


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


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


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

Expand Down
23 changes: 11 additions & 12 deletions oracle/oracle/main.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,22 @@
from typing import Any

import aiohttp
from decouple import UndefinedValueError
from eth_account import Account
from eth_account.signers.local import LocalAccount

from oracle.common.health_server import create_health_server_runner, start_health_server
from oracle.common.settings import ENABLE_HEALTH_SERVER, LOG_LEVEL
from oracle.common.settings import ENABLE_HEALTH_SERVER, LOG_LEVEL, TEST_VOTE_FILENAME
from oracle.oracle.distributor.controller import DistributorController
from oracle.oracle.eth1 import (
check_oracle_account,
get_finalized_block,
get_voting_parameters,
submit_vote,
)
from oracle.oracle.health_server import oracle_routes
from oracle.oracle.rewards.controller import RewardsController
from oracle.oracle.rewards.eth2 import get_finality_checkpoints, get_genesis
from oracle.oracle.settings import (
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
ORACLE_PRIVATE_KEY,
ORACLE_PROCESS_INTERVAL,
)
from oracle.oracle.settings import ORACLE_PRIVATE_KEY, ORACLE_PROCESS_INTERVAL
from oracle.oracle.validators.controller import ValidatorsController

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

if not (AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY):
raise UndefinedValueError(
"AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY env variables must be specified"
)
# try submitting test vote
# noinspection PyTypeChecker
submit_vote(
oracle=oracle,
encoded_data=b"test data",
vote={"name": "test vote"},
name=TEST_VOTE_FILENAME,
)

# check stakewise graphql connection
await get_finalized_block()
Expand Down

0 comments on commit f85d5f5

Please sign in to comment.