Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enable deploying contracts without providing abi #1452

Merged
Merged
Show file tree
Hide file tree
Changes from 90 commits
Commits
Show all changes
101 commits
Select commit Hold shift + click to select a range
dd83220
Merge branch 'kkawula/1334-remove-unnecessary-cairo-0-tests'
kkawula Jul 30, 2024
7009e4f
Migrate tests to use cairo 1 ERC20 contract
kkawula Jul 30, 2024
9c1e645
Remove ERC20 contract cairo code and fixtures
kkawula Jul 30, 2024
9a01051
Adapt tests to the cairo 1
kkawula Aug 5, 2024
966f950
Merge 'development'
kkawula Aug 5, 2024
8c4418f
Merge 'development'
kkawula Aug 5, 2024
f43673a
Fix test in Serilization Guide
kkawula Aug 5, 2024
3b1658c
Fix typo in 'test_abi_parsing'
kkawula Aug 5, 2024
2adc084
Fix after merge
kkawula Aug 5, 2024
82e7242
Remove 'constructor_with_arguments.cairo' and 'constructor_without_ar…
kkawula Aug 5, 2024
301a8d4
Add 'constructor_with_arguments.cairo' contract and update test_throw…
kkawula Aug 6, 2024
74e9360
Update 'test_constructor_arguments_contract_deploy'
kkawula Aug 6, 2024
50bad80
Add skiping test while cairo v1 test dir is triggered
kkawula Aug 6, 2024
46f4e6e
Update 'test_create_deployment_call_raw_supports_seed_0' and 'test_cr…
kkawula Aug 6, 2024
ad05ad8
Remove old 'constructor_with_arguments' fixture
kkawula Aug 6, 2024
a0db46f
Update 'test_deploying_with_udc'
kkawula Aug 6, 2024
c735a0d
Update 'constructor_with_arguments_abi' and 'constructor_with_argumen…
kkawula Aug 6, 2024
02c1647
Update docs example
kkawula Aug 6, 2024
c7152f2
Add 'map' contract implementation in cairo 1
kkawula Aug 6, 2024
e1dceb2
Add fixtures for new contract
kkawula Aug 6, 2024
518eafa
Remove 'map_contract_declare_hahs' fixutre
kkawula Aug 6, 2024
a1c69b4
Replace old 'map_contract' fixture
kkawula Aug 6, 2024
e5d6b71
Replace old 'map_class_hash' fixture
kkawula Aug 6, 2024
964a289
Update a few tests
kkawula Aug 6, 2024
a7d664c
Update 'test_deploying_in_multicall'
kkawula Aug 6, 2024
2b8520b
Remove 'Simple declare and deploy' paragraph from docs
kkawula Aug 6, 2024
bf0be0d
Update docs example 'Quickstart - Using Account'
kkawula Aug 6, 2024
dc814a2
Update docs example 'Guide - test_simple_deploy
kkawula Aug 6, 2024
8e9b904
Remove fixtures 'map_source_code' and 'map_compiled_contract'
kkawula Aug 6, 2024
44fb7c2
Fix PriceUnit assertion in 'test_account_estimate_fee_for_declare_tra…
kkawula Aug 6, 2024
a02e663
Add docs test to skip because of redeclaration :(
kkawula Aug 6, 2024
04c5850
Remove map.cairo
kkawula Aug 6, 2024
6f57a8d
Remove 'replace_class.cairo' conatract and fixture
kkawula Aug 6, 2024
7d163b0
Remove unused fixture 'fixture_balance_contract'
kkawula Aug 6, 2024
adfc532
Upadte 'test_estimate_fee_for_multiple_transactions'
kkawula Aug 7, 2024
b01371f
Update 'test_simulate_transactions_declare'
kkawula Aug 7, 2024
7939061
Remove 'test_simulate_transactions_declare'
kkawula Aug 7, 2024
7506f57
Update 'simple_storage_with_event' contract to cairo 1
kkawula Aug 7, 2024
a134d21
Add test to skip reason='Some cairo 1 contracts compiled with v1 comp…
kkawula Aug 7, 2024
c27654a
Merge branch 'development' into kkawula/1334-replace-cairo-0-contracts
kkawula Aug 8, 2024
d4dd60b
Merge 'kkawula/1334-replace-cairo-0-contracts'
kkawula Aug 8, 2024
bc2f6a4
Remove deprecated cairo 0 fixture 'simple_storage_with_event_compiled…
kkawula Aug 8, 2024
823f96c
Remove cairo v1 version of 'simple_storage_with_event.cairo' contract
kkawula Aug 8, 2024
5e0ff7d
Remove cairo v1 contracts that have events
kkawula Aug 8, 2024
f6f15f0
Remove removed contracts from lib.cairo
kkawula Aug 8, 2024
73332dc
Fix 'test_deserialize_abi' v1
kkawula Aug 8, 2024
8995741
Fix 'test_evenet_serialization_v1'
kkawula Aug 8, 2024
1a5db99
Fix 'test_throws_when_cairo1_without_compiled_contract_casm_and_class…
kkawula Aug 8, 2024
dd2785e
Merge branch 'development' into kkawula/1334-replace-cairo-0-contracts
kkawula Aug 8, 2024
3656a44
Merge branch 'kkawula/1334-replace-cairo-0-contracts' into 'kkawula/1…
kkawula Aug 9, 2024
db09b19
Fix 'test_throws_when_cairo1_without_compiled_contract_casm_and_class…
kkawula Aug 9, 2024
a273e9f
Add 'Balance' contract implementation in cairo v1
kkawula Aug 9, 2024
c316414
Update test for new Balance contract
kkawula Aug 9, 2024
b9350b6
Merge branch 'refs/heads/kkawula/replace-cairo-0-contracts-vol2' into…
kkawula Aug 9, 2024
82ac7f6
Fix funny error
kkawula Aug 9, 2024
8cadc5e
Remove cairo 0 'balance' contract
kkawula Aug 9, 2024
ed4a922
Remove cairo 0 'balance_struct_event' contract
kkawula Aug 9, 2024
652e0ec
Add folder with cairo 0 contracs abi; Delete 'balance_struxt_event' a…
kkawula Aug 9, 2024
4a0ea80
Remove unused 'mock_account.cairo' contract
kkawula Aug 19, 2024
e2a5844
Remove unused 'contract.cairo' contract
kkawula Aug 19, 2024
362ac44
Remove unused cairo 0 openzeppelin contracts
kkawula Aug 19, 2024
2fbad1e
Remove unused 'Upgradable.cairo' contract
kkawula Aug 19, 2024
bc9a7f7
Remove usage of cairo 0 account contract; Add cairo 1 account contract
kkawula Aug 19, 2024
4a3c65c
Fix 'test_compute_sierra_class_hash'
kkawula Aug 19, 2024
9c4e3e6
Add 'test_simple_declare_and_deploy' to skip
kkawula Aug 19, 2024
4eb752c
Remove cairo 0 'account_with_validate_deploy' contract
kkawula Aug 19, 2024
67af1cc
Remove cairo 0 contracts compiling script and workflow
kkawula Aug 19, 2024
fd9c3d9
Fix github workflows checks
kkawula Aug 20, 2024
fef6821
Revert "Fix github workflows checks"
kkawula Aug 20, 2024
31e462f
Reapply "Fix github workflows checks"
kkawula Aug 20, 2024
3fd4e7b
Fix github workflows checks
kkawula Aug 20, 2024
fb2dd69
Fix workflows
kkawula Aug 20, 2024
11cf1d7
Revert "Fix github workflows checks"
kkawula Aug 20, 2024
c4dd18b
Add download
kkawula Aug 20, 2024
93554b3
Fix 'test_deploy_account_v1'
kkawula Aug 20, 2024
284e989
Skip 'test_deploy_account_v1' for contract from v1 directory
kkawula Aug 20, 2024
01dff1a
Remove 'test_sign_invoke_v1_for_fee_estimation' (sign_decalre_v1)
kkawula Aug 21, 2024
13699a0
Remove unused fixture 'deployed_balance_contract' (declare_v1)
kkawula Aug 21, 2024
836e6b0
Remove 'declare_v1' method from 'Contract' class
kkawula Aug 21, 2024
68eca27
Remove 'sign_declare_v1' method from 'Account' and 'BaseAccount' class
kkawula Aug 21, 2024
1f1f120
Update docs 'deploying_contracts' (remove declare_v1)
kkawula Aug 21, 2024
eb71ff9
Enable deploying contracts without providing abi
kkawula Aug 22, 2024
0738067
Fix 'test_deploy_contract_v3_without_abi' test
kkawula Aug 22, 2024
4045018
Update vaildating calldata
kkawula Aug 22, 2024
9bfdce4
Remove 'test_throws_when_calldata_provided_without_abi'
kkawula Aug 22, 2024
544d598
Create 'test_constructor_arguments_contract_deploy_without_abi'
kkawula Aug 22, 2024
0071703
Remove 'test_throws_when_calldata_not_provided'
kkawula Aug 23, 2024
d2174a1
Rename 'is_valid_calldata' to '_is_list_of_ints_or_strings'
kkawula Aug 23, 2024
264b447
Add 'test_throws_when_calldata_provided_without_abi'
kkawula Aug 23, 2024
5f953d0
Lint
kkawula Aug 23, 2024
3609c74
Update starknet_py/tests/e2e/docs/code_examples/test_contract.py
kkawula Aug 28, 2024
0a9282f
Update docstring for '_is_list_of_ints_or_strings'
kkawula Aug 28, 2024
c69d4ce
Update starknet_py/tests/e2e/deploy/deployer_test.py
kkawula Aug 28, 2024
168e868
Update starknet_py/net/udc_deployer/deployer.py
kkawula Aug 28, 2024
d054263
Update starknet_py/tests/e2e/deploy/deployer_test.py
kkawula Aug 28, 2024
37d3d43
Fix '_is_list_of_ints_or_strings' docstring
kkawula Aug 28, 2024
b9e790c
Fix abi conditions
kkawula Aug 29, 2024
781ea0b
Merge branch 'development' into kkawula/enable-contract-deploy-withou…
kkawula Aug 29, 2024
54f0f92
Add empty line for readability
kkawula Aug 29, 2024
b315707
Fix after merge
kkawula Aug 29, 2024
553fb8b
Fix 'create_contract_deployment' condition
kkawula Aug 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 1 addition & 22 deletions .github/workflows/checks.yml
Original file line number Diff line number Diff line change
Expand Up @@ -120,29 +120,8 @@ jobs:
if: steps.cache-contracts_v1.outputs.cache-hit != 'true'
run: |
poetry run poe compile_contracts v1

# ====================== CONTRACTS v0 ====================== #

- name: Cache contracts v0
id: cache-contracts
uses: actions/cache@v3
with:
path: starknet_py/tests/e2e/mock/contracts_compiled
key: ${{ runner.os }}-contracts-${{ hashFiles('starknet_py/tests/e2e/mock/contracts', 'poetry.lock') }}-${{ env.CAIRO_LANG_VERSION }}

- name: Install deprecated cairo compiler
if: steps.cache-contracts.outputs.cache-hit != 'true'
run: |
pip install --upgrade setuptools
pip install sympy==1.11.1
pip install cairo-lang==${{ env.CAIRO_LANG_VERSION }}

- name: Compile contracts v0
if: steps.cache-contracts.outputs.cache-hit != 'true'
run: |
poetry run poe compile_contracts v0

- name: Upload contracts v0
- name: Upload contracts artifacts
uses: actions/upload-artifact@v3
with:
name: contract-artifacts
Expand Down
15 changes: 2 additions & 13 deletions docs/guide/deploying_contracts.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ Deploying contracts
Declaring contracts
-------------------

A declare transaction can be issued in version 1, 2 or 3. Contracts written in Cairo 0 should be declared using version 1, while those written in Cairo 1 or higher should be declared with versions 2 or 3.
To sign a declare transaction, you should utilize the :meth:`~starknet_py.net.account.account.Account.sign_declare_v1`, :meth:`~starknet_py.net.account.account.Account.sign_declare_v2` or :meth:`~starknet_py.net.account.account.Account.sign_declare_v3` method, respectively.
A declare transaction can be issued in version 2 or 3. Contracts written in Cairo 0 cannot be declared while those written in Cairo 1 or higher should be declared with versions 2 or 3.
To sign a declare transaction, you should utilize the :meth:`~starknet_py.net.account.account.Account.sign_declare_v2` or :meth:`~starknet_py.net.account.account.Account.sign_declare_v3` method, respectively.

Here's an example how to use it.

Expand All @@ -14,17 +14,6 @@ Here's an example how to use it.
:dedent: 4


Simple declare and deploy
-------------------------

The simplest way of declaring and deploying contracts on the Starknet is to use the :ref:`Contract` class.
Under the hood, this flow first sends ``Declare`` transaction and then sends ``Invoke``
through Universal Deployment Contract (UDC) to deploy a contract.

.. codesnippet:: ../../starknet_py/tests/e2e/docs/guide/test_simple_declare_and_deploy.py
:language: python
:dedent: 4

Simple deploy
-------------

Expand Down
7 changes: 3 additions & 4 deletions starknet_py/abi/v0/parser_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import starknet_py.tests.e2e.fixtures.abi_structures as fixtures
from starknet_py.abi.v0 import AbiParser, AbiParsingError
from starknet_py.cairo.type_parser import UnknownCairoTypeError
from starknet_py.tests.e2e.fixtures.constants import CONTRACTS_COMPILED_V0_DIR
from starknet_py.tests.e2e.fixtures.constants import CAIRO_0_ABI_DIR
from starknet_py.tests.e2e.fixtures.misc import read_contract


Expand Down Expand Up @@ -192,10 +192,9 @@ def test_missing_type_used(missing_name, input_dict):
def test_deserialize_balance_struct_event_abi():
# Contains all types of ABI apart from structures
abi = json.loads(
read_contract(
"balance_struct_event_abi.json", directory=CONTRACTS_COMPILED_V0_DIR
)
read_contract("balance_struct_event_abi.json", directory=CAIRO_0_ABI_DIR)
)

deserialized = AbiParser(abi).parse()

assert deserialized == fixtures.balance_struct_abi
Expand Down
9 changes: 3 additions & 6 deletions starknet_py/abi/v0/schemas_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,13 @@
from marshmallow import EXCLUDE

from starknet_py.abi.v0.schemas import ContractAbiEntrySchema
from starknet_py.tests.e2e.fixtures.constants import CONTRACTS_COMPILED_V0_DIR
from starknet_py.tests.e2e.fixtures.constants import CAIRO_0_ABI_DIR
from starknet_py.tests.e2e.fixtures.misc import read_contract


def test_deserialize_abi():
abi = json.loads(
read_contract(
"balance_struct_event_abi.json", directory=CONTRACTS_COMPILED_V0_DIR
)
)
abi = json.loads(read_contract("complex_abi_abi.json", directory=CAIRO_0_ABI_DIR))

deserialized = [
ContractAbiEntrySchema().load(entry, unknown=EXCLUDE) for entry in abi
]
Expand Down
4 changes: 2 additions & 2 deletions starknet_py/abi/v1/schemas_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,11 @@
"contract_name",
[
"Account",
"ERC20",
"Hello",
"HelloStarknet",
"MinimalContract",
"TestContract",
"TokenBridge",
"TestEnum",
],
)
def test_deserialize_abi(contract_name):
Expand Down
45 changes: 10 additions & 35 deletions starknet_py/contract.py
Original file line number Diff line number Diff line change
Expand Up @@ -808,37 +808,6 @@ async def from_address(
cairo_version=cairo_version,
)

@staticmethod
async def declare_v1(
account: BaseAccount,
compiled_contract: str,
*,
nonce: Optional[int] = None,
max_fee: Optional[int] = None,
auto_estimate: bool = False,
) -> DeclareResult:
"""
Declares a contract.

:param account: BaseAccount used to sign and send declare transaction.
:param compiled_contract: String containing compiled contract.
:param nonce: Nonce of the transaction.
:param max_fee: Max amount of Wei to be paid when executing transaction.
:param auto_estimate: Use automatic fee estimation (not recommended, as it may lead to high costs).
:return: DeclareResult instance.
"""

declare_tx = await account.sign_declare_v1(
compiled_contract=compiled_contract,
nonce=nonce,
max_fee=max_fee,
auto_estimate=auto_estimate,
)

return await _declare_contract(
declare_tx, account, compiled_contract, cairo_version=0
)

@staticmethod
async def declare_v2(
account: BaseAccount,
Expand Down Expand Up @@ -992,7 +961,7 @@ async def deploy_contract_v1(
async def deploy_contract_v3(
account: BaseAccount,
class_hash: Hash,
abi: List,
abi: Optional[List] = None,
constructor_args: Optional[Union[List, Dict]] = None,
*,
deployer_address: AddressRepresentation = DEFAULT_DEPLOYER_ADDRESS,
Expand Down Expand Up @@ -1043,9 +1012,15 @@ async def deploy_contract_v3(
auto_estimate=auto_estimate,
)

deployed_contract = Contract(
provider=account, address=address, abi=abi, cairo_version=cairo_version
)
if abi:
kkawula marked this conversation as resolved.
Show resolved Hide resolved
deployed_contract = Contract(
provider=account, address=address, abi=abi, cairo_version=cairo_version
)
else:
deployed_contract = await Contract.from_address(
address=address, provider=account
)

deploy_result = DeployResult(
hash=res.transaction_hash,
_client=account.client,
Expand Down
2 changes: 1 addition & 1 deletion starknet_py/hash/sierra_class_hash_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
"contract_name, expected_class_hash",
# fmt: off
[
("Account", 0x450f568a8cb6ea1bcce446355e8a1c2e5852a6b8dc3536f495cdceb62e8a7e2),
("Account", 0x183078afce57a1d33b948ea6cd9ab0769dd08ca93a6afe4c23637b08aa893c1),
("ERC20", 0x746248ba570006607113ae3f4dbb4130e81233fb818d15329c6a4aaccf94812),
("HelloStarknet", 0x224518978adb773cfd4862a894e9d333192fbd24bc83841dc7d4167c09b89c5),
("MinimalContract", 0x6fb1efd745d57b60023c6dc3209227e5e54d44fa16e0ae75cc03e1a7f3da08a),
Expand Down
27 changes: 1 addition & 26 deletions starknet_py/net/account/account.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import dataclasses
import json
from collections import OrderedDict
from typing import Any, Dict, Iterable, List, Optional, Tuple, Union

Expand Down Expand Up @@ -309,7 +308,7 @@ async def get_balance(
low, high = await self._client.call_contract(
Call(
to_addr=parse_address(token_address),
selector=get_selector_from_name("balanceOf"),
selector=get_selector_from_name("balance_of"),
calldata=[self.address],
),
block_hash=block_hash,
Expand Down Expand Up @@ -361,30 +360,6 @@ async def sign_invoke_v3(
signature = self.signer.sign_transaction(invoke_tx)
return _add_signature_to_transaction(invoke_tx, signature)

async def sign_declare_v1(
self,
compiled_contract: str,
*,
nonce: Optional[int] = None,
max_fee: Optional[int] = None,
auto_estimate: bool = False,
) -> DeclareV1:
if _is_sierra_contract(json.loads(compiled_contract)):
raise ValueError(
"Signing sierra contracts requires using `sign_declare_v2` method."
)

declare_tx = await self._make_declare_v1_transaction(
compiled_contract, nonce=nonce
)

max_fee = await self._get_max_fee(
transaction=declare_tx, max_fee=max_fee, auto_estimate=auto_estimate
)
declare_tx = _add_max_fee_to_transaction(declare_tx, max_fee)
signature = self.signer.sign_transaction(declare_tx)
return _add_signature_to_transaction(declare_tx, signature)

async def sign_declare_v2(
self,
compiled_contract: str,
Expand Down
20 changes: 0 additions & 20 deletions starknet_py/net/account/base_account.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
from starknet_py.net.models import AddressRepresentation
from starknet_py.net.models.transaction import (
AccountTransaction,
DeclareV1,
DeclareV2,
DeclareV3,
DeployAccountV1,
Expand Down Expand Up @@ -158,25 +157,6 @@ async def sign_invoke_v3(
:return: Invoke created from the calls.
"""

@abstractmethod
async def sign_declare_v1(
self,
compiled_contract: str,
*,
nonce: Optional[int] = None,
max_fee: Optional[int] = None,
auto_estimate: bool = False,
) -> DeclareV1:
"""
Create and sign declare transaction version 1.

:param compiled_contract: string containing a compiled Starknet contract. Supports old contracts.
:param nonce: Nonce of the transaction.
:param max_fee: Max amount of Wei to be paid when executing transaction.
:param auto_estimate: Use automatic fee estimation, not recommend as it may lead to high costs.
:return: Signed Declare transaction.
"""

@abstractmethod
async def sign_declare_v2(
self,
Expand Down
29 changes: 24 additions & 5 deletions starknet_py/net/udc_deployer/deployer.py
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,19 @@ def create_contract_deployment(
:param calldata: Constructor args of the contract to be deployed.
:return: NamedTuple with call and address of the contract to be deployed.
"""
if not abi and calldata:
raise ValueError("Argument calldata was provided without an ABI.")
raw_calldata = None

raw_calldata = translate_constructor_args(
abi=abi or [], constructor_args=calldata, cairo_version=cairo_version
)
if calldata and not abi:
kkawula marked this conversation as resolved.
Show resolved Hide resolved
if not _is_list_of_ints_or_strings(calldata):
raise ValueError(
"Argument calldata was provided without an ABI. It cannot be serialized."
)
raw_calldata = [int_from_hex(x) for x in calldata]

if calldata and abi:
kkawula marked this conversation as resolved.
Show resolved Hide resolved
raw_calldata = translate_constructor_args(
abi=abi or [], constructor_args=calldata, cairo_version=cairo_version
)

return self.create_contract_deployment_raw(
class_hash=class_hash, salt=salt, raw_calldata=raw_calldata
Expand Down Expand Up @@ -176,3 +183,15 @@ def _get_random_salt() -> int:
_deployer_serializer = serializer_for_function(
_deployer_abi.functions["deployContract"]
)


def _is_list_of_ints_or_strings(data: Union[List, dict]) -> bool:
"""
Checks if the given data is a list containing only strings or integers.

Returns:
bool: True if the data is a list of strings or integers, False otherwise.
"""
if isinstance(data, list):
return all(isinstance(x, (int, str)) for x in data)
return False
franciszekjob marked this conversation as resolved.
Show resolved Hide resolved
26 changes: 19 additions & 7 deletions starknet_py/serialization/serialization_test.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
serializer_for_function,
)
from starknet_py.serialization.tuple_dataclass import TupleDataclass
from starknet_py.tests.e2e.fixtures.constants import CONTRACTS_COMPILED_V0_DIR
from starknet_py.tests.e2e.fixtures.constants import CAIRO_0_ABI_DIR
from starknet_py.tests.e2e.fixtures.misc import (
ContractVersion,
load_contract,
Expand Down Expand Up @@ -105,14 +105,26 @@ class Education(NamedTuple):
*dog_serialized,
]

abi = json.loads(
read_contract("complex_abi_abi.json", directory=CONTRACTS_COMPILED_V0_DIR)
)
abi = json.loads(read_contract("complex_abi_abi.json", directory=CAIRO_0_ABI_DIR))
parsed_abi = AbiParserV0(abi).parse()

abi_v1 = json.loads(
load_contract(contract_name="ERC20", version=ContractVersion.V1)["sierra"]
)["abi"]
abi_v1 = [
{
"type": "event",
"name": "Approval",
"inputs": [
{
"name": "owner",
"type": "core::starknet::contract_address::ContractAddress",
},
{
"name": "spender",
"type": "core::starknet::contract_address::ContractAddress",
},
{"name": "value", "type": "core::integer::u256"},
],
}
]
parsed_abi_v1 = AbiParserV1(abi_v1).parse()

abi_v2 = json.loads(
Expand Down
Loading
Loading