diff --git a/deposit.sh b/deposit.sh index cda7f036..3af4663d 100755 --- a/deposit.sh +++ b/deposit.sh @@ -4,12 +4,12 @@ if [[ "$OSTYPE" == "linux"* ]] || [[ "$OSTYPE" == "linux-android"* ]] || [[ "$OS echo $OSTYPE if [[ $1 == "install" ]]; then echo "Installing dependencies..." - pip3 install -r requirements.txt - python3 setup.py install + python3.10 -m pip install -r requirements.txt + python3.10 setup.py install exit 1 fi echo "Running deposit-cli..." - PYTHONPATH=. python3 ./staking_deposit/deposit.py "$@" + PYTHONPATH=. python3.10 ./staking_deposit/deposit.py "$@" elif [[ "$OSTYPE" == "msys" ]] || [[ "$OSTYPE" == "cygwin" ]]; then echo $OSTYPE diff --git a/requirements.txt b/requirements.txt index 742a3ca6..52a41019 100644 --- a/requirements.txt +++ b/requirements.txt @@ -141,8 +141,8 @@ eth-utils==1.10.0 \ # -r requirements.in # py-ecc # ssz -lru-dict==1.1.7 \ - --hash=sha256:45b81f67d75341d4433abade799a47e9c42a9e22a118531dcb5e549864032d7c +lru-dict==1.1.8 \ + --hash=sha256:3fef595c4f573141d54a38bda9221b9ee3cbe0acc73d67304a1a6d5972eb2a02 # via # -r requirements.in # ssz diff --git a/setup.py b/setup.py index 41412156..229bcc89 100644 --- a/setup.py +++ b/setup.py @@ -1,4 +1,5 @@ from setuptools import find_packages, setup +from staking_deposit import __version__ """ THIS IS A STUB FOR RUNNING THE APP @@ -6,7 +7,7 @@ setup( name="staking_deposit", - version='2.5.6', + version=__version__, py_modules=["staking_deposit"], packages=find_packages(exclude=('tests', 'docs')), python_requires=">=3.8,<4", diff --git a/staking_deposit/cli/generate_bls_to_execution_change.py b/staking_deposit/cli/generate_bls_to_execution_change.py index 0b3b0f49..fefc8ff1 100644 --- a/staking_deposit/cli/generate_bls_to_execution_change.py +++ b/staking_deposit/cli/generate_bls_to_execution_change.py @@ -35,7 +35,7 @@ ) from staking_deposit.settings import ( ALL_CHAINS, - MAINNET, + LUKSO, PRATER, get_chain_setting, get_devnet_chain_setting, @@ -69,7 +69,7 @@ def get_password(text: str) -> str: list(ALL_CHAINS.keys()) ), ), - default=MAINNET, + default=LUKSO, help=lambda: load_text(['arg_chain', 'help'], func=FUNC_NAME), param_decls='--chain', prompt=choice_prompt_func( diff --git a/staking_deposit/settings.py b/staking_deposit/settings.py index 390e5f09..210a45f7 100644 --- a/staking_deposit/settings.py +++ b/staking_deposit/settings.py @@ -14,11 +14,11 @@ class BaseChainSetting(NamedTuple): LUKSO_TESTNET = 'lukso-testnet' LUKSO_DEVNET = 'lukso-devnet' MAINNET = 'mainnet' -ROPSTEN = 'ropsten' GOERLI = 'goerli' PRATER = 'prater' SEPOLIA = 'sepolia' ZHEJIANG = 'zhejiang' +HOLESKY = 'holesky' # LUKSO mainnet setting LUKSOSetting = BaseChainSetting( @@ -49,6 +49,10 @@ class BaseChainSetting(NamedTuple): ZhejiangSetting = BaseChainSetting( NETWORK_NAME=ZHEJIANG, GENESIS_FORK_VERSION=bytes.fromhex('00000069'), GENESIS_VALIDATORS_ROOT=bytes.fromhex('53a92d8f2bb1d85f62d16a156e6ebcd1bcaba652d0900b2c2f387826f3481f6f')) +# Holesky setting +HoleskySetting = BaseChainSetting( + NETWORK_NAME=HOLESKY, GENESIS_FORK_VERSION=bytes.fromhex('01017000'), + GENESIS_VALIDATORS_ROOT=bytes.fromhex('9143aa7c615a7f7115e2b6aac319c03529df8242ae705fba9df39b79c59fa8b1')) ALL_CHAINS: Dict[str, BaseChainSetting] = { @@ -60,10 +64,11 @@ class BaseChainSetting(NamedTuple): PRATER: GoerliSetting, # Prater is the old name of the Prater/Goerli testnet SEPOLIA: SepoliaSetting, ZHEJIANG: ZhejiangSetting, + HOLESKY: HoleskySetting, } -def get_chain_setting(chain_name: str = MAINNET) -> BaseChainSetting: +def get_chain_setting(chain_name: str = LUKSO) -> BaseChainSetting: return ALL_CHAINS[chain_name] diff --git a/tests/test_utils/test_validation.py b/tests/test_utils/test_validation.py index 9b918462..2139b4f8 100644 --- a/tests/test_utils/test_validation.py +++ b/tests/test_utils/test_validation.py @@ -8,6 +8,8 @@ normalize_input_list, validate_int_range, validate_password_strength, + normalize_bls_withdrawal_credentials_to_bytes, + validate_bls_withdrawal_credentials, ) @@ -60,3 +62,23 @@ def test_validate_int_range(num: Any, low: int, high: int, valid: bool) -> None: ) def test_normalize_input_list(input, result): assert normalize_input_list(input) == result + + +@pytest.mark.parametrize( + 'input', + [ + '0x00abfc563b1f859d24c91dde59b95621579792b00633b69b262d74ad1e9da3a4', + ] +) +def test_normalize_bls_withdrawal_credentials_to_bytes(input): + assert normalize_bls_withdrawal_credentials_to_bytes(input) is not ValidationError + + +@pytest.mark.parametrize( + 'input', + [ + '0x00abfc563b1f859d24c91dde59b95621579792b00633b69b262d74ad1e9da3a4', + ] +) +def test_validate_bls_withdrawal_credentials(input): + assert validate_bls_withdrawal_credentials(input) is not ValidationError