Skip to content

Commit

Permalink
fix: add staking chain
Browse files Browse the repository at this point in the history
  • Loading branch information
Divya-Solulab committed Nov 14, 2024
1 parent b3f9ecf commit e6932b4
Show file tree
Hide file tree
Showing 9 changed files with 67 additions and 156 deletions.
106 changes: 0 additions & 106 deletions .github/workflows/push-docker-images.yml

This file was deleted.

4 changes: 2 additions & 2 deletions .github/workflows/release.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ name: Release Flow

on:
push:
tags:
- 'v*.*.*'
branches:
- feat/remove-mainnet

jobs:
publish-packages:
Expand Down
8 changes: 4 additions & 4 deletions packages/packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
"contract/valory/merkl_distributor/0.1.0": "bafybeihaqsvmncuzmwv2r6iuzc5t7ur6ugdhephz7ydftypksjidpsylbq",
"contract/valory/staking_token/0.1.0": "bafybeifrvtkofw5c26b3irm6izqfdpik6vpjhm6hqwcdzx333h6vhdanai",
"contract/valory/staking_activity_checker/0.1.0": "bafybeibjzsi2r5b6xd4iwl4wbwldptnynryzsdpifym4mkv32ynswx22ou",
"skill/valory/liquidity_trader_abci/0.1.0": "bafybeielg6jlltyfwbla5wyk7e3bqxmaa723wu644njyxnal3y7l2p3sxy",
"skill/valory/optimus_abci/0.1.0": "bafybeihb4e6m4ck5isat7cajqocfy2gd2hwtwmevr7kq7pae5hy3e25ema",
"agent/valory/optimus/0.1.0": "bafybeidu2bgtpx7kngr6o7ucep3ff5chhkqkfnxulodisvfse6aivi27ne",
"service/valory/optimus/0.1.0": "bafybeiho4b7ad7ysrllfq6smv6rirp5m3enytbwyn5jw2xtvs7tdjgtgwa"
"skill/valory/liquidity_trader_abci/0.1.0": "bafybeihaewp654hk2xw7vqgfb6lh2x2l2viprsq2phmu6fb63q7nw2bgpy",
"skill/valory/optimus_abci/0.1.0": "bafybeied6bhdl44darxdalq5362wtltevqg5ahg6pwyh4brf6tg2kh7gri",
"agent/valory/optimus/0.1.0": "bafybeicgi2h64lnr5jrjqm3dat7p2v6ojwmmcig2g2sbqcg2oabuuso7ge",
"service/valory/optimus/0.1.0": "bafybeifvx6d3o2iif7jxlmv6yazmddnto625wo7udz7qg32u4dzuaom37m"
},
"third_party": {
"protocol/open_aea/signing/1.0.0": "bafybeihv62fim3wl2bayavfcg3u5e5cxu3b7brtu4cn5xoxd6lqwachasi",
Expand Down
7 changes: 4 additions & 3 deletions packages/valory/agents/optimus/aea-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -35,8 +35,8 @@ protocols:
skills:
- valory/abstract_abci:0.1.0:bafybeidz54kvxhbdmpruzguuzzq7bjg4pekjb5amqobkxoy4oqknnobopu
- valory/abstract_round_abci:0.1.0:bafybeiajjzuh6vf23crp55humonknirvv2f4s3dmdlfzch6tc5ow52pcgm
- valory/liquidity_trader_abci:0.1.0:bafybeielg6jlltyfwbla5wyk7e3bqxmaa723wu644njyxnal3y7l2p3sxy
- valory/optimus_abci:0.1.0:bafybeihb4e6m4ck5isat7cajqocfy2gd2hwtwmevr7kq7pae5hy3e25ema
- valory/liquidity_trader_abci:0.1.0:bafybeihaewp654hk2xw7vqgfb6lh2x2l2viprsq2phmu6fb63q7nw2bgpy
- valory/optimus_abci:0.1.0:bafybeied6bhdl44darxdalq5362wtltevqg5ahg6pwyh4brf6tg2kh7gri
- valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey
- valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq
- valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi
Expand Down Expand Up @@ -245,4 +245,5 @@ models:
max_gas_percentage: ${float:0.25}
balancer_graphql_endpoints: ${str:{"optimism":"https://api.studio.thegraph.com/query/75376/balancer-optimism-v2/version/latest","base":"https://api.studio.thegraph.com/query/24660/balancer-base-v2/version/latest"}}
service_endpoint_base: ${str:https://optimus.staging.autonolas.tech/}
target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["base","optimism"]}
target_investment_chains: ${list:["base","optimism"]}
staking_chain: ${str:""}
3 changes: 2 additions & 1 deletion packages/valory/services/optimus/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ aea_version: '>=1.0.0, <2.0.0'
license: Apache-2.0
fingerprint: {}
fingerprint_ignore_patterns: []
agent: valory/optimus:0.1.0:bafybeidu2bgtpx7kngr6o7ucep3ff5chhkqkfnxulodisvfse6aivi27ne
agent: valory/optimus:0.1.0:bafybeicgi2h64lnr5jrjqm3dat7p2v6ojwmmcig2g2sbqcg2oabuuso7ge
number_of_agents: 1
deployment:
agent:
Expand Down Expand Up @@ -92,6 +92,7 @@ models:
allowed_chains: ${ALLOWED_CHAINS:list:["optimism","base"]}
target_investment_chains: ${TARGET_INVESTMENT_CHAINS:list:["optimism","base"]}
initial_assets: ${INITIAL_ASSETS:str:{"ethereum":{"0x0000000000000000000000000000000000000000":"ETH","0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48":"USDC"}}}
staking_chain: ${STAKING_CHAIN:str:""}
coingecko:
args:
token_price_endpoint: ${COINGECKO_TOKEN_PRICE_ENDPOINT:str:https://api.coingecko.com/api/v3/simple/token_price/{asset_platform_id}?contract_addresses={token_address}&vs_currencies=usd}
Expand Down
86 changes: 49 additions & 37 deletions packages/valory/skills/liquidity_trader_abci/behaviours.py
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,6 @@
MAX_RETRIES_FOR_ROUTES = 3
HTTP_OK = [200, 201]
UTF8 = "utf-8"
STAKING_CHAIN = "optimism"
CAMPAIGN_TYPES = [1, 2]
INTEGRATOR = "valory"
WAITING_PERIOD_FOR_BALANCE_TO_REFLECT = 5
Expand Down Expand Up @@ -514,7 +513,9 @@ def _calculate_min_num_of_safe_tx_required(
self.round_sequence.last_round_transition_timestamp.timestamp()
)

last_ts_checkpoint = yield from self._get_ts_checkpoint(chain=STAKING_CHAIN)
last_ts_checkpoint = yield from self._get_ts_checkpoint(
chain=self.params.staking_chain
)
if last_ts_checkpoint is None:
return None

Expand Down Expand Up @@ -601,8 +602,10 @@ def _is_staking_kpi_met(self) -> Generator[None, None, Optional[bool]]:

multisig_nonces_since_last_cp = (
yield from self._get_multisig_nonces_since_last_cp(
chain=STAKING_CHAIN,
multisig=self.params.safe_contract_addresses.get(STAKING_CHAIN),
chain=self.params.staking_chain,
multisig=self.params.safe_contract_addresses.get(
self.params.staking_chain
),
)
)
if multisig_nonces_since_last_cp is None:
Expand Down Expand Up @@ -715,46 +718,55 @@ class CallCheckpointBehaviour(
def async_act(self) -> Generator:
"""Do the action."""
with self.context.benchmark_tool.measure(self.behaviour_id).local():
yield from self._get_service_staking_state(chain="optimism")
checkpoint_tx_hex = None
min_num_of_safe_tx_required = None
if self.service_staking_state == StakingState.STAKED:
min_num_of_safe_tx_required = (
yield from self._calculate_min_num_of_safe_tx_required(
chain=STAKING_CHAIN
)
)
if min_num_of_safe_tx_required is None:
self.context.logger.error(
"Error calculating min number of safe tx required."
)
else:
self.context.logger.info(
f"The minimum number of safe tx required to unlock rewards are {min_num_of_safe_tx_required}"
)
is_checkpoint_reached = yield from self._check_if_checkpoint_reached(
chain=STAKING_CHAIN

if not self.params.staking_chain:
self.context.logger.warning("Service has not been staked on any chain")
self.service_staking_state = StakingState.UNSTAKED
else:
yield from self._get_service_staking_state(
chain=self.params.staking_chain
)
if is_checkpoint_reached:
self.context.logger.info(
"Checkpoint reached! Preparing checkpoint tx.."
if self.service_staking_state == StakingState.STAKED:
min_num_of_safe_tx_required = (
yield from self._calculate_min_num_of_safe_tx_required(
chain=self.params.staking_chain
)
)
checkpoint_tx_hex = yield from self._prepare_checkpoint_tx(
chain=STAKING_CHAIN
if min_num_of_safe_tx_required is None:
self.context.logger.error(
"Error calculating min number of safe tx required."
)
else:
self.context.logger.info(
f"The minimum number of safe tx required to unlock rewards are {min_num_of_safe_tx_required}"
)
is_checkpoint_reached = (
yield from self._check_if_checkpoint_reached(
chain=self.params.staking_chain
)
)
elif self.service_staking_state == StakingState.EVICTED:
self.context.logger.error("Service has been evicted!")
if is_checkpoint_reached:
self.context.logger.info(
"Checkpoint reached! Preparing checkpoint tx.."
)
checkpoint_tx_hex = yield from self._prepare_checkpoint_tx(
chain=self.params.staking_chain
)
elif self.service_staking_state == StakingState.EVICTED:
self.context.logger.error("Service has been evicted!")

else:
self.context.logger.error("Service has not been staked")
else:
self.context.logger.error("Service has not been staked")

tx_submitter = self.matching_round.auto_round_id()
payload = CallCheckpointPayload(
self.context.agent_address,
tx_submitter,
checkpoint_tx_hex,
self.params.safe_contract_addresses.get(STAKING_CHAIN),
STAKING_CHAIN,
self.params.safe_contract_addresses.get(self.params.staking_chain),
self.params.staking_chain,
self.service_staking_state.value,
min_num_of_safe_tx_required,
)
Expand Down Expand Up @@ -853,9 +865,9 @@ def async_act(self) -> Generator:
)
multisig_nonces_since_last_cp = (
yield from self._get_multisig_nonces_since_last_cp(
chain=STAKING_CHAIN,
chain=self.params.staking_chain,
multisig=self.params.safe_contract_addresses.get(
STAKING_CHAIN
self.params.staking_chain
),
)
)
Expand All @@ -872,7 +884,7 @@ def async_act(self) -> Generator:
)
self.context.logger.info("Preparing vanity tx..")
vanity_tx_hex = yield from self._prepare_vanity_tx(
chain=STAKING_CHAIN
chain=self.params.staking_chain
)
self.context.logger.info(f"tx hash: {vanity_tx_hex}")

Expand All @@ -881,8 +893,8 @@ def async_act(self) -> Generator:
self.context.agent_address,
tx_submitter,
vanity_tx_hex,
self.params.safe_contract_addresses.get(STAKING_CHAIN),
STAKING_CHAIN,
self.params.safe_contract_addresses.get(self.params.staking_chain),
self.params.staking_chain,
is_staking_kpi_met,
)

Expand Down
1 change: 1 addition & 0 deletions packages/valory/skills/liquidity_trader_abci/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
self.target_investment_chains: List[str] = self._ensure(
"target_investment_chains", kwargs, List[str]
)
self.staking_chain = self._ensure("staking_chain", kwargs, str)
super().__init__(*args, **kwargs)

def get_store_path(self, kwargs: Dict) -> Path:
Expand Down
5 changes: 3 additions & 2 deletions packages/valory/skills/liquidity_trader_abci/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,11 @@ license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeia7bn2ahqqwkf63ptje6rfnftuwrsp33sswgpcbh5osbesxxr6g4m
behaviours.py: bafybeicvnd3uk7e2u5k5fzntltgojodl5pmfhpdzqcqaag2qb5hmcag6ym
behaviours.py: bafybeighyitbsgeffmbip5apsnultvwqkaa3lbpucf3uvt73uuxzx4tcom
dialogues.py: bafybeiay23otskx2go5xhtgdwfw2kd6rxd62sxxdu3njv7hageorl5zxzm
fsm_specification.yaml: bafybeiabbiulb7k6xkjysulmy6o4ugnhxlpp5jiaeextvwj65q4ttadoeq
handlers.py: bafybeidxw2lvgiifmo4siobpwuwbxscuifrdo3gnkjyn6bgexotj5f7zf4
models.py: bafybeih2ff36m7xfmlrdumfwu6k5gc4ijijhyms7b67gbiu5xpivtzxm3q
models.py: bafybeihilfhhiy4uwx74bg62z5c4owsgxk3nozzgqwcgfarq4zwms3ynkm
payloads.py: bafybeie5tbx3lqcklwfqdqft5t33oluvkltnbjqavhj3ddjjblocyq62qm
pool_behaviour.py: bafybeiaheuesscgqzwjbpyrezgwpdbdfurlmfwbc462qv6rblwwxlx5dpm
pools/balancer.py: bafybeigznhgv7ylo5dvlhxcqikhiuqlqtnx3ikv4tszyvkl2lpcuqgoa5u
Expand Down Expand Up @@ -192,6 +192,7 @@ models:
- base
- optimism
- mode
staking_chain: ''
class_name: Params
coingecko:
args:
Expand Down
3 changes: 2 additions & 1 deletion packages/valory/skills/optimus_abci/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ skills:
- valory/registration_abci:0.1.0:bafybeiffipsowrqrkhjoexem7ern5ob4fabgif7wa6gtlszcoaop2e3oey
- valory/reset_pause_abci:0.1.0:bafybeif4lgvbzsmzljesxbphycdv52ka7qnihyjrjpfaseclxadcmm6yiq
- valory/termination_abci:0.1.0:bafybeiekkpo5qef5zaeagm3si6v45qxcojvtjqe4a5ceccvk4q7k3xi3bi
- valory/liquidity_trader_abci:0.1.0:bafybeielg6jlltyfwbla5wyk7e3bqxmaa723wu644njyxnal3y7l2p3sxy
- valory/liquidity_trader_abci:0.1.0:bafybeihaewp654hk2xw7vqgfb6lh2x2l2viprsq2phmu6fb63q7nw2bgpy
- valory/transaction_settlement_abci:0.1.0:bafybeielv6eivt2z6nforq43xewl2vmpfwpdu2s2vfogobziljnwsclmlm
behaviours:
main:
Expand Down Expand Up @@ -184,6 +184,7 @@ models:
- base
- optimism
- mode
staking_chain: ''
class_name: Params
coingecko:
args:
Expand Down

0 comments on commit e6932b4

Please sign in to comment.