From 0fc730d72dd139a2d344ba1ce4e6d8219edfe143 Mon Sep 17 00:00:00 2001 From: Eddort Date: Thu, 23 Jan 2025 16:55:59 +0100 Subject: [PATCH] feat: devnet config and fixes --- docker-compose.devnet.yml | 86 +++++++++++++++++++ .../deposit_strategy/gas_price_calculator.py | 9 +- 2 files changed, 93 insertions(+), 2 deletions(-) create mode 100644 docker-compose.devnet.yml diff --git a/docker-compose.devnet.yml b/docker-compose.devnet.yml new file mode 100644 index 00000000..5cac40c0 --- /dev/null +++ b/docker-compose.devnet.yml @@ -0,0 +1,86 @@ +version: "3.7" + +networks: + devnet: + name: ${DOCKER_NETWORK_NAME} + external: true + +services: + depositor-bot: + build: . + networks: + - devnet + restart: unless-stopped + ports: + - 127.0.0.1:9000:9000 + environment: + - WEB3_RPC_ENDPOINTS=${WEB3_RPC_ENDPOINTS} + - LIDO_LOCATOR=${LIDO_LOCATOR} + - WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY} + - CREATE_TRANSACTIONS=${CREATE_TRANSACTIONS} + - DEPOSIT_CONTRACT=${DEPOSIT_CONTRACT} + + - MESSAGE_TRANSPORTS=${MESSAGE_TRANSPORTS} + + - ONCHAIN_TRANSPORT_ADDRESS=${ONCHAIN_TRANSPORT_ADDRESS} + - ONCHAIN_TRANSPORT_RPC_ENDPOINTS=${ONCHAIN_TRANSPORT_RPC_ENDPOINTS} + + - RABBIT_MQ_URL=${RABBIT_MQ_URL} + - RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME} + - RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD} + - RELAY_RPC=${RELAY_RPC} + - AUCTION_BUNDLER_PRIVATE_KEY=${AUCTION_BUNDLER_PRIVATE_KEY} + - DEPOSIT_MODULES_WHITELIST=${DEPOSIT_MODULES_WHITELIST} + - PROMETHEUS_PREFIX=${PROMETHEUS_PREFIX} + command: depositor + + pause-bot: + build: . + networks: + - devnet + restart: unless-stopped + ports: + - 127.0.0.1:9001:9000 + environment: + - WEB3_RPC_ENDPOINTS=${WEB3_RPC_ENDPOINTS} + - LIDO_LOCATOR=${LIDO_LOCATOR} + - WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY} + - CREATE_TRANSACTIONS=${CREATE_TRANSACTIONS} + - DEPOSIT_CONTRACT=${DEPOSIT_CONTRACT} + + - MESSAGE_TRANSPORTS=${MESSAGE_TRANSPORTS} + + - ONCHAIN_TRANSPORT_ADDRESS=${ONCHAIN_TRANSPORT_ADDRESS} + - ONCHAIN_TRANSPORT_RPC_ENDPOINTS=${ONCHAIN_TRANSPORT_RPC_ENDPOINTS} + + - RABBIT_MQ_URL=${RABBIT_MQ_URL} + - RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME} + - RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD} + - PROMETHEUS_PREFIX=${PROMETHEUS_PREFIX} + command: pauser + + unvetting-bot: + build: . + networks: + - devnet + restart: unless-stopped + ports: + - 127.0.0.1:9002:9000 + environment: + - WEB3_RPC_ENDPOINTS=${WEB3_RPC_ENDPOINTS} + - LIDO_LOCATOR=${LIDO_LOCATOR} + - WALLET_PRIVATE_KEY=${WALLET_PRIVATE_KEY} + - CREATE_TRANSACTIONS=${CREATE_TRANSACTIONS} + - DEPOSIT_CONTRACT=${DEPOSIT_CONTRACT} + + - MESSAGE_TRANSPORTS=${MESSAGE_TRANSPORTS} + + - ONCHAIN_TRANSPORT_ADDRESS=${ONCHAIN_TRANSPORT_ADDRESS} + - ONCHAIN_TRANSPORT_RPC_ENDPOINTS=${ONCHAIN_TRANSPORT_RPC_ENDPOINTS} + + - RABBIT_MQ_URL=${RABBIT_MQ_URL} + - RABBIT_MQ_USERNAME=${RABBIT_MQ_USERNAME} + - RABBIT_MQ_PASSWORD=${RABBIT_MQ_PASSWORD} + + - PROMETHEUS_PREFIX=${PROMETHEUS_PREFIX} + command: unvetter diff --git a/src/blockchain/deposit_strategy/gas_price_calculator.py b/src/blockchain/deposit_strategy/gas_price_calculator.py index baa9a38b..b73f2d17 100644 --- a/src/blockchain/deposit_strategy/gas_price_calculator.py +++ b/src/blockchain/deposit_strategy/gas_price_calculator.py @@ -29,7 +29,9 @@ def get_recommended_gas_fee(self) -> Wei: return Wei(int(numpy.percentile(gas_history, variables.GAS_FEE_PERCENTILE_1))) + variables.GAS_ADDENDUM def _fetch_gas_fee_history(self, days: int) -> list[Wei]: - latest_block_num = self.w3.eth.get_block('latest')['number'] + latest_block = self.w3.eth.get_block('latest') + + latest_block_num = latest_block['number'] logger.info({'msg': 'Fetch gas fee history.', 'value': {'block_number': latest_block_num}}) total_blocks_to_fetch = self._BLOCKS_IN_ONE_DAY * days @@ -40,6 +42,9 @@ def _fetch_gas_fee_history(self, days: int) -> list[Wei]: for _ in range(requests_count): stats = self.w3.eth.fee_history(self._REQUEST_SIZE, last_block, []) - last_block = BlockNumber(stats['oldestBlock'] - 2) + # TODO: review and make fix for devnet without day history + stat_item = last_block if stats['oldestBlock'] == 0 else stats['oldestBlock'] - 2 + last_block = BlockNumber(stat_item) + gas_fees = stats['baseFeePerGas'] + gas_fees return gas_fees[: days * self._BLOCKS_IN_ONE_DAY]