| 1234567891011121314151617181920212223242526272829303132333435363738 |
- #!/usr/bin/env python3
- #
- # MMGen Wallet, a terminal-based cryptocurrency wallet
- # Copyright (C)2013-2025 The MMGen Project <mmgen@tuta.io>
- # Licensed under the GNU General Public License, Version 3:
- # https://www.gnu.org/licenses
- # Public project repositories:
- # https://github.com/mmgen/mmgen-wallet
- # https://gitlab.com/mmgen/mmgen-wallet
- """
- test.cmdtest_d.httpd.etherscan: Etherscan WSGI http server
- """
- from . import HTTPD
- class EtherscanServer(HTTPD):
- name = 'etherscan server'
- port = 28800
- content_type = 'text/html'
- def make_response_body(self, method, environ):
- if method == 'GET':
- target = 'form'
- elif method == 'POST':
- target = 'result'
- length = int(environ.get('CONTENT_LENGTH', '0'))
- qs = environ['wsgi.input'].read(length).decode()
- tx = [s for s in qs.split('&') if 'RawTx=' in s][0].split('=')[1][:10]
- if tx == '0xf86f0185':
- txid = '1c034395c9aa2217abbbf3ed4d89c5ad1aa0f0215aa11d02efeea33a5ac8331c'
- else:
- txid = 'beadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafe'
- with open(f'test/ref/ethereum/etherscan-{target}.html') as fh:
- text = fh.read()
- return (text if method == 'GET' else text.format(txid='0x'+txid)).encode()
|