Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/prometheus endpoint #369

Open
wants to merge 53 commits into
base: develop
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
383737f
feat: prometheus endpoint
annasambrook Dec 13, 2024
c97ef40
fix: metric labels
annasambrook Dec 13, 2024
547a4ba
Merge remote-tracking branch 'origin/develop' into feat/prometheus-en…
annasambrook Dec 13, 2024
b30afc8
chore: generators
annasambrook Dec 13, 2024
829bdd4
chore: generators
annasambrook Dec 16, 2024
d1c9603
Merge branch 'refs/heads/develop' into feat/prometheus-endpoint
annasambrook Dec 16, 2024
aa31df2
chore: generators
annasambrook Dec 16, 2024
a4fdacd
refactor: move wallet balance to market manager
annasambrook Dec 17, 2024
47caf37
enhance: add staking contract slots to metrics endpoint
annasambrook Dec 18, 2024
9fdab40
fix: changes after code checks
annasambrook Dec 19, 2024
662e48f
chore: generators
annasambrook Dec 19, 2024
9fec4ef
fix: add missing dependency to the skill
Adamantios Dec 19, 2024
79bb146
chore: run tox -e check-dependencies
Adamantios Dec 19, 2024
20962c8
chore: ignore missing prometheus client imports
Adamantios Dec 19, 2024
48874d5
chore: run generators
Adamantios Dec 19, 2024
0902d35
fix: registry duplicated timeseries error
annasambrook Dec 19, 2024
1565bb4
Merge remote-tracking branch 'origin/feat/prometheus-endpoint' into f…
annasambrook Dec 19, 2024
abba52b
chore: generators
annasambrook Dec 19, 2024
1e9d3a0
Update packages/valory/skills/decision_maker_abci/skill.yaml
annasambrook Dec 19, 2024
4476197
Update packages/valory/skills/market_manager_abci/skill.yaml
annasambrook Dec 19, 2024
cce8e0f
chore: autonomy packages lock
annasambrook Dec 19, 2024
ae56e81
fix: tests
annasambrook Dec 19, 2024
572ce4b
fix: test decision request payload
annasambrook Dec 19, 2024
eddd0fa
chore: generators
annasambrook Dec 19, 2024
7132eb2
fix: check stop trading payload test
annasambrook Dec 19, 2024
c37cdd2
fix: tests
annasambrook Dec 19, 2024
8edd3af
fix: keywords must be strings
annasambrook Dec 20, 2024
b565ad6
fix: yield balance check
annasambrook Dec 23, 2024
d6f1cbc
chore: generators
annasambrook Dec 23, 2024
0c54647
fix: olas balance contract call
annasambrook Dec 23, 2024
061e153
add: service owner address
annasambrook Dec 23, 2024
c979c0d
Merge branch 'refs/heads/develop' into feat/prometheus-endpoint
annasambrook Dec 23, 2024
84dbcf7
fix: servie owner address duplication
annasambrook Dec 23, 2024
518f4ec
refactor: make olas token address param
annasambrook Dec 27, 2024
204764e
fix: gitleaksignore
annasambrook Dec 27, 2024
4c6c7a1
fix: trader skill
annasambrook Dec 27, 2024
062ee0d
Merge branch 'refs/heads/develop' into feat/prometheus-endpoint
annasambrook Jan 22, 2025
7eef10b
chore: generators
annasambrook Jan 22, 2025
a47cd6f
Merge branch 'refs/heads/main' into feat/prometheus-endpoint
annasambrook Jan 24, 2025
4fad8e8
add: label for staking contract name
annasambrook Jan 24, 2025
f6ef048
add: env var for http handler
annasambrook Jan 28, 2025
8d0dd6c
fix: prometheus registry duplication
annasambrook Jan 28, 2025
33237fe
add: epoch countdown
annasambrook Jan 29, 2025
fb22731
chore: formatters
annasambrook Jan 29, 2025
f92b35e
chore: copyright
annasambrook Jan 29, 2025
feeab0f
fix: label names and None values
annasambrook Jan 29, 2025
b7f3e3a
chore: generators and common checks
annasambrook Jan 29, 2025
a4f47e4
Merge branch 'refs/heads/develop' into feat/prometheus-endpoint
annasambrook Jan 30, 2025
880b960
chore: generators
annasambrook Jan 30, 2025
d387551
add: exclude erc20 from generators and common checks
annasambrook Jan 30, 2025
ea4d3a4
chore: generators
annasambrook Jan 30, 2025
66659bc
fix: prometheus collector registry refresh on startup
annasambrook Jan 31, 2025
07a9de2
chore: format and generators
annasambrook Jan 31, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/common_checks.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ jobs:
- name: Install dependencies
run: pip install tomte[tox,cli]==0.2.14
- name: Check copyright headers
run: tomte check-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription --exclude-part mech --exclude-part mech_interact_abci --exclude-part http_server --exclude-part mech_marketplace
run: tomte check-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription --exclude-part mech --exclude-part mech_interact_abci --exclude-part http_server --exclude-part mech_marketplace --exclude-part erc20
- name: License compatibility check
run: tox -e liccheck
- name: Check dependencies
Expand Down
3 changes: 3 additions & 0 deletions .gitleaksignore
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ ae28aeb8ad56e1873bfb3996c5d5ad8367709cd1:packages/valory/skills/decision_maker_a
ae28aeb8ad56e1873bfb3996c5d5ad8367709cd1:packages/valory/skills/trader_abci/skill.yaml:generic-api-key:154
9d8617ddd58c172f8d9dd32a7b74f22aa3d27dfb:packages/valory/skills/mech_interact_abci/skill.yaml:generic-api-key:151
0b4170ce2e876c28a9585081117e6468db17f0b9:packages/valory/services/trader_omen_gnosis/service.yaml:generic-api-key:48
0c54647f03886d75fca4522420ea72b58d6c3dcc:packages/valory/skills/market_manager_abci/behaviours.py:generic-api-key:59
ce332275857ab3dabb2c0c57330fb2137b6b77f7:packages/valory/skills/trader_abci/skill.yaml:generic-api-key:263
518f4ec1e1b80f45420c3626613833a27b0aab5d:packages/valory/skills/trader_abci/skill.yaml:generic-api-key:263
518f4ec1e1b80f45420c3626613833a27b0aab5d:packages/valory/skills/trader_abci/skill.yaml:generic-api-key:263
0c54647f03886d75fca4522420ea72b58d6c3dcc:packages/valory/skills/market_manager_abci/behaviours.py:generic-api-key:59
7cb24a6ba2423f65a946b163268d09308ca00a00:trader_backup/log.txt:generic-api-key:176
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -74,13 +74,13 @@ security:
.PHONY: generators
generators: clean-cache fix-abci-app-specs
tox -e abci-docstrings
tomte format-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription --exclude-part mech --exclude-part mech_interact_abci --exclude-part http_server --exclude-part mech_marketplace
tomte format-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part http_server --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part erc20 --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part mech --exclude-part mech_marketplace --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part mech_interact_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription
autonomy packages lock
tox -e fix-doc-hashes

.PHONY: common-checks-1
common-checks-1:
tomte check-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription --exclude-part mech --exclude-part mech_interact_abci --exclude-part http_server --exclude-part mech_marketplace
tomte check-copyright --author valory --exclude-part abci --exclude-part http_client --exclude-part http_server --exclude-part ipfs --exclude-part ledger --exclude-part p2p_libp2p_client --exclude-part erc20 --exclude-part gnosis_safe --exclude-part gnosis_safe_proxy_factory --exclude-part mech --exclude-part mech_marketplace --exclude-part multisend --exclude-part service_registry --exclude-part protocols --exclude-part abstract_abci --exclude-part abstract_round_abci --exclude-part mech_interact_abci --exclude-part registration_abci --exclude-part reset_pause_abci --exclude-part termination_abci --exclude-part transaction_settlement_abci --exclude-part websocket_client --exclude-part contract_subscription
tomte check-doc-links
tox -p -e check-hash -e check-packages -e check-doc-hashes -e analyse-service

Expand Down
22 changes: 11 additions & 11 deletions packages/packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -10,20 +10,20 @@
"contract/valory/realitio_proxy/0.1.0": "bafybeidx37xzjjmapwacedgzhum6grfzhp5vhouz4zu3pvpgdy5pgb2fr4",
"contract/valory/conditional_tokens/0.1.0": "bafybeibnzmqmeph4cj5vfh3s622mo2o5627vjjwc6bptrhj4dk65mzgvhe",
"contract/valory/agent_registry/0.1.0": "bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca",
"contract/valory/service_staking_token/0.1.0": "bafybeieg664oohr26gpcfn3uied4minlz6dmgd32xboewscnxqnv5kk4zi",
"contract/valory/service_staking_token/0.1.0": "bafybeihlrs7m7qcme22cjfgk4l2fqbyqeqvdbum3xcljmgi4lcbegbwmkq",
"contract/valory/transfer_nft_condition/0.1.0": "bafybeicdtigdwlt47jg2tibxltwyyl4apysvlideo53lgiy3muuho3izpa",
"contract/valory/mech_activity/0.1.0": "bafybeieadv7vnbguc7beu6xo3rs3mqbgzc7wayc7kvgb2tmitmjtpdcqkq",
"contract/valory/staking_token/0.1.0": "bafybeiaynt6clwbthtbndtocnwul7dp76ctmu4jxinp7fnqks4pxt65yuy",
"contract/valory/staking_token/0.1.0": "bafybeif5m72b7dohrpvcyijqm6xm6gyarg3rp3zlwerxdzfkfmc2imwlga",
"contract/valory/relayer/0.1.0": "bafybeicreijhjycqrutdpbdn3vdcpmo233y3p66l3ovmr2goa2y2e6bshy",
"skill/valory/market_manager_abci/0.1.0": "bafybeiayhzwxlpqsevyvaxn6dtnnu745az5vcz7dckmghnmjywxdtvoyly",
"skill/valory/decision_maker_abci/0.1.0": "bafybeibi3b4tnal6c6cypszogn7iskerpolmueddeagnyt3fv65vhvxebq",
"skill/valory/trader_abci/0.1.0": "bafybeias2rt775gh5357uw5tbw3n7acdyp5yhx6x4noa3aqqqluselnkju",
"skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeiharmlmnezdeuyfzbq27ds7jtnbqrvo62k4qj34cdbjstwqe5occu",
"skill/valory/staking_abci/0.1.0": "bafybeiaasclr4lf3u2layekmfwyasckxrslbs2g4me7kvozz5goswlznjq",
"skill/valory/check_stop_trading_abci/0.1.0": "bafybeic3bismocli2yyxmjhjsevjbzpuf3ladsvlkazfx23vq3q6uxrn7m",
"agent/valory/trader/0.1.0": "bafybeib3y24ugudzpcgrqxfpuuhfihj2hzo4yx3am2gnel2zm4xlem237a",
"service/valory/trader/0.1.0": "bafybeigflygpbier6vwn4k7ut77gbwsnw24r5z74o5w2kiewbnvgpxdpea",
"service/valory/trader_pearl/0.1.0": "bafybeid47v5pd3ibsbs4dhie2odz3zldt5euhr4awq5sjq7q4c6p67cxam"
"skill/valory/market_manager_abci/0.1.0": "bafybeihzfnnogprkz2m3vlbzndzrfwjcxk5i35h2vefjhguhf2gfkkcesy",
"skill/valory/decision_maker_abci/0.1.0": "bafybeidq54y34rq7djgxs53rti5crqrcf6kbie22y3tdce7og6mbifo44i",
"skill/valory/trader_abci/0.1.0": "bafybeihworqtm7rjf5q3v4v5l5quiqmyeafn5jdbca6rdbsspiybloreom",
"skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeicovhetzfzrcdnc7rpdyrqwui5mbpk5hltqborjgbg7kc2rg46fjy",
"skill/valory/staking_abci/0.1.0": "bafybeicc4iactsgkdpbbqqih6pm4tedajxf7b2axgmptm4aecisb6gh4ei",
"skill/valory/check_stop_trading_abci/0.1.0": "bafybeicbshzy3nzjs6nw4me66q2m6n2pmdclqvtqlggmaaavk6rtvkdovm",
"agent/valory/trader/0.1.0": "bafybeig7ax6j675ukhjdlobd5lcrujckvjnrnekjsxlchih6onqsjasfze",
"service/valory/trader/0.1.0": "bafybeibgy3t2l3ks2cldjgfdiybxgriituwuou3sfmfvposqtbljrxvvzi",
"service/valory/trader_pearl/0.1.0": "bafybeigtmsu4rox5cssoorkvmq5yknz2ridlt7yzqifxesihwn425t2h4e"
},
"third_party": {
"protocol/valory/acn_data_share/0.1.0": "bafybeidbvo3jdbt54pqk3foqfso4uim2vaea5abg6jzktomdeklh6sm2rq",
Expand Down
18 changes: 10 additions & 8 deletions packages/valory/agents/trader/aea-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -26,10 +26,10 @@ contracts:
- valory/realitio:0.1.0:bafybeietgux6kkhdquspy35qera7gjwwqwrremmoeatjzwwokjb2lzsata
- valory/realitio_proxy:0.1.0:bafybeidx37xzjjmapwacedgzhum6grfzhp5vhouz4zu3pvpgdy5pgb2fr4
- valory/agent_registry:0.1.0:bafybeibboljpn2zevzxnpgflxj6ykxk4bpxegtzjts25ajliaoadz35mca
- valory/service_staking_token:0.1.0:bafybeieg664oohr26gpcfn3uied4minlz6dmgd32xboewscnxqnv5kk4zi
- valory/service_staking_token:0.1.0:bafybeihlrs7m7qcme22cjfgk4l2fqbyqeqvdbum3xcljmgi4lcbegbwmkq
- valory/transfer_nft_condition:0.1.0:bafybeicdtigdwlt47jg2tibxltwyyl4apysvlideo53lgiy3muuho3izpa
- valory/erc20:0.1.0:bafybeientdgpccdi7prtu4x53m5g3yugh5tuh5hnroylfz3wwzyjniqure
- valory/staking_token:0.1.0:bafybeiaynt6clwbthtbndtocnwul7dp76ctmu4jxinp7fnqks4pxt65yuy
- valory/staking_token:0.1.0:bafybeif5m72b7dohrpvcyijqm6xm6gyarg3rp3zlwerxdzfkfmc2imwlga
- valory/mech_activity:0.1.0:bafybeieadv7vnbguc7beu6xo3rs3mqbgzc7wayc7kvgb2tmitmjtpdcqkq
- valory/mech_marketplace:0.1.0:bafybeicfuigpr65k4l2r5dbazzwh43yc6pfuy5mrkjkagmhmcp6ioktfay
- valory/relayer:0.1.0:bafybeicreijhjycqrutdpbdn3vdcpmo233y3p66l3ovmr2goa2y2e6bshy
Expand All @@ -50,12 +50,12 @@ skills:
- valory/reset_pause_abci:0.1.0:bafybeiezfedmmseox3ce5aucxsiszdmvskrwwbtpb2a3vw3sbmc5jt7nri
- valory/termination_abci:0.1.0:bafybeiea67epwwgngp7b3wavs6hpkaxv6etyaps6g6325bchfnf354mibq
- valory/transaction_settlement_abci:0.1.0:bafybeifmgmwdkx4esemxjacjwzqkqymkuklb5nehkwqkx7v335fllgswcq
- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeiharmlmnezdeuyfzbq27ds7jtnbqrvo62k4qj34cdbjstwqe5occu
- valory/market_manager_abci:0.1.0:bafybeiayhzwxlpqsevyvaxn6dtnnu745az5vcz7dckmghnmjywxdtvoyly
- valory/decision_maker_abci:0.1.0:bafybeibi3b4tnal6c6cypszogn7iskerpolmueddeagnyt3fv65vhvxebq
- valory/trader_abci:0.1.0:bafybeias2rt775gh5357uw5tbw3n7acdyp5yhx6x4noa3aqqqluselnkju
- valory/staking_abci:0.1.0:bafybeiaasclr4lf3u2layekmfwyasckxrslbs2g4me7kvozz5goswlznjq
- valory/check_stop_trading_abci:0.1.0:bafybeic3bismocli2yyxmjhjsevjbzpuf3ladsvlkazfx23vq3q6uxrn7m
- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeicovhetzfzrcdnc7rpdyrqwui5mbpk5hltqborjgbg7kc2rg46fjy
- valory/market_manager_abci:0.1.0:bafybeihzfnnogprkz2m3vlbzndzrfwjcxk5i35h2vefjhguhf2gfkkcesy
- valory/decision_maker_abci:0.1.0:bafybeidq54y34rq7djgxs53rti5crqrcf6kbie22y3tdce7og6mbifo44i
- valory/trader_abci:0.1.0:bafybeihworqtm7rjf5q3v4v5l5quiqmyeafn5jdbca6rdbsspiybloreom
- valory/staking_abci:0.1.0:bafybeicc4iactsgkdpbbqqih6pm4tedajxf7b2axgmptm4aecisb6gh4ei
- valory/check_stop_trading_abci:0.1.0:bafybeicbshzy3nzjs6nw4me66q2m6n2pmdclqvtqlggmaaavk6rtvkdovm
- valory/mech_interact_abci:0.1.0:bafybeib4vn6m2yumwoclh5aatcdt5yxcjc5owxmxy5o7t3nfzormgwkr64
customs:
- valory/mike_strat:0.1.0:bafybeihjiol7f4ch4piwfikurdtfwzsh6qydkbsztpbwbwb2yrqdqf726m
Expand Down Expand Up @@ -249,6 +249,8 @@ models:
tool_quarantine_duration: ${int:18000}
default_chain_id: ${str:gnosis}
mech_interact_round_timeout_seconds: ${int:5400}
olas_token_address: ${str:0xcE11e14225575945b8E6Dc0D4F2dD4C570f79d9f}
http_handler_hostname_regex: ${str:localhost}
benchmarking_mode:
args:
enabled: ${bool:false}
Expand Down
16 changes: 15 additions & 1 deletion packages/valory/contracts/service_staking_token/contract.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------------------------
#
# Copyright 2023-2024 Valory AG
# Copyright 2023-2025 Valory AG
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,6 +20,7 @@
"""This module contains the class to connect to the `ServiceStakingTokenMechUsage` contract."""

from enum import Enum
from typing import Dict

from aea.common import JSONLike
from aea.configurations.base import PublicId
Expand Down Expand Up @@ -190,3 +191,16 @@ def get_min_staking_duration(
contract = cls.get_instance(ledger_api, contract_address)
duration = contract.functions.minStakingDuration().call()
return dict(data=duration)

@classmethod
def get_epoch_end(
cls,
ledger_api: LedgerApi,
contract_address: str,
) -> Dict:
"""Get the epoch end."""
contract_instance = cls.get_instance(ledger_api, contract_address)
liveness = contract_instance.functions.livenessPeriod().call()
checkpoint_ts = contract_instance.functions.tsCheckpoint().call()
epoch_end = checkpoint_ts + liveness
return dict(epoch_end=epoch_end)
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeid3wfzglolebuo6jrrsopswzu4lk77bm76mvw3euizlsjtnt3wmgu
build/ServiceStakingToken.json: bafybeib6frfpqtr4dfyxuylehqmic2iawofydx7u24t7j5zbrsc4m4ijoi
contract.py: bafybeiboxlbmmhnsreimqyrnn3yamzueiucno6v75xjfrvfvbx4pqrnlsy
contract.py: bafybeiecpttavqdocg3vi2eyrsntwxiz5c5corijr2q73rg5bnrkt37ajy
fingerprint_ignore_patterns: []
contracts: []
class_name: ServiceStakingTokenContract
Expand Down
27 changes: 26 additions & 1 deletion packages/valory/contracts/staking_token/contract.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------------------------
#
# Copyright 2023-2024 Valory AG
# Copyright 2023-2025 Valory AG
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
Expand All @@ -20,6 +20,7 @@
"""This module contains the class to connect to the `StakingToken` contract."""

from enum import Enum
from typing import Dict

from aea.common import JSONLike
from aea.configurations.base import PublicId
Expand Down Expand Up @@ -190,3 +191,27 @@ def get_min_staking_duration(
contract = cls.get_instance(ledger_api, contract_address)
duration = contract.functions.minStakingDuration().call()
return dict(data=duration)

@classmethod
def get_metadata_hash(
cls,
ledger_api: LedgerApi,
contract_address: str,
) -> JSONLike:
"""Retrieve the metadata hash."""
contract = cls.get_instance(ledger_api, contract_address)
metadata_hash = contract.functions.metadataHash().call()
return dict(data=metadata_hash)

@classmethod
def get_epoch_end(
cls,
ledger_api: LedgerApi,
contract_address: str,
) -> Dict:
"""Get the epoch end."""
contract_instance = cls.get_instance(ledger_api, contract_address)
liveness = contract_instance.functions.livenessPeriod().call()
checkpoint_ts = contract_instance.functions.tsCheckpoint().call()
epoch_end = checkpoint_ts + liveness
return dict(epoch_end=epoch_end)
2 changes: 1 addition & 1 deletion packages/valory/contracts/staking_token/contract.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeicmgkagyhgwn2ktcdjbprijalbdyj26cvza4d3b7uvmehvy4mmr3i
build/StakingToken.json: bafybeibhcwyawq377innrpq4ytpw5kotufjqo7cyd2rjhyit34mnbks5b4
contract.py: bafybeigjt7a2biiorp4vmj4d3qkm3xbbohnawoetywojye5akhavlvkrxm
contract.py: bafybeiatpzwdfoyvms3dr57gt2lgjiv7debw76ael4ulcwkd22q46uofy4
fingerprint_ignore_patterns: []
contracts: []
class_name: StakingTokenContract
Expand Down
Loading
Loading