Skip to content

Commit 2e93f79

Browse files
authored
Merge pull request #36 from stakewise/fix-validator-registration-query
Fix validator registration query
2 parents ee1e8c2 + acae5f6 commit 2e93f79

File tree

5 files changed

+30
-11
lines changed

5 files changed

+30
-11
lines changed

deploy/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ services:
100100
soft: 8192
101101
hard: 8192
102102
volumes: ["ipfs:/data/ipfs","./configs/ipfs-entrypoint.sh:/usr/local/bin/start_ipfs"]
103-
profiles: ["graph"]
103+
profiles: ["oracle"]
104104

105105
geth:
106106
container_name: geth

oracle/oracle/graphql_queries.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,13 +56,18 @@
5656

5757
VALIDATOR_VOTING_PARAMETERS_QUERY = gql(
5858
"""
59-
query getVotingParameters($block_number: Int) {
60-
networks(block: { number: $block_number }) {
59+
query getVotingParameters {
60+
networks {
6161
oraclesValidatorsNonce
6262
}
63-
pools(block: { number: $block_number }) {
63+
pools {
6464
balance
6565
}
66+
_meta {
67+
block {
68+
number
69+
}
70+
}
6671
}
6772
"""
6873
)
@@ -361,6 +366,19 @@
361366
"""
362367
)
363368

369+
VALIDATOR_REGISTRATIONS_QUERY = gql(
370+
"""
371+
query getValidatorRegistrations($block_number: Int, $public_key: Bytes) {
372+
validatorRegistrations(
373+
block: { number: $block_number }
374+
where: { id: $public_key }
375+
) {
376+
id
377+
}
378+
}
379+
"""
380+
)
381+
364382
VALIDATOR_REGISTRATIONS_LATEST_INDEX_QUERY = gql(
365383
"""
366384
query getValidatorRegistrations($block_number: Int) {

oracle/oracle/validators/controller.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77

88
from oracle.common.settings import VALIDATOR_VOTE_FILENAME
99

10-
from ..eth1 import get_latest_block, submit_vote
10+
from ..eth1 import submit_vote
1111
from .eth1 import get_validators_count, get_voting_parameters, select_validator
1212
from .types import ValidatorVote
1313

@@ -26,8 +26,8 @@ def __init__(self, oracle: LocalAccount) -> None:
2626

2727
async def process(self) -> None:
2828
"""Process validators registration."""
29-
latest_block_number = (await get_latest_block())["block_number"]
3029
voting_params = await get_voting_parameters()
30+
latest_block_number = voting_params["latest_block_number"]
3131
pool_balance = voting_params["pool_balance"]
3232
if pool_balance < self.validator_deposit:
3333
# not enough balance to register next validator

oracle/oracle/validators/eth1.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,19 +21,19 @@
2121

2222

2323
@backoff.on_exception(backoff.expo, Exception, max_time=900)
24-
async def get_voting_parameters(block_number: BlockNumber) -> ValidatorVotingParameters:
24+
async def get_voting_parameters() -> ValidatorVotingParameters:
2525
"""Fetches validator voting parameters."""
2626
result: Dict = await execute_sw_gql_query(
2727
query=VALIDATOR_VOTING_PARAMETERS_QUERY,
28-
variables=dict(
29-
block_number=block_number,
30-
),
28+
variables={},
3129
)
3230
network = result["networks"][0]
3331
pool = result["pools"][0]
32+
meta = result["_meta"]
3433
return ValidatorVotingParameters(
3534
validators_nonce=int(network["oraclesValidatorsNonce"]),
3635
pool_balance=Wei(int(pool["balance"])),
36+
latest_block_number=BlockNumber(int(meta["block"]["number"])),
3737
)
3838

3939

oracle/oracle/validators/types.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,13 @@
11
from typing import List, TypedDict
22

3-
from eth_typing import ChecksumAddress, HexStr
3+
from eth_typing import BlockNumber, ChecksumAddress, HexStr
44
from web3.types import Wei
55

66

77
class ValidatorVotingParameters(TypedDict):
88
validators_nonce: int
99
pool_balance: Wei
10+
latest_block_number: BlockNumber
1011

1112

1213
class MerkleDepositData(TypedDict):

0 commit comments

Comments
 (0)