From ae9ba14b595c728b72bf2da129604a986d114004 Mon Sep 17 00:00:00 2001 From: Victor Shyba Date: Tue, 11 Feb 2020 22:19:13 -0300 Subject: [PATCH] use both donation and payment addresses separately --- lbry/wallet/server/env.py | 1 + lbry/wallet/server/session.py | 7 +++++++ tests/integration/blockchain/test_network.py | 9 ++++++--- 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/lbry/wallet/server/env.py b/lbry/wallet/server/env.py index a8c2a9ae8..80b4c3e1f 100644 --- a/lbry/wallet/server/env.py +++ b/lbry/wallet/server/env.py @@ -73,6 +73,7 @@ class Env: self.tor_proxy_port = self.integer('TOR_PROXY_PORT', None) # The electrum client takes the empty string as unspecified self.payment_address = self.default('PAYMENT_ADDRESS', '') + self.donation_address = self.default('DONATION_ADDRESS', '') # Server limits to help prevent DoS self.max_send = self.integer('MAX_SEND', 1000000) self.max_subs = self.integer('MAX_SUBS', 250000) diff --git a/lbry/wallet/server/session.py b/lbry/wallet/server/session.py index 40e2fc032..3eee3f0f5 100644 --- a/lbry/wallet/server/session.py +++ b/lbry/wallet/server/session.py @@ -801,6 +801,7 @@ class LBRYElectrumX(SessionBase): 'server.add_peer': cls.add_peer, 'server.banner': cls.banner, 'server.payment_address': cls.payment_address, + 'server.donation_address': cls.donation_address, 'server.features': cls.server_features_async, 'server.peers.subscribe': cls.peers_subscribe, 'server.version': cls.server_version, @@ -855,6 +856,7 @@ class LBRYElectrumX(SessionBase): 'genesis_hash': env.coin.GENESIS_HASH, 'description': env.description, 'payment_address': env.payment_address, + 'donation_address': env.donation_address, 'daily_fee': env.daily_fee, 'hash_function': 'sha256', } @@ -1363,6 +1365,7 @@ class LBRYElectrumX(SessionBase): ('$DAEMON_VERSION', daemon_version), ('$DAEMON_SUBVERSION', network_info['subversion']), ('$PAYMENT_ADDRESS', self.env.payment_address), + ('$DONATION_ADDRESS', self.env.donation_address), ]: banner = banner.replace(*pair) return banner @@ -1371,6 +1374,10 @@ class LBRYElectrumX(SessionBase): """Return the payment address as a string, empty if there is none.""" return self.env.payment_address + async def donation_address(self): + """Return the donation address as a string, empty if there is none.""" + return self.env.donation_address + async def banner(self): """Return the server banner text.""" banner = f'You are connected to an {self.version} server.' diff --git a/tests/integration/blockchain/test_network.py b/tests/integration/blockchain/test_network.py index fb119bf5e..6f87cdc37 100644 --- a/tests/integration/blockchain/test_network.py +++ b/tests/integration/blockchain/test_network.py @@ -28,15 +28,17 @@ class NetworkTests(IntegrationTestCase): 'pruning': None, 'description': '', 'payment_address': '', + 'donation_address': '', '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] + payment_address, donation_address = await self.account.get_addresses(limit=2) await self.conductor.spv_node.start( self.conductor.blockchain_node, extraconf={ 'DESCRIPTION': 'Fastest server in the west.', - 'PAYMENT_ADDRESS': address, + 'PAYMENT_ADDRESS': payment_address, + 'DONATION_ADDRESS': donation_address, 'DAILY_FEE': '42' } ) @@ -49,7 +51,8 @@ class NetworkTests(IntegrationTestCase): 'protocol_min': '0.54.0', 'pruning': None, 'description': 'Fastest server in the west.', - 'payment_address': address, + 'payment_address': payment_address, + 'donation_address': donation_address, 'daily_fee': '42', 'server_version': lbry.__version__}, await self.ledger.network.get_server_features())