feat: Add crypto address verifications
All checks were successful
Build Docker / BuildImage (push) Successful in 35s
All checks were successful
Build Docker / BuildImage (push) Successful in 35s
This commit is contained in:
parent
9fc218feb1
commit
eec66b13ca
6
.well-known/wallets/.BTC.proof
Normal file
6
.well-known/wallets/.BTC.proof
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
I hereby confirm that I am the owner of the Bitcoin address bc1q60qy4s6gd7se8z6nc4wu49g4u5y8k2epd3djzc.
|
||||||
|
Nathan.Woodburn/
|
||||||
|
--------------------
|
||||||
|
H3oLoxLyax3gW6KkGfJiarseaktWWydyfS2TZ1zGoDlkIoMG/nIlNWNC5xc/uHCdPs+CIJgxNRq0GQI91qkalpg=
|
||||||
|
--------------------
|
||||||
|
You can verify this signature by pasting it into a signature verification tool such as https://www.verifybitcoinmessage.com/.
|
6
.well-known/wallets/.ETH.proof
Normal file
6
.well-known/wallets/.ETH.proof
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
I hereby confirm that I am the owner of the EVM address 0x6cB4B39bEc23a921C9a20D061Bf17d4640B0d39e.
|
||||||
|
Nathan.Woodburn/
|
||||||
|
--------------------
|
||||||
|
0x254919e1f2035a4f04614da9e1fbc1f45dab31b03b0baf1bb3325a9f9e437f1f787b99ebc6716b822fc190284c2c678054c91835492ff0df239ec60f6166587f1c
|
||||||
|
--------------------
|
||||||
|
You can verify this signature by pasting it into a signature verification tool such as https://etherscan.io/verifiedSignatures
|
13
.well-known/wallets/.SOL.proof
Normal file
13
.well-known/wallets/.SOL.proof
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
I hereby confirm that I am the owner of the SOL address AJsPEEe6S7XSiVcdZKbeV8GRp1QuhFUsG8mLrqL4XgiU.
|
||||||
|
Nathan.Woodburn/
|
||||||
|
--------------------
|
||||||
|
[71,63,207,190,90,17,145,39,4,98,110,176,86,140,143,107,237,96,24,43,2,116,21,70,47,98,192,24,193,210,89,220,30,128,219,105,9,35,146,188,216,143,164,32,255,44,146,249,153,33,54,214,203,159,80,26,107,165,217,240,153,61,39,0]
|
||||||
|
--------------------
|
||||||
|
0x473fcfbe5a11912704626eb0568c8f6bed60182b027415462f62c018c1d259dc1e80db69092392bcd88fa420ff2c92f9992136d6cb9f501a6ba5d9f0993d2700
|
||||||
|
--------------------
|
||||||
|
2Rd2EkAUwC8u4DtCZ5BXTkJEvWxozrxmcEzn7VbJFFbL81YLQngH9V1bTu3vivaQz7ZGqs5YtpPWxomsYeE7Ws6F
|
||||||
|
--------------------
|
||||||
|
Rz/PvloRkScEYm6wVoyPa+1gGCsCdBVGL2LAGMHSWdwegNtpCSOSvNiPpCD/LJL5mSE21sufUBprpdnwmT0nAA==
|
||||||
|
--------------------
|
||||||
|
You can verify this signature by pasting it into a signature verification tool such as https://amacar.github.io/solana-tools/#verify-message
|
||||||
|
Please note I have included various formats for the signature to make it easier to verify.
|
@ -1 +1 @@
|
|||||||
bc1qhs94zzcw64qnwq4hvk056rwxwvgrkd7tq7d4xw
|
bc1q60qy4s6gd7se8z6nc4wu49g4u5y8k2epd3djzc
|
18
server.py
18
server.py
@ -523,6 +523,11 @@ def donate():
|
|||||||
address = ''
|
address = ''
|
||||||
domain = ''
|
domain = ''
|
||||||
cryptoHTML = ''
|
cryptoHTML = ''
|
||||||
|
|
||||||
|
proof = ''
|
||||||
|
if os.path.isfile(f'.well-known/wallets/.{crypto}.proof'):
|
||||||
|
proof = f'<a href="/.well-known/wallets/.{crypto}.proof" target="_blank"><img src="/assets/img/proof.png" alt="Proof of ownership" style="width: 100%; max-width: 30px; margin-left: 10px;"></a>'
|
||||||
|
|
||||||
if os.path.isfile(f'.well-known/wallets/{crypto}'):
|
if os.path.isfile(f'.well-known/wallets/{crypto}'):
|
||||||
with open(f'.well-known/wallets/{crypto}') as file:
|
with open(f'.well-known/wallets/{crypto}') as file:
|
||||||
address = file.read()
|
address = file.read()
|
||||||
@ -530,12 +535,17 @@ def donate():
|
|||||||
cryptoHTML += f'<br>Donate with {coinNames[crypto] if crypto in coinNames else crypto}:'
|
cryptoHTML += f'<br>Donate with {coinNames[crypto] if crypto in coinNames else crypto}:'
|
||||||
else:
|
else:
|
||||||
cryptoHTML += f'<br>Donate with {token["name"]} {"("+token["symbol"]+") " if token["symbol"] != token["name"] else ""}on {crypto}:'
|
cryptoHTML += f'<br>Donate with {token["name"]} {"("+token["symbol"]+") " if token["symbol"] != token["name"] else ""}on {crypto}:'
|
||||||
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-address" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{address}</code>'
|
cryptoHTML += f'<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-address" class="address" style="color: rgb(242,90,5);display: inline-block;" data-bs-original-title="Click to copy">{address}</code>'
|
||||||
|
|
||||||
|
if proof:
|
||||||
|
cryptoHTML += proof
|
||||||
elif token:
|
elif token:
|
||||||
if 'address' in token:
|
if 'address' in token:
|
||||||
address = token['address']
|
address = token['address']
|
||||||
cryptoHTML += f'<br>Donate with {token["name"]} {"("+token["symbol"]+")" if token["symbol"] != token["name"] else ""}{" on "+crypto if crypto != "NULL" else ""}:'
|
cryptoHTML += f'<br>Donate with {token["name"]} {"("+token["symbol"]+")" if token["symbol"] != token["name"] else ""}{" on "+crypto if crypto != "NULL" else ""}:'
|
||||||
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-address" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{address}</code>'
|
cryptoHTML += f'<br><code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-address" class="address" style="color: rgb(242,90,5);display: inline-block;" data-bs-original-title="Click to copy">{address}</code>'
|
||||||
|
if proof:
|
||||||
|
cryptoHTML += proof
|
||||||
else:
|
else:
|
||||||
cryptoHTML += f'<br>Invalid coin: {crypto}<br>'
|
cryptoHTML += f'<br>Invalid coin: {crypto}<br>'
|
||||||
else:
|
else:
|
||||||
@ -554,12 +564,14 @@ def donate():
|
|||||||
cryptoHTML += '<br>Or send to this domain on compatible wallets:<br>'
|
cryptoHTML += '<br>Or send to this domain on compatible wallets:<br>'
|
||||||
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-domain" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{domain}</code>'
|
cryptoHTML += f'<code data-bs-toggle="tooltip" data-bss-tooltip="" id="crypto-domain" class="address" style="color: rgb(242,90,5);display: block;" data-bs-original-title="Click to copy">{domain}</code>'
|
||||||
if address:
|
if address:
|
||||||
cryptoHTML += '<img src="/qrcode/' + address + '" alt="QR Code" style="width: 100%; max-width: 200px; margin: 20px auto;">'
|
cryptoHTML += '<br><img src="/qrcode/' + address + '" alt="QR Code" style="width: 100%; max-width: 200px; margin: 20px auto;">'
|
||||||
|
|
||||||
|
|
||||||
copyScript = '<script>document.getElementById("crypto-address").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});document.getElementById("crypto-domain").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});</script>'
|
copyScript = '<script>document.getElementById("crypto-address").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});document.getElementById("crypto-domain").addEventListener("click", function() {navigator.clipboard.writeText(this.innerText);this.setAttribute("data-bs-original-title", "Copied!");});</script>'
|
||||||
cryptoHTML += copyScript
|
cryptoHTML += copyScript
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return render_template('donate.html', handshake_scripts=handshake_scripts, crypto=cryptoHTML, coins=coins,default_coins=default_coins)
|
return render_template('donate.html', handshake_scripts=handshake_scripts, crypto=cryptoHTML, coins=coins,default_coins=default_coins)
|
||||||
|
|
||||||
@app.route('/qrcode/<path:data>')
|
@app.route('/qrcode/<path:data>')
|
||||||
|
BIN
templates/assets/img/proof.png
Normal file
BIN
templates/assets/img/proof.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
Loading…
Reference in New Issue
Block a user