Skip to content

Commit 63f7fab

Browse files
authored
Merge pull request #459 from valory-xyz/develop
Release `v0.25.9`
2 parents d9170cf + 5c9ae07 commit 63f7fab

13 files changed

Lines changed: 124 additions & 39 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ packages/valory/contracts/multisend/
2626
packages/valory/contracts/service_registry/
2727
packages/valory/contracts/gnosis_safe/
2828
packages/valory/contracts/agent_registry/
29+
packages/valory/contracts/complementary_service_metadata/
2930

3031
packages/valory/protocols/abci
3132
packages/valory/protocols/acn

packages/packages.json

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,14 @@
1616
"contract/valory/relayer/0.1.0": "bafybeihypuljybkocl6iiacy52py7i5iqxdli3ily66q7b3nego4qajvne",
1717
"contract/valory/market_maker/0.1.0": "bafybeiepwclhyg7oo7wcffmben42wmwrxgb4ovoomw2zbjqljcy7b2neke",
1818
"skill/valory/market_manager_abci/0.1.0": "bafybeidblnaypi5fbci6zyk4ekngxq5zf2jiptssfhfiodzg7rilq24cz4",
19-
"skill/valory/decision_maker_abci/0.1.0": "bafybeiequ53nozctyki67yv6o7px55rxhk6shuwdp4idxb4bnlturxs2ge",
20-
"skill/valory/trader_abci/0.1.0": "bafybeicwl4j46jlslwisg6uusbvpfq335nuxuolhm7dsrngwzrnfmetxri",
21-
"skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeihcissp2uqahoo4zf3jeosvwvkw5tlqucby3zhs3a3z3pmzu44zxm",
19+
"skill/valory/decision_maker_abci/0.1.0": "bafybeigkg5xgdyp6pngqw2jdqgaxuiwhaunnygvdp27b2hcnitpanhikha",
20+
"skill/valory/trader_abci/0.1.0": "bafybeidgdg4xfbfd5rxaljguohnz2qcimv6byw7dlwljoqjzsgh4r34uhu",
21+
"skill/valory/tx_settlement_multiplexer_abci/0.1.0": "bafybeiehnn6bzszzilzfk6vzuvxq2g5cibkiafxzyzjxem7be4v7qrtxem",
2222
"skill/valory/staking_abci/0.1.0": "bafybeifupwkfbxa4c4jogpudvzwt5rkgfuedgd65sj2bf2z5ver4phq64m",
23-
"skill/valory/check_stop_trading_abci/0.1.0": "bafybeibtp73af35klgofghueuyrsasslndb7iuidm2p2pk4qmkq6qwt774",
24-
"agent/valory/trader/0.1.0": "bafybeigf6o6bebvdtqlzup7cjqcunpum7npzdygtumjr5w2enq6lyadpti",
25-
"service/valory/trader/0.1.0": "bafybeihksvwcli5zjs3umptgepscxerixzq33qyh65e3adgmej4cjx2r6q",
26-
"service/valory/trader_pearl/0.1.0": "bafybeievvf3663md525u2khoxjlufgp6hsf6vf6kah4xqckksj5nmtkg5q"
23+
"skill/valory/check_stop_trading_abci/0.1.0": "bafybeie3f4o3ddygddyqqpeydguxvrcqvtcjaw5wjecngbjbrv5oizbzmu",
24+
"agent/valory/trader/0.1.0": "bafybeif64qfhgg5d2mz65lm5ehbipbwa6ovrcswrdlkpev6lx4ali76bmm",
25+
"service/valory/trader/0.1.0": "bafybeiccilvyzy3jrjpmoig7cyvh5rdooyg645tjpunoqv6x7vl2bjgi5i",
26+
"service/valory/trader_pearl/0.1.0": "bafybeic4y2lgnuax57rw5aouykcslyun6eif4d7l6itxwxybncmvuvvove"
2727
},
2828
"third_party": {
2929
"protocol/valory/acn_data_share/0.1.0": "bafybeih5ydonnvrwvy2ygfqgfabkr47s4yw3uqxztmwyfprulwfsoe7ipq",
@@ -36,10 +36,11 @@
3636
"protocol/valory/tendermint/0.1.0": "bafybeigydrbfrlmr4f7shbtqx44kvmbg22im27mxdap2e3m5tkti6t445y",
3737
"protocol/valory/ipfs/0.1.0": "bafybeifi2nri7sprmkez4rqzwb4lnu6peoy3bax5k6asf6k5ms7kmjpmkq",
3838
"contract/valory/agent_registry/0.1.0": "bafybeia2eoorxpsfwnd2dnvgt2v3xxqez6d4zyxvqpnwo5oydcgxkr2uni",
39+
"contract/valory/complementary_service_metadata/0.1.0": "bafybeibu65wpdsbrbrt2wnf2lr3psy26jiaomyjkg4twbupve7o3kso2aa",
3940
"contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeidfvyc6bw4uigv3jfcxr23vysctki6x5rh5htp2azhncib27ydxdm",
4041
"contract/valory/gnosis_safe/0.1.0": "bafybeibgpgpi7w6xtxg3zr7tye3f6g6tu7fnvy7yxlgunbjqin3ou7e5pi",
4142
"contract/valory/mech/0.1.0": "bafybeib32m5zriagivlj7insajfs4jm5o5h53eym32wjjjp6qwv4lzl3pu",
42-
"contract/valory/mech_mm/0.1.0": "bafybeifyvfzoyb3bmcgb6zpcoxpcqupiicimegbhro7xvkjqpose34lnve",
43+
"contract/valory/mech_mm/0.1.0": "bafybeibbz2hlyvtg6yfojzdnou2xqbpu32a4mjvn2xidfypvwy5oj6gx4u",
4344
"contract/valory/service_registry/0.1.0": "bafybeigaginvk2i6rycppfomk6tldkvunik6atuxtjpuuw6ndckymcojne",
4445
"contract/valory/multisend/0.1.0": "bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y",
4546
"contract/valory/erc20/0.1.0": "bafybeifyjub3v62r53by76u7cli7oqvg5qukb4e6gaa62z34euqfwnrsvi",
@@ -57,6 +58,6 @@
5758
"skill/valory/abstract_round_abci/0.1.0": "bafybeiey45kkbniukmtpdjduwazpyygaiayeo7mh3tu6wfbau2bxvuljmy",
5859
"skill/valory/transaction_settlement_abci/0.1.0": "bafybeic2ywzpwkyeqbzsvkbvurhsptemam4xtceihax2tmxmlxtgd3xpya",
5960
"skill/valory/termination_abci/0.1.0": "bafybeibtbboau3q5fxfviwm7lbeix4z55uptfqqiyiu6siivxwkp3o5pju",
60-
"skill/valory/mech_interact_abci/0.1.0": "bafybeiedcaz6tmjg2irpntcco7ny2vwyqvffxl3mpji7qi6esdjr6qv3za"
61+
"skill/valory/mech_interact_abci/0.1.0": "bafybeigkizx3ecohtyshr6tq55zvp4sl5cou344a2t6nvwfgund4xnrj4a"
6162
}
6263
}

packages/valory/agents/trader/aea-config.yaml

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ contracts:
3434
- valory/mech_marketplace:0.1.0:bafybeiccn4ohizw2wrjt7goidiakfik26ugm735lnm3fna3khko7qgkawm
3535
- valory/relayer:0.1.0:bafybeihypuljybkocl6iiacy52py7i5iqxdli3ily66q7b3nego4qajvne
3636
- valory/mech_marketplace_legacy:0.1.0:bafybeiafwem7v7po7xb7rag4zfdqe2uoaqki3xybviciypxr5w6zkoxgse
37-
- valory/mech_mm:0.1.0:bafybeifyvfzoyb3bmcgb6zpcoxpcqupiicimegbhro7xvkjqpose34lnve
37+
- valory/mech_mm:0.1.0:bafybeibbz2hlyvtg6yfojzdnou2xqbpu32a4mjvn2xidfypvwy5oj6gx4u
38+
- valory/complementary_service_metadata:0.1.0:bafybeibu65wpdsbrbrt2wnf2lr3psy26jiaomyjkg4twbupve7o3kso2aa
3839
protocols:
3940
- open_aea/signing:1.0.0:bafybeig2d36zxy65vd7fwhs7scotuktydcarm74aprmrb5nioiymr3yixm
4041
- valory/abci:0.1.0:bafybeiatodhboj6a3p35x4f4b342lzk6ckxpud23awnqbxwjeon3k5y36u
@@ -52,13 +53,13 @@ skills:
5253
- valory/reset_pause_abci:0.1.0:bafybeiachgo6reit2q4jw75mefw2acj4ldedeqmn3rewjm4dbzts2l7oxe
5354
- valory/termination_abci:0.1.0:bafybeibtbboau3q5fxfviwm7lbeix4z55uptfqqiyiu6siivxwkp3o5pju
5455
- valory/transaction_settlement_abci:0.1.0:bafybeic2ywzpwkyeqbzsvkbvurhsptemam4xtceihax2tmxmlxtgd3xpya
55-
- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeihcissp2uqahoo4zf3jeosvwvkw5tlqucby3zhs3a3z3pmzu44zxm
56+
- valory/tx_settlement_multiplexer_abci:0.1.0:bafybeiehnn6bzszzilzfk6vzuvxq2g5cibkiafxzyzjxem7be4v7qrtxem
5657
- valory/market_manager_abci:0.1.0:bafybeidblnaypi5fbci6zyk4ekngxq5zf2jiptssfhfiodzg7rilq24cz4
57-
- valory/decision_maker_abci:0.1.0:bafybeiequ53nozctyki67yv6o7px55rxhk6shuwdp4idxb4bnlturxs2ge
58-
- valory/trader_abci:0.1.0:bafybeicwl4j46jlslwisg6uusbvpfq335nuxuolhm7dsrngwzrnfmetxri
58+
- valory/decision_maker_abci:0.1.0:bafybeigkg5xgdyp6pngqw2jdqgaxuiwhaunnygvdp27b2hcnitpanhikha
59+
- valory/trader_abci:0.1.0:bafybeidgdg4xfbfd5rxaljguohnz2qcimv6byw7dlwljoqjzsgh4r34uhu
5960
- valory/staking_abci:0.1.0:bafybeifupwkfbxa4c4jogpudvzwt5rkgfuedgd65sj2bf2z5ver4phq64m
60-
- valory/check_stop_trading_abci:0.1.0:bafybeibtp73af35klgofghueuyrsasslndb7iuidm2p2pk4qmkq6qwt774
61-
- valory/mech_interact_abci:0.1.0:bafybeiedcaz6tmjg2irpntcco7ny2vwyqvffxl3mpji7qi6esdjr6qv3za
61+
- valory/check_stop_trading_abci:0.1.0:bafybeie3f4o3ddygddyqqpeydguxvrcqvtcjaw5wjecngbjbrv5oizbzmu
62+
- valory/mech_interact_abci:0.1.0:bafybeigkizx3ecohtyshr6tq55zvp4sl5cou344a2t6nvwfgund4xnrj4a
6263
customs:
6364
- valory/mike_strat:0.1.0:bafybeihjiol7f4ch4piwfikurdtfwzsh6qydkbsztpbwbwb2yrqdqf726m
6465
- valory/bet_amount_per_threshold:0.1.0:bafybeihsjx7we6b2scjt7777xmjte36rrubblusitqsipjhkttk4cmf5iu
@@ -173,6 +174,7 @@ models:
173174
drand_public_key: ${str:868f005eb8e6e4ca0a47c8a77ceaa5309a47978a7c71bc5cce96366b5d7a569937c529eeda66c7293784a9402801af31}
174175
service_registry_address: ${str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
175176
agent_registry_address: ${str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
177+
complementary_service_metadata_address: ${str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
176178
use_acn_for_delivers: ${bool:false}
177179
share_tm_config_on_startup: ${bool:false}
178180
sleep_time: ${int:10}

packages/valory/services/trader/service.yaml

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ license: Apache-2.0
77
fingerprint:
88
README.md: bafybeigtuothskwyvrhfosps2bu6suauycolj67dpuxqvnicdrdu7yhtvq
99
fingerprint_ignore_patterns: []
10-
agent: valory/trader:0.1.0:bafybeigf6o6bebvdtqlzup7cjqcunpum7npzdygtumjr5w2enq6lyadpti
10+
agent: valory/trader:0.1.0:bafybeif64qfhgg5d2mz65lm5ehbipbwa6ovrcswrdlkpev6lx4ali76bmm
1111
number_of_agents: 4
1212
deployment:
1313
agent:
@@ -63,6 +63,7 @@ type: skill
6363
service_id: ${SERVICE_ID:str:trader}
6464
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
6565
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
66+
complementary_service_metadata_address: ${METADATA_ADDRESS:str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
6667
use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false}
6768
share_tm_config_on_startup: ${USE_ACN:bool:false}
6869
sleep_time: ${SLEEP_TIME:int:1}
@@ -290,6 +291,7 @@ type: skill
290291
service_id: ${SERVICE_ID:str:trader}
291292
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
292293
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
294+
complementary_service_metadata_address: ${METADATA_ADDRESS:str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
293295
use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false}
294296
share_tm_config_on_startup: ${USE_ACN:bool:false}
295297
sleep_time: ${SLEEP_TIME:int:1}
@@ -415,6 +417,7 @@ type: skill
415417
service_id: ${SERVICE_ID:str:trader}
416418
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
417419
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
420+
complementary_service_metadata_address: ${METADATA_ADDRESS:str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
418421
use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false}
419422
share_tm_config_on_startup: ${USE_ACN:bool:false}
420423
sleep_time: ${SLEEP_TIME:int:1}
@@ -540,6 +543,7 @@ type: skill
540543
service_id: ${SERVICE_ID:str:trader}
541544
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
542545
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
546+
complementary_service_metadata_address: ${METADATA_ADDRESS:str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
543547
use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false}
544548
share_tm_config_on_startup: ${USE_ACN:bool:false}
545549
sleep_time: ${SLEEP_TIME:int:1}

packages/valory/services/trader_pearl/service.yaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ license: Apache-2.0
88
fingerprint:
99
README.md: bafybeibg7bdqpioh4lmvknw3ygnllfku32oca4eq5pqtvdrdsgw6buko7e
1010
fingerprint_ignore_patterns: []
11-
agent: valory/trader:0.1.0:bafybeigf6o6bebvdtqlzup7cjqcunpum7npzdygtumjr5w2enq6lyadpti
11+
agent: valory/trader:0.1.0:bafybeif64qfhgg5d2mz65lm5ehbipbwa6ovrcswrdlkpev6lx4ali76bmm
1212
number_of_agents: 1
1313
deployment:
1414
agent:
@@ -65,6 +65,7 @@ models:
6565
service_id: ${SERVICE_ID:str:trader}
6666
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x9338b5153AE39BB89f50468E608eD9d764B755fD}
6767
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
68+
complementary_service_metadata_address: ${METADATA_ADDRESS:str:0x0598081D48FB80B0A7E52FAD2905AE9beCd6fC69}
6869
use_acn_for_delivers: ${USE_ACN_FOR_DELIVERS:bool:false}
6970
share_tm_config_on_startup: ${USE_ACN:bool:false}
7071
sleep_time: ${SLEEP_TIME:int:1}

packages/valory/skills/check_stop_trading_abci/skill.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ contracts:
2828
protocols: []
2929
skills:
3030
- valory/abstract_round_abci:0.1.0:bafybeiey45kkbniukmtpdjduwazpyygaiayeo7mh3tu6wfbau2bxvuljmy
31-
- valory/mech_interact_abci:0.1.0:bafybeiedcaz6tmjg2irpntcco7ny2vwyqvffxl3mpji7qi6esdjr6qv3za
31+
- valory/mech_interact_abci:0.1.0:bafybeigkizx3ecohtyshr6tq55zvp4sl5cou344a2t6nvwfgund4xnrj4a
3232
- valory/staking_abci:0.1.0:bafybeifupwkfbxa4c4jogpudvzwt5rkgfuedgd65sj2bf2z5ver4phq64m
3333
behaviours:
3434
main:

packages/valory/skills/decision_maker_abci/behaviours/base.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
SafeOperation,
3737
)
3838
from packages.valory.contracts.mech.contract import Mech
39+
from packages.valory.contracts.mech_mm.contract import MechMM
3940
from packages.valory.contracts.multisend.contract import MultiSendContract
4041
from packages.valory.contracts.transfer_nft_condition.contract import (
4142
TransferNftCondition,
@@ -557,6 +558,21 @@ def _mech_contract_interact(
557558
)
558559
return status
559560

561+
def _mech_mm_contract_interact(
562+
self, contract_callable: str, data_key: str, placeholder: str, **kwargs: Any
563+
) -> WaitableConditionType:
564+
"""Interact with the mech mm contract."""
565+
status = yield from self.contract_interact(
566+
performative=ContractApiMessage.Performative.GET_RAW_TRANSACTION, # type: ignore
567+
contract_address=self.params.mech_marketplace_config.priority_mech_address,
568+
contract_public_id=MechMM.contract_id,
569+
contract_callable=contract_callable,
570+
data_key=data_key,
571+
placeholder=placeholder,
572+
**kwargs,
573+
)
574+
return status
575+
560576
def _build_multisend_data(
561577
self,
562578
) -> WaitableConditionType:

packages/valory/skills/decision_maker_abci/behaviours/storage_manager.py

Lines changed: 50 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
from typing import Any, Dict, Generator, List, Optional, Tuple
2828

2929
from packages.valory.contracts.agent_registry.contract import AgentRegistryContract
30+
from packages.valory.contracts.complementary_service_metadata.contract import (
31+
ComplementaryServiceMetadata,
32+
)
3033
from packages.valory.protocols.contract_api import ContractApiMessage
3134
from packages.valory.skills.abstract_round_abci.base import get_name
3235
from packages.valory.skills.decision_maker_abci.behaviours.base import (
@@ -55,9 +58,7 @@ def __init__(self, **kwargs: Any) -> None:
5558
"""Initialize Behaviour."""
5659
super().__init__(**kwargs)
5760
self._mech_id: int = 0
58-
self._mech_hash: str = (
59-
"d26821719fcdb05d3683d8091ca31183ccdb02b792abe9e69bd62e3886abe835"
60-
)
61+
self._mech_hash: str = ""
6162
self._utilized_tools: Dict[str, str] = {}
6263
self._mech_tools: Optional[List[str]] = None
6364
self._remote_accuracy_information: StringIO = StringIO()
@@ -131,8 +132,12 @@ def setup(self) -> None:
131132

132133
def set_mech_agent_specs(self) -> None:
133134
"""Set the mech's agent specs."""
134-
full_ipfs_hash = CID_PREFIX + self.mech_hash
135-
ipfs_link = self.params.ipfs_address + full_ipfs_hash
135+
ipfs_link = (
136+
self.mech_hash
137+
if self.params.use_mech_marketplace
138+
else self.params.ipfs_address + CID_PREFIX + self.mech_hash
139+
)
140+
136141
# The url needs to be dynamically generated as it depends on the ipfs hash
137142
self.mech_tools_api.__dict__["_frozen"] = False
138143
self.mech_tools_api.url = ipfs_link
@@ -180,6 +185,29 @@ def _get_mech_hash(self) -> WaitableConditionType:
180185
)
181186
return result
182187

188+
def _get_mech_service_id(self) -> WaitableConditionType:
189+
"""Get the mech's id."""
190+
result = yield from self._mech_mm_contract_interact(
191+
contract_callable="get_service_id",
192+
data_key="service_id",
193+
placeholder=get_name(StorageManagerBehaviour.mech_id),
194+
)
195+
196+
return result
197+
198+
def _get_metadata_uri(self) -> WaitableConditionType:
199+
"""Get the mech's hash."""
200+
result = yield from self.contract_interact(
201+
performative=ContractApiMessage.Performative.GET_RAW_TRANSACTION, # type: ignore
202+
contract_address=self.params.metadata_address,
203+
contract_public_id=ComplementaryServiceMetadata.contract_id,
204+
contract_callable="get_token_uri",
205+
data_key="uri",
206+
placeholder=get_name(StorageManagerBehaviour.mech_hash),
207+
service_id=self.mech_id,
208+
)
209+
return result
210+
183211
def _get_mech_tools(self) -> WaitableConditionType:
184212
"""Get the mech agent's tools from IPFS."""
185213
self.set_mech_agent_specs()
@@ -222,7 +250,23 @@ def _get_tools(
222250
self._get_tools_from_benchmark_file()
223251
return
224252

225-
yield from self.wait_for_condition_with_sleep(self._get_mech_tools)
253+
metadata_steps = (
254+
(
255+
self._get_mech_service_id,
256+
self._get_metadata_uri,
257+
)
258+
if self.params.use_mech_marketplace
259+
else (
260+
self._get_mech_id,
261+
self._get_mech_hash,
262+
)
263+
)
264+
265+
for step in (
266+
*metadata_steps,
267+
self._get_mech_tools,
268+
):
269+
yield from self.wait_for_condition_with_sleep(step)
226270

227271
def _try_recover_policy(self) -> Optional[EGreedyPolicy]:
228272
"""Try to recover the policy from the policy store."""

packages/valory/skills/decision_maker_abci/models.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
from datetime import datetime, timedelta
2727
from pathlib import Path
2828
from string import Template
29-
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union
29+
from typing import Any, Callable, Dict, List, Optional, Set, Tuple, Type, Union, cast
3030

3131
from aea.exceptions import enforce
3232
from aea.skills.base import Model, SkillContext
@@ -363,12 +363,24 @@ class DecisionMakerParams(MarketManagerParams, MechInteractParams):
363363
def __init__(self, *args: Any, **kwargs: Any) -> None:
364364
"""Initialize the parameters' object."""
365365

366-
# Handle agent_registry_address separately to avoid type issues
367-
agent_registry_address = kwargs.get("agent_registry_address", None)
366+
# do not pop the registry and metadata addresses, because they are also required for the `MechInteractParams`
367+
agent_registry_address: Optional[str] = kwargs.get(
368+
"agent_registry_address", None
369+
)
368370
enforce(
369371
agent_registry_address is not None,
370372
"Agent registry address not specified!",
371373
)
374+
agent_registry_address = cast(str, agent_registry_address)
375+
376+
metadata_address: Optional[str] = kwargs.get(
377+
"complementary_service_metadata_address", None
378+
)
379+
enforce(
380+
metadata_address is not None,
381+
"Complementary service metadata address not specified!",
382+
)
383+
metadata_address = cast(str, metadata_address)
372384

373385
# the number of days to sample bets from
374386
self.sample_bets_closing_days: int = self._ensure(
@@ -421,6 +433,7 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
421433
self.slippage: float = self._ensure("slippage", kwargs, float)
422434
self.epsilon: float = self._ensure("policy_epsilon", kwargs, float)
423435
self.agent_registry_address: str = agent_registry_address
436+
self.metadata_address: str = metadata_address
424437
self.store_path: Path = self.get_store_path(kwargs)
425438
self.irrelevant_tools: set = set(self._ensure("irrelevant_tools", kwargs, list))
426439
self.tool_punishment_multiplier: int = self._ensure(

0 commit comments

Comments
 (0)