Skip to content

Instantly share code, notes, and snippets.

@kalloc
Last active September 18, 2022 00:32
Show Gist options
  • Save kalloc/b64e735afe48eaf1e41fe52614551b56 to your computer and use it in GitHub Desktop.
Save kalloc/b64e735afe48eaf1e41fe52614551b56 to your computer and use it in GitHub Desktop.
import os
import tornado.ioloop
import tornado.web
from eth_account.messages import encode_defunct
from eth_account.account import Account
PRIVATE_KEY = os.environ.get("PRIVATE_KEY")
class EthSignHandler(tornado.web.RequestHandler):
def get(self, address):
max_per_mint = 1
payload = f'{address.upper()}:{max_per_mint}'
msghash = encode_defunct(text=payload)
account = Account.from_key(PRIVATE_KEY)
sign = account.sign_message(msghash)
self.write({
"permitted_amount": max_per_mint,
"signer_address": account.address,
"signature": sign.signature.hex(),
"address": address
})
def make_app():
return tornado.web.Application([
(r"/api/v1/ethsign/(0[xX][0-9a-fA-F]{40})", EthSignHandler),
])
if __name__ == "__main__":
app = make_app()
app.listen(3000)
tornado.ioloop.IOLoop.current().start()
@kalloc
Copy link
Author

kalloc commented Sep 18, 2022

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment