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(