GOSTCoin Web Wallet
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

38 lines
1.3 KiB

from django.db import models, IntegrityError
from django.contrib.auth.models import User
from django.dispatch import receiver
from django.db.models.signals import post_save
from integral_auth.utils import rand_string
import logging
logger = logging.getLogger("django")
class Account(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
name = models.CharField(max_length=16, unique=True)
balance = models.DecimalField(default=0, decimal_places=8, max_digits=15)
def __str__(self):
return self.name
class Address(models.Model):
account = models.ForeignKey(Account, on_delete=models.CASCADE)
address = models.CharField(max_length=35, unique=True)
used = models.BooleanField(default=False)
class Transaction(models.Model):
created_at = models.DateTimeField(auto_now_add=True)
account = models.ForeignKey(Account, on_delete=models.CASCADE)
txid = models.CharField(max_length=64, unique=True)
confirmed = models.BooleanField(default=False)
amount = models.DecimalField(default=0, decimal_places=8, max_digits=15)
class Meta:
abstract = True
class DepositTransaction(Transaction):
address = models.ForeignKey(Address, on_delete=models.CASCADE)
class WithdrawalTransaction(Transaction):
address = models.CharField(max_length=35)