Skip to content

Commit

Permalink
Remove relation between WithdrawnEvent and UnlockEvent
Browse files Browse the repository at this point in the history
  • Loading branch information
moisses89 committed Mar 1, 2024
1 parent 6534ebc commit 6599d3a
Show file tree
Hide file tree
Showing 4 changed files with 53 additions and 57 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -49,21 +49,37 @@ def process_decoded_events(self, decoded_events: List[EventData]):
ethereum_tx, created = EthereumTx().create_from_decoded_event(
event, block_timestamp
)
lock_event_instances = []
unlock_event_instances = []
withdrawn_event_instances = []
if event["event"] in "Locked":
LockEvent().create_from_decoded_event(
event, ethereum_tx, block_timestamp
lock_event_instances.append(
LockEvent.create_instance_from_decoded_event(
event, ethereum_tx, block_timestamp
)
)
elif event["event"] in "Unlocked":
UnlockEvent().create_from_decoded_event(
event, ethereum_tx, block_timestamp
unlock_event_instances.append(
UnlockEvent.create_instance_from_decoded_event(
event, ethereum_tx, block_timestamp
)
)
elif event["event"] in "Withdrawn":
WithdrawnEvent().create_from_decoded_event(
event, ethereum_tx, block_timestamp
withdrawn_event_instances.append(
WithdrawnEvent.create_instance_from_decoded_event(
event, ethereum_tx, block_timestamp
)
)
else:
logger.ERROR(
"%s: Unrecognized event type: %s",
self.__class__.__name__,
event["event"],
)
LockEvent.objects.bulk_create(lock_event_instances, ignore_conflicts=True)
UnlockEvent.objects.bulk_create(
unlock_event_instances, ignore_conflicts=True
)
WithdrawnEvent.objects.bulk_create(
withdrawn_event_instances, ignore_conflicts=True
)
27 changes: 17 additions & 10 deletions safe_locking_service/locking_events/migrations/0001_initial.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# Generated by Django 4.2.10 on 2024-02-27 17:41
# Generated by Django 4.2.10 on 2024-03-01 10:06

import django.db.models.deletion
from django.db import migrations, models
Expand Down Expand Up @@ -27,7 +27,20 @@ class Migration(migrations.Migration):
],
),
migrations.CreateModel(
name="UnlockEvent",
name="StatusEventsIndexer",
fields=[
(
"contract",
gnosis.eth.django.models.EthereumAddressV2Field(
primary_key=True, serialize=False, unique=True
),
),
("deployed_block", models.PositiveIntegerField()),
("last_indexed_block", models.PositiveIntegerField()),
],
),
migrations.CreateModel(
name="WithdrawnEvent",
fields=[
("id", models.AutoField(primary_key=True, serialize=False)),
("timestamp", models.DateTimeField()),
Expand All @@ -45,27 +58,21 @@ class Migration(migrations.Migration):
],
),
migrations.CreateModel(
name="WithdrawnEvent",
name="UnlockEvent",
fields=[
("id", models.AutoField(primary_key=True, serialize=False)),
("timestamp", models.DateTimeField()),
("log_index", models.PositiveIntegerField()),
("holder", gnosis.eth.django.models.EthereumAddressV2Field()),
("amount", gnosis.eth.django.models.Uint96Field()),
("unlock_index", models.PositiveIntegerField()),
(
"ethereum_tx",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="locking_events.ethereumtx",
),
),
(
"unlock_index",
models.ForeignKey(
on_delete=django.db.models.deletion.CASCADE,
to="locking_events.unlockevent",
),
),
],
),
migrations.CreateModel(
Expand Down

This file was deleted.

28 changes: 14 additions & 14 deletions safe_locking_service/locking_events/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -58,10 +58,11 @@ class LockEvent(CommonEvent):
def __str__(self):
return "LockEvent: " + super().__str__()

def create_from_decoded_event(
self, decoded_event: EventData, ethereum_tx, block_timestamp
@classmethod
def create_instance_from_decoded_event(
cls, decoded_event: EventData, ethereum_tx, block_timestamp
):
return LockEvent.objects.create(
return cls(
timestamp=block_timestamp,
ethereum_tx=ethereum_tx,
log_index=decoded_event["logIndex"],
Expand All @@ -87,10 +88,11 @@ class Meta:
def __str__(self):
return "UnlockEvent: " + super().__str__()

def create_from_decoded_event(
self, decoded_event: EventData, ethereum_tx, block_timestamp
@classmethod
def create_instance_from_decoded_event(
cls, decoded_event: EventData, ethereum_tx, block_timestamp
):
return UnlockEvent.objects.create(
return cls(
timestamp=block_timestamp,
ethereum_tx=ethereum_tx,
log_index=decoded_event["logIndex"],
Expand All @@ -105,7 +107,7 @@ class WithdrawnEvent(CommonEvent):
Model to store event Withdrawn(address indexed holder, uint32 indexed index, uint96 amount)
"""

unlock_index = models.ForeignKey(UnlockEvent, on_delete=models.CASCADE)
unlock_index = models.PositiveIntegerField()

class Meta:
constraints = [
Expand All @@ -117,19 +119,17 @@ class Meta:
def __str__(self):
return "WithdrawnEvent: " + super().__str__()

def create_from_decoded_event(
self, decoded_event: EventData, ethereum_tx, block_timestamp
@classmethod
def create_instance_from_decoded_event(
cls, decoded_event: EventData, ethereum_tx, block_timestamp
):
return WithdrawnEvent.objects.create(
return cls(
timestamp=block_timestamp,
ethereum_tx=ethereum_tx,
log_index=decoded_event["logIndex"],
holder=decoded_event["args"]["holder"],
amount=decoded_event["args"]["amount"],
unlock_index=UnlockEvent.objects.get(
holder=decoded_event["args"]["holder"],
unlock_index=decoded_event["args"]["index"],
),
unlock_index=decoded_event["args"]["index"],
)


Expand Down

0 comments on commit 6599d3a

Please sign in to comment.