From 522acb06652fe2448eb7e49e8a2e59fff308fdb8 Mon Sep 17 00:00:00 2001 From: Alexander Sysoev Date: Mon, 29 Apr 2024 16:37:58 +0300 Subject: [PATCH] Add inactive_validator_balance to protocol config (#100) * Add inactive_validator_balance to protocol config * Typo fix --- pyproject.toml | 2 +- sw_utils/protocol_config.py | 3 +++ sw_utils/tests/factories.py | 2 ++ sw_utils/typings.py | 4 +++- 4 files changed, 9 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 6579a94..bba8511 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "sw-utils" -version = "0.6.10" +version = "0.6.11" description = "StakeWise Python utils" authors = ["StakeWise Labs "] license = "GPL-3.0-or-later" diff --git a/sw_utils/protocol_config.py b/sw_utils/protocol_config.py index f0adbb7..026258c 100644 --- a/sw_utils/protocol_config.py +++ b/sw_utils/protocol_config.py @@ -1,3 +1,5 @@ +from web3.types import Wei + from sw_utils.typings import Oracle, ProtocolConfig @@ -37,6 +39,7 @@ def build_protocol_config( vault_fee_max_bps=config_data['vault_max_fee'], validator_min_active_epochs=config_data['validator_min_active_epochs'], validators_exit_queued_assets_bps=config_data['validators_exit_queued_assets_bps'], + inactive_validator_balance=Wei(int(config_data['inactive_validator_balance'])), validators_approval_batch_limit=config_data['validators_approval_batch_limit'], validators_exit_rotation_batch_limit=config_data['validators_exit_rotation_batch_limit'], exit_signature_epoch=config_data['exit_signature_epoch'], diff --git a/sw_utils/tests/factories.py b/sw_utils/tests/factories.py index abb54b9..a2d7693 100644 --- a/sw_utils/tests/factories.py +++ b/sw_utils/tests/factories.py @@ -61,6 +61,7 @@ def get_mocked_protocol_config( signature_validity_period: int = 60, until_force_exit_epochs: int = 1000, validators_exit_queued_assets_bps: int = 500, # 5% + inactive_validator_balance: Wei = Web3.to_wei(31.75, 'ether'), validator_min_active_epochs: int = 2250, # 10 days vault_fee_max_bps: int = 1500, # 15% ) -> ProtocolConfig: @@ -79,6 +80,7 @@ def get_mocked_protocol_config( vault_fee_max_bps=vault_fee_max_bps, validator_min_active_epochs=validator_min_active_epochs, validators_exit_queued_assets_bps=validators_exit_queued_assets_bps, + inactive_validator_balance=inactive_validator_balance, validators_approval_batch_limit=validators_approval_batch_limit, validators_exit_rotation_batch_limit=validators_exit_rotation_batch_limit, exit_signature_epoch=exit_signature_epoch, diff --git a/sw_utils/typings.py b/sw_utils/typings.py index db29dd1..998622f 100644 --- a/sw_utils/typings.py +++ b/sw_utils/typings.py @@ -4,7 +4,7 @@ from eth_keys.datatypes import PublicKey from eth_typing import BlockNumber, HexStr from web3 import Web3 -from web3.types import ChecksumAddress, Timestamp +from web3.types import ChecksumAddress, Timestamp, Wei Bytes32 = NewType('Bytes32', bytes) @@ -51,6 +51,8 @@ class ProtocolConfig: # 1 percent = 100 bps validators_exit_queued_assets_bps: int + inactive_validator_balance: Wei + validators_approval_batch_limit: int validators_exit_rotation_batch_limit: int