Skip to content

Commit 1e4d14d

Browse files
Advanced Hasura integration (#21)
1 parent a919b2e commit 1e4d14d

File tree

24 files changed

+635
-711
lines changed

24 files changed

+635
-711
lines changed

docker-compose.yml

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,36 +5,37 @@ x-dipdup: &x-dipdup
55
depends_on:
66
- db
77
volumes:
8-
- ./src/demo_hic_et_nunc/dipdup.yml:/home/dipdup/dipdup.yml
8+
- ./src/demo_hic_et_nunc/dipdup-docker.yml:/home/dipdup/dipdup.yml
99
env_file: secrets.env
1010

1111
services:
1212
dipdup:
1313
<<: *x-dipdup
1414
restart: always
1515
command: ["-c", "dipdup.yml", "run"]
16+
depends_on:
17+
- db
1618

1719
db:
1820
image: postgres
1921
restart: always
2022
volumes:
2123
- db:/var/lib/postgres/data
2224
env_file: secrets.env
25+
healthcheck:
26+
test: ["CMD-SHELL", "pg_isready -U postgres"]
27+
interval: 10s
28+
timeout: 5s
29+
retries: 5
2330

24-
graphql-engine:
31+
hasura:
2532
image: hasura/graphql-engine:v1.3.3
2633
ports:
2734
- 8080:8080
2835
depends_on:
2936
- db
3037
restart: always
3138
env_file: secrets.env
32-
33-
configure-graphql:
34-
<<: *x-dipdup
35-
command: ["-c", "dipdup.yml", "configure-graphql", "--url", "http://graphql-engine:8080", "--admin-secret", "changeme"]
36-
depends_on:
37-
- graphql-engine
3839

3940
volumes:
4041
db:

pylintrc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,4 +10,6 @@ disable=
1010
too-many-locals,
1111
too-many-public-methods,
1212
too-few-public-methods,
13-
bad-mcs-classmethod-argument
13+
bad-mcs-classmethod-argument,
14+
unused-argument,
15+
no-name-in-module
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
spec_version: 0.0.1
2+
package: demo_hic_et_nunc
3+
4+
database:
5+
kind: postgres
6+
host: db
7+
port: 5432
8+
user: dipdup
9+
password: changeme
10+
database: dipdup
11+
schema_name: hic_et_nunc
12+
13+
hasura:
14+
url: http://hasura:8080
15+
admin_secret: changeme
16+
17+
contracts:
18+
HEN_objkts:
19+
address: ${HEN_OBJKTS:-KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton}
20+
typename: hen_objkts
21+
HEN_minter:
22+
address: ${HEN_MINTER:-KT1Hkg5qeNhfwpKW4fXvq7HGZB9z2EnmCCA9}
23+
typename: hen_minter
24+
25+
datasources:
26+
tzkt_mainnet:
27+
kind: tzkt
28+
url: ${TZKT_URL:-https://staging.api.tzkt.io}
29+
30+
indexes:
31+
hen_mainnet:
32+
kind: operation
33+
datasource: tzkt_mainnet
34+
contract: HEN_minter
35+
handlers:
36+
- callback: on_mint
37+
pattern:
38+
- destination: HEN_minter
39+
entrypoint: mint_OBJKT
40+
- destination: HEN_objkts
41+
entrypoint: mint
42+
- callback: on_swap
43+
pattern:
44+
- destination: HEN_minter
45+
entrypoint: swap
46+
- callback: on_cancel_swap
47+
pattern:
48+
- destination: HEN_minter
49+
entrypoint: cancel_swap
50+
- callback: on_collect
51+
pattern:
52+
- destination: HEN_minter
53+
entrypoint: collect
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import logging
2-
import os
3-
import sys
42

5-
from tortoise import Tortoise
3+
from dipdup.utils import reindex
64

75
_logger = logging.getLogger(__name__)
86

@@ -12,5 +10,4 @@ async def on_rollback(
1210
to_level: int,
1311
) -> None:
1412
_logger.warning('Rollback event received, reindexing')
15-
await Tortoise._drop_databases()
16-
os.execl(sys.executable, sys.executable, *sys.argv)
13+
await reindex()

src/demo_hic_et_nunc/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,6 @@ class Trade(Model):
4040
swap = fields.ForeignKeyField('models.Swap', 'trades')
4141
seller = fields.ForeignKeyField('models.Holder', 'sales')
4242
buyer = fields.ForeignKeyField('models.Holder', 'purchases')
43-
amount = fields.IntField()
43+
amount = fields.BigIntField()
4444
level = fields.BigIntField()
4545
timestamp = fields.DatetimeField()
Lines changed: 126 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,126 @@
1+
spec_version: 0.0.1
2+
package: demo_quipuswap
3+
4+
database:
5+
kind: postgres
6+
host: db
7+
port: 5432
8+
user: dipdup
9+
password: changeme
10+
database: dipdup
11+
schema_name: quipuswap
12+
13+
hasura:
14+
url: http://hasura:8080
15+
admin_secret: changeme
16+
17+
contracts:
18+
kusd_dex_mainnet:
19+
address: KT1CiSKXR68qYSxnbzjwvfeMCRburaSDonT2
20+
typename: quipu_fa12
21+
tzbtc_dex_mainnet:
22+
address: KT1N1wwNPqT5jGhM91GQ2ae5uY8UzFaXHMJS
23+
typename: quipu_fa12
24+
kusd_token_mainnet:
25+
address: KT1K9gCRgaLRFKTErYt1wVxA3Frb9FjasjTV
26+
typename: fa12_token
27+
tzbtc_token_mainnet:
28+
address: KT1PWx2mnDueood7fEmfbBDKx1D9BAnnXitn
29+
typename: fa12_token
30+
hdao_dex_mainnet:
31+
address: KT1V41fGzkdTJki4d11T1Rp9yPkCmDhB7jph
32+
typename: quipu_fa2
33+
hdao_token_mainnet:
34+
address: KT1AFA2mwNUMNd4SsujE1YYp29vd8BZejyKW
35+
typename: fa2_token
36+
37+
datasources:
38+
tzkt_staging_mainnet:
39+
kind: tzkt
40+
url: https://staging.api.tzkt.io
41+
42+
templates:
43+
quipuswap_fa12:
44+
kind: operation
45+
datasource: tzkt_staging_mainnet
46+
contract: <dex_contract>
47+
handlers:
48+
- callback: on_fa12_token_to_tez
49+
pattern:
50+
- destination: <dex_contract>
51+
entrypoint: tokenToTezPayment
52+
- destination: <token_contract>
53+
entrypoint: transfer
54+
- callback: on_fa12_tez_to_token
55+
pattern:
56+
- destination: <dex_contract>
57+
entrypoint: tezToTokenPayment
58+
- destination: <token_contract>
59+
entrypoint: transfer
60+
- callback: on_fa12_invest_liquidity
61+
pattern:
62+
- destination: <dex_contract>
63+
entrypoint: investLiquidity
64+
- destination: <token_contract>
65+
entrypoint: transfer
66+
- callback: on_fa12_divest_liquidity
67+
pattern:
68+
- destination: <dex_contract>
69+
entrypoint: divestLiquidity
70+
- destination: <token_contract>
71+
entrypoint: transfer
72+
73+
quipuswap_fa2:
74+
kind: operation
75+
datasource: tzkt_staging_mainnet
76+
contract: <dex_contract>
77+
handlers:
78+
- callback: on_fa2_token_to_tez
79+
pattern:
80+
- destination: <dex_contract>
81+
entrypoint: tokenToTezPayment
82+
- destination: <token_contract>
83+
entrypoint: transfer
84+
- callback: on_fa2_tez_to_token
85+
pattern:
86+
- destination: <dex_contract>
87+
entrypoint: tezToTokenPayment
88+
- destination: <token_contract>
89+
entrypoint: transfer
90+
- callback: on_fa20_invest_liquidity
91+
pattern:
92+
- destination: <dex_contract>
93+
entrypoint: investLiquidity
94+
- destination: <token_contract>
95+
entrypoint: transfer
96+
- callback: on_fa20_divest_liquidity
97+
pattern:
98+
- destination: <dex_contract>
99+
entrypoint: divestLiquidity
100+
- destination: <token_contract>
101+
entrypoint: transfer
102+
103+
indexes:
104+
kusd_mainnet:
105+
template: quipuswap_fa12
106+
values:
107+
dex_contract: kusd_dex_mainnet
108+
token_contract: kusd_token_mainnet
109+
symbol: kUSD
110+
decimals: 18
111+
112+
# tzbtc_mainnet:
113+
# template: quipuswap_fa12
114+
# values:
115+
# dex_contract: tzbtc_dex_mainnet
116+
# token_contract: tzbtc_token_mainnet
117+
# symbol: tzBTC
118+
# decimals: 8
119+
120+
hdao_mainnet:
121+
template: quipuswap_fa2
122+
values:
123+
dex_contract: hdao_dex_mainnet
124+
token_contract: hdao_token_mainnet
125+
symbol: hDAO
126+
decimals: 6
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
import logging
2-
import os
3-
import sys
42

5-
from tortoise import Tortoise
3+
from dipdup.utils import reindex
64

75
_logger = logging.getLogger(__name__)
86

@@ -12,5 +10,4 @@ async def on_rollback(
1210
to_level: int,
1311
) -> None:
1412
_logger.warning('Rollback event received, reindexing')
15-
await Tortoise._drop_databases()
16-
os.execl(sys.executable, sys.executable, *sys.argv)
13+
await reindex()

0 commit comments

Comments
 (0)