https://github.com/dev-protocol/event-saver
Retrieve event data and save it to DB
https://github.com/dev-protocol/event-saver
azure-functions graphql
Last synced: 11 days ago
JSON representation
Retrieve event data and save it to DB
- Host: GitHub
- URL: https://github.com/dev-protocol/event-saver
- Owner: dev-protocol
- License: mpl-2.0
- Created: 2020-05-22T05:09:20.000Z (about 6 years ago)
- Default Branch: main
- Last Pushed: 2026-05-12T13:43:44.000Z (13 days ago)
- Last Synced: 2026-05-12T15:35:40.589Z (13 days ago)
- Topics: azure-functions, graphql
- Language: TypeScript
- Size: 1.18 MB
- Stars: 0
- Watchers: 4
- Forks: 0
- Open Issues: 28
-
Metadata Files:
- Readme: README.JA.md
- License: LICENSE
Awesome Lists containing this project
README
# 概要
Event-Viewer で参照するイベント情報をブロックチェーンから取得し、Postgres に保存するツール。Azure Functions で動作する。
# ローカル開発セットアップ
## コアツールインストール
Azure Functions をローカルで動作させるために、下記コマンドでツールをインストールする。
```
brew tap azure/functions
brew install azure-functions-core-tools@3
```
## DB セットアップ
データを保存するためのデータベースをローカルに構築する。事前に docker desktop など、docker が稼働する環境の構築を完了しておくこと。
```
cd local_test/db
docker-compose up -d
```
下記コマンドで DB に接続することができる
```
psql postgresql://testuser@localhost:5432/testdb
パスワード:testpassword
```
## 環境変数
設定するファイルは local.settings.json。下記の 4 つ以外はそのままで大丈夫。
```
WEB3_URL: web3.js に渡す URL
DISCORD_WEBHOOK_URL_INFO:Discord に info 情報を通知するための URL
DISCORD_WEBHOOK_URL_WARNING:Discord に warning 情報を通知するための URL
DISCORD_WEBHOOK_URL_ERROR:Discord に error 情報を通知するための URL
```
## 関連ライブラリインストール
```
npm install
```
## azurite 起動
Time Trigger などで必要なツールを別画面などで起動する。
```
azurite -l ~/azurite
```
## Azure Functions 起動
下記コマンドで Azure Functions が稼働する。
```
npm start
```
今すぐテスト実行したいときは下記コマンドを実行するといい
```
market-factory-createを実行したい場合
curl --request POST -H "Content-Type:application/json" --data '{}' http://localhost:7071/admin/functions/market-factory-create
host.jsonに
"functions": ["dev-property-transfer"]
と記載すると指定した関数のみ起動するため、便利
```
## コンソールセットアップ
Linux、Windows の場合は必要に応じてパラメータを変更してください。
https://hasura.io/docs/1.0/graphql/manual/deployment/docker/index.html
```
cd local_test/console
docker-compose up -d
```
下記 URL をブラウザで開くとコンソールが起動する
```
http://localhost:8080/console
```
また下記コマンドでもデータを取得することができる
```
curl -X POST -H "Content-Type: application/json" -H "x-hasura-admin-secret: hasurakey" --data '{ "query": "{ market_factory_create { block_number } }" }' http://localhost:8080/v1/graphql
```
# 新規関数を追加する場合
新しいコントラクトがデプロイされたり、新しいイベントの情報を取得したい場合の手順を記述する
## 関数パッケージ作成
カレントで下記コマンドを実行する。
```
hogehoge-factoryコントラクトのcreateイベントの場合
func new --template "Timer trigger" --language TypeScript --name hogehoge-factory-create
```
## テーブル定義の追加
local_test/docker/db/init 以下に create の SQL 文を追加する
entities 以下に テーブル定義を追加する
あとは他の関数をみてよしなにやってください。