Skip to content

Commit

Permalink
Advanced Hasura integration (#21)
Browse files Browse the repository at this point in the history
  • Loading branch information
droserasprout authored Apr 17, 2021
1 parent a919b2e commit 1e4d14d
Show file tree
Hide file tree
Showing 24 changed files with 635 additions and 711 deletions.
17 changes: 9 additions & 8 deletions docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,36 +5,37 @@ x-dipdup: &x-dipdup
depends_on:
- db
volumes:
- ./src/demo_hic_et_nunc/dipdup.yml:/home/dipdup/dipdup.yml
- ./src/demo_hic_et_nunc/dipdup-docker.yml:/home/dipdup/dipdup.yml
env_file: secrets.env

services:
dipdup:
<<: *x-dipdup
restart: always
command: ["-c", "dipdup.yml", "run"]
depends_on:
- db

db:
image: postgres
restart: always
volumes:
- db:/var/lib/postgres/data
env_file: secrets.env
healthcheck:
test: ["CMD-SHELL", "pg_isready -U postgres"]
interval: 10s
timeout: 5s
retries: 5

graphql-engine:
hasura:
image: hasura/graphql-engine:v1.3.3
ports:
- 8080:8080
depends_on:
- db
restart: always
env_file: secrets.env

configure-graphql:
<<: *x-dipdup
command: ["-c", "dipdup.yml", "configure-graphql", "--url", "http://graphql-engine:8080", "--admin-secret", "changeme"]
depends_on:
- graphql-engine

volumes:
db:
4 changes: 3 additions & 1 deletion pylintrc
Original file line number Diff line number Diff line change
Expand Up @@ -10,4 +10,6 @@ disable=
too-many-locals,
too-many-public-methods,
too-few-public-methods,
bad-mcs-classmethod-argument
bad-mcs-classmethod-argument,
unused-argument,
no-name-in-module
53 changes: 53 additions & 0 deletions src/demo_hic_et_nunc/dipdup-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
spec_version: 0.0.1
package: demo_hic_et_nunc

database:
kind: postgres
host: db
port: 5432
user: dipdup
password: changeme
database: dipdup
schema_name: hic_et_nunc

hasura:
url: http://hasura:8080
admin_secret: changeme

contracts:
HEN_objkts:
address: ${HEN_OBJKTS:-KT1RJ6PbjHpwc3M5rw5s2Nbmefwbuwbdxton}
typename: hen_objkts
HEN_minter:
address: ${HEN_MINTER:-KT1Hkg5qeNhfwpKW4fXvq7HGZB9z2EnmCCA9}
typename: hen_minter

datasources:
tzkt_mainnet:
kind: tzkt
url: ${TZKT_URL:-https://staging.api.tzkt.io}

indexes:
hen_mainnet:
kind: operation
datasource: tzkt_mainnet
contract: HEN_minter
handlers:
- callback: on_mint
pattern:
- destination: HEN_minter
entrypoint: mint_OBJKT
- destination: HEN_objkts
entrypoint: mint
- callback: on_swap
pattern:
- destination: HEN_minter
entrypoint: swap
- callback: on_cancel_swap
pattern:
- destination: HEN_minter
entrypoint: cancel_swap
- callback: on_collect
pattern:
- destination: HEN_minter
entrypoint: collect
7 changes: 2 additions & 5 deletions src/demo_hic_et_nunc/handlers/on_rollback.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import logging
import os
import sys

from tortoise import Tortoise
from dipdup.utils import reindex

_logger = logging.getLogger(__name__)

Expand All @@ -12,5 +10,4 @@ async def on_rollback(
to_level: int,
) -> None:
_logger.warning('Rollback event received, reindexing')
await Tortoise._drop_databases()
os.execl(sys.executable, sys.executable, *sys.argv)
await reindex()
2 changes: 1 addition & 1 deletion src/demo_hic_et_nunc/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,6 @@ class Trade(Model):
swap = fields.ForeignKeyField('models.Swap', 'trades')
seller = fields.ForeignKeyField('models.Holder', 'sales')
buyer = fields.ForeignKeyField('models.Holder', 'purchases')
amount = fields.IntField()
amount = fields.BigIntField()
level = fields.BigIntField()
timestamp = fields.DatetimeField()
126 changes: 126 additions & 0 deletions src/demo_quipuswap/dipdup-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
spec_version: 0.0.1
package: demo_quipuswap

database:
kind: postgres
host: db
port: 5432
user: dipdup
password: changeme
database: dipdup
schema_name: quipuswap

hasura:
url: http://hasura:8080
admin_secret: changeme

contracts:
kusd_dex_mainnet:
address: KT1CiSKXR68qYSxnbzjwvfeMCRburaSDonT2
typename: quipu_fa12
tzbtc_dex_mainnet:
address: KT1N1wwNPqT5jGhM91GQ2ae5uY8UzFaXHMJS
typename: quipu_fa12
kusd_token_mainnet:
address: KT1K9gCRgaLRFKTErYt1wVxA3Frb9FjasjTV
typename: fa12_token
tzbtc_token_mainnet:
address: KT1PWx2mnDueood7fEmfbBDKx1D9BAnnXitn
typename: fa12_token
hdao_dex_mainnet:
address: KT1V41fGzkdTJki4d11T1Rp9yPkCmDhB7jph
typename: quipu_fa2
hdao_token_mainnet:
address: KT1AFA2mwNUMNd4SsujE1YYp29vd8BZejyKW
typename: fa2_token

datasources:
tzkt_staging_mainnet:
kind: tzkt
url: https://staging.api.tzkt.io

templates:
quipuswap_fa12:
kind: operation
datasource: tzkt_staging_mainnet
contract: <dex_contract>
handlers:
- callback: on_fa12_token_to_tez
pattern:
- destination: <dex_contract>
entrypoint: tokenToTezPayment
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa12_tez_to_token
pattern:
- destination: <dex_contract>
entrypoint: tezToTokenPayment
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa12_invest_liquidity
pattern:
- destination: <dex_contract>
entrypoint: investLiquidity
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa12_divest_liquidity
pattern:
- destination: <dex_contract>
entrypoint: divestLiquidity
- destination: <token_contract>
entrypoint: transfer

quipuswap_fa2:
kind: operation
datasource: tzkt_staging_mainnet
contract: <dex_contract>
handlers:
- callback: on_fa2_token_to_tez
pattern:
- destination: <dex_contract>
entrypoint: tokenToTezPayment
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa2_tez_to_token
pattern:
- destination: <dex_contract>
entrypoint: tezToTokenPayment
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa20_invest_liquidity
pattern:
- destination: <dex_contract>
entrypoint: investLiquidity
- destination: <token_contract>
entrypoint: transfer
- callback: on_fa20_divest_liquidity
pattern:
- destination: <dex_contract>
entrypoint: divestLiquidity
- destination: <token_contract>
entrypoint: transfer

indexes:
kusd_mainnet:
template: quipuswap_fa12
values:
dex_contract: kusd_dex_mainnet
token_contract: kusd_token_mainnet
symbol: kUSD
decimals: 18

# tzbtc_mainnet:
# template: quipuswap_fa12
# values:
# dex_contract: tzbtc_dex_mainnet
# token_contract: tzbtc_token_mainnet
# symbol: tzBTC
# decimals: 8

hdao_mainnet:
template: quipuswap_fa2
values:
dex_contract: hdao_dex_mainnet
token_contract: hdao_token_mainnet
symbol: hDAO
decimals: 6
7 changes: 2 additions & 5 deletions src/demo_quipuswap/handlers/on_rollback.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
import logging
import os
import sys

from tortoise import Tortoise
from dipdup.utils import reindex

_logger = logging.getLogger(__name__)

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

0 comments on commit 1e4d14d

Please sign in to comment.