diff --git a/.gitignore b/.gitignore
index 24026d4a36..bcbfe4c5c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -403,11 +403,16 @@ packages/valory/protocols/contract_api
packages/valory/protocols/http
packages/valory/protocols/ledger_api
-autonomy/data/contracts/registries_manager
-autonomy/data/contracts/component_registry
-autonomy/data/contracts/service_registry
autonomy/data/contracts/agent_registry
+autonomy/data/contracts/component_registry
+autonomy/data/contracts/erc20
+autonomy/data/contracts/gnosis_safe
+autonomy/data/contracts/gnosis_safe_proxy_factory
+autonomy/data/contracts/multisend
+autonomy/data/contracts/registries_manager
autonomy/data/contracts/service_manager
+autonomy/data/contracts/service_registry
+autonomy/data/contracts/service_registry_token_utility
.vscode/
diff --git a/.spelling b/.spelling
index e03f34190b..ca49d3e63b 100644
--- a/.spelling
+++ b/.spelling
@@ -420,4 +420,5 @@ selection_key
0.10.10.post1
unbond
chiado
-0.12.1.post1
\ No newline at end of file
+0.12.1.post1
+0.12.1.post2
\ No newline at end of file
diff --git a/HISTORY.md b/HISTORY.md
index ae008fca2f..9d87aeeef2 100644
--- a/HISTORY.md
+++ b/HISTORY.md
@@ -1,6 +1,14 @@
# Release History - `open-autonomy`
+# 0.12.1.post2 (2023-09-20)
+
+Autonomy:
+
+- Adds missing contract packages to the `eject-contracts` make target
+- Adds check to make sure service is in `pre-registration` before updating the service hash
+- Adds check to make sure all required environment variables are present for on-chain interactions
+
# 0.12.1.post1 (2023-09-14)
Autonomy:
diff --git a/Makefile b/Makefile
index 83b1e42020..eccea96886 100644
--- a/Makefile
+++ b/Makefile
@@ -130,7 +130,7 @@ install: clean
.PHONY: eject-contracts
eject-contracts:
- @for contract in registries_manager service_manager component_registry agent_registry service_registry ; do \
+ @for contract in component_registry agent_registry registries_manager service_manager service_registry gnosis_safe gnosis_safe_proxy_factory service_registry_token_utility multisend erc20 ; do \
echo Updating $$contract contract; \
rm -rf autonomy/data/contracts/$$contract ; \
cp -r packages/valory/contracts/$$contract autonomy/data/contracts/$$contract ; \
diff --git a/SECURITY.md b/SECURITY.md
index 972a3b8f0a..6c368f6f8d 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -8,7 +8,7 @@ The following table shows which versions of `open-autonomy` are currently being
| Version | Supported |
| --------- | ------------------ |
-| `0.12.1.post1` | :white_check_mark: |
+| `0.12.1.post2` | :white_check_mark: |
| `< 0.12.x` | :x: |
## Reporting a Vulnerability
diff --git a/autonomy/__version__.py b/autonomy/__version__.py
index 00ad30f0e3..efe636a924 100644
--- a/autonomy/__version__.py
+++ b/autonomy/__version__.py
@@ -22,7 +22,7 @@
__title__ = "open-autonomy"
__description__ = "A framework for the creation of autonomous agent services."
__url__ = "https://github.com/valory-xyz/open-autonomy.git"
-__version__ = "0.12.1.post1"
+__version__ = "0.12.1.post2"
__author__ = "Valory AG"
__license__ = "Apache-2.0"
__copyright__ = "2021-2022 Valory AG"
diff --git a/autonomy/cli/helpers/chain.py b/autonomy/cli/helpers/chain.py
index b4937cc7e0..4d054aa317 100644
--- a/autonomy/cli/helpers/chain.py
+++ b/autonomy/cli/helpers/chain.py
@@ -32,7 +32,12 @@
from texttable import Texttable
from autonomy.chain.base import ServiceState, UnitType
-from autonomy.chain.config import ChainConfigs, ChainType, ContractConfigs
+from autonomy.chain.config import (
+ ChainConfigs,
+ ChainType,
+ ContractConfig,
+ ContractConfigs,
+)
from autonomy.chain.constants import (
AGENT_REGISTRY_CONTRACT,
COMPONENT_REGISTRY_CONTRACT,
@@ -185,6 +190,25 @@ def get_ledger_and_crypto_objects(
return ledger_api, crypto
+ def check_required_enviroment_variables(
+ self, configs: Tuple[ContractConfig, ...]
+ ) -> None:
+ """Check for required enviroment variables when working with the custom chain."""
+ if self.chain_type != ChainType.CUSTOM:
+ return
+ missing = []
+ for config in configs:
+ if config.contracts[self.chain_type] is None:
+ missing.append(config)
+
+ if len(missing) == 0:
+ return
+
+ error = "Addresses for following contracts are None, please set them using their respective environment variables\n"
+ for config in missing:
+ error += f"- Set `{config.name}` address using `CUSTOM_{config.name.upper()}_ADDRESS`\n"
+ raise click.ClickException(error[:-1])
+
class MintHelper(OnChainHelper): # pylint: disable=too-many-instance-attributes
"""Mint helper."""
@@ -243,18 +267,27 @@ def load_metadata(self) -> "MintHelper": # pragma: nocover
contract_address = ContractConfigs.get(
SERVICE_REGISTRY_CONTRACT.name
).contracts[self.chain_type]
+ self.check_required_enviroment_variables(
+ configs=(ContractConfigs.service_registry,)
+ )
elif self.package_type == PackageType.AGENT:
is_service = False
is_agent = True
contract_address = ContractConfigs.get(
AGENT_REGISTRY_CONTRACT.name
).contracts[self.chain_type]
+ self.check_required_enviroment_variables(
+ configs=(ContractConfigs.agent_registry,)
+ )
else:
is_service = False
is_agent = False
contract_address = ContractConfigs.get(
COMPONENT_REGISTRY_CONTRACT.name
).contracts[self.chain_type]
+ self.check_required_enviroment_variables(
+ configs=(ContractConfigs.component_registry,)
+ )
self.old_metadata = resolve_component_id(
ledger_api=self.ledger_api,
@@ -357,6 +390,18 @@ def mint_component(
component_type: UnitType = UnitType.COMPONENT,
) -> None:
"""Mint component."""
+
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.registries_manager,
+ (
+ ContractConfigs.component_registry
+ if component_type == UnitType.COMPONENT
+ else ContractConfigs.agent_registry
+ ),
+ )
+ )
+
try:
self.token_id = _mint_component(
ledger_api=self.ledger_api,
@@ -405,6 +450,18 @@ def mint_service(
) -> None:
"""Mint service"""
+ if self.chain_type == ChainType.CUSTOM and token is not None:
+ raise click.ClickException(
+ "Cannot use custom token for bonding on L2 chains"
+ )
+
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
try:
token_id = _mint_service(
ledger_api=self.ledger_api,
@@ -442,6 +499,16 @@ def mint_service(
def update_component(self, component_type: UnitType = UnitType.COMPONENT) -> None:
"""Update component."""
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.registries_manager,
+ (
+ ContractConfigs.component_registry
+ if component_type == UnitType.COMPONENT
+ else ContractConfigs.agent_registry
+ ),
+ )
+ )
try:
self.token_id = _update_component(
ledger_api=self.ledger_api,
@@ -455,7 +522,7 @@ def update_component(self, component_type: UnitType = UnitType.COMPONENT) -> Non
raise click.ClickException(f"Invalid parameters provided; {e}") from e
except ComponentMintFailed as e:
raise click.ClickException(
- f"Component mint failed with following error; {e}"
+ f"Component update failed with following error; {e}"
) from e
click.echo("Component hash updated:")
@@ -481,6 +548,24 @@ def update_service(
) -> None:
"""Update service"""
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
+ *_, state, _ = get_service_info(
+ ledger_api=self.ledger_api,
+ chain_type=self.chain_type,
+ token_id=cast(int, self.update_token),
+ )
+
+ if ServiceState(state) != ServiceState.PRE_REGISTRATION:
+ raise click.ClickException(
+ "Cannot update service hash, service needs to be in the pre-registration state"
+ )
+
try:
token_id = _update_service(
ledger_api=self.ledger_api,
@@ -501,7 +586,7 @@ def update_service(
)
except ComponentMintFailed as e:
raise click.ClickException(
- f"Service mint failed with following error; {e}"
+ f"Service update failed with following error; {e}"
) from e
click.echo("Service updated with:")
@@ -539,6 +624,11 @@ def check_is_service_token_secured(
token: Optional[str] = None,
) -> "ServiceHelper":
"""Check if service"""
+ if self.chain_type == ChainType.CUSTOM:
+ self.token = token
+ self.token_secured = False
+ return self
+
self.token = token
self.token_secured = is_service_token_secured(
ledger_api=self.ledger_api,
@@ -584,6 +674,13 @@ def activate_service(self) -> None:
spender=spender,
)
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
try:
_activate_service(
ledger_api=self.ledger_api,
@@ -619,6 +716,13 @@ def register_instance(
spender=spender,
)
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
try:
_register_instance(
ledger_api=self.ledger_api,
@@ -642,6 +746,16 @@ def deploy_service(
) -> None:
"""Deploy a service with registration activated"""
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ ContractConfigs.gnosis_safe_proxy_factory,
+ ContractConfigs.gnosis_safe_same_address_multisig,
+ ContractConfigs.multisend,
+ )
+ )
+
try:
_deploy_service(
ledger_api=self.ledger_api,
@@ -660,6 +774,13 @@ def deploy_service(
def terminate_service(self) -> None:
"""Terminate a service"""
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
try:
_terminate_service(
ledger_api=self.ledger_api,
@@ -675,6 +796,13 @@ def terminate_service(self) -> None:
def unbond_service(self) -> None:
"""Unbond a service"""
+ self.check_required_enviroment_variables(
+ configs=(
+ ContractConfigs.service_manager,
+ ContractConfigs.service_registry,
+ )
+ )
+
try:
_unbond_service(
ledger_api=self.ledger_api,
diff --git a/autonomy/constants.py b/autonomy/constants.py
index b1271067b2..44ff5193eb 100644
--- a/autonomy/constants.py
+++ b/autonomy/constants.py
@@ -58,4 +58,4 @@
ACN_IMAGE_NAME = os.environ.get("ACN_IMAGE_NAME", "valory/open-acn-node")
DEFAULT_DOCKER_IMAGE_AUTHOR = "valory"
OAR_IMAGE = "{image_author}/oar-{agent}:{version}"
-ABSTRACT_ROUND_ABCI_SKILL_WITH_HASH = "valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y"
+ABSTRACT_ROUND_ABCI_SKILL_WITH_HASH = "valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke"
diff --git a/deployments/Dockerfiles/autonomy-user/requirements.txt b/deployments/Dockerfiles/autonomy-user/requirements.txt
index 14a4703dc1..ff0d7551e8 100644
--- a/deployments/Dockerfiles/autonomy-user/requirements.txt
+++ b/deployments/Dockerfiles/autonomy-user/requirements.txt
@@ -1,4 +1,4 @@
-open-autonomy[all]==0.12.1.post1
+open-autonomy[all]==0.12.1.post2
open-aea[all]==1.39.0
open-aea-cli-ipfs==1.39.0
open-aea-ledger-ethereum==1.39.0
diff --git a/docs/advanced_reference/commands/autonomy_fetch.md b/docs/advanced_reference/commands/autonomy_fetch.md
index 344de078a5..55ecfa6ed3 100644
--- a/docs/advanced_reference/commands/autonomy_fetch.md
+++ b/docs/advanced_reference/commands/autonomy_fetch.md
@@ -55,5 +55,5 @@ autonomy --registry-path=./packages fetch valory/hello_world:0.1.0 --service --l
Fetch the agent service `hello_world` from a remote registry ([IPFS](https://ipfs.io)):
```bash
-autonomy fetch valory/hello_world:0.1.0:bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4 --service --remote
+autonomy fetch valory/hello_world:0.1.0:bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla --service --remote
```
diff --git a/docs/api/cli/helpers/chain.md b/docs/api/cli/helpers/chain.md
index b945039dec..74c2a43eea 100644
--- a/docs/api/cli/helpers/chain.md
+++ b/docs/api/cli/helpers/chain.md
@@ -42,6 +42,17 @@ def get_ledger_and_crypto_objects(
Create ledger_api and crypto objects
+
+
+#### check`_`required`_`enviroment`_`variables
+
+```python
+def check_required_enviroment_variables(
+ configs: Tuple[ContractConfig, ...]) -> None
+```
+
+Check for required enviroment variables when working with the custom chain.
+
## MintHelper Objects
diff --git a/docs/api/data/contracts/agent_registry/contract.md b/docs/api/data/contracts/agent_registry/contract.md
index e8406ab265..17278d3de8 100644
--- a/docs/api/data/contracts/agent_registry/contract.md
+++ b/docs/api/data/contracts/agent_registry/contract.md
@@ -50,28 +50,39 @@ def get_state(cls, ledger_api: LedgerApi, contract_address: str,
Get state.
-
+
-#### get`_`token`_`uri
+#### get`_`create`_`events
```python
@classmethod
-def get_token_uri(cls, ledger_api: LedgerApi, contract_address: str,
- token_id: int) -> str
+def get_create_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
Returns `CreateUnit` event filter.
-
+
-#### filter`_`token`_`id`_`from`_`emitted`_`events
+#### get`_`update`_`hash`_`events
```python
@classmethod
-def filter_token_id_from_emitted_events(cls, ledger_api: LedgerApi,
- contract_address: str,
- metadata_hash: str) -> Optional[int]
+def get_update_hash_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
Returns `CreateUnit` event filter.
+
+
+#### get`_`token`_`uri
+
+```python
+@classmethod
+def get_token_uri(cls, ledger_api: LedgerApi, contract_address: str,
+ token_id: int) -> str
+```
+
+Returns the latest metadata URI for a component.
+
diff --git a/docs/api/data/contracts/component_registry/contract.md b/docs/api/data/contracts/component_registry/contract.md
index 5fe3e785a5..95455a139b 100644
--- a/docs/api/data/contracts/component_registry/contract.md
+++ b/docs/api/data/contracts/component_registry/contract.md
@@ -50,15 +50,26 @@ def get_state(cls, ledger_api: LedgerApi, contract_address: str,
Get state.
-
+
-#### filter`_`token`_`id`_`from`_`emitted`_`events
+#### get`_`create`_`events
```python
@classmethod
-def filter_token_id_from_emitted_events(cls, ledger_api: LedgerApi,
- contract_address: str,
- metadata_hash: str) -> Optional[int]
+def get_create_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
+```
+
+Returns `CreateUnit` event filter.
+
+
+
+#### get`_`update`_`hash`_`events
+
+```python
+@classmethod
+def get_update_hash_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
Returns `CreateUnit` event filter.
@@ -73,5 +84,5 @@ def get_token_uri(cls, ledger_api: LedgerApi, contract_address: str,
token_id: int) -> str
```
-Returns `CreateUnit` event filter.
+Returns the latest metadata URI for a component.
diff --git a/docs/api/data/contracts/erc20/contract.md b/docs/api/data/contracts/erc20/contract.md
new file mode 100644
index 0000000000..bce91279bf
--- /dev/null
+++ b/docs/api/data/contracts/erc20/contract.md
@@ -0,0 +1,115 @@
+
+
+# autonomy.data.contracts.erc20.contract
+
+This module contains the scaffold contract definition.
+
+
+
+## ERC20TokenContract Objects
+
+```python
+class ERC20TokenContract(Contract)
+```
+
+ERC20 token contract.
+
+
+
+#### get`_`raw`_`transaction
+
+```python
+@classmethod
+def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> JSONLike
+```
+
+Handler method for the 'GET_RAW_TRANSACTION' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### get`_`raw`_`message
+
+```python
+@classmethod
+def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> bytes
+```
+
+Handler method for the 'GET_RAW_MESSAGE' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### get`_`state
+
+```python
+@classmethod
+def get_state(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> JSONLike
+```
+
+Handler method for the 'GET_STATE' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### get`_`approve`_`tx
+
+```python
+@classmethod
+def get_approve_tx(cls, ledger_api: LedgerApi, contract_address: str,
+ spender: str, amount: int, sender: str) -> JSONLike
+```
+
+Get approve tx.
+
+
+
+#### get`_`approval`_`events
+
+```python
+@classmethod
+def get_approval_events(cls, ledger_api: LedgerApi, contract_address: str,
+ tx_receipt: JSONLike) -> JSONLike
+```
+
+Get approve tx.
+
diff --git a/docs/api/data/contracts/gnosis_safe/contract.md b/docs/api/data/contracts/gnosis_safe/contract.md
new file mode 100644
index 0000000000..35a001de12
--- /dev/null
+++ b/docs/api/data/contracts/gnosis_safe/contract.md
@@ -0,0 +1,561 @@
+
+
+# autonomy.data.contracts.gnosis`_`safe.contract
+
+This module contains the class to connect to an Gnosis Safe contract.
+
+
+
+#### checksum`_`address
+
+```python
+def checksum_address(agent_address: str) -> ChecksumAddress
+```
+
+Get the checksum address.
+
+
+
+## SafeOperation Objects
+
+```python
+class SafeOperation(Enum)
+```
+
+Operation types.
+
+
+
+## GnosisSafeContract Objects
+
+```python
+class GnosisSafeContract(Contract)
+```
+
+The Gnosis Safe contract.
+
+
+
+#### get`_`raw`_`transaction
+
+```python
+@classmethod
+def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get the Safe transaction.
+
+
+
+#### get`_`raw`_`message
+
+```python
+@classmethod
+def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[bytes]
+```
+
+Get raw message.
+
+
+
+#### get`_`state
+
+```python
+@classmethod
+def get_state(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get state.
+
+
+
+#### get`_`deploy`_`transaction
+
+```python
+@classmethod
+def get_deploy_transaction(cls, ledger_api: LedgerApi, deployer_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get deploy transaction.
+
+**Arguments**:
+
+- `ledger_api`: ledger API object.
+- `deployer_address`: the deployer address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+an optional JSON-like object.
+
+
+
+#### get`_`raw`_`safe`_`transaction`_`hash
+
+```python
+@classmethod
+def get_raw_safe_transaction_hash(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ to_address: str,
+ value: int,
+ data: bytes,
+ operation: int = SafeOperation.CALL.value,
+ safe_tx_gas: int = 0,
+ base_gas: int = 0,
+ gas_price: int = 0,
+ gas_token: str = NULL_ADDRESS,
+ refund_receiver: str = NULL_ADDRESS,
+ safe_nonce: Optional[int] = None,
+ safe_version: Optional[str] = None,
+ chain_id: Optional[int] = None) -> JSONLike
+```
+
+Get the hash of the raw Safe transaction.
+
+Adapted from https://github.com/gnosis/gnosis-py/blob/69f1ee3263086403f6017effa0841c6a2fbba6d6/gnosis/safe/safe_tx.py#L125
+
+Note, because safe_nonce is included in the tx_hash the agents implicitly agree on the order of txs if they agree on a tx_hash.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `to_address`: the tx recipient address
+- `value`: the ETH value of the transaction
+- `data`: the data of the transaction
+- `operation`: Operation type of Safe transaction
+- `safe_tx_gas`: Gas that should be used for the Safe transaction
+- `base_gas`: Gas costs for that are independent of the transaction execution
+(e.g. base transaction fee, signature check, payment of the refund)
+- `gas_price`: Gas price that should be used for the payment calculation
+- `gas_token`: Token address (or `0x000..000` if ETH) that is used for the payment
+- `refund_receiver`: Address of receiver of gas payment (or `0x000..000` if tx.origin).
+- `safe_nonce`: Current nonce of the Safe. If not provided, it will be retrieved from network
+- `safe_version`: Safe version 1.0.0 renamed `baseGas` to `dataGas`. Safe version 1.3.0 added `chainId` to the `domainSeparator`. If not provided, it will be retrieved from network
+- `chain_id`: Ethereum network chain_id is used in hash calculation for Safes >= 1.3.0. If not provided, it will be retrieved from the provided ethereum_client
+
+**Returns**:
+
+the hash of the raw Safe transaction
+
+
+
+#### get`_`packed`_`signatures
+
+```python
+@classmethod
+def get_packed_signatures(cls, owners: Tuple[str],
+ signatures_by_owner: Dict[str, str]) -> bytes
+```
+
+Get the packed signatures.
+
+
+
+#### get`_`raw`_`safe`_`transaction
+
+```python
+@classmethod
+def get_raw_safe_transaction(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ sender_address: str,
+ owners: Tuple[str],
+ to_address: str,
+ value: int,
+ data: bytes,
+ signatures_by_owner: Dict[str, str],
+ operation: int = SafeOperation.CALL.value,
+ safe_tx_gas: int = 0,
+ base_gas: int = 0,
+ safe_gas_price: int = 0,
+ gas_token: str = NULL_ADDRESS,
+ refund_receiver: str = NULL_ADDRESS,
+ gas_price: Optional[int] = None,
+ nonce: Optional[Nonce] = None,
+ max_fee_per_gas: Optional[int] = None,
+ max_priority_fee_per_gas: Optional[int] = None,
+ old_price: Optional[Dict[str, Wei]] = None,
+ fallback_gas: int = 0) -> JSONLike
+```
+
+Get the raw Safe transaction
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `sender_address`: the address of the sender
+- `owners`: the sequence of owners
+- `to_address`: Destination address of Safe transaction
+- `value`: Ether value of Safe transaction
+- `data`: Data payload of Safe transaction
+- `signatures_by_owner`: mapping from owners to signatures
+- `operation`: Operation type of Safe transaction
+- `safe_tx_gas`: Gas that should be used for the Safe transaction
+- `base_gas`: Gas costs for that are independent of the transaction execution
+(e.g. base transaction fee, signature check, payment of the refund)
+- `safe_gas_price`: Gas price that should be used for the payment calculation
+- `gas_token`: Token address (or `0x000..000` if ETH) that is used for the payment
+- `refund_receiver`: Address of receiver of gas payment (or `0x000..000` if tx.origin).
+- `gas_price`: gas price
+- `nonce`: the nonce
+- `max_fee_per_gas`: max
+- `max_priority_fee_per_gas`: max
+- `old_price`: the old gas price params in case that we are trying to resubmit a transaction.
+- `fallback_gas`: (external) gas to spend when base_gas and safe_tx_gas are zero and no gas estimation is possible.
+
+**Returns**:
+
+the raw Safe transaction
+
+
+
+#### verify`_`contract
+
+```python
+@classmethod
+def verify_contract(cls, ledger_api: LedgerApi,
+ contract_address: str) -> JSONLike
+```
+
+Verify the contract's bytecode
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+
+**Returns**:
+
+the verified status
+
+
+
+#### verify`_`tx
+
+```python
+@classmethod
+def verify_tx(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ tx_hash: str,
+ owners: Tuple[str],
+ to_address: str,
+ value: int,
+ data: bytes,
+ signatures_by_owner: Dict[str, str],
+ operation: int = SafeOperation.CALL.value,
+ safe_tx_gas: int = 0,
+ base_gas: int = 0,
+ gas_price: int = 0,
+ gas_token: str = NULL_ADDRESS,
+ refund_receiver: str = NULL_ADDRESS,
+ safe_version: Optional[str] = None) -> JSONLike
+```
+
+Verify a tx hash exists on the blockchain.
+
+Currently, the implementation is an overkill as most of the verification is implicit by the acceptance of the transaction in the Safe.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `tx_hash`: the transaction hash
+- `owners`: the sequence of owners
+- `to_address`: Destination address of Safe transaction
+- `value`: Ether value of Safe transaction
+- `data`: Data payload of Safe transaction
+- `signatures_by_owner`: mapping from owners to signatures
+- `operation`: Operation type of Safe transaction
+- `safe_tx_gas`: Gas that should be used for the Safe transaction
+- `base_gas`: Gas costs for that are independent of the transaction execution
+(e.g. base transaction fee, signature check, payment of the refund)
+- `gas_price`: Gas price that should be used for the payment calculation
+- `gas_token`: Token address (or `0x000..000` if ETH) that is used for the payment
+- `refund_receiver`: Address of receiver of gas payment (or `0x000..000` if tx.origin).
+- `safe_version`: Safe version 1.0.0 renamed `baseGas` to `dataGas`. Safe version 1.3.0 added `chainId` to the `domainSeparator`. If not provided, it will be retrieved from network
+
+**Returns**:
+
+the verified status
+
+
+
+#### revert`_`reason
+
+```python
+@classmethod
+def revert_reason(cls, ledger_api: EthereumApi, contract_address: str,
+ tx: TxData) -> JSONLike
+```
+
+Check the revert reason of a transaction.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object.
+- `contract_address`: the contract address
+- `tx`: the transaction for which we want to get the revert reason.
+
+**Returns**:
+
+the revert reason message.
+
+
+
+#### get`_`safe`_`nonce
+
+```python
+@classmethod
+def get_safe_nonce(cls, ledger_api: EthereumApi,
+ contract_address: str) -> JSONLike
+```
+
+Retrieve the safe's nonce
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+
+**Returns**:
+
+the safe nonce
+
+
+
+#### get`_`ingoing`_`transfers
+
+```python
+@classmethod
+def get_ingoing_transfers(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ from_block: Optional[str] = None,
+ to_block: Optional[str] = "latest") -> JSONLike
+```
+
+A list of transfers into the contract.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address,
+- `from_block`: from which block to start tje search
+- `to_block`: at which block to end the search
+
+**Returns**:
+
+list of transfers
+
+
+
+#### get`_`balance
+
+```python
+@classmethod
+def get_balance(cls, ledger_api: EthereumApi,
+ contract_address: str) -> JSONLike
+```
+
+Retrieve the safe's balance
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+
+**Returns**:
+
+the safe balance (in wei)
+
+
+
+#### get`_`amount`_`spent
+
+```python
+@classmethod
+def get_amount_spent(cls, ledger_api: EthereumApi, contract_address: str,
+ tx_hash: str) -> JSONLike
+```
+
+Get the amount of ether spent in a tx.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address (not used)
+- `tx_hash`: the settled tx hash
+
+**Returns**:
+
+the safe balance (in wei)
+
+
+
+#### get`_`safe`_`txs
+
+```python
+@classmethod
+def get_safe_txs(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ from_block: BlockIdentifier = "earliest",
+ to_block: BlockIdentifier = "latest") -> JSONLike
+```
+
+Get all the safe tx hashes.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address (not used)
+- `from_block`: from which block to search for events
+- `to_block`: to which block to search for events
+:return: the safe txs
+
+
+
+#### get`_`removed`_`owner`_`events
+
+```python
+@classmethod
+def get_removed_owner_events(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ removed_owner: Optional[str] = None,
+ from_block: BlockIdentifier = "earliest",
+ to_block: BlockIdentifier = "latest") -> JSONLike
+```
+
+Get all RemovedOwner events for a safe contract.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `removed_owner`: the owner to check for, any owner qualifies if not provided.
+- `from_block`: from which block to search for events
+- `to_block`: to which block to search for events
+
+**Returns**:
+
+the added owner events
+
+
+
+#### get`_`zero`_`transfer`_`events
+
+```python
+@classmethod
+def get_zero_transfer_events(cls,
+ ledger_api: EthereumApi,
+ contract_address: str,
+ sender_address: str,
+ from_block: BlockIdentifier = "earliest",
+ to_block: BlockIdentifier = "latest") -> JSONLike
+```
+
+Get all zero transfer events from a given sender to the safe address.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `sender_address`: the owner of the service, ie the address that triggers termination
+- `from_block`: from which block to search for events
+- `to_block`: to which block to search for events
+:return: the zero transfer events
+
+
+
+#### get`_`remove`_`owner`_`data
+
+```python
+@classmethod
+def get_remove_owner_data(cls, ledger_api: EthereumApi, contract_address: str,
+ owner: str, threshold: int) -> JSONLike
+```
+
+Get a removeOwner() encoded tx.
+
+This method acts as a wrapper for `removeOwner()`
+https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/base/OwnerManager.sol#L70
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `owner`: the owner to be removed
+- `threshold`: the new safe threshold to be set
+
+**Returns**:
+
+the zero transfer events
+
+
+
+#### get`_`swap`_`owner`_`data
+
+```python
+@classmethod
+def get_swap_owner_data(cls, ledger_api: EthereumApi, contract_address: str,
+ old_owner: str, new_owner: str) -> JSONLike
+```
+
+Get a swapOwner() encoded tx.
+
+This method acts as a wrapper for `swapOwner()`
+https://github.com/safe-global/safe-contracts/blob/v1.3.0/contracts/base/OwnerManager.sol#L94
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+- `old_owner`: the owner to be replaced
+- `new_owner`: owner to replace old_owner
+
+**Returns**:
+
+the zero transfer events
+
+
+
+#### get`_`owners
+
+```python
+@classmethod
+def get_owners(cls, ledger_api: EthereumApi,
+ contract_address: str) -> JSONLike
+```
+
+Get the safe owners.
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+
+**Returns**:
+
+the safe owners
+
+
+
+#### get`_`approve`_`hash`_`tx
+
+```python
+@classmethod
+def get_approve_hash_tx(cls, ledger_api: EthereumApi, contract_address: str,
+ tx_hash: str, sender: str) -> JSONLike
+```
+
+Get approve has tx.
+
diff --git a/docs/api/data/contracts/gnosis_safe/encode.md b/docs/api/data/contracts/gnosis_safe/encode.md
new file mode 100644
index 0000000000..96c8383a92
--- /dev/null
+++ b/docs/api/data/contracts/gnosis_safe/encode.md
@@ -0,0 +1,140 @@
+
+
+# autonomy.data.contracts.gnosis`_`safe.encode
+
+ETH encoder.
+
+
+
+#### encode
+
+```python
+def encode(typ: t.Any, arg: t.Any) -> bytes
+```
+
+Encode by type.
+
+
+
+#### to`_`string
+
+```python
+def to_string(value: t.Union[bytes, str, int]) -> bytes
+```
+
+Convert to byte string.
+
+
+
+#### sha3`_`256
+
+```python
+def sha3_256(x: bytes) -> bytes
+```
+
+Calculate SHA3-256 hash.
+
+
+
+#### sha3
+
+```python
+def sha3(seed: t.Union[bytes, str, int]) -> bytes
+```
+
+Calculate SHA3-256 hash.
+
+
+
+#### scan`_`bin
+
+```python
+def scan_bin(v: str) -> bytes
+```
+
+Scan bytes.
+
+
+
+#### create`_`struct`_`definition
+
+```python
+def create_struct_definition(name: str, schema: t.List[t.Dict[str,
+ str]]) -> str
+```
+
+Create method struction defintion.
+
+
+
+#### find`_`dependencies
+
+```python
+def find_dependencies(name: str, types: t.Dict[str, t.Any],
+ dependencies: t.Set) -> None
+```
+
+Find dependencies.
+
+
+
+#### create`_`schema
+
+```python
+def create_schema(name: str, types: t.Dict) -> str
+```
+
+Create schema.
+
+
+
+#### create`_`schema`_`hash
+
+```python
+def create_schema_hash(name: str, types: t.Dict) -> bytes
+```
+
+Create schema hash.
+
+
+
+#### encode`_`value
+
+```python
+def encode_value(data_type: str, value: t.Any, types: t.Dict) -> bytes
+```
+
+Encode value.
+
+
+
+#### encode`_`data
+
+```python
+def encode_data(name: str, data: t.Dict[str, t.Dict[str, str]],
+ types: t.Dict) -> bytes
+```
+
+Encode data.
+
+
+
+#### create`_`struct`_`hash
+
+```python
+def create_struct_hash(name: str, data: t.Dict[str, t.Dict[str, str]],
+ types: t.Dict) -> bytes
+```
+
+Create struct hash.
+
+
+
+#### encode`_`typed`_`data
+
+```python
+def encode_typed_data(data: t.Dict[str, t.Any]) -> bytes
+```
+
+Encode typed data.
+
diff --git a/docs/api/data/contracts/gnosis_safe_proxy_factory/contract.md b/docs/api/data/contracts/gnosis_safe_proxy_factory/contract.md
new file mode 100644
index 0000000000..20cd6e1fd9
--- /dev/null
+++ b/docs/api/data/contracts/gnosis_safe_proxy_factory/contract.md
@@ -0,0 +1,136 @@
+
+
+# autonomy.data.contracts.gnosis`_`safe`_`proxy`_`factory.contract
+
+This module contains the class to connect to an Gnosis Safe Proxy Factory contract.
+
+
+
+## GnosisSafeProxyFactoryContract Objects
+
+```python
+class GnosisSafeProxyFactoryContract(Contract)
+```
+
+The Gnosis Safe Proxy Factory contract.
+
+
+
+#### get`_`raw`_`transaction
+
+```python
+@classmethod
+def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get the raw transaction.
+
+
+
+#### get`_`raw`_`message
+
+```python
+@classmethod
+def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[bytes]
+```
+
+Get raw message.
+
+
+
+#### get`_`state
+
+```python
+@classmethod
+def get_state(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get state.
+
+
+
+#### get`_`deploy`_`transaction
+
+```python
+@classmethod
+def get_deploy_transaction(cls, ledger_api: LedgerApi, deployer_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get deploy transaction.
+
+**Arguments**:
+
+- `ledger_api`: ledger API object.
+- `deployer_address`: the deployer address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+an optional JSON-like object.
+
+
+
+#### build`_`tx`_`deploy`_`proxy`_`contract`_`with`_`nonce
+
+```python
+@classmethod
+def build_tx_deploy_proxy_contract_with_nonce(
+ cls,
+ ledger_api: EthereumApi,
+ proxy_factory_address: str,
+ master_copy: str,
+ address: str,
+ initializer: bytes,
+ salt_nonce: int,
+ gas: int = MIN_GAS,
+ gas_price: Optional[int] = None,
+ max_fee_per_gas: Optional[int] = None,
+ max_priority_fee_per_gas: Optional[int] = None,
+ nonce: Optional[int] = None) -> Tuple[TxParams, str]
+```
+
+Deploy proxy contract via Proxy Factory using `createProxyWithNonce` (create2)
+
+**Arguments**:
+
+- `ledger_api`: ledger API object
+- `proxy_factory_address`: the address of the proxy factory
+- `address`: Ethereum address
+- `master_copy`: Address the proxy will point at
+- `initializer`: Data for safe creation
+- `salt_nonce`: Uint256 for `create2` salt
+- `gas`: Gas
+- `gas_price`: Gas Price
+- `max_fee_per_gas`: max
+- `max_priority_fee_per_gas`: max
+- `nonce`: Nonce
+
+**Returns**:
+
+Tuple(tx-hash, tx, deployed contract address)
+
+
+
+#### verify`_`contract
+
+```python
+@classmethod
+def verify_contract(cls, ledger_api: EthereumApi,
+ contract_address: str) -> JSONLike
+```
+
+Verify the contract's bytecode
+
+**Arguments**:
+
+- `ledger_api`: the ledger API object
+- `contract_address`: the contract address
+
+**Returns**:
+
+the verified status
+
diff --git a/docs/api/data/contracts/multisend/contract.md b/docs/api/data/contracts/multisend/contract.md
new file mode 100644
index 0000000000..9fe5e64c39
--- /dev/null
+++ b/docs/api/data/contracts/multisend/contract.md
@@ -0,0 +1,180 @@
+
+
+# autonomy.data.contracts.multisend.contract
+
+This module contains the class to connect to an Gnosis Safe contract.
+
+
+
+## MultiSendOperation Objects
+
+```python
+class MultiSendOperation(Enum)
+```
+
+Operation types.
+
+
+
+#### encode`_`data
+
+```python
+def encode_data(tx: Dict) -> bytes
+```
+
+Encodes multisend transaction.
+
+
+
+#### decode`_`data
+
+```python
+def decode_data(encoded_tx: bytes) -> Tuple[Dict, int]
+```
+
+Decodes multisend transaction.
+
+
+
+#### to`_`bytes
+
+```python
+def to_bytes(multi_send_txs: List[Dict]) -> bytes
+```
+
+Multi send tx list to bytes.
+
+
+
+#### from`_`bytes
+
+```python
+def from_bytes(encoded_multisend_txs: bytes) -> List[Dict]
+```
+
+Encoded multi send tx to list.
+
+
+
+## MultiSendContract Objects
+
+```python
+class MultiSendContract(Contract)
+```
+
+The MultiSend contract.
+
+
+
+#### get`_`raw`_`transaction
+
+```python
+@classmethod
+def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get the Safe transaction.
+
+
+
+#### get`_`raw`_`message
+
+```python
+@classmethod
+def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[bytes]
+```
+
+Get raw message.
+
+
+
+#### get`_`state
+
+```python
+@classmethod
+def get_state(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get state.
+
+
+
+#### get`_`deploy`_`transaction
+
+```python
+@classmethod
+def get_deploy_transaction(cls, ledger_api: LedgerApi, deployer_address: str,
+ **kwargs: Any) -> Optional[JSONLike]
+```
+
+Get deploy transaction.
+
+
+
+#### get`_`tx`_`data
+
+```python
+@classmethod
+def get_tx_data(cls, ledger_api: LedgerApi, contract_address: str,
+ multi_send_txs: List[Dict]) -> Optional[JSONLike]
+```
+
+Get a multisend transaction data from list.
+
+**Arguments**:
+
+- `ledger_api`: ledger API object.
+- `contract_address`: the contract address.
+- `multi_send_txs`: the multisend transaction list.
+
+**Returns**:
+
+an optional JSON-like object.
+
+
+
+#### get`_`multisend`_`tx
+
+```python
+@classmethod
+def get_multisend_tx(cls, ledger_api: LedgerApi, contract_address: str,
+ txs: List[Dict]) -> Optional[JSONLike]
+```
+
+Get a multisend transaction data from list.
+
+**Arguments**:
+
+- `ledger_api`: ledger API object.
+- `contract_address`: the contract address.
+- `txs`: the multisend transaction list.
+
+**Returns**:
+
+an optional JSON-like object.
+
+
+
+#### get`_`tx`_`list
+
+```python
+@classmethod
+def get_tx_list(cls, ledger_api: LedgerApi, contract_address: str,
+ multi_send_data: str) -> Optional[JSONLike]
+```
+
+Get a multisend transaction list from encoded data.
+
+**Arguments**:
+
+- `ledger_api`: ledger API object.
+- `contract_address`: the contract address.
+- `multi_send_data`: the multisend transaction data.
+
+**Returns**:
+
+an optional JSON-like object.
+
diff --git a/docs/api/data/contracts/registries_manager/contract.md b/docs/api/data/contracts/registries_manager/contract.md
index 174705aff1..eb0de726fa 100644
--- a/docs/api/data/contracts/registries_manager/contract.md
+++ b/docs/api/data/contracts/registries_manager/contract.md
@@ -79,3 +79,21 @@ def get_create_transaction(cls,
Create a component.
+
+
+#### get`_`update`_`hash`_`transaction
+
+```python
+@classmethod
+def get_update_hash_transaction(cls,
+ ledger_api: LedgerApi,
+ contract_address: str,
+ component_type: UnitType,
+ unit_id: int,
+ metadata_hash: str,
+ sender: str,
+ raise_on_try: bool = False) -> JSONLike
+```
+
+Create a component.
+
diff --git a/docs/api/data/contracts/service_manager/contract.md b/docs/api/data/contracts/service_manager/contract.md
index f398f598dc..59674c4106 100644
--- a/docs/api/data/contracts/service_manager/contract.md
+++ b/docs/api/data/contracts/service_manager/contract.md
@@ -50,6 +50,41 @@ def get_state(cls, ledger_api: LedgerApi, contract_address: str,
Get state.
+
+
+#### load`_`l2`_`build
+
+```python
+@staticmethod
+def load_l2_build() -> JSONLike
+```
+
+Load L2 ABI
+
+
+
+#### is`_`l1`_`chain
+
+```python
+@staticmethod
+def is_l1_chain(ledger_api: LedgerApi) -> bool
+```
+
+Check if we're interecting with an L1 chain
+
+
+
+#### get`_`instance
+
+```python
+@classmethod
+def get_instance(cls,
+ ledger_api: LedgerApi,
+ contract_address: Optional[str] = None) -> Any
+```
+
+Get contract instance.
+
#### get`_`create`_`transaction
@@ -65,6 +100,28 @@ def get_create_transaction(cls,
agent_ids: List[int],
agent_params: List[List[int]],
threshold: int,
+ token: Optional[str] = None,
+ raise_on_try: bool = False) -> Dict[str, Any]
+```
+
+Retrieve the service owner.
+
+
+
+#### get`_`update`_`transaction
+
+```python
+@classmethod
+def get_update_transaction(cls,
+ ledger_api: LedgerApi,
+ contract_address: str,
+ sender: str,
+ service_id: int,
+ metadata_hash: str,
+ agent_ids: List[int],
+ agent_params: List[List[int]],
+ threshold: int,
+ token: str = ETHEREUM_ERC20,
raise_on_try: bool = False) -> Dict[str, Any]
```
@@ -127,3 +184,37 @@ def get_service_deploy_transaction(
Retrieve the service owner.
+
+
+#### get`_`terminate`_`service`_`transaction
+
+```python
+@classmethod
+def get_terminate_service_transaction(
+ cls,
+ ledger_api: LedgerApi,
+ contract_address: str,
+ owner: str,
+ service_id: int,
+ raise_on_try: bool = False) -> Dict[str, Any]
+```
+
+Retrieve the service owner.
+
+
+
+#### get`_`unbond`_`service`_`transaction
+
+```python
+@classmethod
+def get_unbond_service_transaction(
+ cls,
+ ledger_api: LedgerApi,
+ contract_address: str,
+ owner: str,
+ service_id: int,
+ raise_on_try: bool = False) -> Dict[str, Any]
+```
+
+Retrieve the service owner.
+
diff --git a/docs/api/data/contracts/service_registry/contract.md b/docs/api/data/contracts/service_registry/contract.md
index c9630bb83d..9081f5a1ac 100644
--- a/docs/api/data/contracts/service_registry/contract.md
+++ b/docs/api/data/contracts/service_registry/contract.md
@@ -50,6 +50,41 @@ def get_state(cls, ledger_api: LedgerApi, contract_address: str,
Get state.
+
+
+#### is`_`l1`_`chain
+
+```python
+@staticmethod
+def is_l1_chain(ledger_api: LedgerApi) -> bool
+```
+
+Check if we're interecting with an L1 chain
+
+
+
+#### load`_`l2`_`build
+
+```python
+@staticmethod
+def load_l2_build() -> JSONLike
+```
+
+Load L2 ABI
+
+
+
+#### get`_`instance
+
+```python
+@classmethod
+def get_instance(cls,
+ ledger_api: LedgerApi,
+ contract_address: Optional[str] = None) -> Any
+```
+
+Get contract instance.
+
#### verify`_`contract
@@ -129,56 +164,112 @@ def get_token_uri(cls, ledger_api: LedgerApi, contract_address: str,
token_id: int) -> str
```
-Resolve token URI
+Returns the latest metadata URI for a component.
-
+
-#### filter`_`token`_`id`_`from`_`emitted`_`events
+#### get`_`create`_`events
```python
@classmethod
-def filter_token_id_from_emitted_events(
- cls, ledger_api: LedgerApi, contract_address: str) -> Optional[int]
+def get_create_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
Returns `CreateUnit` event filter.
-
+
-#### verify`_`service`_`has`_`been`_`activated
+#### get`_`update`_`events
```python
@classmethod
-def verify_service_has_been_activated(cls, ledger_api: LedgerApi,
- contract_address: str,
- service_id: int) -> bool
+def get_update_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
-Checks for a successful service registration event in the latest block
+Returns `CreateUnit` event filter.
-
+
-#### verify`_`agent`_`instance`_`registration
+#### get`_`update`_`hash`_`events
```python
@classmethod
-def verify_agent_instance_registration(cls, ledger_api: LedgerApi,
- contract_address: str, service_id: int,
- instance_check: Set[str]) -> Set[str]
+def get_update_hash_events(cls, ledger_api: LedgerApi, contract_address: str,
+ receipt: JSONLike) -> Optional[int]
```
-Checks for the registered instances and filters out the instances that are registered from the given array
+Returns `CreateUnit` event filter.
-
+
-#### verify`_`service`_`has`_`been`_`deployed
+#### process`_`receipt
```python
@classmethod
-def verify_service_has_been_deployed(cls, ledger_api: LedgerApi,
- contract_address: str,
- service_id: int) -> bool
+def process_receipt(cls, ledger_api: LedgerApi, contract_address: str,
+ event: str, receipt: JSONLike) -> JSONLike
```
Checks for a successful service registration event in the latest block
+
+
+#### get`_`slash`_`data
+
+```python
+@classmethod
+def get_slash_data(cls, ledger_api: LedgerApi, contract_address: str,
+ agent_instances: List[str], amounts: List[int],
+ service_id: int) -> Dict[str, bytes]
+```
+
+Gets the encoded arguments for a slashing tx, which should only be called via the multisig.
+
+
+
+#### process`_`slash`_`receipt
+
+```python
+@classmethod
+def process_slash_receipt(cls, ledger_api: LedgerApi, contract_address: str,
+ tx_hash: str) -> Optional[JSONLike]
+```
+
+Process the slash receipt.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `tx_hash`: the hash of a slash tx to be processed.
+
+**Returns**:
+
+a dictionary with the timestamp of the slashing and the `OperatorSlashed` events.
+
+
+
+#### get`_`operators`_`mapping
+
+```python
+@classmethod
+def get_operators_mapping(cls, ledger_api: LedgerApi, contract_address: str,
+ agent_instances: FrozenSet[str]) -> Dict[str, str]
+```
+
+Retrieve a mapping of the given agent instances to their operators.
+
+Please keep in mind that this method performs a call for each agent instance.
+
+**Arguments**:
+
+- `ledger_api`: the ledger api.
+- `contract_address`: the contract address.
+- `agent_instances`: the agent instances to be mapped.
+
+**Returns**:
+
+a mapping of the given agent instances to their operators.
+
diff --git a/docs/api/data/contracts/service_registry_token_utility/contract.md b/docs/api/data/contracts/service_registry_token_utility/contract.md
new file mode 100644
index 0000000000..73b7e27ee3
--- /dev/null
+++ b/docs/api/data/contracts/service_registry_token_utility/contract.md
@@ -0,0 +1,115 @@
+
+
+# autonomy.data.contracts.service`_`registry`_`token`_`utility.contract
+
+This module contains the scaffold contract definition.
+
+
+
+## ServiceRegistryTokenUtilityContract Objects
+
+```python
+class ServiceRegistryTokenUtilityContract(Contract)
+```
+
+The scaffold contract class for a smart contract.
+
+
+
+#### get`_`raw`_`transaction
+
+```python
+@classmethod
+def get_raw_transaction(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> JSONLike
+```
+
+Handler method for the 'GET_RAW_TRANSACTION' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### get`_`raw`_`message
+
+```python
+@classmethod
+def get_raw_message(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> bytes
+```
+
+Handler method for the 'GET_RAW_MESSAGE' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### get`_`state
+
+```python
+@classmethod
+def get_state(cls, ledger_api: LedgerApi, contract_address: str,
+ **kwargs: Any) -> JSONLike
+```
+
+Handler method for the 'GET_STATE' requests.
+
+Implement this method in the sub class if you want
+to handle the contract requests manually.
+
+**Arguments**:
+
+- `ledger_api`: the ledger apis.
+- `contract_address`: the contract address.
+- `kwargs`: the keyword arguments.
+
+**Returns**:
+
+the tx # noqa: DAR202
+
+
+
+#### is`_`token`_`secured`_`service
+
+```python
+@classmethod
+def is_token_secured_service(cls, ledger_api: LedgerApi, contract_address: str,
+ service_id: int) -> JSONLike
+```
+
+Check if a service is secured service.
+
+
+
+#### get`_`agent`_`bond
+
+```python
+@classmethod
+def get_agent_bond(cls, ledger_api: LedgerApi, contract_address: str,
+ service_id: int, agent_id: int) -> JSONLike
+```
+
+Check if a service is secured service.
+
diff --git a/docs/configure_service/analise_test.md b/docs/configure_service/analise_test.md
index 228eb761d5..24c10b6383 100644
--- a/docs/configure_service/analise_test.md
+++ b/docs/configure_service/analise_test.md
@@ -50,7 +50,7 @@ The `valory/abstract_round_abci` skill packages come with a number of testing to
Fetch the `hello_world` agent, which comes with the `hello_world_abci` {{fsm_app}} skill within:
```bash
- autonomy fetch valory/hello_world:0.1.0:bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy
+ autonomy fetch valory/hello_world:0.1.0:bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq
mv hello_world hello_world_agent
```
@@ -77,7 +77,7 @@ The same plugin also provides tools for writing end-to-end tests for agents. The
Fetch the `hello_world` agent:
```bash
- autonomy fetch valory/hello_world:0.1.0:bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy
+ autonomy fetch valory/hello_world:0.1.0:bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq
mv hello_world hello_world_agent
```
diff --git a/docs/counter_example.md b/docs/counter_example.md
index 9c1a77d37b..f3a20166e2 100644
--- a/docs/counter_example.md
+++ b/docs/counter_example.md
@@ -25,7 +25,7 @@ you have followed the [setup instructions](guides/quick_start.md#setup). As a re
2. Use the CLI to download the `valory/counter` service.
```bash
- autonomy fetch valory/counter:0.1.0:bafybeicn5ikxm3wthdxja26bciifpkjrrb455y4whcxvyto4a7tpfvyz4e --remote --service
+ autonomy fetch valory/counter:0.1.0:bafybeiavvykikddaozj5vunp2drtlaausbix3yh4hv7tpkzityqpzjvilu --remote --service
cd counter
```
diff --git a/docs/demos/hello_world_demo.md b/docs/demos/hello_world_demo.md
index 2b2d1de0ca..323e969e39 100644
--- a/docs/demos/hello_world_demo.md
+++ b/docs/demos/hello_world_demo.md
@@ -22,14 +22,14 @@ You can find the instructions on how to run the Hello World service in the [quic
If you have [set up the framework](../guides/set_up.md#set-up-the-framework), you can fetch the source code of the Hello World agent:
```bash
-autonomy fetch valory/hello_world:0.1.0:bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy
+autonomy fetch valory/hello_world:0.1.0:bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq
mv hello_world hello_world_agent
```
and the Hello World service:
```bash
-autonomy fetch valory/hello_world:0.1.0:bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4 --service
+autonomy fetch valory/hello_world:0.1.0:bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla --service
mv hello_world hello_world_service
```
diff --git a/docs/guides/deploy_service.md b/docs/guides/deploy_service.md
index 33ed954b05..0d4ac6cd22 100644
--- a/docs/guides/deploy_service.md
+++ b/docs/guides/deploy_service.md
@@ -35,7 +35,7 @@ We illustrate the full local deployment workflow using the `hello_world` service
=== "Remote registry"
```bash
- autonomy fetch valory/hello_world:0.1.0:bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4 --service
+ autonomy fetch valory/hello_world:0.1.0:bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla --service
```
2. **Build the agents' image.** Navigate to the service runtime folder that you have just created and build the Docker image of the agents of the service:
diff --git a/docs/guides/quick_start.md b/docs/guides/quick_start.md
index c74d14d5b9..10a0bb887c 100644
--- a/docs/guides/quick_start.md
+++ b/docs/guides/quick_start.md
@@ -20,7 +20,7 @@ Before starting this guide, ensure that your machine satisfies the framework req
1. Fetch the [Hello World service](../demos/hello_world_demo.md) from the remote registry. Within the workspace folder (not the remote registry) run:
```bash
- autonomy fetch valory/hello_world:0.1.0:bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4 --service
+ autonomy fetch valory/hello_world:0.1.0:bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla --service
```
2. Build the Docker image of the service agents:
diff --git a/docs/guides/set_up.md b/docs/guides/set_up.md
index c20eba6ac2..aa0b84bd38 100644
--- a/docs/guides/set_up.md
+++ b/docs/guides/set_up.md
@@ -75,7 +75,7 @@ This is roughly how your workspace should look like:
You can override the default registry in use (set up with `autonomy init`) for a particular command through the flags `--registry-path` and `--local`. For example, if the framework was initialized with the remote registry, the following command will fetch a runtime folder for the `hello_world` agent from the remote registry:
```bash
- autonomy fetch valory/hello_world:0.1.0:bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy
+ autonomy fetch valory/hello_world:0.1.0:bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq
```
On the other hand, if you want to fetch the copy stored in your local registry, then you can use:
@@ -106,13 +106,13 @@ If you plan to follow the guides in the next sections, you need to populate the
"dev": {
},
"third_party": {
- "service/valory/hello_world/0.1.0": "bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4",
- "agent/valory/hello_world/0.1.0": "bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy",
- "connection/valory/abci/0.1.0": "bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya",
+ "service/valory/hello_world/0.1.0": "bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla",
+ "agent/valory/hello_world/0.1.0": "bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq",
+ "connection/valory/abci/0.1.0": "bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq",
"connection/valory/http_client/0.23.0": "bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y",
"connection/valory/ipfs/0.1.0": "bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq",
"connection/valory/ledger/0.19.0": "bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a",
- "contract/valory/service_registry/0.1.0": "bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4",
+ "contract/valory/service_registry/0.1.0": "bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm",
"protocol/open_aea/signing/1.0.0": "bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m",
"protocol/valory/abci/0.1.0": "bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe",
"protocol/valory/acn/1.1.0": "bafybeiapa5ilsobggnspoqhspftwolrx52udrwmaxdxgrk26heuvl4oooa",
@@ -121,9 +121,9 @@ If you plan to follow the guides in the next sections, you need to populate the
"protocol/valory/ipfs/0.1.0": "bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa",
"protocol/valory/ledger_api/1.0.0": "bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby",
"protocol/valory/tendermint/0.1.0": "bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa",
- "skill/valory/abstract_abci/0.1.0": "bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy",
- "skill/valory/abstract_round_abci/0.1.0": "bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y",
- "skill/valory/hello_world_abci/0.1.0": "bafybeif7lzot5lh4zbomho2nyxh4l56grcrmuikqp5khas6z7rbwzw5cnq",
+ "skill/valory/abstract_abci/0.1.0": "bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i",
+ "skill/valory/abstract_round_abci/0.1.0": "bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke",
+ "skill/valory/hello_world_abci/0.1.0": "bafybeigvearu2pcf7oepxpfj64lbzgm2oxcbgxarxxbqkgd44dvarmij74",
"connection/valory/p2p_libp2p_client/0.1.0": "bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq"
}
}
diff --git a/docs/package_list.md b/docs/package_list.md
index a8fecf72d7..ffcf3102bf 100644
--- a/docs/package_list.md
+++ b/docs/package_list.md
@@ -1,50 +1,50 @@
| Package name | Package hash | Description |
| ------------------------------------------------------------- | ------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| protocol/valory/abci/0.1.0 | `bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe` | A protocol for ABCI requests and responses. |
-| connection/valory/abci/0.1.0 | `bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya` | connection to wrap communication with an ABCI server. |
+| connection/valory/abci/0.1.0 | `bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq` | connection to wrap communication with an ABCI server. |
| connection/valory/ipfs/0.1.0 | `bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq` | A connection responsible for uploading and downloading files from IPFS. |
-| contract/valory/gnosis_safe_proxy_factory/0.1.0 | `bafybeihlc3keplnos7vnlibehpt2rvfhlljyshbsvhbkwgyhgdvqublzeq` | Gnosis Safe proxy factory (GnosisSafeProxyFactory) contract |
+| contract/valory/gnosis_safe_proxy_factory/0.1.0 | `bafybeidahlnxcjaylwetojmmkhxeb7d7jtmiqxzfae2g7zwyluxvlvhsr4` | Gnosis Safe proxy factory (GnosisSafeProxyFactory) contract |
| contract/valory/component_registry/0.1.0 | `bafybeigklynwl3mfav5yt5zdkrqe6rukv4ygdhpdusk66ojt4jj7tunxcy` | Component registry contract |
| contract/valory/agent_registry/0.1.0 | `bafybeielrs5qih3r6qhnily6x4h4j4j6kux6eqr546homow4c5ljgfyljq` | Agent registry contract |
| contract/valory/registries_manager/0.1.0 | `bafybeihcilb27ekgoplmc43iog2zrus63fufql4rly2umbuj573nu3zpg4` | Registries Manager contract |
| contract/valory/service_manager/0.1.0 | `bafybeid4ufdirr3qaksk72iwnuzfelhzqwh7t3q56x2ixhzvwltte4yy5a` | Service Manager contract |
-| skill/valory/test_ipfs_abci/0.1.0 | `bafybeidsj2kfj2o7sh5mj6pz7ftrg72edqkij3fbuxkpkvzxuoqdzgd4i4` | IPFS e2e testing application. |
-| agent/valory/test_ipfs/0.1.0 | `bafybeib2myejevrwusvucak2fk5hx5qafzjwtnxvbkddldtgzexnwk64ni` | Agent for testing the ABCI connection. |
-| contract/valory/service_registry/0.1.0 | `bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4` | Service Registry contract |
+| skill/valory/test_ipfs_abci/0.1.0 | `bafybeickvk3l5b5ryzu3amva73nbcccajeygnjitd3lzgb7kb4z754a3oa` | IPFS e2e testing application. |
+| agent/valory/test_ipfs/0.1.0 | `bafybeidgyqzkngpo4tdvyrj4apq5txscrslptrp5n5r4xt5uchu4f3edfa` | Agent for testing the ABCI connection. |
+| contract/valory/service_registry/0.1.0 | `bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm` | Service Registry contract |
| protocol/valory/tendermint/0.1.0 | `bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa` | A protocol for communication between two AEAs to share tendermint configuration details. |
| protocol/valory/ipfs/0.1.0 | `bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa` | A protocol specification for IPFS requests and responses. |
-| skill/valory/abstract_abci/0.1.0 | `bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy` | The abci skill provides a template of an ABCI application. |
-| contract/valory/gnosis_safe/0.1.0 | `bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri` | Gnosis Safe (GnosisSafeL2) contract |
-| skill/valory/abstract_round_abci/0.1.0 | `bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y` | abstract round-based ABCI application |
-| contract/valory/multisend/0.1.0 | `bafybeidfktuprydtmi4umolfles5qaf7s3t26puvvs44hvkq6uwwr3ia3a` | MultiSend contract |
-| skill/valory/transaction_settlement_abci/0.1.0 | `bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy` | ABCI application for transaction settlement. |
-| skill/valory/registration_abci/0.1.0 | `bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe` | ABCI application for common apps. |
-| skill/valory/reset_pause_abci/0.1.0 | `bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy` | ABCI application for resetting and pausing app executions. |
-| skill/valory/termination_abci/0.1.0 | `bafybeieqfhvk6klnvxak3vo2ibslkrnnk2bfsn5l3gbaelcprd6cjngxki` | Termination skill. |
-| skill/valory/counter/0.1.0 | `bafybeidcjzsf7y7ni4z7apngrwecpi7562i6n6chun3hwjtbojnq3x2dci` | The ABCI Counter application example. |
+| skill/valory/abstract_abci/0.1.0 | `bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i` | The abci skill provides a template of an ABCI application. |
+| contract/valory/gnosis_safe/0.1.0 | `bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre` | Gnosis Safe (GnosisSafeL2) contract |
+| skill/valory/abstract_round_abci/0.1.0 | `bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke` | abstract round-based ABCI application |
+| contract/valory/multisend/0.1.0 | `bafybeieg4tywd5lww2vygvpkilg3hcepa4rmhehjuamyvdf6vazt554v6u` | MultiSend contract |
+| skill/valory/transaction_settlement_abci/0.1.0 | `bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy` | ABCI application for transaction settlement. |
+| skill/valory/registration_abci/0.1.0 | `bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu` | ABCI application for common apps. |
+| skill/valory/reset_pause_abci/0.1.0 | `bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu` | ABCI application for resetting and pausing app executions. |
+| skill/valory/termination_abci/0.1.0 | `bafybeifkjdoj7i6hacv44to62ohbdbnsilcue2c4ghzwhbegbahxjsq3kq` | Termination skill. |
+| skill/valory/counter/0.1.0 | `bafybeiby765punrqo7pciugm4gastlsivkxuj7acluodkeukjmd3zuplkq` | The ABCI Counter application example. |
| skill/valory/counter_client/0.1.0 | `bafybeianskoghhdffn4wqquup3rtziefq6jareutugb6a5zkbvuvctgk3i` | A client for the ABCI counter application. |
-| skill/valory/hello_world_abci/0.1.0 | `bafybeif7lzot5lh4zbomho2nyxh4l56grcrmuikqp5khas6z7rbwzw5cnq` | Hello World ABCI application. |
-| skill/valory/register_reset_abci/0.1.0 | `bafybeic24xniwheivtobqjowezwbcmvikvurvsnil2iv36khfr2zwmpfiu` | ABCI application for dummy skill that registers and resets |
-| skill/valory/register_termination_abci/0.1.0 | `bafybeibyh32rpnmioqb2jxxqf5fnpa74agu5e5zffr6vilwq45lngfjgfa` | ABCI application for dummy skill that registers and resets |
-| skill/valory/test_abci/0.1.0 | `bafybeif7bxthxuclmhxq5gdrvdfegdqxlr2jfcxagafbe6kwpsxa5i5qie` | ABCI application for testing the ABCI connection. |
-| agent/valory/abstract_abci/0.1.0 | `bafybeif3yvli3eonmf6yojxjzj7qgig47xhmg76zoihodcsbhqigqxj54m` | The abstract ABCI AEA - for testing purposes only. |
-| agent/valory/counter/0.1.0 | `bafybeigsajfhcox22vrlqsodmi6y5l2jwx7xnzhhu4wbguqoas22ooqafq` | The ABCI Counter example as an AEA |
+| skill/valory/hello_world_abci/0.1.0 | `bafybeigvearu2pcf7oepxpfj64lbzgm2oxcbgxarxxbqkgd44dvarmij74` | Hello World ABCI application. |
+| skill/valory/register_reset_abci/0.1.0 | `bafybeialmzikymc4jbgvey3uilweue4kdrjt7lbyz6w6rksjhkmg2yxuwm` | ABCI application for dummy skill that registers and resets |
+| skill/valory/register_termination_abci/0.1.0 | `bafybeidzv7ota52ykxiftciceqb7ygbu3j5acgbq4g6bzqk3gp4aylyg6q` | ABCI application for dummy skill that registers and resets |
+| skill/valory/test_abci/0.1.0 | `bafybeibxmlhwquvmmgswyy42elv6pyawskrtr3qj4zy22kz2vm3ziysu6y` | ABCI application for testing the ABCI connection. |
+| agent/valory/abstract_abci/0.1.0 | `bafybeib7liikswpxlcv5tri7w4gaj2jt5usefblcotzldupd35ia2tglo4` | The abstract ABCI AEA - for testing purposes only. |
+| agent/valory/counter/0.1.0 | `bafybeiggz75ctm7kjqz7nwr4n74nnea3i623maheoshsjxqtotsqt6ff4y` | The ABCI Counter example as an AEA |
| agent/valory/counter_client/0.1.0 | `bafybeihwqpwbejtk25xvlsltinpxe5myb33vpv4ee7qxqgsbwuzkdzujoe` | The ABCI Counter example as an AEA |
-| agent/valory/hello_world/0.1.0 | `bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy` | Hello World ABCI example. |
-| agent/valory/register_reset/0.1.0 | `bafybeibit5dfccbcxxoexlwb36cro5imywlgm6cwc74jomu52ulrjucbhq` | Register reset to replicate Tendermint issue. |
-| agent/valory/register_termination/0.1.0 | `bafybeiclvirlrxynkrhlj7smmw2ubk756b72mhwzvaiwkzpiwlzczmvkuq` | Register terminate to test the termination feature. |
-| agent/valory/registration_start_up/0.1.0 | `bafybeifwvunfi6uf3bkv5zbw5ckgl7m6px6zspsnkebbqiag7zcpdwft2e` | Registration start-up ABCI example. |
-| agent/valory/test_abci/0.1.0 | `bafybeido3s7okni7nnvw7orzf4buumfmyhvjy6p2bhznux7xxbz2l5rgae` | Agent for testing the ABCI connection. |
-| service/valory/counter/0.1.0 | `bafybeicn5ikxm3wthdxja26bciifpkjrrb455y4whcxvyto4a7tpfvyz4e` | A set of agents incrementing a counter |
-| service/valory/hello_world/0.1.0 | `bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4` | A simple demonstration of a simple ABCI application |
-| service/valory/register_reset/0.1.0 | `bafybeiaiedkufei6vqp7p6pznp7z2klrlzullqz2jlzvqgnakyu5cmg22y` | Test and debug tendermint reset mechanism. |
-| skill/valory/register_reset_recovery_abci/0.1.0 | `bafybeidi3v747exsmoy6qbnis4z3avozpflqk7n23w5hbmhijo2k5kfv74` | ABCI application for dummy skill that registers and resets |
-| agent/valory/register_reset_recovery/0.1.0 | `bafybeibone4sts543o2s2fj5ipnsdw5mlburnqseifjbs2vmkv65uvf3ky` | Agent to showcase hard reset as a recovery mechanism. |
+| agent/valory/hello_world/0.1.0 | `bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq` | Hello World ABCI example. |
+| agent/valory/register_reset/0.1.0 | `bafybeibnuxwbb4xyluz5u2pse73zur477x2dquvveogw47qsnylyyvfqni` | Register reset to replicate Tendermint issue. |
+| agent/valory/register_termination/0.1.0 | `bafybeialzsm6d6v5p4nwwy4tdls5smat4mbmykomyr2z6kjemjfi3nv6ke` | Register terminate to test the termination feature. |
+| agent/valory/registration_start_up/0.1.0 | `bafybeicz73cmpcijyjefzwo4gdfwsigjg7ui2au4drrb56oe2gnq3qyws4` | Registration start-up ABCI example. |
+| agent/valory/test_abci/0.1.0 | `bafybeifsqrqusfacaennm2uhtuokwlshsf7ptrqrltd54jrtpon2u6b25y` | Agent for testing the ABCI connection. |
+| service/valory/counter/0.1.0 | `bafybeiavvykikddaozj5vunp2drtlaausbix3yh4hv7tpkzityqpzjvilu` | A set of agents incrementing a counter |
+| service/valory/hello_world/0.1.0 | `bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla` | A simple demonstration of a simple ABCI application |
+| service/valory/register_reset/0.1.0 | `bafybeifiw4zt7cukh5izqy7ybc6i2rmjngu3ciivmfecnk4inisic7coxe` | Test and debug tendermint reset mechanism. |
+| skill/valory/register_reset_recovery_abci/0.1.0 | `bafybeihnbudh6zqhrsobhxstrmjvrvbuvfwjlbfc65ofec6ptzwbyhrtpq` | ABCI application for dummy skill that registers and resets |
+| agent/valory/register_reset_recovery/0.1.0 | `bafybeihvxr6g3vpcjur233tuiy26s67kjc2jnk5tve3ezdwvwjux4fqvlq` | Agent to showcase hard reset as a recovery mechanism. |
| contract/valory/multicall2/0.1.0 | `bafybeihhn3vic2yje7ehmi43a4wus4vnei5nwihetwk73tqtgbnn44pr2u` | The MakerDAO multicall2 contract. |
-| skill/valory/slashing_abci/0.1.0 | `bafybeih2q3hatumfrd2me75djo6vm6t5zjpn4pi4sx2dguyrymtg47vjru` | Slashing skill. |
-| skill/valory/offend_abci/0.1.0 | `bafybeibmlwjfv4ttq2htq2o2g3pef5t3pawgmdt5td6wt5axjxgowk3ezu` | Offend ABCI application. |
-| skill/valory/offend_slash_abci/0.1.0 | `bafybeicpxjwi6soefemt3yjuo22yols3xhslf4dnwpumnmq7b6wyjmtbxi` | ABCI application used in order to test the slashing abci |
-| agent/valory/offend_slash/0.1.0 | `bafybeigrvq2jmgcc6aaeza4at34s2eb6d47vufxr6fzlhgf22bxm6iw5tu` | Offend and slash to test the slashing feature. |
+| skill/valory/slashing_abci/0.1.0 | `bafybeidkwuyzjof4srz2gd6irl3wklxi6ebepsvid6pdtdbz5bdkioagla` | Slashing skill. |
+| skill/valory/offend_abci/0.1.0 | `bafybeih74czok5wly6db4635ssdzjcxixlprra5fhdcee7qxg7wl6532om` | Offend ABCI application. |
+| skill/valory/offend_slash_abci/0.1.0 | `bafybeiaappqga6tz2y7x7ezyr2cvd7nawhlnboqwwjtlqwjda3lty2iedm` | ABCI application used in order to test the slashing abci |
+| agent/valory/offend_slash/0.1.0 | `bafybeigda3ji42ovsocw2ua4x2rwv2qmeyeis4qxuun7yddfb76tluesca` | Offend and slash to test the slashing feature. |
| contract/valory/erc20/0.1.0 | `bafybeiag7wpfri44bwrx26374mnxyglmwxod6gu37foqkvloqr7oeldlgu` | The scaffold contract scaffolds a contract to be implemented by the developer. |
| contract/valory/service_registry_token_utility/0.1.0 | `bafybeifdia2y5546tvk6xzxeaqzf2n5n7dutj2hdzbgenxohaqhjtnjqm4` | The scaffold contract scaffolds a contract to be implemented by the developer. |
| protocol/open_aea/signing/1.0.0 | `bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m` | A protocol for communication between skills and decision maker. |
diff --git a/docs/upgrading.md b/docs/upgrading.md
index 631f75cb47..3ace725bc5 100644
--- a/docs/upgrading.md
+++ b/docs/upgrading.md
@@ -5,10 +5,15 @@ Below we describe the additional manual steps required to upgrade between differ
# Open Autonomy
-## `v0.12.1` to `v0.12.1.post1`
+
+## `v0.12.1.post1` to `v0.12.1.post2`
No backwards incompatible changes
+## `v0.12.1` to `v0.12.1.post1`
+
+- Environment variable names have changed for custom contract address, refer to the `mint/service` CLI tools documentation regarding the changes.
+
## `v0.12.0` to `v0.12.1`
No backwards incompatible changes
diff --git a/packages/packages.json b/packages/packages.json
index c39c5abe77..867736ffd5 100644
--- a/packages/packages.json
+++ b/packages/packages.json
@@ -1,50 +1,50 @@
{
"dev": {
"protocol/valory/abci/0.1.0": "bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe",
- "connection/valory/abci/0.1.0": "bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya",
+ "connection/valory/abci/0.1.0": "bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq",
"connection/valory/ipfs/0.1.0": "bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq",
- "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeihlc3keplnos7vnlibehpt2rvfhlljyshbsvhbkwgyhgdvqublzeq",
+ "contract/valory/gnosis_safe_proxy_factory/0.1.0": "bafybeidahlnxcjaylwetojmmkhxeb7d7jtmiqxzfae2g7zwyluxvlvhsr4",
"contract/valory/component_registry/0.1.0": "bafybeigklynwl3mfav5yt5zdkrqe6rukv4ygdhpdusk66ojt4jj7tunxcy",
"contract/valory/agent_registry/0.1.0": "bafybeielrs5qih3r6qhnily6x4h4j4j6kux6eqr546homow4c5ljgfyljq",
"contract/valory/registries_manager/0.1.0": "bafybeihcilb27ekgoplmc43iog2zrus63fufql4rly2umbuj573nu3zpg4",
"contract/valory/service_manager/0.1.0": "bafybeid4ufdirr3qaksk72iwnuzfelhzqwh7t3q56x2ixhzvwltte4yy5a",
- "skill/valory/test_ipfs_abci/0.1.0": "bafybeidsj2kfj2o7sh5mj6pz7ftrg72edqkij3fbuxkpkvzxuoqdzgd4i4",
- "agent/valory/test_ipfs/0.1.0": "bafybeib2myejevrwusvucak2fk5hx5qafzjwtnxvbkddldtgzexnwk64ni",
- "contract/valory/service_registry/0.1.0": "bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4",
+ "skill/valory/test_ipfs_abci/0.1.0": "bafybeickvk3l5b5ryzu3amva73nbcccajeygnjitd3lzgb7kb4z754a3oa",
+ "agent/valory/test_ipfs/0.1.0": "bafybeidgyqzkngpo4tdvyrj4apq5txscrslptrp5n5r4xt5uchu4f3edfa",
+ "contract/valory/service_registry/0.1.0": "bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm",
"protocol/valory/tendermint/0.1.0": "bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa",
"protocol/valory/ipfs/0.1.0": "bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa",
- "skill/valory/abstract_abci/0.1.0": "bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy",
- "contract/valory/gnosis_safe/0.1.0": "bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri",
- "skill/valory/abstract_round_abci/0.1.0": "bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y",
- "contract/valory/multisend/0.1.0": "bafybeidfktuprydtmi4umolfles5qaf7s3t26puvvs44hvkq6uwwr3ia3a",
- "skill/valory/transaction_settlement_abci/0.1.0": "bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy",
- "skill/valory/registration_abci/0.1.0": "bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe",
- "skill/valory/reset_pause_abci/0.1.0": "bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy",
- "skill/valory/termination_abci/0.1.0": "bafybeieqfhvk6klnvxak3vo2ibslkrnnk2bfsn5l3gbaelcprd6cjngxki",
- "skill/valory/counter/0.1.0": "bafybeidcjzsf7y7ni4z7apngrwecpi7562i6n6chun3hwjtbojnq3x2dci",
+ "skill/valory/abstract_abci/0.1.0": "bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i",
+ "contract/valory/gnosis_safe/0.1.0": "bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre",
+ "skill/valory/abstract_round_abci/0.1.0": "bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke",
+ "contract/valory/multisend/0.1.0": "bafybeieg4tywd5lww2vygvpkilg3hcepa4rmhehjuamyvdf6vazt554v6u",
+ "skill/valory/transaction_settlement_abci/0.1.0": "bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy",
+ "skill/valory/registration_abci/0.1.0": "bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu",
+ "skill/valory/reset_pause_abci/0.1.0": "bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu",
+ "skill/valory/termination_abci/0.1.0": "bafybeifkjdoj7i6hacv44to62ohbdbnsilcue2c4ghzwhbegbahxjsq3kq",
+ "skill/valory/counter/0.1.0": "bafybeiby765punrqo7pciugm4gastlsivkxuj7acluodkeukjmd3zuplkq",
"skill/valory/counter_client/0.1.0": "bafybeianskoghhdffn4wqquup3rtziefq6jareutugb6a5zkbvuvctgk3i",
- "skill/valory/hello_world_abci/0.1.0": "bafybeif7lzot5lh4zbomho2nyxh4l56grcrmuikqp5khas6z7rbwzw5cnq",
- "skill/valory/register_reset_abci/0.1.0": "bafybeic24xniwheivtobqjowezwbcmvikvurvsnil2iv36khfr2zwmpfiu",
- "skill/valory/register_termination_abci/0.1.0": "bafybeibyh32rpnmioqb2jxxqf5fnpa74agu5e5zffr6vilwq45lngfjgfa",
- "skill/valory/test_abci/0.1.0": "bafybeif7bxthxuclmhxq5gdrvdfegdqxlr2jfcxagafbe6kwpsxa5i5qie",
- "agent/valory/abstract_abci/0.1.0": "bafybeif3yvli3eonmf6yojxjzj7qgig47xhmg76zoihodcsbhqigqxj54m",
- "agent/valory/counter/0.1.0": "bafybeigsajfhcox22vrlqsodmi6y5l2jwx7xnzhhu4wbguqoas22ooqafq",
+ "skill/valory/hello_world_abci/0.1.0": "bafybeigvearu2pcf7oepxpfj64lbzgm2oxcbgxarxxbqkgd44dvarmij74",
+ "skill/valory/register_reset_abci/0.1.0": "bafybeialmzikymc4jbgvey3uilweue4kdrjt7lbyz6w6rksjhkmg2yxuwm",
+ "skill/valory/register_termination_abci/0.1.0": "bafybeidzv7ota52ykxiftciceqb7ygbu3j5acgbq4g6bzqk3gp4aylyg6q",
+ "skill/valory/test_abci/0.1.0": "bafybeibxmlhwquvmmgswyy42elv6pyawskrtr3qj4zy22kz2vm3ziysu6y",
+ "agent/valory/abstract_abci/0.1.0": "bafybeib7liikswpxlcv5tri7w4gaj2jt5usefblcotzldupd35ia2tglo4",
+ "agent/valory/counter/0.1.0": "bafybeiggz75ctm7kjqz7nwr4n74nnea3i623maheoshsjxqtotsqt6ff4y",
"agent/valory/counter_client/0.1.0": "bafybeihwqpwbejtk25xvlsltinpxe5myb33vpv4ee7qxqgsbwuzkdzujoe",
- "agent/valory/hello_world/0.1.0": "bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy",
- "agent/valory/register_reset/0.1.0": "bafybeibit5dfccbcxxoexlwb36cro5imywlgm6cwc74jomu52ulrjucbhq",
- "agent/valory/register_termination/0.1.0": "bafybeiclvirlrxynkrhlj7smmw2ubk756b72mhwzvaiwkzpiwlzczmvkuq",
- "agent/valory/registration_start_up/0.1.0": "bafybeifwvunfi6uf3bkv5zbw5ckgl7m6px6zspsnkebbqiag7zcpdwft2e",
- "agent/valory/test_abci/0.1.0": "bafybeido3s7okni7nnvw7orzf4buumfmyhvjy6p2bhznux7xxbz2l5rgae",
- "service/valory/counter/0.1.0": "bafybeicn5ikxm3wthdxja26bciifpkjrrb455y4whcxvyto4a7tpfvyz4e",
- "service/valory/hello_world/0.1.0": "bafybeibao4o6x2b5qrfe5zo2ksz2skhv2sgazhoixz67l5ndwbomjq6sv4",
- "service/valory/register_reset/0.1.0": "bafybeiaiedkufei6vqp7p6pznp7z2klrlzullqz2jlzvqgnakyu5cmg22y",
- "skill/valory/register_reset_recovery_abci/0.1.0": "bafybeidi3v747exsmoy6qbnis4z3avozpflqk7n23w5hbmhijo2k5kfv74",
- "agent/valory/register_reset_recovery/0.1.0": "bafybeibone4sts543o2s2fj5ipnsdw5mlburnqseifjbs2vmkv65uvf3ky",
+ "agent/valory/hello_world/0.1.0": "bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq",
+ "agent/valory/register_reset/0.1.0": "bafybeibnuxwbb4xyluz5u2pse73zur477x2dquvveogw47qsnylyyvfqni",
+ "agent/valory/register_termination/0.1.0": "bafybeialzsm6d6v5p4nwwy4tdls5smat4mbmykomyr2z6kjemjfi3nv6ke",
+ "agent/valory/registration_start_up/0.1.0": "bafybeicz73cmpcijyjefzwo4gdfwsigjg7ui2au4drrb56oe2gnq3qyws4",
+ "agent/valory/test_abci/0.1.0": "bafybeifsqrqusfacaennm2uhtuokwlshsf7ptrqrltd54jrtpon2u6b25y",
+ "service/valory/counter/0.1.0": "bafybeiavvykikddaozj5vunp2drtlaausbix3yh4hv7tpkzityqpzjvilu",
+ "service/valory/hello_world/0.1.0": "bafybeia3r5ulvcgux6cfdk6atja75h4r6nzazqs4v4xewuhohhvxg5gzla",
+ "service/valory/register_reset/0.1.0": "bafybeifiw4zt7cukh5izqy7ybc6i2rmjngu3ciivmfecnk4inisic7coxe",
+ "skill/valory/register_reset_recovery_abci/0.1.0": "bafybeihnbudh6zqhrsobhxstrmjvrvbuvfwjlbfc65ofec6ptzwbyhrtpq",
+ "agent/valory/register_reset_recovery/0.1.0": "bafybeihvxr6g3vpcjur233tuiy26s67kjc2jnk5tve3ezdwvwjux4fqvlq",
"contract/valory/multicall2/0.1.0": "bafybeihhn3vic2yje7ehmi43a4wus4vnei5nwihetwk73tqtgbnn44pr2u",
- "skill/valory/slashing_abci/0.1.0": "bafybeih2q3hatumfrd2me75djo6vm6t5zjpn4pi4sx2dguyrymtg47vjru",
- "skill/valory/offend_abci/0.1.0": "bafybeibmlwjfv4ttq2htq2o2g3pef5t3pawgmdt5td6wt5axjxgowk3ezu",
- "skill/valory/offend_slash_abci/0.1.0": "bafybeicpxjwi6soefemt3yjuo22yols3xhslf4dnwpumnmq7b6wyjmtbxi",
- "agent/valory/offend_slash/0.1.0": "bafybeigrvq2jmgcc6aaeza4at34s2eb6d47vufxr6fzlhgf22bxm6iw5tu",
+ "skill/valory/slashing_abci/0.1.0": "bafybeidkwuyzjof4srz2gd6irl3wklxi6ebepsvid6pdtdbz5bdkioagla",
+ "skill/valory/offend_abci/0.1.0": "bafybeih74czok5wly6db4635ssdzjcxixlprra5fhdcee7qxg7wl6532om",
+ "skill/valory/offend_slash_abci/0.1.0": "bafybeiaappqga6tz2y7x7ezyr2cvd7nawhlnboqwwjtlqwjda3lty2iedm",
+ "agent/valory/offend_slash/0.1.0": "bafybeigda3ji42ovsocw2ua4x2rwv2qmeyeis4qxuun7yddfb76tluesca",
"contract/valory/erc20/0.1.0": "bafybeiag7wpfri44bwrx26374mnxyglmwxod6gu37foqkvloqr7oeldlgu",
"contract/valory/service_registry_token_utility/0.1.0": "bafybeifdia2y5546tvk6xzxeaqzf2n5n7dutj2hdzbgenxohaqhjtnjqm4"
},
diff --git a/packages/valory/agents/abstract_abci/aea-config.yaml b/packages/valory/agents/abstract_abci/aea-config.yaml
index c9f8662f8b..128c68237d 100644
--- a/packages/valory/agents/abstract_abci/aea-config.yaml
+++ b/packages/valory/agents/abstract_abci/aea-config.yaml
@@ -11,14 +11,14 @@ fingerprint:
tests/test_abstract_abci.py: bafybeic4hileugdjd6bwy4n5beqrjo5auwalz5twt3lyx6m62kb65nc6ca
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts: []
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -51,7 +51,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: valory/abci:0.1.0
---
public_id: valory/abci:0.1.0
diff --git a/packages/valory/agents/counter/aea-config.yaml b/packages/valory/agents/counter/aea-config.yaml
index b811c860f6..15340480bf 100644
--- a/packages/valory/agents/counter/aea-config.yaml
+++ b/packages/valory/agents/counter/aea-config.yaml
@@ -11,15 +11,15 @@ fingerprint:
tests/test_counter.py: bafybeiafaruvutgm65f6wnc4u5z37cyiizuttbpelgs4bpmimnjyp5tnj4
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts: []
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/counter:0.1.0:bafybeidcjzsf7y7ni4z7apngrwecpi7562i6n6chun3hwjtbojnq3x2dci
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/counter:0.1.0:bafybeiby765punrqo7pciugm4gastlsivkxuj7acluodkeukjmd3zuplkq
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -52,7 +52,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: null
---
public_id: valory/abci:0.1.0
diff --git a/packages/valory/agents/hello_world/aea-config.yaml b/packages/valory/agents/hello_world/aea-config.yaml
index 49da7eb351..bb82fc7994 100644
--- a/packages/valory/agents/hello_world/aea-config.yaml
+++ b/packages/valory/agents/hello_world/aea-config.yaml
@@ -11,7 +11,7 @@ fingerprint:
tests/test_hello_world.py: bafybeifbgqpywtwhk6n4wngdrrk3oujwqw3fsbk54gsw5sep3pkkgym2ue
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
@@ -23,9 +23,9 @@ protocols:
- valory/http:1.0.0:bafybeia5bxdua2i6chw6pg47bvoljzcpuqxzy4rdrorbdmcbnwmnfdobtu
- valory/ipfs:0.1.0:bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/hello_world_abci:0.1.0:bafybeif7lzot5lh4zbomho2nyxh4l56grcrmuikqp5khas6z7rbwzw5cnq
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/hello_world_abci:0.1.0:bafybeigvearu2pcf7oepxpfj64lbzgm2oxcbgxarxxbqkgd44dvarmij74
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -58,7 +58,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: null
---
public_id: valory/hello_world_abci:0.1.0
diff --git a/packages/valory/agents/offend_slash/aea-config.yaml b/packages/valory/agents/offend_slash/aea-config.yaml
index f95f6ccee2..db55516d4c 100644
--- a/packages/valory/agents/offend_slash/aea-config.yaml
+++ b/packages/valory/agents/offend_slash/aea-config.yaml
@@ -11,15 +11,15 @@ fingerprint:
tests/test_offend_slash.py: bafybeideqlz3vfssoylvesyr4oualignptsjsbiqlzgoskpd7ru6vosg4m
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/gnosis_safe:0.1.0:bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri
-- valory/gnosis_safe_proxy_factory:0.1.0:bafybeihlc3keplnos7vnlibehpt2rvfhlljyshbsvhbkwgyhgdvqublzeq
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/gnosis_safe:0.1.0:bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre
+- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidahlnxcjaylwetojmmkhxeb7d7jtmiqxzfae2g7zwyluxvlvhsr4
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
@@ -30,14 +30,14 @@ protocols:
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/offend_abci:0.1.0:bafybeibmlwjfv4ttq2htq2o2g3pef5t3pawgmdt5td6wt5axjxgowk3ezu
-- valory/offend_slash_abci:0.1.0:bafybeicpxjwi6soefemt3yjuo22yols3xhslf4dnwpumnmq7b6wyjmtbxi
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
-- valory/slashing_abci:0.1.0:bafybeih2q3hatumfrd2me75djo6vm6t5zjpn4pi4sx2dguyrymtg47vjru
-- valory/transaction_settlement_abci:0.1.0:bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/offend_abci:0.1.0:bafybeih74czok5wly6db4635ssdzjcxixlprra5fhdcee7qxg7wl6532om
+- valory/offend_slash_abci:0.1.0:bafybeiaappqga6tz2y7x7ezyr2cvd7nawhlnboqwwjtlqwjda3lty2iedm
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
+- valory/slashing_abci:0.1.0:bafybeidkwuyzjof4srz2gd6irl3wklxi6ebepsvid6pdtdbz5bdkioagla
+- valory/transaction_settlement_abci:0.1.0:bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -71,7 +71,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: null
---
public_id: valory/abci:0.1.0
diff --git a/packages/valory/agents/register_reset/aea-config.yaml b/packages/valory/agents/register_reset/aea-config.yaml
index 34a57e988e..ad63bca96b 100644
--- a/packages/valory/agents/register_reset/aea-config.yaml
+++ b/packages/valory/agents/register_reset/aea-config.yaml
@@ -22,7 +22,7 @@ fingerprint:
tests/test_register_reset.py: bafybeiecdipytoorhfpecbzd5pyx7e5zjpxsjc6yyqxezq2q6bhz7yuk7i
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
@@ -34,11 +34,11 @@ protocols:
- valory/http:1.0.0:bafybeia5bxdua2i6chw6pg47bvoljzcpuqxzy4rdrorbdmcbnwmnfdobtu
- valory/ipfs:0.1.0:bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/register_reset_abci:0.1.0:bafybeic24xniwheivtobqjowezwbcmvikvurvsnil2iv36khfr2zwmpfiu
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/register_reset_abci:0.1.0:bafybeialmzikymc4jbgvey3uilweue4kdrjt7lbyz6w6rksjhkmg2yxuwm
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -71,7 +71,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: null
---
public_id: valory/abci:0.1.0
diff --git a/packages/valory/agents/register_reset_recovery/aea-config.yaml b/packages/valory/agents/register_reset_recovery/aea-config.yaml
index d540f8f3d8..57579ce9b9 100644
--- a/packages/valory/agents/register_reset_recovery/aea-config.yaml
+++ b/packages/valory/agents/register_reset_recovery/aea-config.yaml
@@ -12,7 +12,7 @@ fingerprint:
tests/test_register_reset_recovery.py: bafybeiajrzfeqcdvapjhdjggyxya2g3gdxboodpagld6uyclrsrfsiri7u
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
@@ -24,10 +24,10 @@ protocols:
- valory/http:1.0.0:bafybeia5bxdua2i6chw6pg47bvoljzcpuqxzy4rdrorbdmcbnwmnfdobtu
- valory/ipfs:0.1.0:bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/register_reset_recovery_abci:0.1.0:bafybeidi3v747exsmoy6qbnis4z3avozpflqk7n23w5hbmhijo2k5kfv74
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/register_reset_recovery_abci:0.1.0:bafybeihnbudh6zqhrsobhxstrmjvrvbuvfwjlbfc65ofec6ptzwbyhrtpq
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -63,7 +63,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
skill_exception_policy: stop_and_exit
default_connection: null
---
diff --git a/packages/valory/agents/register_termination/aea-config.yaml b/packages/valory/agents/register_termination/aea-config.yaml
index 90a9b9f8f8..09d9e30a42 100644
--- a/packages/valory/agents/register_termination/aea-config.yaml
+++ b/packages/valory/agents/register_termination/aea-config.yaml
@@ -12,16 +12,16 @@ fingerprint:
tests/test_register_reset.py: bafybeieaeelbyrorts3akgsu7xp27jdsv5u7r4psatdxph2agvpym7em6m
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/gnosis_safe:0.1.0:bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri
-- valory/gnosis_safe_proxy_factory:0.1.0:bafybeihlc3keplnos7vnlibehpt2rvfhlljyshbsvhbkwgyhgdvqublzeq
-- valory/multisend:0.1.0:bafybeidfktuprydtmi4umolfles5qaf7s3t26puvvs44hvkq6uwwr3ia3a
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/gnosis_safe:0.1.0:bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre
+- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidahlnxcjaylwetojmmkhxeb7d7jtmiqxzfae2g7zwyluxvlvhsr4
+- valory/multisend:0.1.0:bafybeieg4tywd5lww2vygvpkilg3hcepa4rmhehjuamyvdf6vazt554v6u
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
@@ -32,13 +32,13 @@ protocols:
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/register_termination_abci:0.1.0:bafybeibyh32rpnmioqb2jxxqf5fnpa74agu5e5zffr6vilwq45lngfjgfa
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
-- valory/termination_abci:0.1.0:bafybeieqfhvk6klnvxak3vo2ibslkrnnk2bfsn5l3gbaelcprd6cjngxki
-- valory/transaction_settlement_abci:0.1.0:bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/register_termination_abci:0.1.0:bafybeidzv7ota52ykxiftciceqb7ygbu3j5acgbq4g6bzqk3gp4aylyg6q
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
+- valory/termination_abci:0.1.0:bafybeifkjdoj7i6hacv44to62ohbdbnsilcue2c4ghzwhbegbahxjsq3kq
+- valory/transaction_settlement_abci:0.1.0:bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -71,7 +71,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
default_connection: null
---
public_id: valory/abci:0.1.0
diff --git a/packages/valory/agents/registration_start_up/aea-config.yaml b/packages/valory/agents/registration_start_up/aea-config.yaml
index 46de196584..e65b6d8daf 100644
--- a/packages/valory/agents/registration_start_up/aea-config.yaml
+++ b/packages/valory/agents/registration_start_up/aea-config.yaml
@@ -11,13 +11,13 @@ fingerprint:
tests/test_registration.py: bafybeickkytuflqwxg4y6n5bcnlxwnuutxsunan5ubvy7rj3y3me3ohtwi
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
@@ -28,9 +28,9 @@ protocols:
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
default_ledger: ethereum
required_ledgers:
- ethereum
@@ -66,7 +66,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
skill_exception_policy: just_log
connection_exception_policy: just_log
default_connection: null
diff --git a/packages/valory/agents/test_abci/aea-config.yaml b/packages/valory/agents/test_abci/aea-config.yaml
index cced38e7e6..02a6a0cf58 100644
--- a/packages/valory/agents/test_abci/aea-config.yaml
+++ b/packages/valory/agents/test_abci/aea-config.yaml
@@ -8,7 +8,7 @@ fingerprint:
README.md: bafybeib2s5p42rb4mbn7ag4jmjwutcm2mhvhb7q7vekxevr565crxkk6zy
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
@@ -22,9 +22,9 @@ protocols:
- valory/ipfs:0.1.0:bafybeibjzhsengtxfofqpxy6syamplevp35obemwfp4c5lhag3v2bvgysa
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/test_abci:0.1.0:bafybeif7bxthxuclmhxq5gdrvdfegdqxlr2jfcxagafbe6kwpsxa5i5qie
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/test_abci:0.1.0:bafybeibxmlhwquvmmgswyy42elv6pyawskrtr3qj4zy22kz2vm3ziysu6y
default_ledger: ethereum
required_ledgers:
- ethereum
diff --git a/packages/valory/agents/test_ipfs/aea-config.yaml b/packages/valory/agents/test_ipfs/aea-config.yaml
index 6377973d4b..27999b6c5a 100644
--- a/packages/valory/agents/test_ipfs/aea-config.yaml
+++ b/packages/valory/agents/test_ipfs/aea-config.yaml
@@ -11,13 +11,13 @@ fingerprint:
tests/test_ipfs.py: bafybeib5fxk5gjuqyevp2rvzcjnyjfuwhfapappohc32xn7rnuu6lpwws4
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
@@ -28,9 +28,9 @@ protocols:
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/test_ipfs_abci:0.1.0:bafybeidsj2kfj2o7sh5mj6pz7ftrg72edqkij3fbuxkpkvzxuoqdzgd4i4
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/test_ipfs_abci:0.1.0:bafybeickvk3l5b5ryzu3amva73nbcccajeygnjitd3lzgb7kb4z754a3oa
default_ledger: ethereum
required_ledgers:
- ethereum
diff --git a/packages/valory/connections/abci/connection.yaml b/packages/valory/connections/abci/connection.yaml
index 9c2327f19f..c01f2ffb46 100644
--- a/packages/valory/connections/abci/connection.yaml
+++ b/packages/valory/connections/abci/connection.yaml
@@ -77,7 +77,7 @@ dependencies:
hypothesis:
version: ==6.21.6
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
protobuf:
version: <=3.20.1,>=3.19
is_abstract: false
diff --git a/packages/valory/contracts/gnosis_safe/contract.yaml b/packages/valory/contracts/gnosis_safe/contract.yaml
index 6413174393..95dbc2116e 100644
--- a/packages/valory/contracts/gnosis_safe/contract.yaml
+++ b/packages/valory/contracts/gnosis_safe/contract.yaml
@@ -15,7 +15,7 @@ fingerprint:
tests/test_contract.py: bafybeiccezfy6uu24owucy3klzddbtinfs6agyarzbekmtnq7dgruimz3y
fingerprint_ignore_patterns: []
contracts:
-- valory/gnosis_safe_proxy_factory:0.1.0:bafybeihlc3keplnos7vnlibehpt2rvfhlljyshbsvhbkwgyhgdvqublzeq
+- valory/gnosis_safe_proxy_factory:0.1.0:bafybeidahlnxcjaylwetojmmkhxeb7d7jtmiqxzfae2g7zwyluxvlvhsr4
class_name: GnosisSafeContract
contract_interface_paths:
ethereum: build/GnosisSafe_V1_3_0.json
@@ -27,7 +27,7 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
packaging: {}
requests: {}
open-aea-web3:
diff --git a/packages/valory/contracts/gnosis_safe_proxy_factory/contract.yaml b/packages/valory/contracts/gnosis_safe_proxy_factory/contract.yaml
index 8a7e91de5a..76f1df3871 100644
--- a/packages/valory/contracts/gnosis_safe_proxy_factory/contract.yaml
+++ b/packages/valory/contracts/gnosis_safe_proxy_factory/contract.yaml
@@ -21,6 +21,6 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
open-aea-web3:
version: ==6.0.1
diff --git a/packages/valory/contracts/multisend/contract.py b/packages/valory/contracts/multisend/contract.py
index 4e4cd12099..0082a6e61b 100644
--- a/packages/valory/contracts/multisend/contract.py
+++ b/packages/valory/contracts/multisend/contract.py
@@ -163,7 +163,7 @@ def get_multisend_tx(
:param ledger_api: ledger API object.
:param contract_address: the contract address.
- :param multi_send_txs: the multisend transaction list.
+ :param txs: the multisend transaction list.
:return: an optional JSON-like object.
"""
multisend_contract = cls.get_instance(ledger_api, contract_address)
diff --git a/packages/valory/contracts/multisend/contract.yaml b/packages/valory/contracts/multisend/contract.yaml
index e3a1fdd021..5b5d07ee4d 100644
--- a/packages/valory/contracts/multisend/contract.yaml
+++ b/packages/valory/contracts/multisend/contract.yaml
@@ -9,7 +9,7 @@ fingerprint:
README.md: bafybeidavn55z6uoz3hdjxs4ukvykl2tkvbntnl22uexfyk7unpnfqjflq
__init__.py: bafybeigzxw44dlgdb4qxhm6zul426uyxnqtlhe3oajivdyo3ue7kb45pai
build/MultiSend.json: bafybeicamzvsaaxtboijwfnv24ctrgv5v7gn5irnydnuf62y57o7fmx2jm
- contract.py: bafybeighkiifrdcgeprv2p3pnkwyppo5qz6achdtxmnwpoe2knoywsrqlm
+ contract.py: bafybeid5h5sro6nt7jmr52ntqdwo4ajhdyxy5estq625gzvo3dbkjuzxia
tests/__init__.py: bafybeifd5zc6x3oxef7uy6mhjnt6oybna6ux7ycareqoqo52czkfxaeawm
tests/test_contract.py: bafybeid72mml6mvtv6qqr7r6a2nfbgbwpkhyitx5mmdtzcejt5zo7wcmje
fingerprint_ignore_patterns: []
diff --git a/packages/valory/contracts/service_registry/contract.yaml b/packages/valory/contracts/service_registry/contract.yaml
index 3afcd1d21d..df6dc7ca38 100644
--- a/packages/valory/contracts/service_registry/contract.yaml
+++ b/packages/valory/contracts/service_registry/contract.yaml
@@ -21,6 +21,6 @@ dependencies:
open-aea-ledger-ethereum:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
open-aea-web3:
version: ==6.0.1
diff --git a/packages/valory/services/counter/service.yaml b/packages/valory/services/counter/service.yaml
index 06fdae0d11..abf0c52bc1 100644
--- a/packages/valory/services/counter/service.yaml
+++ b/packages/valory/services/counter/service.yaml
@@ -8,7 +8,7 @@ fingerprint:
README.md: bafybeidoybzzjch4djhhafqm4e4jcrpaqmlthntcnonlsjtowwpykbc5xi
fingerprint_ignore_patterns: []
number_of_agents: 1
-agent: valory/counter:0.1.0:bafybeigsajfhcox22vrlqsodmi6y5l2jwx7xnzhhu4wbguqoas22ooqafq
+agent: valory/counter:0.1.0:bafybeiggz75ctm7kjqz7nwr4n74nnea3i623maheoshsjxqtotsqt6ff4y
deployment: {}
---
public_id: valory/ledger:0.19.0
diff --git a/packages/valory/services/hello_world/service.yaml b/packages/valory/services/hello_world/service.yaml
index a4607d97ed..c79f3ce429 100644
--- a/packages/valory/services/hello_world/service.yaml
+++ b/packages/valory/services/hello_world/service.yaml
@@ -7,7 +7,7 @@ license: Apache-2.0
fingerprint:
README.md: bafybeiapubcoersqnsnh3acia5hd7otzt7kjxekr6gkbrlumv6tkajl6jm
fingerprint_ignore_patterns: []
-agent: valory/hello_world:0.1.0:bafybeihh7xeqm673zgspnv6edspsw7ta3lvhknwjrdz4o7ww6cvimapqyy
+agent: valory/hello_world:0.1.0:bafybeifulc2gc4fqeyimb5hihvx3bjrbr437xdbb52rfjz4sgp67zajtfq
number_of_agents: 4
deployment: {}
---
diff --git a/packages/valory/services/register_reset/service.yaml b/packages/valory/services/register_reset/service.yaml
index d93315ba8e..f0b09f3a66 100644
--- a/packages/valory/services/register_reset/service.yaml
+++ b/packages/valory/services/register_reset/service.yaml
@@ -1,7 +1,7 @@
name: register_reset
author: valory
version: 0.1.0
-agent: valory/register_reset:0.1.0:bafybeibit5dfccbcxxoexlwb36cro5imywlgm6cwc74jomu52ulrjucbhq
+agent: valory/register_reset:0.1.0:bafybeibnuxwbb4xyluz5u2pse73zur477x2dquvveogw47qsnylyyvfqni
number_of_agents: 4
description: Test and debug tendermint reset mechanism.
aea_version: '>=1.0.0, <2.0.0'
diff --git a/packages/valory/skills/abstract_abci/skill.yaml b/packages/valory/skills/abstract_abci/skill.yaml
index 99a4382910..f4772c4b53 100644
--- a/packages/valory/skills/abstract_abci/skill.yaml
+++ b/packages/valory/skills/abstract_abci/skill.yaml
@@ -15,7 +15,7 @@ fingerprint:
tests/test_handlers.py: bafybeieeuwtu35ddaevr2wgnk33l7kdhrx7ruoeb5jiltiyn65ufdcnopu
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
contracts: []
protocols:
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
diff --git a/packages/valory/skills/abstract_round_abci/skill.yaml b/packages/valory/skills/abstract_round_abci/skill.yaml
index 9b8b9a9674..89ee04d2e7 100644
--- a/packages/valory/skills/abstract_round_abci/skill.yaml
+++ b/packages/valory/skills/abstract_round_abci/skill.yaml
@@ -60,13 +60,13 @@ fingerprint:
utils.py: bafybeienx5y7er37rvluz5x5oirsephs6td4werjett5vaavrv6ohymzpm
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
- valory/http_client:0.23.0:bafybeieoeuy4brzimtnubmokwirhrx27ezls6cdnl5qik4rkykfle3nn2y
- valory/ipfs:0.1.0:bafybeighbvg6if7bwswosgajlzgz36pwuyttu3vyfqgwi3xayvdxtl53lq
- valory/ledger:0.19.0:bafybeigfoz7d7si7s4jehvloq2zmiiocpbxcaathl3bxkyarxoerxq7g3a
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
@@ -76,7 +76,7 @@ protocols:
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
behaviours:
main:
args: {}
@@ -147,7 +147,7 @@ dependencies:
open-aea-cli-ipfs:
version: ==1.39.0
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
protobuf:
version: <=3.20.1,>=3.19
py-ecc:
diff --git a/packages/valory/skills/counter/skill.yaml b/packages/valory/skills/counter/skill.yaml
index 897f901a32..2a24045c09 100644
--- a/packages/valory/skills/counter/skill.yaml
+++ b/packages/valory/skills/counter/skill.yaml
@@ -14,12 +14,12 @@ fingerprint:
tests/test_counter.py: bafybeiazi36djqnjzu5t6rn72mngsmntoqz7z7wqa53z3lccgblgsycnbi
fingerprint_ignore_patterns: []
connections:
-- valory/abci:0.1.0:bafybeigqurc4jzjqjs4ptbfz4r4qk6ued2tdw4op3zjnal645fbk4aikya
+- valory/abci:0.1.0:bafybeihtcupik5qk27qnvbc5ep2oqgrka2y7e5pqzxp3v2bidpbxxachyq
contracts: []
protocols:
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
behaviours: {}
handlers:
abci:
diff --git a/packages/valory/skills/hello_world_abci/skill.yaml b/packages/valory/skills/hello_world_abci/skill.yaml
index 81af878de0..2c283f84ab 100644
--- a/packages/valory/skills/hello_world_abci/skill.yaml
+++ b/packages/valory/skills/hello_world_abci/skill.yaml
@@ -27,7 +27,7 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/offend_abci/skill.yaml b/packages/valory/skills/offend_abci/skill.yaml
index df3f406934..436f793d70 100644
--- a/packages/valory/skills/offend_abci/skill.yaml
+++ b/packages/valory/skills/offend_abci/skill.yaml
@@ -27,7 +27,7 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/offend_slash_abci/skill.yaml b/packages/valory/skills/offend_slash_abci/skill.yaml
index 95f82d2435..7cf39dd8a4 100644
--- a/packages/valory/skills/offend_slash_abci/skill.yaml
+++ b/packages/valory/skills/offend_slash_abci/skill.yaml
@@ -23,11 +23,11 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/offend_abci:0.1.0:bafybeibmlwjfv4ttq2htq2o2g3pef5t3pawgmdt5td6wt5axjxgowk3ezu
-- valory/slashing_abci:0.1.0:bafybeih2q3hatumfrd2me75djo6vm6t5zjpn4pi4sx2dguyrymtg47vjru
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/offend_abci:0.1.0:bafybeih74czok5wly6db4635ssdzjcxixlprra5fhdcee7qxg7wl6532om
+- valory/slashing_abci:0.1.0:bafybeidkwuyzjof4srz2gd6irl3wklxi6ebepsvid6pdtdbz5bdkioagla
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/register_reset_abci/skill.yaml b/packages/valory/skills/register_reset_abci/skill.yaml
index d6f7382b5f..3abf10e04b 100644
--- a/packages/valory/skills/register_reset_abci/skill.yaml
+++ b/packages/valory/skills/register_reset_abci/skill.yaml
@@ -24,9 +24,9 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/register_reset_recovery_abci/skill.yaml b/packages/valory/skills/register_reset_recovery_abci/skill.yaml
index 73d01c9b56..f66d957535 100644
--- a/packages/valory/skills/register_reset_recovery_abci/skill.yaml
+++ b/packages/valory/skills/register_reset_recovery_abci/skill.yaml
@@ -26,8 +26,8 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/register_termination_abci/skill.yaml b/packages/valory/skills/register_termination_abci/skill.yaml
index bfd72fee09..7b71f0d9fa 100644
--- a/packages/valory/skills/register_termination_abci/skill.yaml
+++ b/packages/valory/skills/register_termination_abci/skill.yaml
@@ -23,10 +23,10 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/registration_abci:0.1.0:bafybeiggzuqokgt7itc6ekb5ylmdylvfbhxqxylyz4p62qah2lkjstgdwe
-- valory/reset_pause_abci:0.1.0:bafybeiblayblhp5wuirfomwcpgydg35ve5tfq3xxetlosjn47wva5ucmzy
-- valory/termination_abci:0.1.0:bafybeieqfhvk6klnvxak3vo2ibslkrnnk2bfsn5l3gbaelcprd6cjngxki
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/registration_abci:0.1.0:bafybeif6iqhzjx3tzxzsgubje4yeaien7ydqo3pcjm5zdbk6b7fhmdbnmu
+- valory/reset_pause_abci:0.1.0:bafybeibtp5ugd45v5lgh7zdziqo4vlciedbywcclenjhlzk2dyohmte7bu
+- valory/termination_abci:0.1.0:bafybeifkjdoj7i6hacv44to62ohbdbnsilcue2c4ghzwhbegbahxjsq3kq
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/registration_abci/skill.yaml b/packages/valory/skills/registration_abci/skill.yaml
index a2e9c13ff0..720690f017 100644
--- a/packages/valory/skills/registration_abci/skill.yaml
+++ b/packages/valory/skills/registration_abci/skill.yaml
@@ -26,13 +26,13 @@ fingerprint_ignore_patterns: []
connections:
- valory/p2p_libp2p_client:0.1.0:bafybeihdnfdth3qgltefgrem7xyi4b3ejzaz67xglm2hbma2rfvpl2annq
contracts:
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- valory/contract_api:1.0.0:bafybeiasywsvax45qmugus5kxogejj66c5taen27h4voriodz7rgushtqa
- valory/http:1.0.0:bafybeia5bxdua2i6chw6pg47bvoljzcpuqxzy4rdrorbdmcbnwmnfdobtu
- valory/tendermint:0.1.0:bafybeidjqmwvgi4rqgp65tbkhmi45fwn2odr5ecezw6q47hwitsgyw4jpa
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/reset_pause_abci/skill.yaml b/packages/valory/skills/reset_pause_abci/skill.yaml
index f118b457ce..1a00875940 100644
--- a/packages/valory/skills/reset_pause_abci/skill.yaml
+++ b/packages/valory/skills/reset_pause_abci/skill.yaml
@@ -26,7 +26,7 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/slashing_abci/skill.yaml b/packages/valory/skills/slashing_abci/skill.yaml
index bca7356233..a5dc50629c 100644
--- a/packages/valory/skills/slashing_abci/skill.yaml
+++ b/packages/valory/skills/slashing_abci/skill.yaml
@@ -24,13 +24,13 @@ fingerprint:
fingerprint_ignore_patterns: []
connections: []
contracts:
-- valory/gnosis_safe:0.1.0:bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/gnosis_safe:0.1.0:bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- valory/contract_api:1.0.0:bafybeiasywsvax45qmugus5kxogejj66c5taen27h4voriodz7rgushtqa
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/transaction_settlement_abci:0.1.0:bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/transaction_settlement_abci:0.1.0:bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/termination_abci/skill.yaml b/packages/valory/skills/termination_abci/skill.yaml
index 267e6a1d8a..3066db2f0a 100644
--- a/packages/valory/skills/termination_abci/skill.yaml
+++ b/packages/valory/skills/termination_abci/skill.yaml
@@ -23,14 +23,14 @@ fingerprint:
fingerprint_ignore_patterns: []
connections: []
contracts:
-- valory/gnosis_safe:0.1.0:bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri
-- valory/multisend:0.1.0:bafybeidfktuprydtmi4umolfles5qaf7s3t26puvvs44hvkq6uwwr3ia3a
-- valory/service_registry:0.1.0:bafybeift7qksgjuqh67abas3gfbfwwwvhv6tj3lvgzv5wc2nrlnoe65ba4
+- valory/gnosis_safe:0.1.0:bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre
+- valory/multisend:0.1.0:bafybeieg4tywd5lww2vygvpkilg3hcepa4rmhehjuamyvdf6vazt554v6u
+- valory/service_registry:0.1.0:bafybeihnlcu4tnnfrict3z7kclcba7hnniqomamnsoio3bjytshzrxovsm
protocols:
- valory/contract_api:1.0.0:bafybeiasywsvax45qmugus5kxogejj66c5taen27h4voriodz7rgushtqa
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
-- valory/transaction_settlement_abci:0.1.0:bafybeicisazpyvnnzlqso3txiucxr5qhsa4ac7ius6b4mhouxr2wkadwfy
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
+- valory/transaction_settlement_abci:0.1.0:bafybeiexo675m25pcu2dcp6dwqilpymn46xm4ne2v4d5xsavdu3vantssy
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/test_abci/skill.yaml b/packages/valory/skills/test_abci/skill.yaml
index 78819264f7..df3fee5022 100644
--- a/packages/valory/skills/test_abci/skill.yaml
+++ b/packages/valory/skills/test_abci/skill.yaml
@@ -26,8 +26,8 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_abci:0.1.0:bafybeigopohwdk5m2kuk76dbwlokpdvxtxadgda5vq52i54ofpnndlwwuy
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_abci:0.1.0:bafybeicvw6rteuzd2kfj6u4rwsrqbwipfwwhzafttviii3twzqzjokcl2i
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/test_ipfs_abci/skill.yaml b/packages/valory/skills/test_ipfs_abci/skill.yaml
index 5a1f3f6923..91696f27d9 100644
--- a/packages/valory/skills/test_ipfs_abci/skill.yaml
+++ b/packages/valory/skills/test_ipfs_abci/skill.yaml
@@ -27,7 +27,7 @@ connections: []
contracts: []
protocols: []
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
diff --git a/packages/valory/skills/transaction_settlement_abci/skill.yaml b/packages/valory/skills/transaction_settlement_abci/skill.yaml
index d1d873394d..7c75e8951c 100644
--- a/packages/valory/skills/transaction_settlement_abci/skill.yaml
+++ b/packages/valory/skills/transaction_settlement_abci/skill.yaml
@@ -31,14 +31,14 @@ fingerprint:
fingerprint_ignore_patterns: []
connections: []
contracts:
-- valory/gnosis_safe:0.1.0:bafybeicetxwbgfqxcaoack7knljqo4i6up4nqgvm272eyqdqii4hcis5ri
+- valory/gnosis_safe:0.1.0:bafybeiazhdqb3upmvuthxpxmaplczezyr37rqktcvjgsywehot3ux4zvre
protocols:
- open_aea/signing:1.0.0:bafybeifuxs7gdg2okbn7uofymenjlmnih2wxwkym44lsgwmklgwuckxm2m
- valory/abci:0.1.0:bafybeigootsvqpk6th5xpdtzanxum3earifrrezfyhylfrit7yvqdrtgpe
- valory/contract_api:1.0.0:bafybeiasywsvax45qmugus5kxogejj66c5taen27h4voriodz7rgushtqa
- valory/ledger_api:1.0.0:bafybeigsvceac33asd6ecbqev34meyyjwu3rangenv6xp5rkxyz4krvcby
skills:
-- valory/abstract_round_abci:0.1.0:bafybeicqwr73cs3vndzafrjrjpw63vvqbbjsur7ptek77hsw3lurnood5y
+- valory/abstract_round_abci:0.1.0:bafybeifnqddpl3rui4gzh7x75feptzlxwzvix72kbqo5t5yvof2r62jzke
behaviours:
main:
args: {}
@@ -166,7 +166,7 @@ models:
class_name: TendermintDialogues
dependencies:
open-aea-test-autonomy:
- version: ==0.12.1.post1
+ version: ==0.12.1.post2
open-aea-web3:
version: ==6.0.1
is_abstract: true
diff --git a/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py b/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py
index 20d4a96577..6eda055916 100644
--- a/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py
+++ b/plugins/aea-test-autonomy/aea_test_autonomy/configurations.py
@@ -37,7 +37,7 @@ def get_key(key_path: Path) -> str:
HTTP_LOCALHOST = f"http://{LOCALHOST}"
DEFAULT_IMAGE_VERSION = "latest"
-MATCHING_FRAMEWORK_VERSION = "0.12.1.post1"
+MATCHING_FRAMEWORK_VERSION = "0.12.1.post2"
TENDERMINT_IMAGE_VERSION = os.environ.get(
"TENDERMINT_IMAGE_VERSION", MATCHING_FRAMEWORK_VERSION
)
diff --git a/plugins/aea-test-autonomy/setup.py b/plugins/aea-test-autonomy/setup.py
index 1d062ab795..3a81f26ca4 100644
--- a/plugins/aea-test-autonomy/setup.py
+++ b/plugins/aea-test-autonomy/setup.py
@@ -32,7 +32,7 @@
setup(
name="open-aea-test-autonomy",
- version="0.12.1.post1",
+ version="0.12.1.post2",
author="Valory AG",
license="Apache-2.0",
description="Plugin containing test tools for open-autonomy packages.",
diff --git a/tests/test_autonomy/test_cli/test_helpers/test_chain_helpers.py b/tests/test_autonomy/test_cli/test_helpers/test_chain_helpers.py
index 00c23e7f79..bb9883fb6a 100644
--- a/tests/test_autonomy/test_cli/test_helpers/test_chain_helpers.py
+++ b/tests/test_autonomy/test_cli/test_helpers/test_chain_helpers.py
@@ -54,6 +54,14 @@
_ = registry_contracts.service_manager
+def _get_ledger_and_crypto_objects_patch() -> mock._patch:
+ return mock.patch.object(
+ OnChainHelper,
+ "get_ledger_and_crypto_objects",
+ return_value=(mock.MagicMock(), mock.MagicMock()),
+ )
+
+
class TestMintComponentMethod:
"""Test `mint_component` method."""
@@ -126,6 +134,128 @@ def test_missing_nft_hash(
).publish_metadata().mint_component()
+class TestRequiredEnvVars:
+ """Test required env var check works."""
+
+ _component_failure = (
+ "Addresses for following contracts are None, please set them using their respective environment variables\n"
+ "- Set `registries_manager` address using `CUSTOM_REGISTRIES_MANAGER_ADDRESS`\n"
+ "- Set `component_registry` address using `CUSTOM_COMPONENT_REGISTRY_ADDRESS`"
+ )
+
+ _service_failure = (
+ "Addresses for following contracts are None, please set them using their respective environment variables\n"
+ "- Set `service_manager` address using `CUSTOM_SERVICE_MANAGER_ADDRESS`\n"
+ "- Set `service_registry` address using `CUSTOM_SERVICE_REGISTRY_ADDRESS`"
+ )
+
+ def test_component_mint(self) -> None:
+ """Test component mint env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._component_failure,
+ ):
+ mint_helper = MintHelper(
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.mint_component()
+
+ def test_component_update(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._component_failure,
+ ):
+ mint_helper = MintHelper(
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.update_component()
+
+ def test_servic_mint(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._service_failure,
+ ):
+ mint_helper = MintHelper(
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.mint_service(1, 1, 1)
+
+ def test_service_update(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._service_failure,
+ ):
+ mint_helper = MintHelper(
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.update_service(1, 1, 1)
+
+ def test_activate_service(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._service_failure,
+ ):
+ mint_helper = ServiceHelper(
+ service_id=1,
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.check_is_service_token_secured().activate_service()
+
+ def test_register_instances(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._service_failure,
+ ):
+ mint_helper = ServiceHelper(
+ service_id=1,
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.check_is_service_token_secured().register_instance(["0x"], [1])
+
+ def test_deploy_instances(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=(
+ "Addresses for following contracts are None, please set them using their respective environment variables\n"
+ "- Set `service_manager` address using `CUSTOM_SERVICE_MANAGER_ADDRESS`\n"
+ "- Set `service_registry` address using `CUSTOM_SERVICE_REGISTRY_ADDRESS`\n"
+ "- Set `gnosis_safe_proxy_factory` address using `CUSTOM_GNOSIS_SAFE_PROXY_FACTORY_ADDRESS`\n"
+ "- Set `gnosis_safe_same_address_multisig` address using `CUSTOM_GNOSIS_SAFE_SAME_ADDRESS_MULTISIG_ADDRESS`"
+ ),
+ ):
+ mint_helper = ServiceHelper(
+ service_id=1,
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.check_is_service_token_secured().deploy_service()
+
+ def test_unbond(self) -> None:
+ """Test component update env vars."""
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException,
+ match=self._service_failure,
+ ):
+ mint_helper = ServiceHelper(
+ service_id=1,
+ chain_type=ChainType.CUSTOM,
+ key=ETHEREUM_KEY_DEPLOYER,
+ )
+ mint_helper.check_is_service_token_secured().unbond_service()
+
+
@pytest.mark.parametrize(
argnames=("state", "error"),
argvalues=(
@@ -306,3 +436,29 @@ def test_verify_service_dependencies_failures() -> None:
).verify_service_dependencies(
agent_id=1
)
+
+
+def test_token_secure_check_on_custom_chain() -> None:
+ """Test token_secure is False on custom chain."""
+
+ with _get_ledger_and_crypto_objects_patch():
+ service_helper = ServiceHelper(
+ service_id=1, chain_type=ChainType.CUSTOM, key=ETHEREUM_KEY_DEPLOYER
+ )
+ assert service_helper.check_is_service_token_secured().token_secured is False
+
+
+def test_mint_with_token_on_custom_chain() -> None:
+ """Test minting with token on L2 chains fail."""
+
+ with _get_ledger_and_crypto_objects_patch(), pytest.raises(
+ click.ClickException, match="Cannot use custom token for bonding on L2 chains"
+ ):
+ MintHelper( # nosec
+ chain_type=ChainType.CUSTOM, key=ETHEREUM_KEY_DEPLOYER
+ ).mint_service(
+ number_of_slots=1,
+ cost_of_bond=1,
+ threshold=1,
+ token="0x",
+ )
diff --git a/tests/test_autonomy/test_cli/test_mint/test_mint_components.py b/tests/test_autonomy/test_cli/test_mint/test_mint_components.py
index a760eb0e65..de607c9dfd 100644
--- a/tests/test_autonomy/test_cli/test_mint/test_mint_components.py
+++ b/tests/test_autonomy/test_cli/test_mint/test_mint_components.py
@@ -30,6 +30,7 @@
from autonomy.chain.config import ChainConfigs
from autonomy.chain.mint import registry_contracts
+from autonomy.chain.service import activate_service
from tests.test_autonomy.test_chain.base import (
BaseChainInteractionTest,
@@ -207,6 +208,55 @@ def test_mint_service(
assert f"Token ID: {token_id}" in result.output
self.verify_and_remove_metadata_file(token_id=token_id)
+ def test_update_service_failure(
+ self,
+ ) -> None:
+ """Test mint components."""
+ with mock.patch("autonomy.cli.helpers.chain.verify_component_dependencies"):
+ agent_id = self.mint_component(package_id=DUMMY_AGENT, dependencies=[1])
+
+ commands = [
+ DUMMY_SERVICE.package_type.value,
+ str(
+ DUMMY_PACKAGE_MANAGER.package_path_from_package_id(
+ package_id=DUMMY_SERVICE
+ )
+ ),
+ "--key",
+ str(ETHEREUM_KEY_DEPLOYER),
+ "-a",
+ str(agent_id),
+ *DEFAULT_SERVICE_MINT_PARAMETERS[2:],
+ ]
+
+ result = self.run_cli(commands=tuple(commands))
+
+ assert result.exit_code == 0, result
+ assert "Service minted with:" in result.output
+ assert "Metadata Hash:" in result.output
+ assert "Token ID:" in result.output
+
+ token_id = self.extract_token_id_from_output(output=result.output)
+ self.verify_minted_token_id(
+ token_id=token_id,
+ package_id=DUMMY_SERVICE,
+ )
+ activate_service(
+ ledger_api=self.ledger_api,
+ crypto=self.crypto,
+ chain_type=self.chain_type,
+ service_id=token_id,
+ )
+
+ commands += ["--update", str(token_id)]
+ result = self.run_cli(commands=tuple(commands))
+ assert result.exit_code == 1, result.stdout
+ assert (
+ "Cannot update service hash, service needs to be in the pre-registration state"
+ in result.stderr
+ )
+ self.verify_and_remove_metadata_file(token_id=token_id)
+
def test_mint_service_with_owner(
self,
) -> None:
diff --git a/tests/test_base.py b/tests/test_base.py
index de648a6c0a..1fddf22226 100644
--- a/tests/test_base.py
+++ b/tests/test_base.py
@@ -62,7 +62,7 @@ def get_test_files(package_type: PackageType) -> List[Path]:
def test_version() -> None:
"""Test the version."""
- assert autonomy.__version__ == "0.12.1.post1"
+ assert autonomy.__version__ == "0.12.1.post2"
@pytest.mark.parametrize(