diff --git a/lbry/wallet/server/env.py b/lbry/wallet/server/env.py index 9a06c8145..a8c2a9ae8 100644 --- a/lbry/wallet/server/env.py +++ b/lbry/wallet/server/env.py @@ -81,7 +81,7 @@ class Env: self.session_timeout = self.integer('SESSION_TIMEOUT', 600) self.drop_client = self.custom("DROP_CLIENT", None, re.compile) self.description = self.default('DESCRIPTION', '') - self.daily_fee = self.integer('DAILY_FEE', 0) + self.daily_fee = self.string_amount('DAILY_FEE', '0') # Identities clearnet_identity = self.clearnet_identity() @@ -107,6 +107,14 @@ class Env: raise cls.Error(f'required envvar {envvar} not set') return value + @classmethod + def string_amount(cls, envvar, default): + value = environ.get(envvar, default) + amount_pattern = re.compile("[0-9]{0,10}(\.[0-9]{1,8})?") + if len(value) > 0 and not amount_pattern.fullmatch(value): + raise cls.Error(f'{value} is not a valid amount for {envvar}') + return value + @classmethod def integer(cls, envvar, default): value = environ.get(envvar) diff --git a/tests/integration/blockchain/test_network.py b/tests/integration/blockchain/test_network.py index a4148a996..113c9a474 100644 --- a/tests/integration/blockchain/test_network.py +++ b/tests/integration/blockchain/test_network.py @@ -29,7 +29,7 @@ class NetworkTests(IntegrationTestCase): 'pruning': None, 'description': '', 'payment_address': '', - 'daily_fee': 0, + 'daily_fee': '0', 'server_version': lbry.__version__}, await self.ledger.network.get_server_features()) await self.conductor.spv_node.stop() address = (await self.account.get_addresses(limit=1))[0] @@ -48,7 +48,7 @@ class NetworkTests(IntegrationTestCase): 'pruning': None, 'description': 'Fastest server in the west.', 'payment_address': address, - 'daily_fee': 42, + 'daily_fee': '42', 'server_version': lbry.__version__}, await self.ledger.network.get_server_features())