test suite: EtherscanServer: return correct TxID

This commit is contained in:
The MMGen Project 2025-06-16 14:35:30 +00:00
commit e0d5463ea7
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
2 changed files with 17 additions and 5 deletions

View file

@ -20,6 +20,19 @@ class EtherscanServer(HTTPD):
content_type = 'text/html'
def make_response_body(self, method, environ):
targets = {'GET': 'form', 'POST': 'result'}
with open(f'test/ref/ethereum/etherscan-{targets[method]}.html') as fh:
return fh.read().encode()
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()

View file

@ -15,8 +15,7 @@
<input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="baz" />
<div>
<div>
<div role='alert'><button type='button'></button><strong>Success! </strong>{"jsonrpc":"2.0","id":1,"result":"0xbeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafe"}
<span class='d-block'><i></i> Transaction Hash: <a href='/tx/0xbeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafe'><span class='text-primary'><a href='/tx/0xbeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafe'>0xbeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafebeadcafe</a></span></b></a></span></div>
<div role='alert'><button type='button'></button><strong>Success! </strong>{{"jsonrpc":"2.0","id":1,"result":"{txid}"}} <span class='d-block'><i></i> Transaction Hash: <a href='/tx/{txid}'><span class='text-primary'><a href='/tx/{txid}'>{txid}</a></span></b></a></span></div>
<label for="signedTransactionHex">Enter signed transaction hex</label>
<div>
<textarea name="ctl00$ContentPlaceHolder1$txtRawTx" rows="8" cols="20" maxlength="50000" id="ContentPlaceHolder1_txtRawTx" required="" placeholder="e.g. 0x.." data-bg-msg="Please enter signed transaction hex">