Source code for walletauth.models

"""Module containing walletauth app's ORM models."""

from datetime import timedelta

from django.db import models
from django.utils import timezone


[docs] class WalletNonce(models.Model): """Model used for creating unique secret for wallet authentication.""" address = models.CharField(max_length=58, db_index=True) nonce = models.CharField(max_length=64, unique=True) created_at = models.DateTimeField(auto_now_add=True) used = models.BooleanField(default=False) def __str__(self): """Return instance's string representation. :return: str """ return self.address[:5] + ".." + self.address[-5:] + " - " + self.nonce
[docs] def is_expired(self): """Consider expired after 5 minutes. :return: Boolean """ return self.created_at < timezone.now() - timedelta(minutes=5)
[docs] def mark_used(self): """Mark this instance as already used.""" self.used = True self.save(update_fields=["used"])