Skip to content

Commit

Permalink
Merge pull request #151 from valory-xyz/feat/fund-agents
Browse files Browse the repository at this point in the history
feat: maintain agent balances
  • Loading branch information
0xArdi authored Jan 15, 2024
2 parents ed4208a + 2e85b95 commit 3fa3265
Show file tree
Hide file tree
Showing 11 changed files with 120 additions and 43 deletions.
14 changes: 7 additions & 7 deletions packages/packages.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,18 +2,18 @@
"dev": {
"connection/valory/websocket_client/0.1.0": "bafybeiflmystocxaqblhpzqlcop2vkhsknpzjx2jomohomaxamwskeokzm",
"skill/valory/contract_subscription/0.1.0": "bafybeicyugrkx5glat4p4ezwf6i7oduh26eycfie6ftd4uxrknztzl3ik4",
"agent/valory/mech/0.1.0": "bafybeie5mmcpvopfn7tjnbwlpctqorevyn5qdxyarhcpecwozsl3wt6tei",
"skill/valory/mech_abci/0.1.0": "bafybeie23zqol44pvz7clarq5jecrbpl2fn6ltlnf6wy62dgnn7b4ycraa",
"contract/valory/agent_mech/0.1.0": "bafybeig7zpqhcpt6z4eutedx6prciuq4g7mpadw636zkkcx3ach6oytdry",
"service/valory/mech/0.1.0": "bafybeiasbyxwemb64hgayleozdjv2otfgma7hq2xxjr36alfxc7o4ohpza",
"agent/valory/mech/0.1.0": "bafybeigpvlyzu2d6xjf2ij4gvmtefrcn5rmmzp237mpsb7ejdpuzskvspu",
"skill/valory/mech_abci/0.1.0": "bafybeicekwscm72ujrwc5vzbgnshoxjna7a4vluugiylh4gq7r4yaskuly",
"contract/valory/agent_mech/0.1.0": "bafybeiepxumywg6z2zapqzc3bg3iey23cmlgjzxisqox5j74o5i2texr5e",
"service/valory/mech/0.1.0": "bafybeiag3d54b7spafsicjx64ymh5hpmtwoggecnshrdndf67zjtlcksum",
"protocol/valory/acn_data_share/0.1.0": "bafybeih5ydonnvrwvy2ygfqgfabkr47s4yw3uqxztmwyfprulwfsoe7ipq",
"skill/valory/task_submission_abci/0.1.0": "bafybeifb3vw25nlz2tecbpsbzrynwva2ey4r624htty62rjg6lrqwmh6l4",
"skill/valory/task_execution/0.1.0": "bafybeidwzdfodrb6el7hjtrt4fodw6qpcptnmfnpfcagf4qi5qvoeocu4i",
"skill/valory/task_submission_abci/0.1.0": "bafybeidned5sysejuakraqa4ssmc76chqnvyu7qqg4aywzddsayyooqflm",
"skill/valory/task_execution/0.1.0": "bafybeid7kneedwb3hu2nlsjusxgkfq4mvnsobxsbuqpfwkxnaeor6ffbpi",
"contract/valory/agent_registry/0.1.0": "bafybeiargayav6yiztdnwzejoejstcx4idssch2h4f5arlgtzj3tgsgfmu",
"protocol/valory/websocket_client/0.1.0": "bafybeih43mnztdv3v2hetr2k3gezg7d3yj4ur7cxdvcyaqhg65e52s5sf4",
"skill/valory/websocket_client/0.1.0": "bafybeidwntmkk4b2ixq5454ycbkknclqx7a6vpn7aqpm2nw3duszqrxvta",
"contract/valory/hash_checkpoint/0.1.0": "bafybeieys27hidb5m267jwqsxdgorf5v37o6lvrfy2oga557stjn4xgoaa",
"skill/valory/subscription_abci/0.1.0": "bafybeibgnw53s5nh6up35z6fgjisrrvrlt4nnjmx3ia7fcgwpmcprvja5u"
"skill/valory/subscription_abci/0.1.0": "bafybeick4zicydp42ieum74wekcz25uim3uyt7vugzjgfzsriqhswlxfti"
},
"third_party": {
"skill/valory/transaction_settlement_abci/0.1.0": "bafybeiaefgqbs7zsn5xe5kdwrujj7ivygkn3ujpw6crnvi3knvxw75qmja",
Expand Down
12 changes: 7 additions & 5 deletions packages/valory/agents/mech/aea-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ connections:
- valory/p2p_libp2p_client:0.1.0:bafybeihge56dn3xep2dzomu7rtvbgo4uc2qqh7ljl3fubqdi2lq44gs5lq
- valory/websocket_client:0.1.0:bafybeiflmystocxaqblhpzqlcop2vkhsknpzjx2jomohomaxamwskeokzm
contracts:
- valory/agent_mech:0.1.0:bafybeig7zpqhcpt6z4eutedx6prciuq4g7mpadw636zkkcx3ach6oytdry
- valory/agent_mech:0.1.0:bafybeiepxumywg6z2zapqzc3bg3iey23cmlgjzxisqox5j74o5i2texr5e
- valory/agent_registry:0.1.0:bafybeiargayav6yiztdnwzejoejstcx4idssch2h4f5arlgtzj3tgsgfmu
- valory/gnosis_safe:0.1.0:bafybeidll7frtdsq2ckiluazkwk4zpkp7natt4kdejjehwvykqwzyuf6ei
- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidvcgnbbmjtha6tl7st2ysna2l3iiqfhnzjfasyvml5unecozeeka
Expand All @@ -38,12 +38,12 @@ skills:
- valory/abstract_abci:0.1.0:bafybeiflcfufixmsrhobf56bn5745m2iipcfqyulwk2qegtnagb3kvaaxi
- valory/abstract_round_abci:0.1.0:bafybeiaqcl7h2famylusiffigwem7tevkcsyocdu5xd42jkmgq6kvowzgq
- valory/contract_subscription:0.1.0:bafybeicyugrkx5glat4p4ezwf6i7oduh26eycfie6ftd4uxrknztzl3ik4
- valory/mech_abci:0.1.0:bafybeie23zqol44pvz7clarq5jecrbpl2fn6ltlnf6wy62dgnn7b4ycraa
- valory/mech_abci:0.1.0:bafybeicekwscm72ujrwc5vzbgnshoxjna7a4vluugiylh4gq7r4yaskuly
- valory/registration_abci:0.1.0:bafybeic2ynseiak7jpta7jfwuqwyp453b4p7lolr4wihxmpn633uekv5am
- valory/reset_pause_abci:0.1.0:bafybeidzajbe3erygeh2xbd6lrjv7nsptznjuzrt24ykgvhgotdeyhfnba
- valory/subscription_abci:0.1.0:bafybeibgnw53s5nh6up35z6fgjisrrvrlt4nnjmx3ia7fcgwpmcprvja5u
- valory/task_execution:0.1.0:bafybeidwzdfodrb6el7hjtrt4fodw6qpcptnmfnpfcagf4qi5qvoeocu4i
- valory/task_submission_abci:0.1.0:bafybeifb3vw25nlz2tecbpsbzrynwva2ey4r624htty62rjg6lrqwmh6l4
- valory/subscription_abci:0.1.0:bafybeick4zicydp42ieum74wekcz25uim3uyt7vugzjgfzsriqhswlxfti
- valory/task_execution:0.1.0:bafybeid7kneedwb3hu2nlsjusxgkfq4mvnsobxsbuqpfwkxnaeor6ffbpi
- valory/task_submission_abci:0.1.0:bafybeidned5sysejuakraqa4ssmc76chqnvyu7qqg4aywzddsayyooqflm
- valory/termination_abci:0.1.0:bafybeie4zvjfxvdu7qrulmur3chpjz3kpj5m4bjsxvpk4gvj5zbyyayfaa
- valory/transaction_settlement_abci:0.1.0:bafybeiaefgqbs7zsn5xe5kdwrujj7ivygkn3ujpw6crnvi3knvxw75qmja
- valory/websocket_client:0.1.0:bafybeidwntmkk4b2ixq5454ycbkknclqx7a6vpn7aqpm2nw3duszqrxvta
Expand Down Expand Up @@ -180,6 +180,8 @@ models:
manual_gas_limit: ${int:1000000}
service_owner_share: ${float:0.1}
profit_split_freq: ${int:1}
agent_funding_amount: ${int:200000000000000000}
minimum_agent_balance: ${int:100000000000000000}
mech_to_subscription: ${list:[["0x77af31De935740567Cf4fF1986D04B2c964A786a",["0x0000000000000000000000000000000000000000","1"]]]}
hash_checkpoint_address: ${str:0x694e62BDF7Ff510A4EE66662cf4866A961a31653}
setup:
Expand Down
35 changes: 19 additions & 16 deletions packages/valory/contracts/agent_mech/build/AgentMech.json
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,6 @@
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
Expand All @@ -108,6 +102,25 @@
"name": "Deliver",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "taskHash",
"type": "bytes32"
}
],
"name": "Perform",
"type": "event"
},
{
"anonymous": false,
"inputs": [
Expand Down Expand Up @@ -223,11 +236,6 @@
"name": "requestId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestIdWithNonce",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
Expand Down Expand Up @@ -734,11 +742,6 @@
"internalType": "uint256",
"name": "requestId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "requestIdWithNonce",
"type": "uint256"
}
],
"stateMutability": "payable",
Expand Down
2 changes: 1 addition & 1 deletion packages/valory/contracts/agent_mech/contract.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeigpq5lxfj2aza6ok3fjuywtdafelkbvoqwaits7regfbgu4oynmku
build/AgentMech.json: bafybeigo2x7njyx5ttawfrf5pdjewe2dbh2u56vra7bm6vrohuu4xcmz3u
build/AgentMech.json: bafybeifw3whznwg6i6sa6cicivsfmqchfwfdodxwaqzepd3h6otq5qpktq
contract.py: bafybeiawilbhsix4ui3whuoyk6sgundbbpeatbidv4krp2c45cpayhfu7m
fingerprint_ignore_patterns: []
class_name: AgentMechContract
Expand Down
10 changes: 9 additions & 1 deletion packages/valory/services/mech/service.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ license: Apache-2.0
fingerprint:
README.md: bafybeif7ia4jdlazy6745ke2k2x5yoqlwsgwr6sbztbgqtwvs3ndm2p7ba
fingerprint_ignore_patterns: []
agent: valory/mech:0.1.0:bafybeie5mmcpvopfn7tjnbwlpctqorevyn5qdxyarhcpecwozsl3wt6tei
agent: valory/mech:0.1.0:bafybeigpvlyzu2d6xjf2ij4gvmtefrcn5rmmzp237mpsb7ejdpuzskvspu
number_of_agents: 4
deployment:
agent:
Expand Down Expand Up @@ -58,6 +58,8 @@ type: skill
profit_split_freq: ${PROFIT_SPLIT_FREQ:int:100}
hash_checkpoint_address: ${CHECKPOINT_ADDRESS:str:0x0000000000000000000000000000000000000000}
mech_to_subscription: ${MECH_TO_SUBSCRIPTION:list:[["0x77af31De935740567Cf4fF1986D04B2c964A786a",["0x0000000000000000000000000000000000000000","1"]]]}
agent_funding_amount: ${AGENT_FUNDING_AMOUNT:int:200000000000000000}
minimum_agent_balance: ${MINIMUM_AGENT_BALANCE:int:100000000000000000}
1:
models:
params:
Expand Down Expand Up @@ -90,6 +92,8 @@ type: skill
hash_checkpoint_address: ${CHECKPOINT_ADDRESS:str:0x0000000000000000000000000000000000000000}
service_endpoint_base: ${SERVICE_ENDPOINT_BASE:str:https://dummy_service.autonolas.tech/}
mech_to_subscription: ${MECH_TO_SUBSCRIPTION:list:[["0x77af31De935740567Cf4fF1986D04B2c964A786a",["0x0000000000000000000000000000000000000000","1"]]]}
agent_funding_amount: ${AGENT_FUNDING_AMOUNT:int:200000000000000000}
minimum_agent_balance: ${MINIMUM_AGENT_BALANCE:int:100000000000000000}
2:
models:
params:
Expand Down Expand Up @@ -122,6 +126,8 @@ type: skill
profit_split_freq: ${PROFIT_SPLIT_FREQ:int:100}
hash_checkpoint_address: ${CHECKPOINT_ADDRESS:str:0x0000000000000000000000000000000000000000}
mech_to_subscription: ${MECH_TO_SUBSCRIPTION:list:[["0x77af31De935740567Cf4fF1986D04B2c964A786a",["0x0000000000000000000000000000000000000000","1"]]]}
agent_funding_amount: ${AGENT_FUNDING_AMOUNT:int:200000000000000000}
minimum_agent_balance: ${MINIMUM_AGENT_BALANCE:int:100000000000000000}
3:
models:
params:
Expand Down Expand Up @@ -154,6 +160,8 @@ type: skill
hash_checkpoint_address: ${CHECKPOINT_ADDRESS:str:0x0000000000000000000000000000000000000000}
service_endpoint_base: ${SERVICE_ENDPOINT_BASE:str:https://dummy_service.autonolas.tech/}
mech_to_subscription: ${MECH_TO_SUBSCRIPTION:list:[["0x77af31De935740567Cf4fF1986D04B2c964A786a",["0x0000000000000000000000000000000000000000","1"]]]}
agent_funding_amount: ${AGENT_FUNDING_AMOUNT:int:200000000000000000}
minimum_agent_balance: ${MINIMUM_AGENT_BALANCE:int:100000000000000000}
---
public_id: valory/task_execution:0.1.0
type: skill
Expand Down
6 changes: 4 additions & 2 deletions packages/valory/skills/mech_abci/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,10 @@ skills:
- valory/abstract_round_abci:0.1.0:bafybeiaqcl7h2famylusiffigwem7tevkcsyocdu5xd42jkmgq6kvowzgq
- valory/registration_abci:0.1.0:bafybeic2ynseiak7jpta7jfwuqwyp453b4p7lolr4wihxmpn633uekv5am
- valory/reset_pause_abci:0.1.0:bafybeidzajbe3erygeh2xbd6lrjv7nsptznjuzrt24ykgvhgotdeyhfnba
- valory/task_submission_abci:0.1.0:bafybeifb3vw25nlz2tecbpsbzrynwva2ey4r624htty62rjg6lrqwmh6l4
- valory/task_submission_abci:0.1.0:bafybeidned5sysejuakraqa4ssmc76chqnvyu7qqg4aywzddsayyooqflm
- valory/termination_abci:0.1.0:bafybeie4zvjfxvdu7qrulmur3chpjz3kpj5m4bjsxvpk4gvj5zbyyayfaa
- valory/transaction_settlement_abci:0.1.0:bafybeiaefgqbs7zsn5xe5kdwrujj7ivygkn3ujpw6crnvi3knvxw75qmja
- valory/subscription_abci:0.1.0:bafybeibgnw53s5nh6up35z6fgjisrrvrlt4nnjmx3ia7fcgwpmcprvja5u
- valory/subscription_abci:0.1.0:bafybeick4zicydp42ieum74wekcz25uim3uyt7vugzjgfzsriqhswlxfti
behaviours:
main:
args: {}
Expand Down Expand Up @@ -165,6 +165,8 @@ models:
service_owner_share: 0.1
profit_split_freq: 100
serious_slash_unit_amount: 8000000000000000
agent_funding_amount: 200000000000000000
minimum_agent_balance: 100000000000000000
mech_to_subscription:
- - '0x77af31De935740567Cf4fF1986D04B2c964A786a'
- - '0x0000000000000000000000000000000000000000'
Expand Down
2 changes: 1 addition & 1 deletion packages/valory/skills/subscription_abci/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ fingerprint:
fingerprint_ignore_patterns: []
connections: []
contracts:
- valory/agent_mech:0.1.0:bafybeig7zpqhcpt6z4eutedx6prciuq4g7mpadw636zkkcx3ach6oytdry
- valory/agent_mech:0.1.0:bafybeiepxumywg6z2zapqzc3bg3iey23cmlgjzxisqox5j74o5i2texr5e
- valory/gnosis_safe:0.1.0:bafybeidll7frtdsq2ckiluazkwk4zpkp7natt4kdejjehwvykqwzyuf6ei
- valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y
protocols:
Expand Down
2 changes: 1 addition & 1 deletion packages/valory/skills/task_execution/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ connections:
- valory/ipfs:0.1.0:bafybeihx7wb5hngjobw2salzqqryrhxvmxfuw7o2npjyqd2talmh2flqeq
- valory/p2p_libp2p_client:0.1.0:bafybeihge56dn3xep2dzomu7rtvbgo4uc2qqh7ljl3fubqdi2lq44gs5lq
contracts:
- valory/agent_mech:0.1.0:bafybeig7zpqhcpt6z4eutedx6prciuq4g7mpadw636zkkcx3ach6oytdry
- valory/agent_mech:0.1.0:bafybeiepxumywg6z2zapqzc3bg3iey23cmlgjzxisqox5j74o5i2texr5e
protocols:
- valory/acn_data_share:0.1.0:bafybeih5ydonnvrwvy2ygfqgfabkr47s4yw3uqxztmwyfprulwfsoe7ipq
- valory/contract_api:1.0.0:bafybeialhbjvwiwcnqq3ysxcyemobcbie7xza66gaofcvla5njezkvhcka
Expand Down
68 changes: 63 additions & 5 deletions packages/valory/skills/task_submission_abci/behaviours.py
Original file line number Diff line number Diff line change
Expand Up @@ -333,7 +333,7 @@ def get_split_profit_txs(
self.context.logger.info(f"Splitting profits {self.mech_addresses}.")
txs = []
for mech_address in self.mech_addresses:
profits = yield from self._get_profits(mech_address)
profits = yield from self._get_balance(mech_address)
if profits is None:
self.context.logger.error(
f"Could not get profits from mech {mech_address}. Don't split profits."
Expand Down Expand Up @@ -365,15 +365,15 @@ def get_split_profit_txs(

return txs

def _get_profits(self, address: str) -> Generator[None, None, int]:
"""Get the profits."""
def _get_balance(self, address: str) -> Generator[None, None, Optional[int]]:
"""Get the balance for the provided address."""
ledger_api_response = yield from self.get_ledger_api_response(
performative=LedgerApiMessage.Performative.GET_STATE, # type: ignore
ledger_callable="get_balance",
account=address,
)
if ledger_api_response.performative != LedgerApiMessage.Performative.STATE:
return False # transition to await top-up round
return None
balance = cast(int, ledger_api_response.state.body.get("get_balance_result"))
return balance

Expand All @@ -396,9 +396,35 @@ def _split_funds(
return None

funds_by_address = {}
agent_funding_amounts = yield from self._get_agent_funding_amounts()
if agent_funding_amounts is None:
self.context.logger.warning(
"Could not get agent funding amounts. Don't split profits."
)
return None

funds_by_address.update(agent_funding_amounts)
total_required_amount_for_agents = sum(agent_funding_amounts.values())
if total_required_amount_for_agents > profits:
self.context.logger.warning(
f"Total required amount for agents {total_required_amount_for_agents} is greater than profits {profits}. "
f"Splitting all the funds among the agents."
)
# if it's the case that the required amount for the agents is greater than the profits
# split all the funds among the agent, proportional to their intended funding amount
for agent, amount in agent_funding_amounts.items():
agent_share = int((amount / total_required_amount_for_agents) * profits)
funds_by_address[agent] = agent_share

# return here because we don't have any funds left to split
return funds_by_address

# if we have funds left after splitting among the agents,
# split the rest among the service owner and the operator
profits = profits - total_required_amount_for_agents

service_owner_share = int(self.params.service_owner_share * profits)
funds_by_address[service_owner] = service_owner_share

operator_share = profits - service_owner_share
funds_by_operator = yield from self._get_funds_by_operator(operator_share)
if funds_by_operator is None:
Expand Down Expand Up @@ -527,6 +553,38 @@ def _accumulate_reqs_by_operator(
reqs_by_operator[operator] += reqs
return reqs_by_operator

def _get_agent_balances(self) -> Generator[None, None, Optional[Dict[str, int]]]:
"""Get the agent balances."""
balances = {}
for agent in self.synchronized_data.all_participants:
balance = yield from self._get_balance(agent)
if balance is None:
self.context.logger.warning(
f"Could not get balance for agent {agent}. Skipping re-funding."
)
return None
balances[agent] = balance

return balances

def _get_agent_funding_amounts(
self,
) -> Generator[None, None, Optional[Dict[str, int]]]:
"""Get the agent balances."""
agent_funding_amounts = {}
agent_balances = yield from self._get_agent_balances()
if agent_balances is None:
self.context.logger.warning(
"Could not get agent balances. Skipping re-funding."
)
return None

for agent, balance in agent_balances.items():
if balance < self.params.minimum_agent_balance:
agent_funding_amounts[agent] = self.params.agent_funding_amount

return agent_funding_amounts


class TrackingBehaviour(DeliverBehaviour, ABC):
"""Behaviour to track the execution of a task."""
Expand Down
4 changes: 3 additions & 1 deletion packages/valory/skills/task_submission_abci/models.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
# -*- coding: utf-8 -*-
# ------------------------------------------------------------------------------
#
# Copyright 2023 Valory AG
# Copyright 2023-2024 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 Down Expand Up @@ -74,6 +74,8 @@ def __init__(self, *args: Any, **kwargs: Any) -> None:
self.hash_checkpoint_address = self._ensure(
"hash_checkpoint_address", kwargs, str
)
self.minimum_agent_balance = self._ensure("minimum_agent_balance", kwargs, int)
self.agent_funding_amount = self._ensure("agent_funding_amount", kwargs, int)
super().__init__(*args, **kwargs)

@classmethod
Expand Down
8 changes: 5 additions & 3 deletions packages/valory/skills/task_submission_abci/skill.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,18 +8,18 @@ license: Apache-2.0
aea_version: '>=1.0.0, <2.0.0'
fingerprint:
__init__.py: bafybeiholqak7ltw6bbmn2c5tn3j7xgzkdlfzp3kcskiqsvmxoih6m4muq
behaviours.py: bafybeif74c5ieukt56bgq3ynpwfxdpp36ug2rrejm76vxhuw5r2lqjpsqq
behaviours.py: bafybeifirwywbj433tyu45hhkuftlbxjg4hc7qsgtl3hppah77kcl7keye
dialogues.py: bafybeibmac3m5u5h6ucoyjr4dazay72dyga656wvjl6z6saapluvjo54ne
fsm_specification.yaml: bafybeig6bhn554qyou7kef5bstnlv54zke32avyti63uu4hvsol3lzqkoi
handlers.py: bafybeibe5n7my2vd2wlwo73sbma65epjqc7kxgtittewlylcmvnmoxtxzq
models.py: bafybeia3nyyoujxtum4rtsa3zpsm3jecb53o6xpq4h5hltg2prxa2rxhmq
models.py: bafybeigmraodqqx33mlflscp27tkngjkmtk6j7askmwe4ynhinimtcomuq
payloads.py: bafybeia2yorri2u5rwh6vukb6iwdrbn53ygsuuhthns2txptvjipyb6f4e
rounds.py: bafybeicstmau4vlzpxz3kjgiwwsetwmotdk4un4iucmdddzvot5dgdkg2a
tasks.py: bafybeicu5t5cvfhbndgpxbbtmp4vbmtyb6fba6vsnlewftvuderxp5lwcy
fingerprint_ignore_patterns: []
connections: []
contracts:
- valory/agent_mech:0.1.0:bafybeig7zpqhcpt6z4eutedx6prciuq4g7mpadw636zkkcx3ach6oytdry
- valory/agent_mech:0.1.0:bafybeiepxumywg6z2zapqzc3bg3iey23cmlgjzxisqox5j74o5i2texr5e
- valory/agent_registry:0.1.0:bafybeiargayav6yiztdnwzejoejstcx4idssch2h4f5arlgtzj3tgsgfmu
- valory/gnosis_safe:0.1.0:bafybeidll7frtdsq2ckiluazkwk4zpkp7natt4kdejjehwvykqwzyuf6ei
- valory/multisend:0.1.0:bafybeig5byt5urg2d2bsecufxe5ql7f4mezg3mekfleeh32nmuusx66p4y
Expand Down Expand Up @@ -146,6 +146,8 @@ models:
service_owner_share: 0.1
profit_split_freq: 1000
slash_cooldown_hours: 3
agent_funding_amount: 200000000000000000
minimum_agent_balance: 100000000000000000
slash_threshold_amount: 10000000000000000
light_slash_unit_amount: 5000000000000000
serious_slash_unit_amount: 8000000000000000
Expand Down

0 comments on commit 3fa3265

Please sign in to comment.