Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple contracts in operation index, big_map index #38

Merged
merged 42 commits into from
Apr 29, 2021
Merged
Changes from 1 commit
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
9c2bc34
WIP
droserasprout Apr 14, 2021
e93a7f5
Multiple addresses WIP
droserasprout Apr 18, 2021
91a9a80
Merge branch 'feat/tezos-domains-demo' into feat/multiple-addresses
droserasprout Apr 18, 2021
ecbf8a0
Merge branch 'master' into feat/multiple-addresses
droserasprout Apr 20, 2021
246a8e9
WIP
droserasprout Apr 21, 2021
1cca743
WIP
droserasprout Apr 21, 2021
9725b87
WIP
droserasprout Apr 21, 2021
f426f38
Merge remote-tracking branch 'origin/master' into feat/multiple-addre…
droserasprout Apr 21, 2021
81b94fd
WIP
droserasprout Apr 21, 2021
8a0e627
WIP
droserasprout Apr 21, 2021
edbbef0
WIP
droserasprout Apr 21, 2021
585186f
WIP
droserasprout Apr 22, 2021
89680a7
WIP
droserasprout Apr 22, 2021
9a4d539
WIP
droserasprout Apr 22, 2021
d8a9967
WIP
droserasprout Apr 22, 2021
ff16c94
WIP
droserasprout Apr 23, 2021
5be03dc
Merge branch 'master' into feat/multiple-addresses
droserasprout Apr 24, 2021
4d49eb6
WIP
droserasprout Apr 27, 2021
b667adb
Merge branch 'master' into feat/multiple-addresses
droserasprout Apr 27, 2021
bd338d8
Fix test
droserasprout Apr 27, 2021
f40b497
Merge branch 'master' into feat/multiple-addresses
droserasprout Apr 27, 2021
daece2b
Merge branch 'feat/multiple-addresses' into feat/bigmap-index
droserasprout Apr 27, 2021
772678f
WIP
droserasprout Apr 27, 2021
6dfea37
WIP
droserasprout Apr 27, 2021
437514e
WIP
droserasprout Apr 27, 2021
5fd3545
WIP
droserasprout Apr 27, 2021
0ba797e
WIP
droserasprout Apr 28, 2021
48ec4f1
WIP
droserasprout Apr 28, 2021
5091c9a
WIP
droserasprout Apr 28, 2021
94fba16
WIP
droserasprout Apr 28, 2021
bf06d4b
big_map WIP
droserasprout Apr 28, 2021
163fde5
Cleanup
droserasprout Apr 28, 2021
6e78976
tezos_domains_big_map demo
droserasprout Apr 29, 2021
b42197d
Fix tests
droserasprout Apr 29, 2021
eb3e702
Fix latest_block request
droserasprout Apr 29, 2021
e3e9c31
Fix rollback
droserasprout Apr 29, 2021
5e72cc2
Simplify operation handler codeged
droserasprout Apr 29, 2021
07220f6
Update README
droserasprout Apr 29, 2021
1de9791
Fix rollback
droserasprout Apr 29, 2021
54f83a4
Revert removing resolve_big_maps
droserasprout Apr 29, 2021
65095c1
Lint
droserasprout Apr 29, 2021
5d1de7c
Hasura compatibility check
droserasprout Apr 29, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
WIP
droserasprout committed Apr 23, 2021
commit ff16c94bbf738dfe3966683fc566de0d17bed708
118 changes: 0 additions & 118 deletions src/demo_tezos_domains/dipdup-docker.yml

This file was deleted.

27 changes: 24 additions & 3 deletions src/demo_tezos_domains/dipdup.yml
Original file line number Diff line number Diff line change
@@ -15,6 +15,9 @@ contracts:
edo_name_registry_update_record:
address: KT1FpHyP8vUd7p2aq7DLRccUVPixoGVB4fJE
typename: name_registry_update_record
edo_name_registry_set_child_record:
address: KT1Mq1zd986PxK4C2y9S7UaJkhTBbY15AU32
typename: name_registry_set_child_record
edo_name_registry:
address: KT1JJbWfW8CHUY95hG9iq2CEMma1RiKhMHDR
typename: name_registry
@@ -31,6 +34,9 @@ contracts:
mainnet_name_registry_update_record:
address: KT1H1MqmUM4aK9i1833EBmYCCEfkbt6ZdSBc
typename: name_registry_update_record
mainnet_name_registry_set_child_record:
address: KT1QHLk1EMUA8BPH3FvRUeUmbTspmAhb7kpd
typename: name_registry_set_child_record
mainnet_name_registry:
address: KT1GBZmSxmnKJXGMdMLbugPfLyUPmuLSMwKS
typename: name_registry
@@ -57,7 +63,14 @@ templates:
- <tld_registrar_buy>
- <tld_registrar>
- <name_registry_update_record>
- <name_registry_set_child_record>
- <name_registry>
handlers:
# - callback: on_execute
# pattern:
# - destination: <name_registry>
# entrypoint: execute

- callback: on_bid
pattern:
- destination: <tld_registrar_bid>
@@ -79,15 +92,21 @@ templates:
- destination: <name_registry>
entrypoint: admin_update

- callback: on_update_registry
- callback: on_update_record
pattern:
- destination: <name_registry_update_record>
entrypoint: update_record
- destination: <name_registry>
entrypoint: execute

indexes:
- callback: on_set_child_record
pattern:
- destination: <name_registry_set_child_record>
entrypoint: set_child_record
- destination: <name_registry>
entrypoint: execute

indexes:
tezos_domains_edo:
template: tezos_domains
values:
@@ -97,6 +116,7 @@ indexes:
tld_registrar_buy: edo_tld_registrar_buy
tld_registrar_bid: edo_tld_registrar_bid
name_registry_update_record: edo_name_registry_update_record
name_registry_set_child_record: edo_name_registry_set_child_record

tezos_domains_mainnet:
template: tezos_domains
@@ -106,4 +126,5 @@ indexes:
tld_registrar: mainnet_tld_registrar
tld_registrar_buy: mainnet_tld_registrar_buy
tld_registrar_bid: mainnet_tld_registrar_bid
name_registry_update_record: mainnet_name_registry_update_record
name_registry_update_record: mainnet_name_registry_update_record
name_registry_set_child_record: mainnet_name_registry_set_child_record
6 changes: 3 additions & 3 deletions src/demo_tezos_domains/handlers/on_admin_update.py
Original file line number Diff line number Diff line change
@@ -12,9 +12,9 @@ async def on_admin_update(
label = list(admin_update.storage.store.records.keys())[0]
record = admin_update.storage.store.records[label]
address = None
if record['address']:
address, _ = await models.Address.get_or_create(address=record['address'])
owner, _ = await models.Address.get_or_create(address=record['owner'])
if record.address:
address, _ = await models.Address.get_or_create(address=record.address)
owner, _ = await models.Address.get_or_create(address=record.owner)
qualname = bytearray.fromhex(label).decode()
name = qualname.split('.')[0]
domain = models.Domain(
15 changes: 15 additions & 0 deletions src/demo_tezos_domains/handlers/on_execute.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
import json
from dipdup.models import HandlerContext, OperationContext

import demo_tezos_domains.models as models

from demo_tezos_domains.types.name_registry.parameter.execute import Execute


async def on_execute(
ctx: HandlerContext,
execute: OperationContext[Execute],
) -> None:
for key in execute.storage.store.records:
if '686f6d65626173652e74657a' in key:
print(execute.data.hash)
34 changes: 34 additions & 0 deletions src/demo_tezos_domains/handlers/on_set_child_record.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
from dipdup.models import HandlerContext, OperationContext

import demo_tezos_domains.models as models

from demo_tezos_domains.types.name_registry_set_child_record.parameter.set_child_record import SetChildRecord
from demo_tezos_domains.types.name_registry.parameter.execute import Execute


async def on_set_child_record(
ctx: HandlerContext,
set_child_record: OperationContext[SetChildRecord],
execute: OperationContext[Execute],
) -> None:
assert execute.storage
parent_label = set_child_record.parameter.parent
parent = await models.Domain.filter(label=parent_label).get()
label, record = list(execute.storage.store.records.items())[0]
qualname = bytearray.fromhex(label).decode()
name = qualname.split('.')[0]
address = None
if record.address:
address, _ = await models.Address.get_or_create(address=record.address)
owner, _ = await models.Address.get_or_create(address=record.owner)
domain = models.Domain(
label=label,
name=name,
qualname=qualname,
address=address,
owner=owner,
parent=parent,
expires_at=None,
token=None,
)
await domain.save()
41 changes: 41 additions & 0 deletions src/demo_tezos_domains/handlers/on_update_record.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
import demo_tezos_domains.models as models
from demo_tezos_domains.types.name_registry.parameter.execute import Execute
from demo_tezos_domains.types.name_registry_update_record.parameter.update_record import UpdateRecord
from dipdup.models import HandlerContext, OperationContext


async def on_update_record(
ctx: HandlerContext,
update_record: OperationContext[UpdateRecord],
execute: OperationContext[Execute],
) -> None:
label = update_record.parameter.name
qualname = bytearray.fromhex(label).decode()

domain = await models.Domain.filter(label=label).get_or_none()
if domain:
address, _ = await models.Address.get_or_create(address=update_record.parameter.address)
owner, _ = await models.Address.get_or_create(address=update_record.parameter.owner)
domain.address = address
domain.owner = owner
await domain.save()
else:
assert execute.storage
label, record = list(execute.storage.store.records.items())[0]
qualname = bytearray.fromhex(label).decode()
name = qualname.split('.')[0]
address = None
if record.address:
address, _ = await models.Address.get_or_create(address=record.address)
owner, _ = await models.Address.get_or_create(address=record.owner)
domain = models.Domain(
label=label,
name=name,
qualname=qualname,
address=address,
owner=owner,
parent=None,
expires_at=None,
token=None,
)
await domain.save()
22 changes: 0 additions & 22 deletions src/demo_tezos_domains/handlers/on_update_registry.py

This file was deleted.

Empty file.
Empty file.
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# generated by datamodel-codegen:
# filename: set_child_record.json

from __future__ import annotations

from typing import Dict, Optional

from pydantic import BaseModel


class SetChildRecord(BaseModel):
address: Optional[str]
data: Dict[str, str]
expiry: Optional[str]
label: str
owner: str
parent: str
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# generated by datamodel-codegen:
# filename: storage.json

from __future__ import annotations

from pydantic import BaseModel


class Storage(BaseModel):
contract: str
owner: str