Skip to content

Commit

Permalink
Merge pull request #267 from valory-xyz/feat/mech-quickstart-service
Browse files Browse the repository at this point in the history
added mech quickstart single agent service
0xArdi authored Nov 21, 2024

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature.
2 parents 5f0fc42 + b65661b commit cd1cf45
Showing 15 changed files with 651 additions and 799 deletions.
13 changes: 7 additions & 6 deletions packages/packages.json
Original file line number Diff line number Diff line change
@@ -8,13 +8,14 @@
"contract/valory/mech_marketplace/0.1.0": "bafybeigulghv7bvx4evl6kmogvv6gjxovyt22tkwlbdmeretmop2crdmem",
"connection/valory/websocket_client/0.1.0": "bafybeic4ag3gqc7kd3k2o3pucddj2odck5yrfbgmwh5veqny7zao5qayli",
"skill/valory/contract_subscription/0.1.0": "bafybeiefuemlp75obgpxrp6iuleb3hn6vcviwh5oetk5djbuprf4xsmgjy",
"skill/valory/mech_abci/0.1.0": "bafybeibf5gxrngzn6j7qr5zvsshjoaxitt5e2bj6bybj73k6e3gdbggzge",
"skill/valory/task_submission_abci/0.1.0": "bafybeigrhzhk6qkmb5kaslkymsr3mnagoycl2kxqtiqfp6whkuyqc65lim",
"skill/valory/task_execution/0.1.0": "bafybeiafdhx4tyke5qao47cx5yuqnaivl47kuuu4xfdx3ndym6mvng3jve",
"skill/valory/mech_abci/0.1.0": "bafybeibqrc3k3f5ozjzoe46p3tpsuwifn44xhhxlcigtx6hv6ozkbfaaoi",
"skill/valory/task_submission_abci/0.1.0": "bafybeibecej5hkjzm4f2vteklafkxlb2h5ov7t7u6ydiuleljhe6slnz7e",
"skill/valory/task_execution/0.1.0": "bafybeigmps4dtqlvmrn42bt46cmsqoyvgtd7ltojm2t3ogf5rijxftmr5q",
"skill/valory/websocket_client/0.1.0": "bafybeif7rrvsu6z4evqkhblxj3u6wwv2eqou576hgkyoehxuj7cntw7o2m",
"skill/valory/subscription_abci/0.1.0": "bafybeicazs3nnrztew6j5vanmpb3lnhx4a2rclcqxjr7tmtu3adhn5dziy",
"agent/valory/mech/0.1.0": "bafybeigk33wlthqhriruwyv44gcx754xzlne3ywynxg6ezswabac7dcmmq",
"service/valory/mech/0.1.0": "bafybeihy67owel7dgyoaaugjqbcvk6x2edgw7ogsqn7qjvpu32rkjim4y4"
"skill/valory/subscription_abci/0.1.0": "bafybeifilanuxfvuypcccjku7nphurgp27i2iwncdmug3in6xuzfmslgaq",
"agent/valory/mech/0.1.0": "bafybeicg5ioivs2ryaim6uf3cws2ashc5ldxtrvxgbjbhv3y2ic63qx324",
"service/valory/mech/0.1.0": "bafybeifai4fbkcxrljyko4jqqibaetg7npc3etksntu4tnnwazifodghgu",
"service/valory/mech_quickstart/0.1.0": "bafybeig544gw6i7ahlwj6d64djlwfltjuznz3p66kmwk4m6bzqtn2bjfbq"
},
"third_party": {
"protocol/valory/default/1.0.0": "bafybeifqcqy5hfbnd7fjv4mqdjrtujh2vx3p2xhe33y67zoxa6ph7wdpaq",
10 changes: 4 additions & 6 deletions packages/valory/agents/mech/aea-config.yaml
Original file line number Diff line number Diff line change
@@ -39,12 +39,12 @@ skills:
- valory/abstract_abci:0.1.0:bafybeieo7pe5wqjphs5izpz5aujjbubymlxub62b3rhx6yglu65ibalffu
- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti
- valory/contract_subscription:0.1.0:bafybeiefuemlp75obgpxrp6iuleb3hn6vcviwh5oetk5djbuprf4xsmgjy
- valory/mech_abci:0.1.0:bafybeibf5gxrngzn6j7qr5zvsshjoaxitt5e2bj6bybj73k6e3gdbggzge
- valory/mech_abci:0.1.0:bafybeibqrc3k3f5ozjzoe46p3tpsuwifn44xhhxlcigtx6hv6ozkbfaaoi
- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq
- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e
- valory/subscription_abci:0.1.0:bafybeicazs3nnrztew6j5vanmpb3lnhx4a2rclcqxjr7tmtu3adhn5dziy
- valory/task_execution:0.1.0:bafybeiafdhx4tyke5qao47cx5yuqnaivl47kuuu4xfdx3ndym6mvng3jve
- valory/task_submission_abci:0.1.0:bafybeigrhzhk6qkmb5kaslkymsr3mnagoycl2kxqtiqfp6whkuyqc65lim
- valory/subscription_abci:0.1.0:bafybeifilanuxfvuypcccjku7nphurgp27i2iwncdmug3in6xuzfmslgaq
- valory/task_execution:0.1.0:bafybeigmps4dtqlvmrn42bt46cmsqoyvgtd7ltojm2t3ogf5rijxftmr5q
- valory/task_submission_abci:0.1.0:bafybeibecej5hkjzm4f2vteklafkxlb2h5ov7t7u6ydiuleljhe6slnz7e
- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy
- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy
- valory/websocket_client:0.1.0:bafybeif7rrvsu6z4evqkhblxj3u6wwv2eqou576hgkyoehxuj7cntw7o2m
@@ -84,8 +84,6 @@ dependencies:
version: ==6.21.6
open-aea-ledger-ethereum:
version: ==1.59.0
google-generativeai:
version: ==0.6.0
customs: []
default_connection: null
---
2 changes: 1 addition & 1 deletion packages/valory/services/mech/service.yaml
Original file line number Diff line number Diff line change
@@ -7,7 +7,7 @@ license: Apache-2.0
fingerprint:
README.md: bafybeif7ia4jdlazy6745ke2k2x5yoqlwsgwr6sbztbgqtwvs3ndm2p7ba
fingerprint_ignore_patterns: []
agent: valory/mech:0.1.0:bafybeigk33wlthqhriruwyv44gcx754xzlne3ywynxg6ezswabac7dcmmq
agent: valory/mech:0.1.0:bafybeicg5ioivs2ryaim6uf3cws2ashc5ldxtrvxgbjbhv3y2ic63qx324
number_of_agents: 4
deployment:
agent:
1 change: 1 addition & 0 deletions packages/valory/services/mech_quickstart/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
## Mech Quickstart Single Agent Service
117 changes: 117 additions & 0 deletions packages/valory/services/mech_quickstart/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: mech_quickstart
author: valory
version: 0.1.0
description: A decentralised task execution engine.
aea_version: '>=1.0.0, <2.0.0'
license: Apache-2.0
fingerprint:
README.md: bafybeiaqaedhfzjxxdfxtygjulorvd4x2h3cbwtiw3xgbigjgsc6qfn7zy
fingerprint_ignore_patterns: []
agent: valory/mech:0.1.0:bafybeicg5ioivs2ryaim6uf3cws2ashc5ldxtrvxgbjbhv3y2ic63qx324
number_of_agents: 1
deployment:
agent:
ports:
0:
8000: 8000
volumes:
./data: /data
---
public_id: valory/mech_abci:0.1.0
type: skill
0:
models:
params:
args:
multisend_address: ${MULTISEND_ADDRESS:str:0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761}
on_chain_service_id: ${ON_CHAIN_SERVICE_ID:int:null}
reset_pause_duration: ${RESET_PAUSE_DURATION:int:10}
round_timeout_seconds: ${ROUND_TIMEOUT:float:150.0}
use_polling: ${USE_POLLING:bool:false}
service_registry_address: ${SERVICE_REGISTRY_ADDRESS:str:0x0000000000000000000000000000000000000000}
setup:
all_participants: ${ALL_PARTICIPANTS:list:[]}
safe_contract_address: ${SAFE_CONTRACT_ADDRESS:str:0x0000000000000000000000000000000000000000}
consensus_threshold: ${CONSENSUS_THRESHOLD:int:null}
share_tm_config_on_startup: ${USE_ACN:bool:false}
tendermint_com_url: ${TENDERMINT_COM_URL:str:http://localhost:8080}
tendermint_url: ${TENDERMINT_URL:str:http://localhost:26657}
tendermint_p2p_url: ${TM_P2P_ENDPOINT_NODE_0:str:node0:26656}
termination_sleep: ${TERMINATION_SLEEP:int:900}
use_termination: ${USE_TERMINATION:bool:false}
manual_gas_limit: ${MANUAL_GAS_LIMIT:int:1000000}
reset_period_count: ${RESET_PERIOD_COUNT:int:1000}
service_endpoint_base: ${SERVICE_ENDPOINT_BASE:str:https://dummy_service.autonolas.tech/}
use_slashing: ${USE_SLASHING:bool:false}
termination_from_block: ${TERMINATION_FROM_BLOCK:int:0}
slash_cooldown_hours: ${SLASH_COOLDOWN_HOURS:int:3}
mech_marketplace_address: ${MECH_MARKETPLACE_ADDRESS:str:0x0000000000000000000000000000000000000000}
slash_threshold_amount: ${SLASH_THRESHOLD_AMOUNT:int:10000000000000000}
light_slash_unit_amount: ${LIGHT_SLASH_UNIT_AMOUNT:int:5000000000000000}
serious_slash_unit_amount: ${SERIOUS_SLASH_UNIT_AMOUNT:int:8000000000000000}
agent_registry_address: ${AGENT_REGISTRY_ADDRESS:str:0xE49CB081e8d96920C38aA7AB90cb0294ab4Bc8EA}
agent_id: ${AGENT_ID:int:3}
metadata_hash: ${METADATA_HASH:str:f01701220caa53607238e340da63b296acab232c18a48e954f0af6ff2b835b2d93f1962f0}
profit_split_freq: ${PROFIT_SPLIT_FREQ:int:100}
hash_checkpoint_address: ${CHECKPOINT_ADDRESS:str:0x0000000000000000000000000000000000000000}
mech_to_subscription: ${MECH_TO_SUBSCRIPTION:dict:{"0x77af31De935740567Cf4fF1986D04B2c964A786a":{"tokenAddress":"0x0000000000000000000000000000000000000000",
"tokenId":"1"},"0xA6bE7Ef2e2FbdA7fB2BfE60726b74A3B2206D67f":{"tokenAddress":"0x0000000000000000000000000000000000000001",
"tokenId":"2"}}}
agent_funding_amount: ${AGENT_FUNDING_AMOUNT:int:200000000000000000}
minimum_agent_balance: ${MINIMUM_AGENT_BALANCE:int:100000000000000000}
mech_staking_instance_address: ${MECH_STAKING_INSTANCE_ADDRESS:str:0x0000000000000000000000000000000000000000}
service_owner_share: ${SERVICE_SHARE:float:0}
---
public_id: valory/task_execution:0.1.0
type: skill
0:
models:
params:
args:
task_deadline: ${TASK_DEADLINE:float:240.0}
tools_to_package_hash: ${TOOLS_TO_PACKAGE_HASH:dict:{}}
api_keys: ${API_KEYS:dict:{}}
polling_interval: ${POLLING_INTERVAL:float:30.0}
agent_index: ${AGENT_INDEX_0:int:0}
num_agents: ${NUM_AGENTS:int:1}
mech_marketplace_address: ${MECH_MARKETPLACE_ADDRESS:str:0x0000000000000000000000000000000000000000}
timeout_limit: ${TIMEOUT_LIMIT:int:3}
mech_to_config: ${MECH_TO_CONFIG:dict:{"0xFf82123dFB52ab75C417195c5fDB87630145ae81":{"use_dynamic_pricing":false,"is_marketplace_mech":false},
"0x77af31De935740567Cf4fF1986D04B2c964A786a":{"use_dynamic_pricing":false,"is_marketplace_mech":false}}}
max_block_window: ${MAX_BLOCK_WINDOW:int:500}
---
public_id: valory/ledger:0.19.0
type: connection
config:
ledger_apis:
ethereum:
address: ${GNOSIS_RPC_0:str:http://host.docker.internal:8545}
chain_id: ${GNOSIS_LEDGER_IS_POA_CHAIN:int:100}
poa_chain: ${ETHEREUM_LEDGER_IS_POA_CHAIN:bool:false}
default_gas_price_strategy: ${GNOSIS_LEDGER_PRICING:str:eip1559}
gnosis:
address: ${GNOSIS_RPC_0:str:http://host.docker.internal:8545}
chain_id: ${GNOSIS_LEDGER_CHAIN_ID:int:100}
poa_chain: ${GNOSIS_LEDGER_IS_POA_CHAIN:bool:false}
default_gas_price_strategy: ${GNOSIS_LEDGER_PRICING:str:eip1559}
---
public_id: valory/p2p_libp2p_client:0.1.0
type: connection
config:
nodes:
- uri: ${ACN_URI:str:acn.staging.autonolas.tech:9005}
public_key: ${ACN_NODE_PUBLIC_KEY:str:02d3a830c9d6ea1ae91936951430dee11f4662f33118b02190693be835359a9d77}
cert_requests:
- identifier: acn
ledger_id: ethereum
message_format: '{public_key}'
not_after: '2023-01-01'
not_before: '2022-01-01'
public_key: ${ACN_NODE_PUBLIC_KEY:str:02d3a830c9d6ea1ae91936951430dee11f4662f33118b02190693be835359a9d77}
save_path: .certs/acn_cosmos_11000.txt
is_abstract: false
---
public_id: valory/websocket_client:0.1.0:bafybeiexove4oqyhoae5xmk2hilskthosov5imdp65olpgj3cfrepbouyy
type: connection
config:
endpoint: ${ETHEREUM_WEBSOCKET_RPC_0:str:wss://rpc.gnosischain.com/wss}
5 changes: 3 additions & 2 deletions packages/valory/skills/mech_abci/skill.yaml
Original file line number Diff line number Diff line change
@@ -23,10 +23,10 @@ skills:
- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti
- valory/registration_abci:0.1.0:bafybeib3n6vqkfbrcubcbliebjnuwyywdinxkbzt76n6gbn2kg7ace47dq
- valory/reset_pause_abci:0.1.0:bafybeihkj6lmaypspyxe5qqrjgnolyck62pyvqoylr24ab6ue4steqcw7e
- valory/task_submission_abci:0.1.0:bafybeigrhzhk6qkmb5kaslkymsr3mnagoycl2kxqtiqfp6whkuyqc65lim
- valory/task_submission_abci:0.1.0:bafybeibecej5hkjzm4f2vteklafkxlb2h5ov7t7u6ydiuleljhe6slnz7e
- valory/termination_abci:0.1.0:bafybeifi2uodnrjsrivj53g3sjutocmyusbx6mlsb6oanqdyt2mfbyvusy
- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy
- valory/subscription_abci:0.1.0:bafybeicazs3nnrztew6j5vanmpb3lnhx4a2rclcqxjr7tmtu3adhn5dziy
- valory/subscription_abci:0.1.0:bafybeifilanuxfvuypcccjku7nphurgp27i2iwncdmug3in6xuzfmslgaq
behaviours:
main:
args: {}
@@ -144,6 +144,7 @@ models:
validate_timeout: 1205
task_wait_timeout: 15.0
use_slashing: false
default_chain_id: ethereum
manual_gas_limit: 1000000
mech_staking_instance_address: '0x0000000000000000000000000000000000000000'
mech_marketplace_address: '0x0000000000000000000000000000000000000000'
2 changes: 0 additions & 2 deletions packages/valory/skills/subscription_abci/behaviours.py
Original file line number Diff line number Diff line change
@@ -21,8 +21,6 @@
from abc import ABC
from typing import Any, Dict, Generator, List, Optional, Set, Type, cast

import openai # noqa

from packages.valory.contracts.agent_mech.contract import (
AgentMechContract,
)
2 changes: 1 addition & 1 deletion packages/valory/skills/subscription_abci/skill.yaml
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeih2y4s3vu6xleujurx5mihfmzaxubeubykopyftjgklbwtfn6m5yu
behaviours.py: bafybeiddq3b7vlxz5s4s7pcyfarc7grxgjhfq7hmdm53kd63bxfeaanye4
behaviours.py: bafybeihfiqkffiwn7ycpox36pt7asog6aawiuajdanaj3ivv5qcpcbhqom
dialogues.py: bafybeif2euu7wehnyr2r6efrbk6jh757dvbbnb3m7v5gxfdc4qzr3fnd74
fsm_specification.yaml: bafybeia77avtbeclmr4lil2hvjrxk4unstxb4fyvdmbpdgocn3ebs2hcdi
handlers.py: bafybeiegulbnno4efmaqmsuvjo4vrhcwcrg3faeryjjhwyabpywzty5m2u
6 changes: 3 additions & 3 deletions packages/valory/skills/task_execution/models.py
Original file line number Diff line number Diff line change
@@ -20,7 +20,7 @@
"""This module contains the shared state for the abci skill of Mech."""
import dataclasses
from collections import defaultdict
from typing import Any, Callable, Dict, Optional
from typing import Any, Callable, Dict, Optional, List

from aea.exceptions import enforce
from aea.skills.base import Model
@@ -56,8 +56,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
self.in_flight_req: bool = False
self.from_block: Optional[int] = None
self.req_to_callback: Dict[str, Callable] = {}
self.api_keys: Dict[str, str] = self._ensure_get(
"api_keys", kwargs, Dict[str, str]
self.api_keys: Dict[str, List[str]] = self._ensure_get(
"api_keys", kwargs, Dict[str, List[str]]
)
self.tools_to_package_hash: Dict[str, str] = self._ensure_get(
"tools_to_package_hash", kwargs, Dict[str, str]
4 changes: 2 additions & 2 deletions packages/valory/skills/task_execution/skill.yaml
Original file line number Diff line number Diff line change
@@ -10,9 +10,9 @@ fingerprint:
behaviours.py: bafybeiexshowozpbzuomhezg3a5b2re77ikidjkiy3fov2tsfiqyk6dmwe
dialogues.py: bafybeid4zxalqdlo5mw4yfbuf34hx4jp5ay5z6chm4zviwu4cj7fudtwca
handlers.py: bafybeidbt5ezj74cgfogk3w4uw4si2grlnk5g54veyumw7g5yh6gdscywu
models.py: bafybeigszq73slogvebsaxh32p325fxthyuuwwtot7qxj3bdyho7x7spuq
models.py: bafybeibsnirbekd7ondvm2lkrabm5wxzwsl6xkf2ccmrbfugkz4cola77u
utils/__init__.py: bafybeiccdijaigu6e5p2iruwo5mkk224o7ywedc7nr6xeu5fpmhjqgk24e
utils/apis.py: bafybeidqt5nqcymlpwlycnvpsheeeexk3tb3yboceeeizwpd6miqewtr7u
utils/apis.py: bafybeigu73lfz3g3mc6iupisrvlsp3fyl4du3oqlyajgdpfvtqypddh3w4
utils/benchmarks.py: bafybeiafnee7iay6dyjnatyqyzjov5c4ibl3ojamjmgfjri7cyghl7qayq
utils/cost_calculation.py: bafybeighafxied73w3mcmgziwfp3u2x6t4qlztw4kyekyq2ddgyhdge74q
utils/ipfs.py: bafybeicp6d2y4aguetcod2yzxrbiqqwkzarzccyf2iajuwvrcfckmn6jm4
4 changes: 2 additions & 2 deletions packages/valory/skills/task_execution/utils/apis.py
Original file line number Diff line number Diff line change
@@ -17,13 +17,13 @@
#
# ------------------------------------------------------------------------------
"""Utils for API integrations."""
from typing import Dict
from typing import Dict, List


class KeyChain:
"""Class for managing API keys."""

def __init__(self, services: Dict[str, str]) -> None:
def __init__(self, services: Dict[str, List[str]]) -> None:
"""Initialize the KeyChain with a dictionary of service names and corresponding lists of API keys."""
if not isinstance(services, dict):
raise ValueError(
21 changes: 20 additions & 1 deletion packages/valory/skills/task_submission_abci/behaviours.py
Original file line number Diff line number Diff line change
@@ -25,7 +25,6 @@
from copy import deepcopy
from typing import Any, Dict, Generator, List, Optional, Set, Type, cast

import openai # noqa
from aea.helpers.cid import CID, to_v1
from multibase import multibase
from multicodec import multicodec
@@ -146,6 +145,26 @@ def to_multihash(hash_string: str) -> str:
hex_multihash = multihash_bytes.hex()
return hex_multihash[6:]

def get_contract_api_response(
self,
performative: ContractApiMessage.Performative,
contract_address: Optional[str],
contract_id: str,
contract_callable: str,
ledger_id: Optional[str] = None,
**kwargs: Any,
) -> Generator[None, None, ContractApiMessage]:
"""Get the contract api response."""
return super().get_contract_api_response(
performative=performative,
contract_address=contract_address,
contract_id=contract_id,
contract_callable=contract_callable,
ledger_id=ledger_id,
chain_id=self.params.default_chain_id,
**kwargs,
)


class TaskPoolingBehaviour(TaskExecutionBaseBehaviour, ABC):
"""TaskPoolingBehaviour"""
4 changes: 2 additions & 2 deletions packages/valory/skills/task_submission_abci/skill.yaml
Original file line number Diff line number Diff line change
@@ -8,7 +8,7 @@ license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeiholqak7ltw6bbmn2c5tn3j7xgzkdlfzp3kcskiqsvmxoih6m4muq
behaviours.py: bafybeidd4roeiq3qtr65ewu7qwwmlkm7g6j5g66o4b3uec6n5ucgpbrsei
behaviours.py: bafybeicq6246kgnfbbk4gyp4ptje4u56bc5mkwsi7eln6bnmrtg7cdlepq
dialogues.py: bafybeibmac3m5u5h6ucoyjr4dazay72dyga656wvjl6z6saapluvjo54ne
fsm_specification.yaml: bafybeidtmsmpunr3t77pshd3k2s6dd6hlvhze6inu3gj7xyvlg4wi3tnuu
handlers.py: bafybeibe5n7my2vd2wlwo73sbma65epjqc7kxgtittewlylcmvnmoxtxzq
@@ -32,7 +32,7 @@ protocols:
skills:
- valory/abstract_round_abci:0.1.0:bafybeibiw4oqwqvo4jccwz5fb73iardzychgvcl66tceiildohoju2ikti
- valory/transaction_settlement_abci:0.1.0:bafybeigh2vkt74jrad5gtsczrgqcuhcqe7jkgjy7jdw56yamlzwwnaymjy
- valory/task_execution:0.1.0:bafybeiafdhx4tyke5qao47cx5yuqnaivl47kuuu4xfdx3ndym6mvng3jve
- valory/task_execution:0.1.0:bafybeigmps4dtqlvmrn42bt46cmsqoyvgtd7ltojm2t3ogf5rijxftmr5q
behaviours:
main:
args: {}
1,257 changes: 488 additions & 769 deletions poetry.lock

Large diffs are not rendered by default.

2 changes: 0 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
@@ -46,8 +46,6 @@ websocket_client = "<1,>=0.32.0"
toml = "==0.10.2"
eth-abi = "==4.0.0"
pytest = "==7.2.1"
google-generativeai = "==0.6.0"
google-api-core = "^2.20.0"

[tool.poetry.group.dev.dependencies]
tomte = {version = ">=0.2.15", extras = ["cli", "tests"]}

0 comments on commit cd1cf45

Please sign in to comment.