2021-06-17 12:26:38 +00:00
|
|
|
# watcher-ts
|
2021-05-11 11:08:30 +00:00
|
|
|
|
|
|
|
## Setup
|
|
|
|
|
2021-05-13 10:19:15 +00:00
|
|
|
This project uses [yarn workspaces](https://classic.yarnpkg.com/en/docs/workspaces/).
|
|
|
|
|
2021-05-28 11:26:40 +00:00
|
|
|
Install packages (Node.JS v15.11.0):
|
2021-05-11 11:08:30 +00:00
|
|
|
|
|
|
|
```bash
|
|
|
|
yarn
|
|
|
|
```
|
|
|
|
|
2021-06-17 12:26:38 +00:00
|
|
|
## ERC20 Watcher
|
|
|
|
|
2021-06-04 09:49:30 +00:00
|
|
|
Create a postgres12 database and provide connection settings in `environments/local.toml`.
|
|
|
|
|
|
|
|
For example:
|
|
|
|
|
|
|
|
```
|
|
|
|
sudo su - postgres
|
|
|
|
createdb erc20-watcher
|
|
|
|
```
|
|
|
|
|
2021-05-28 11:26:40 +00:00
|
|
|
Run the watcher:
|
2021-05-11 11:08:30 +00:00
|
|
|
|
|
|
|
```bash
|
2021-06-17 12:26:38 +00:00
|
|
|
cd packages/erc20-watcher
|
2021-05-11 11:08:30 +00:00
|
|
|
yarn run server
|
|
|
|
```
|
|
|
|
|
|
|
|
GQL console: http://localhost:3001/graphql
|
|
|
|
|
2021-05-28 11:26:40 +00:00
|
|
|
To run tests (GQL queries) against the mock server:
|
|
|
|
|
|
|
|
```
|
2021-06-17 12:26:38 +00:00
|
|
|
cd packages/erc20-watcher
|
2021-05-28 11:26:40 +00:00
|
|
|
yarn run server:mock
|
|
|
|
```
|
2021-05-13 13:48:08 +00:00
|
|
|
|
|
|
|
```bash
|
2021-06-17 12:26:38 +00:00
|
|
|
cd packages/erc20-watcher
|
2021-05-13 13:48:08 +00:00
|
|
|
yarn test
|
|
|
|
```
|
2021-05-11 11:08:30 +00:00
|
|
|
|
2021-06-17 12:26:38 +00:00
|
|
|
### Example GQL Queries
|
2021-05-11 11:08:30 +00:00
|
|
|
|
|
|
|
```text
|
|
|
|
{
|
2021-06-03 12:01:21 +00:00
|
|
|
name(blockHash: "0x5ef95c9847f15179b64fa57994355623f899aca097ad779421b8dff866a8b9c3", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1") {
|
2021-05-11 11:08:30 +00:00
|
|
|
value
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-06-03 12:01:21 +00:00
|
|
|
symbol(blockHash: "0x5ef95c9847f15179b64fa57994355623f899aca097ad779421b8dff866a8b9c3", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1") {
|
2021-05-11 11:08:30 +00:00
|
|
|
value
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2021-06-03 12:01:21 +00:00
|
|
|
totalSupply(blockHash: "0x5ef95c9847f15179b64fa57994355623f899aca097ad779421b8dff866a8b9c3", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1") {
|
|
|
|
value
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
balanceOf(blockHash: "0x5ef95c9847f15179b64fa57994355623f899aca097ad779421b8dff866a8b9c3", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1", owner: "0xDC7d7A8920C8Eecc098da5B7522a5F31509b5Bfc") {
|
|
|
|
value
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
allowance(blockHash: "0x81ed2b04af35b1b276281c37243212731202d5a191a27d07b22a605fd442998d", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1", owner: "0xDC7d7A8920C8Eecc098da5B7522a5F31509b5Bfc", spender: "0xCA6D29232D1435D8198E3E5302495417dD073d61") {
|
|
|
|
value
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
events(blockHash: "0x3441ba476dff95c58528afe754ceec659e0ef8ff1b59244ec4545f4f9784a51c", token: "0x1ca7c995f8eF0A2989BbcE08D5B7Efe50A584aa1") {
|
2021-05-11 11:08:30 +00:00
|
|
|
event {
|
2021-06-03 12:01:21 +00:00
|
|
|
__typename
|
2021-05-11 11:08:30 +00:00
|
|
|
... on TransferEvent {
|
|
|
|
from
|
|
|
|
to
|
|
|
|
value
|
|
|
|
}
|
|
|
|
... on ApprovalEvent {
|
|
|
|
owner
|
|
|
|
spender
|
|
|
|
value
|
|
|
|
}
|
|
|
|
}
|
|
|
|
proof {
|
|
|
|
data
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2021-06-03 12:01:21 +00:00
|
|
|
|
2021-05-11 11:08:30 +00:00
|
|
|
```
|