class MultisigConfirmation(TimeStampedModel): objects = MultisigConfirmationManager.from_queryset( MultisigConfirmationQuerySet)() ethereum_tx = models.ForeignKey( EthereumTx, on_delete=models.CASCADE, related_name='multisig_confirmations', null=True) # `null=True` for signature confirmations multisig_transaction = models.ForeignKey(MultisigTransaction, on_delete=models.CASCADE, null=True, related_name='confirmations') multisig_transaction_hash = Sha3HashField( null=True, db_index=True) # Use this while we don't have a `multisig_transaction` owner = EthereumAddressField() signature = HexField(null=True, default=None, max_length=2000) signature_type = models.PositiveSmallIntegerField(choices=[ (tag.value, tag.name) for tag in SafeSignatureType ], db_index=True) class Meta: unique_together = (('multisig_transaction_hash', 'owner'), ) ordering = ['created'] def __str__(self): if self.multisig_transaction_id: return f'Confirmation of owner={self.owner} for transaction-hash={self.multisig_transaction_hash}' else: return f'Confirmation of owner={self.owner} for existing transaction={self.multisig_transaction_hash}'
class MultisigConfirmation(TimeStampedModel): objects = MultisigConfirmationQuerySet.as_manager() ethereum_tx = models.ForeignKey( EthereumTx, on_delete=models.CASCADE, related_name='multisig_confirmations', null=True) # `null=True` for signature confirmations multisig_transaction = models.ForeignKey(MultisigTransaction, on_delete=models.CASCADE, null=True, related_name="confirmations") multisig_transaction_hash = Sha3HashField( null=True, db_index=True) # Use this while we don't have a `multisig_transaction` owner = EthereumAddressField() signature = HexField(null=True, default=None, max_length=500) # Off chain signatures class Meta: unique_together = (('multisig_transaction_hash', 'owner'), ) def __str__(self): if self.multisig_transaction_id: return f'Confirmation of owner={self.owner} for transaction-hash={self.multisig_transaction_hash}' else: return f'Confirmation of owner={self.owner} for existing transaction={self.multisig_transaction_hash}'