Skip to content

Commit 012a081

Browse files
tkumor3ddoktorski
andauthored
Remove StarknetEthProxyCheck (#1292)
* Remove StarknetEthProxyCheck * fix lint * remove eth_proxy tests * feedback * add changelog * feedback * Update docs/migration_guide.rst Co-authored-by: ddoktorski <45050160+ddoktorski@users.noreply.github.com> --------- Co-authored-by: ddoktorski <45050160+ddoktorski@users.noreply.github.com>
1 parent f32c6ff commit 012a081

File tree

9 files changed

+18
-10429
lines changed

9 files changed

+18
-10429
lines changed

docs/guide/resolving_proxy_contracts.rst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,9 @@ By default, ``proxy_config`` uses a configuration with two **ProxyChecks**:
3737
- ArgentProxyCheck - resolves `Argent Proxy <https://github.com/argentlabs/argent-contracts-starknet/blob/b7c4af7462a461386d29551400b985832ba942de/contracts/upgrade/Proxy.cairo>`_.
3838
- OpenZeppelinProxyCheck - resolves `OpenZeppelin Proxy <https://github.com/OpenZeppelin/cairo-contracts/blob/d12abf335f5c778fd19d6f99e91c099b40865deb/src/openzeppelin/upgrades/presets/Proxy.cairo>`_.
3939

40+
.. warning::
41+
``StarknetEthProxyCheck`` has been removed, because the StarkGate ETH Token was upgraded to Cairo 2, meaning it isn't a Proxy anymore. Currently, all StarkGate's Token contracts use interface of ERC20 to interact.
42+
4043
It's possible to define own ProxyCheck implementation and later pass it to :meth:`Contract.from_address <starknet_py.contract.Contract.from_address>`, so it knows how to resolve the Proxy.
4144

4245
The **ProxyCheck** base class implements the following interface:

docs/migration_guide.rst

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,15 @@
11
Migration guide
22
===============
33

4+
**********************
5+
0.20.0 Migration guide
6+
**********************
7+
8+
0.20.0 Breaking Changes
9+
-----------------------
10+
11+
1. :class:`StarknetEthProxyCheck` has been removed from the Proxy checks
12+
413
**********************
514
0.19.0 Migration guide
615
**********************

starknet_py/contract.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -783,9 +783,8 @@ async def from_address(
783783
:param provider: BaseAccount or Client.
784784
:param proxy_config: Proxy resolving config
785785
If set to ``True``, will use default proxy checks
786-
:class:`starknet_py.proxy.proxy_check.OpenZeppelinProxyCheck`,
787-
:class:`starknet_py.proxy.proxy_check.ArgentProxyCheck`,
788-
and :class:`starknet_py.proxy.proxy_check.StarknetEthProxyCheck`.
786+
:class:`starknet_py.proxy.proxy_check.OpenZeppelinProxyCheck` and
787+
:class:`starknet_py.proxy.proxy_check.ArgentProxyCheck`.
789788
790789
If set to ``False``, :meth:`Contract.from_address` will not resolve proxies.
791790

starknet_py/proxy/contract_abi_resolver.py

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
ArgentProxyCheck,
1919
OpenZeppelinProxyCheck,
2020
ProxyCheck,
21-
StarknetEthProxyCheck,
2221
)
2322

2423

@@ -41,7 +40,6 @@ def prepare_proxy_config(proxy_config: ProxyConfig) -> ProxyConfig:
4140
proxy_checks = [
4241
OpenZeppelinProxyCheck(),
4342
ArgentProxyCheck(),
44-
StarknetEthProxyCheck(),
4543
]
4644
return {"proxy_checks": proxy_checks}
4745

starknet_py/proxy/proxy_check.py

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -77,25 +77,3 @@ async def _get_storage_at_or_none(
7777
block_hash="latest",
7878
)
7979
return result or None
80-
81-
82-
class StarknetEthProxyCheck(ProxyCheck):
83-
async def implementation_address(
84-
self, address: Address, client: Client
85-
) -> Optional[int]:
86-
return await self.implementation(address, client)
87-
88-
async def implementation_hash(
89-
self, address: Address, client: Client
90-
) -> Optional[int]:
91-
return None
92-
93-
@staticmethod
94-
async def implementation(address: Address, client: Client) -> Optional[int]:
95-
call = Call(
96-
to_addr=address,
97-
selector=get_selector_from_name("implementation"),
98-
calldata=[],
99-
)
100-
(implementation,) = await client.call_contract(call=call)
101-
return implementation

starknet_py/tests/e2e/docs/guide/test_resolving_proxies.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,7 @@
77
from starknet_py.net.client_models import Call
88
from starknet_py.net.models import Address
99
from starknet_py.proxy.contract_abi_resolver import ProxyConfig
10-
from starknet_py.proxy.proxy_check import (
11-
ArgentProxyCheck,
12-
ProxyCheck,
13-
StarknetEthProxyCheck,
14-
)
10+
from starknet_py.proxy.proxy_check import ArgentProxyCheck, ProxyCheck
1511

1612

1713
@pytest.mark.asyncio
@@ -35,15 +31,15 @@ async def test_resolving_proxies(
3531
address = proxy_oz_argent.deployed_contract.address
3632
# docs-1: start
3733
# To use contract behind a proxy as a regular contract, set proxy_config to True
38-
# It will check if your proxy is OpenZeppelin proxy / ArgentX proxy / proxy of Starknet Eth contract
34+
# It will check if your proxy is OpenZeppelin proxy / ArgentX proxy
3935
contract = await Contract.from_address(
4036
address=address, provider=account, proxy_config=True
4137
)
4238

4339
# After that contract can be used as usual
4440
# docs-1: end
4541
# docs-2: start
46-
# To resolve proxy contract other than OpenZeppelin / ArgentX / Starknet Eth proxy, a custom ProxyCheck is needed
42+
# To resolve proxy contract other than OpenZeppelin / ArgentX, a custom ProxyCheck is needed
4743
# The ProxyCheck below resolves proxy contracts which have implementation
4844
# stored in impl() function as class hash
4945
class CustomProxyCheck(ProxyCheck):
@@ -69,9 +65,7 @@ async def implementation_hash(
6965
proxy_config = ProxyConfig(proxy_checks=[CustomProxyCheck()])
7066

7167
# More ProxyCheck instances can be passed to proxy_checks for it to be flexible
72-
proxy_config = ProxyConfig(
73-
proxy_checks=[CustomProxyCheck(), ArgentProxyCheck(), StarknetEthProxyCheck()]
74-
)
68+
proxy_config = ProxyConfig(proxy_checks=[CustomProxyCheck(), ArgentProxyCheck()])
7569

7670
# docs-2: end
7771
address = proxy_impl_func.deployed_contract.address

starknet_py/tests/e2e/fixtures/proxy.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ def custom_proxy() -> str:
3939
scope="session",
4040
params=[
4141
"oz_proxy_address_0.8.1_compiled.json",
42-
"eth_proxy_compiled.json",
4342
],
4443
)
4544
def old_proxy(request) -> str:

starknet_py/tests/e2e/mock/contracts_compiled/precompiled/eth_proxy.cairo

Lines changed: 0 additions & 41 deletions
This file was deleted.

0 commit comments

Comments
 (0)