Skip to content

Commit 2ad8211

Browse files
authored
Merge pull request #771 from valory-xyz/release/v1.60.0
Release `v1.60.0`
2 parents 8fa3599 + 4c4f35e commit 2ad8211

File tree

30 files changed

+92
-49
lines changed

30 files changed

+92
-49
lines changed

HISTORY.md

+6
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Release History - open AEA
22

3+
## 1.60.0 (2024-11-15)
4+
5+
Plugins:
6+
- Fixes the handling of dropped ACN node connection #769
7+
- Fixes an edge case in the gas estimation #770
8+
39
## 1.59.0 (2024-10-29)
410

511
Plugins:

SECURITY.md

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ This document outlines security procedures and general policies for the `open-ae
77
The following table shows which versions of `open-aea` are currently being supported with security updates.
88

99
| Version | Supported |
10-
|------------| ------------------ |
11-
| `1.59.x` | :white_check_mark: |
12-
| `< 1.59.0` | :x: |
10+
|------------|--------------------|
11+
| `1.60.x` | :white_check_mark: |
12+
| `< 1.60.0` | :x: |
1313

1414
## Reporting a Vulnerability
1515

aea/__version__.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
__title__ = "open-aea"
2424
__description__ = "Open Autonomous Economic Agent framework (without vendor lock-in)"
2525
__url__ = "https://github.com/valory-xyz/open-aea.git"
26-
__version__ = "1.59.0"
26+
__version__ = "1.60.0"
2727
__author__ = "Valory AG"
2828
__license__ = "Apache-2.0"
2929
__copyright__ = "2021 Valory AG, 2019 Fetch.AI Limited"

deploy-image/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ RUN apk add --no-cache go
1616

1717
# aea installation
1818
RUN pip install --upgrade pip
19-
RUN pip install --upgrade --force-reinstall open-aea[all]==1.59.0 "open-aea-cli-ipfs<2.0.0,>=1.59.0"
19+
RUN pip install --upgrade --force-reinstall open-aea[all]==1.60.0 "open-aea-cli-ipfs<2.0.0,>=1.60.0"
2020

2121
# directories and aea cli config
2222
WORKDIR /home/agents

deploy-image/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ The example uses the `fetchai/my_first_aea` project. You will likely want to mod
1111
Install subversion, then download the example directory to your local working directory
1212

1313
``` bash
14-
svn checkout https://github.com/valory-xyz/open-aea/tags/v1.59.0/packages packages
14+
svn checkout https://github.com/valory-xyz/open-aea/tags/v1.60.0/packages packages
1515
```
1616

1717
### Modify scripts

develop-image/docker-env.sh

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
# Swap the following lines if you want to work with 'latest'
4-
DOCKER_IMAGE_TAG=valory/open-aea-develop:1.59.0
4+
DOCKER_IMAGE_TAG=valory/open-aea-develop:1.60.0
55
# DOCKER_IMAGE_TAG=valory/open-aea-develop:latest
66

77
DOCKER_BUILD_CONTEXT_DIR=..

docs/development-setup.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11

22

3-
An AEA <a href="../package-imports">consists of packages </a>. When developing, it helps to be able to save packages in a local package registry, rather than pushing them to <a href="https://aea-registry.fetch.ai" target="_blank">remote registry</a>. This guide helps you set up a local package registry and configure the working directory for development.
3+
An AEA <a href="../package-imports">consists of packages </a>. When developing, it helps to be able to save packages in a local package registry, rather than pushing them to remote registry. This guide helps you set up a local package registry and configure the working directory for development.
44

55
There are two ways to write code for an AEA:
66

docs/package_list.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
| connection/valory/ledger/0.19.0 | `bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e` |
1818
| connection/valory/http_server/0.22.0 | `bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m` |
1919
| connection/valory/p2p_libp2p/0.1.0 | `bafybeic2u7azbwjny2nhaltqnbohlvysx3x6ectzbege7sxwrbzcz4lcma` |
20-
| connection/valory/p2p_libp2p_client/0.1.0 | `bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e` |
20+
| connection/valory/p2p_libp2p_client/0.1.0 | `bafybeihs5zlwa5wlozct3rjlxsirm3ve3e4buse5nfehiky6ymnnfrobne` |
2121
| connection/valory/p2p_libp2p_mailbox/0.1.0 | `bafybeiecclc65ogngs3piaxpwhiyl77mlpqun5ejlyv4kamwzrrh746guq` |
2222
| connection/fetchai/local/0.20.0 | `bafybeiema4rnxi54luhzbrccb27pfrwlohemka45eqf4nidgmtkwwmxeyi` |
2323
| connection/valory/http_client/0.23.0 | `bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u` |
24-
| connection/valory/test_libp2p/0.1.0 | `bafybeid4uexpzjgb3m6npbekohqayn2oukf3fershneha2dptmwtkayxza` |
24+
| connection/valory/test_libp2p/0.1.0 | `bafybeiasj7ppsmn24mes2yw3o72nlmcircscalpl3j5ujzxstknlassa3q` |
2525
| skill/fetchai/echo/0.19.0 | `bafybeicoawiackcbgqo3na3e56tpdc62atag4yxknur77py37caqq4mmya` |
2626
| skill/fetchai/error_test_skill/0.1.0 | `bafybeihsbtlpe7h6fsvoxban5rilkmwviwkokul5cqym6atoolirontiyu` |
2727
| skill/fetchai/gym/0.20.0 | `bafybeie7y2fsxfuhsqxqcaluo5exskmrm5q3a6e2hfcskcuvzvxjjhijh4` |

docs/quickstart.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -283,7 +283,7 @@ This copies the <code>fetchai/echo:0.19.0</code> skill code containing the "beha
283283

284284
Just like humans, AEAs can have _skills_ to achieve their tasks. As an agent developer, you can create skills to add to your own AEAs. You can also choose to publish your skills so others add them to their AEAs. More details on skills can be found on <a href="../skill/"> this page </a>.
285285

286-
The above agent has an <a href="https://aea-registry.fetch.ai/details/skill/fetchai/echo/latest" target="_blank">echo skill</a>, fetched from <a href="https://aea-registry.fetch.ai" target="_blank">the registry</a>, which simply echoes any messages it receives back to its sender.
286+
The above agent has an echo skill, fetched from the registry, which simply echoes any messages it receives back to its sender.
287287

288288
### Communication via envelopes and messages
289289

docs/upgrading.md

+4
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,10 @@ Below we describe the additional manual steps required to upgrade between differ
99

1010
### Upgrade guide
1111

12+
## `v1.59.0` to `v1.60.0`
13+
14+
- No backwards incompatible changes
15+
1216
## `v1.58.0` to `v1.59.0`
1317

1418
- No backwards incompatible changes

examples/tac_deploy/Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ RUN apk add --no-cache go
1919

2020
# aea installation
2121
RUN python -m pip install --upgrade pip
22-
RUN pip install --upgrade --force-reinstall open-aea[all]==1.59.0
22+
RUN pip install --upgrade --force-reinstall open-aea[all]==1.60.0
2323

2424
# directories and aea cli config
2525
COPY /.aea /home/.aea

packages/packages.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,11 @@
1717
"connection/valory/ledger/0.19.0": "bafybeigntoericenpzvwejqfuc3kqzo2pscs76qoygg5dbj6f4zxusru5e",
1818
"connection/valory/http_server/0.22.0": "bafybeihpgu56ovmq4npazdbh6y6ru5i7zuv6wvdglpxavsckyih56smu7m",
1919
"connection/valory/p2p_libp2p/0.1.0": "bafybeic2u7azbwjny2nhaltqnbohlvysx3x6ectzbege7sxwrbzcz4lcma",
20-
"connection/valory/p2p_libp2p_client/0.1.0": "bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e",
20+
"connection/valory/p2p_libp2p_client/0.1.0": "bafybeihs5zlwa5wlozct3rjlxsirm3ve3e4buse5nfehiky6ymnnfrobne",
2121
"connection/valory/p2p_libp2p_mailbox/0.1.0": "bafybeiecclc65ogngs3piaxpwhiyl77mlpqun5ejlyv4kamwzrrh746guq",
2222
"connection/fetchai/local/0.20.0": "bafybeiema4rnxi54luhzbrccb27pfrwlohemka45eqf4nidgmtkwwmxeyi",
2323
"connection/valory/http_client/0.23.0": "bafybeihi772xgzpqeipp3fhmvpct4y6e6tpjp4sogwqrnf3wqspgeilg4u",
24-
"connection/valory/test_libp2p/0.1.0": "bafybeid4uexpzjgb3m6npbekohqayn2oukf3fershneha2dptmwtkayxza",
24+
"connection/valory/test_libp2p/0.1.0": "bafybeiasj7ppsmn24mes2yw3o72nlmcircscalpl3j5ujzxstknlassa3q",
2525
"skill/fetchai/echo/0.19.0": "bafybeicoawiackcbgqo3na3e56tpdc62atag4yxknur77py37caqq4mmya",
2626
"skill/fetchai/error_test_skill/0.1.0": "bafybeihsbtlpe7h6fsvoxban5rilkmwviwkokul5cqym6atoolirontiyu",
2727
"skill/fetchai/gym/0.20.0": "bafybeie7y2fsxfuhsqxqcaluo5exskmrm5q3a6e2hfcskcuvzvxjjhijh4",

packages/valory/connections/p2p_libp2p_client/connection.py

+21-6
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
# ------------------------------------------------------------------------------
33
#
4-
# Copyright 2022-2023 Valory AG
4+
# Copyright 2022-2024 Valory AG
55
# Copyright 2018-2019 Fetch.AI Limited
66
#
77
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -279,6 +279,7 @@ class P2PLibp2pClientConnection(Connection):
279279
connection_id = PUBLIC_ID
280280

281281
DEFAULT_CONNECT_RETRIES = 3
282+
DEFAULT_RESEND_ENVELOPE_RETRY = 1
282283
DEFAULT_TLS_CONNECTION_SIGNATURE_TIMEOUT = 5.0
283284

284285
def __init__(self, **kwargs: Any) -> None:
@@ -292,6 +293,9 @@ def __init__(self, **kwargs: Any) -> None:
292293
self.connect_retries = self.configuration.config.get(
293294
"connect_retries", self.DEFAULT_CONNECT_RETRIES
294295
)
296+
self.resend_envelope_retry = self.configuration.config.get(
297+
"resend_envelope_retry", self.DEFAULT_RESEND_ENVELOPE_RETRY
298+
)
295299
ledger_id = self.configuration.config.get("ledger_id", DEFAULT_LEDGER)
296300
if ledger_id not in SUPPORTED_LEDGER_IDS:
297301
raise ValueError( # pragma: nocover
@@ -386,11 +390,17 @@ async def _send_loop(self) -> None:
386390
)
387391
await asyncio.shield(self.disconnect())
388392

389-
async def _send_envelope_with_node_client(self, envelope: Envelope) -> None:
393+
async def _send_envelope_with_node_client(
394+
self, envelope: Envelope, retry_counter: int = 0
395+
) -> None:
390396
"""Send envelope with node client, reconnect and retry on fail."""
391397
if not self._node_client: # pragma: nocover
392398
raise ValueError("Connection not connected to node!")
393-
399+
if retry_counter > self.resend_envelope_retry:
400+
self.logger.warning(
401+
f"Dropping envelope {envelope}. It failed after retry. "
402+
)
403+
return
394404
self._ensure_valid_envelope_for_external_comms(envelope)
395405
try:
396406
await self._node_client.send_envelope(envelope)
@@ -399,7 +409,7 @@ async def _send_envelope_with_node_client(self, envelope: Envelope) -> None:
399409
"Exception raised on message send. Try reconnect and send again."
400410
)
401411
await self._perform_connection_to_node()
402-
await self._node_client.send_envelope(envelope)
412+
await self._send_envelope_with_node_client(envelope, retry_counter + 1)
403413

404414
async def connect(self) -> None:
405415
"""Set up the connection."""
@@ -584,9 +594,14 @@ async def _process_messages(self) -> None:
584594
envelope = await self._read_envelope_from_node()
585595
if self._in_queue is None:
586596
raise ValueError("Input queue not initialized.") # pragma: nocover
587-
self._in_queue.put_nowait(envelope)
597+
self.logger.debug(f"Received envelope: {envelope}")
588598
if envelope is None:
589-
break # pragma: no cover
599+
# give it time to recover
600+
# twice the amount what we wait for ACK timeouts
601+
timeout = NodeClient.ACN_ACK_TIMEOUT * 2
602+
await asyncio.sleep(timeout)
603+
continue # pragma: no cover
604+
self._in_queue.put_nowait(envelope)
590605

591606

592607
class TCPSocketChannelClientTLS(TCPSocketChannelClient):

packages/valory/connections/p2p_libp2p_client/connection.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,15 @@ aea_version: '>=1.0.0, <2.0.0'
1010
fingerprint:
1111
README.md: bafybeiaf5kdnfdc2jifojgniib76zl2c4utnx7ofewc3szqkrxsby62ulu
1212
__init__.py: bafybeid2azroxglu6fl7bxdfcsv3j77vyzgpikjnfwpxg73zeb5orez6ju
13-
connection.py: bafybeiauso3ectgdvbhkt5j6wstfev5mnxiuj6hrkczyqgxurnvva3loqm
13+
connection.py: bafybeihcwyo5nhxmsjxw7qrrvkvp7qu6izbgzgipmmnrpdvc6jtwmw7vgy
1414
fingerprint_ignore_patterns: []
1515
connections: []
1616
protocols:
1717
- valory/acn:1.1.0:bafybeidluaoeakae3exseupaea4i3yvvk5vivyt227xshjlffywwxzcxqe
1818
class_name: P2PLibp2pClientConnection
1919
config:
2020
connect_retries: 3
21+
resend_envelope_retry: 1
2122
ledger_id: cosmos
2223
nodes:
2324
- uri: acn.staging.autonolas.tech:9005

packages/valory/connections/test_libp2p/connection.yaml

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,16 @@ fingerprint:
2626
tests/test_p2p_libp2p_client/__init__.py: bafybeihjzl7ireo5rbnxcdbghbncykgcgcbh26m4mjjofsseeflauuf6sy
2727
tests/test_p2p_libp2p_client/test_aea_cli.py: bafybeie5yaezltj4xydnqghltt7f2t4vicdts5rm6bz4fdpt4kkkd42cyu
2828
tests/test_p2p_libp2p_client/test_communication.py: bafybeiceec5zsd2u37t56oiajijgwx7frpo3wzu4qdfd3lcq3lcldyqszq
29-
tests/test_p2p_libp2p_client/test_errors.py: bafybeiakajzr6jtecwnlzcrrx7paydz3obmleqzv7am5xbadu6wjtzabmm
29+
tests/test_p2p_libp2p_client/test_errors.py: bafybeihopjaixftexdru35rxf75tr45itr6ygoao2ajxax3jvq6mcopw6m
3030
tests/test_p2p_libp2p_mailbox/__init__.py: bafybeiad64wftnugaahubhqc6bcqzg7om4435dzojdv7oeq4zdmn7kxzui
3131
tests/test_p2p_libp2p_mailbox/test_aea_cli.py: bafybeievjaiacpvcpabemtrmmeejbf4cbkrqzhu2ekxzyfyeg42ityxn5q
3232
tests/test_p2p_libp2p_mailbox/test_communication.py: bafybeiaiwlqxuzp34nu33s5pz6sudvwmdi3h2ckfa4mmwyvd6wqn2elo4m
33-
tests/test_p2p_libp2p_mailbox/test_errors.py: bafybeiampgm6dxpo4tqiyhyhpwr5d3kdsq5x5vwl323oauhdzmsnprf4bi
33+
tests/test_p2p_libp2p_mailbox/test_errors.py: bafybeia7lhpakt6tv3jaskm7edawleyw4oxm3qcife7n3zlvr56zeo5x4m
3434
tests/test_p2p_libp2p_mailbox/test_mailbox_service.py: bafybeibp3bkwkrw57qahvuysjdlumywtlk3te5gsvusgrvhsc75k7rrk4u
3535
fingerprint_ignore_patterns: []
3636
connections:
3737
- valory/p2p_libp2p:0.1.0:bafybeic2u7azbwjny2nhaltqnbohlvysx3x6ectzbege7sxwrbzcz4lcma
38-
- valory/p2p_libp2p_client:0.1.0:bafybeid3xg5k2ol5adflqloy75ibgljmol6xsvzvezebsg7oudxeeolz7e
38+
- valory/p2p_libp2p_client:0.1.0:bafybeihs5zlwa5wlozct3rjlxsirm3ve3e4buse5nfehiky6ymnnfrobne
3939
- valory/p2p_libp2p_mailbox:0.1.0:bafybeiecclc65ogngs3piaxpwhiyl77mlpqun5ejlyv4kamwzrrh746guq
4040
protocols:
4141
- fetchai/default:1.0.0:bafybeihdvtmnz7fzy7kwi3wlo6rfl27f6q3g5entplgvq7y23i3v5uoz24

packages/valory/connections/test_libp2p/tests/test_p2p_libp2p_client/test_errors.py

+2-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
# ------------------------------------------------------------------------------
33
#
4-
# Copyright 2022 Valory AG
4+
# Copyright 2022-2024 Valory AG
55
# Copyright 2018-2019 Fetch.AI Limited
66
#
77
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -103,16 +103,13 @@ async def test_reconnect_on_send_fail(self):
103103
"""Test reconnect on send fails."""
104104

105105
self.connection._node_client = Mock()
106-
f = Future()
107-
f.set_exception(Exception("oops"))
108106
self.connection._node_client.send_envelope.side_effect = Exception("oops")
109107
with patch.object(
110108
self.connection, "_perform_connection_to_node", return_value=DONE_FUTURE
111109
) as connect_mock, patch.object(
112110
self.connection, "_ensure_valid_envelope_for_external_comms"
113111
):
114-
with pytest.raises(Exception, match="oops"):
115-
await self.connection._send_envelope_with_node_client(Mock())
112+
await self.connection._send_envelope_with_node_client(Mock())
116113
connect_mock.assert_called()
117114

118115

packages/valory/connections/test_libp2p/tests/test_p2p_libp2p_mailbox/test_errors.py

+23-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# -*- coding: utf-8 -*-
22
# ------------------------------------------------------------------------------
33
#
4-
# Copyright 2022 Valory AG
4+
# Copyright 2022-2024 Valory AG
55
# Copyright 2018-2019 Fetch.AI Limited
66
#
77
# Licensed under the Apache License, Version 2.0 (the "License");
@@ -19,8 +19,7 @@
1919
# ------------------------------------------------------------------------------
2020

2121
"""This test module contains negative tests for Libp2p tcp client connection."""
22-
23-
# pylint: skip-file
22+
from unittest.mock import Mock, patch
2423

2524
import pytest
2625

@@ -31,6 +30,9 @@
3130
BaseP2PLibp2pTest,
3231
_make_libp2p_mailbox_connection,
3332
)
33+
from packages.valory.connections.test_libp2p.tests.test_p2p_libp2p_client.test_errors import (
34+
DONE_FUTURE,
35+
)
3436
from packages.valory.connections.test_libp2p.tests.test_p2p_libp2p_client.test_errors import (
3537
TestLibp2pClientConnectionFailureConnectionSetup as BaseFailureConnectionSetup,
3638
)
@@ -39,6 +41,9 @@
3941
)
4042

4143

44+
# pylint: skip-file
45+
46+
4247
@pytest.mark.asyncio
4348
class TestLibp2pMailboxConnectionFailureNodeNotConnected(BaseFailureNodeNotConnected):
4449
"""Test that connection fails when node not running"""
@@ -48,6 +53,21 @@ class TestLibp2pMailboxConnectionFailureNodeNotConnected(BaseFailureNodeNotConne
4853
# overwrite, no mailbox equivalent of P2PLibp2pClientConnection (TCPSocketChannelClient)
4954
test_connect_attempts = None
5055

56+
@pytest.mark.asyncio
57+
async def test_reconnect_on_send_fail(self):
58+
"""Test reconnect on send fails."""
59+
60+
self.connection._node_client = Mock()
61+
self.connection._node_client.send_envelope.side_effect = Exception("oops")
62+
with patch.object(
63+
self.connection, "_perform_connection_to_node", return_value=DONE_FUTURE
64+
) as connect_mock, patch.object(
65+
self.connection, "_ensure_valid_envelope_for_external_comms"
66+
):
67+
with pytest.raises(Exception, match="oops"):
68+
await self.connection._send_envelope_with_node_client(Mock())
69+
connect_mock.assert_called()
70+
5171

5272
class TestLibp2pMailboxConnectionFailureConnectionSetup(BaseFailureConnectionSetup):
5373
"""Test that connection fails when setup incorrectly"""

plugins/aea-cli-benchmark/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
setup(
2828
name="open-aea-cli-benchmark",
29-
version="1.59.0",
29+
version="1.60.0",
3030
author="Valory AG",
3131
license="Apache-2.0",
3232
description="CLI extension for AEA framework benchmarking.",

plugins/aea-cli-ipfs/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828

2929
setup(
3030
name="open-aea-cli-ipfs",
31-
version="1.59.0",
31+
version="1.60.0",
3232
author="Valory AG",
3333
license="Apache-2.0",
3434
description="CLI extension for open AEA framework wrapping IPFS functionality.",

plugins/aea-ledger-cosmos/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
setup(
2828
name="open-aea-ledger-cosmos",
29-
version="1.59.0",
29+
version="1.60.0",
3030
author="Valory AG",
3131
license="Apache-2.0",
3232
description="Python package wrapping the public and private key cryptography and ledger api of Cosmos.",

plugins/aea-ledger-ethereum-flashbots/setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
setup(
2727
name="open-aea-ledger-ethereum-flashbots",
28-
version="1.59.0",
28+
version="1.60.0",
2929
author="Valory AG",
3030
license="Apache-2.0",
3131
description="Python package extending the default open-aea ethereum ledger plugin to add support for flashbots.",
@@ -41,7 +41,7 @@
4141
},
4242
python_requires=">=3.9,<4.0",
4343
install_requires=[
44-
"open-aea-ledger-ethereum~=1.59.0",
44+
"open-aea-ledger-ethereum~=1.60.0",
4545
"open-aea-flashbots==1.4.0",
4646
],
4747
tests_require=["pytest"],

plugins/aea-ledger-ethereum-hwi/setup.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
setup(
2727
name="open-aea-ledger-ethereum-hwi",
28-
version="1.59.0",
28+
version="1.60.0",
2929
author="Valory AG",
3030
license="Apache-2.0",
3131
description="Python package wrapping the public and private key cryptography and support for hardware wallet interactions.",
@@ -42,7 +42,7 @@
4242
"web3>=6.0.0,<7",
4343
"ipfshttpclient==0.8.0a2",
4444
"eth-account>=0.8.0,<0.9.0",
45-
"open-aea-ledger-ethereum~=1.59.0",
45+
"open-aea-ledger-ethereum~=1.60.0",
4646
"ledgerwallet==0.1.3",
4747
"protobuf<4.25.0,>=4.21.6",
4848
"construct<=2.10.61",

plugins/aea-ledger-ethereum/setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626

2727
setup(
2828
name="open-aea-ledger-ethereum",
29-
version="1.59.0",
29+
version="1.60.0",
3030
author="Valory AG",
3131
license="Apache-2.0",
3232
description="Python package wrapping the public and private key cryptography and ledger api of Ethereum.",

0 commit comments

Comments
 (0)