From 719411b7bff25c5ae845fb1bf031392c9d489814 Mon Sep 17 00:00:00 2001 From: darwintree <17946284+darwintree@users.noreply.github.com> Date: Fri, 10 Jan 2025 17:40:20 +0800 Subject: [PATCH] tests: remove solcx dependency --- dev-support/dep_pip3.sh | 4 +--- tests/fixed_supply_token_test.py | 10 ++++++---- tests/test_contracts | 2 +- tests/test_framework/util.py | 20 +++++++++----------- 4 files changed, 17 insertions(+), 19 deletions(-) diff --git a/dev-support/dep_pip3.sh b/dev-support/dep_pip3.sh index da40ab3401..156831e4e7 100755 --- a/dev-support/dep_pip3.sh +++ b/dev-support/dep_pip3.sh @@ -2,9 +2,7 @@ set -e -pip3 install cfx-account eth-utils py-ecc rlp trie coincurve safe-pysha3 conflux-web3==1.4.0b5 web3 py-solc-x jsonrpcclient==3.3.6 asyncio websockets pyyaml numpy - -python3 -m solcx.install v0.5.17 +pip3 install cfx-account eth-utils py-ecc rlp trie coincurve safe-pysha3 conflux-web3==1.4.0b5 web3 jsonrpcclient==3.3.6 asyncio websockets pyyaml numpy # TODO cross platform #yum install clang snappy snappy-devel zlib zlib-devel bzip2 bzip2-devel lz4-devel diff --git a/tests/fixed_supply_token_test.py b/tests/fixed_supply_token_test.py index 6e859003f0..d348106699 100755 --- a/tests/fixed_supply_token_test.py +++ b/tests/fixed_supply_token_test.py @@ -6,7 +6,7 @@ from web3 import Web3 import os -from test_framework.util import get_contract_instance +from test_framework.util import load_contract_metadata class FixedTokenSupplyTokenTest(SmartContractBenchBase): @@ -18,9 +18,11 @@ def __init__(self): self.accounts = [] def setup_contract(self): - file_dir = os.path.dirname(os.path.realpath(__file__)) - self.contract = get_contract_instance(source=os.path.join(file_dir, "contracts/fixed_supply_token.sol"), - contract_name="FixedSupplyToken") + metadata = load_contract_metadata("ERC20") + self.contract = Web3().eth.contract( + abi=metadata["abi"], + bytecode=metadata["bytecode"], + ) self.log.info("Initializing contract") transaction = self.call_contract_function(self.contract, "constructor", [], self.default_account_key, storage_limit=20000) diff --git a/tests/test_contracts b/tests/test_contracts index 68fa543c28..9522aefa75 160000 --- a/tests/test_contracts +++ b/tests/test_contracts @@ -1 +1 @@ -Subproject commit 68fa543c2858465cff09ffad9ac3571c4597d93c +Subproject commit 9522aefa75673ae9a92132c0c5eb6f508739f030 diff --git a/tests/test_framework/util.py b/tests/test_framework/util.py index 45083233c6..c4ed0a4ebb 100644 --- a/tests/test_framework/util.py +++ b/tests/test_framework/util.py @@ -15,7 +15,6 @@ import socket import threading import jsonrpcclient.exceptions -import solcx import conflux_web3 # should be imported before web3 import web3 from cfx_account import Account as CfxAccount @@ -34,8 +33,6 @@ if TYPE_CHECKING: from conflux.rpc import RpcClient -solcx.set_solc_version('v0.5.17') - CONFLUX_RPC_WAIT_TIMEOUT = 60 CONFLUX_GRACEFUL_SHUTDOWN_TIMEOUT = 1220 @@ -758,14 +755,15 @@ def get_contract_instance(contract_dict=None, w3 = web3.Web3() contract = None if source and contract_name: - output = solcx.compile_files([source]) - if platform == "win32": - source = os.path.abspath(source).replace("\\","/") - contract_dict = output[f"{source}:{contract_name}"] - if "bin" in contract_dict: - contract_dict["bytecode"] = contract_dict.pop("bin") - elif "code" in contract_dict: - contract_dict["bytecode"] = contract_dict.pop("code") + raise Exception("deprecated") + # output = solcx.compile_files([source]) + # if platform == "win32": + # source = os.path.abspath(source).replace("\\","/") + # contract_dict = output[f"{source}:{contract_name}"] + # if "bin" in contract_dict: + # contract_dict["bytecode"] = contract_dict.pop("bin") + # elif "code" in contract_dict: + # contract_dict["bytecode"] = contract_dict.pop("code") if contract_dict: contract = w3.eth.contract( abi=contract_dict['abi'], bytecode=contract_dict['bytecode'], address=address)