Compare commits
3
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
339d6a0076 | ||
|
|
76dab080e7 | ||
|
|
760f1ddad9 |
+1
-1
@@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
"name": "azimuth-watcher-ts",
|
"name": "sushiswap-watcher-ts",
|
||||||
"private": true,
|
"private": true,
|
||||||
"license": "AGPL-3.0",
|
"license": "AGPL-3.0",
|
||||||
"workspaces": {
|
"workspaces": {
|
||||||
|
|||||||
@@ -1,291 +0,0 @@
|
|||||||
{
|
|
||||||
"abi": [
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "_bentoBox",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "priviledgedUserList",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "constructor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "previousOwner",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "OwnershipTransferred",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "from",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "Route",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "bentoBox",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IBentoBoxMinimal",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "owner",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "pause",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "route",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "processRoute",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "renounceOwnership",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "resume",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "user",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "priviledge",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setPriviledge",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "transferOwnership",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address payable",
|
|
||||||
"name": "transferValueTo",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountValueTransfer",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "route",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "transferValueAndprocessRoute",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "int256",
|
|
||||||
"name": "amount0Delta",
|
|
||||||
"type": "int256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "int256",
|
|
||||||
"name": "amount1Delta",
|
|
||||||
"type": "int256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "data",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "uniswapV3SwapCallback",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "receive"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
query events($blockHash: String!, $contractAddress: String!, $name: String){
|
|
||||||
events(blockHash: $blockHash, contractAddress: $contractAddress, name: $name){
|
|
||||||
block{
|
|
||||||
cid
|
|
||||||
hash
|
|
||||||
number
|
|
||||||
timestamp
|
|
||||||
parentHash
|
|
||||||
}
|
|
||||||
tx{
|
|
||||||
hash
|
|
||||||
index
|
|
||||||
from
|
|
||||||
to
|
|
||||||
}
|
|
||||||
contract
|
|
||||||
eventIndex
|
|
||||||
event{
|
|
||||||
... on OwnershipTransferredEvent {
|
|
||||||
previousOwner
|
|
||||||
newOwner
|
|
||||||
}
|
|
||||||
... on RouteEvent {
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proof{
|
|
||||||
data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
query eventsInRange($fromBlockNumber: Int!, $toBlockNumber: Int!){
|
|
||||||
eventsInRange(fromBlockNumber: $fromBlockNumber, toBlockNumber: $toBlockNumber){
|
|
||||||
block{
|
|
||||||
cid
|
|
||||||
hash
|
|
||||||
number
|
|
||||||
timestamp
|
|
||||||
parentHash
|
|
||||||
}
|
|
||||||
tx{
|
|
||||||
hash
|
|
||||||
index
|
|
||||||
from
|
|
||||||
to
|
|
||||||
}
|
|
||||||
contract
|
|
||||||
eventIndex
|
|
||||||
event{
|
|
||||||
... on OwnershipTransferredEvent {
|
|
||||||
previousOwner
|
|
||||||
newOwner
|
|
||||||
}
|
|
||||||
... on RouteEvent {
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proof{
|
|
||||||
data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
import fs from 'fs';
|
|
||||||
import path from 'path';
|
|
||||||
|
|
||||||
export const events = fs.readFileSync(path.join(__dirname, 'events.gql'), 'utf8');
|
|
||||||
export const eventsInRange = fs.readFileSync(path.join(__dirname, 'eventsInRange.gql'), 'utf8');
|
|
||||||
export const routeProcessor = fs.readFileSync(path.join(__dirname, 'routeProcessor.gql'), 'utf8');
|
|
||||||
export const routeProcessors = fs.readFileSync(path.join(__dirname, 'routeProcessors.gql'), 'utf8');
|
|
||||||
export const route = fs.readFileSync(path.join(__dirname, 'route.gql'), 'utf8');
|
|
||||||
export const routes = fs.readFileSync(path.join(__dirname, 'routes.gql'), 'utf8');
|
|
||||||
export const user = fs.readFileSync(path.join(__dirname, 'user.gql'), 'utf8');
|
|
||||||
export const users = fs.readFileSync(path.join(__dirname, 'users.gql'), 'utf8');
|
|
||||||
export const _meta = fs.readFileSync(path.join(__dirname, '_meta.gql'), 'utf8');
|
|
||||||
export const getStateByCID = fs.readFileSync(path.join(__dirname, 'getStateByCID.gql'), 'utf8');
|
|
||||||
export const getState = fs.readFileSync(path.join(__dirname, 'getState.gql'), 'utf8');
|
|
||||||
export const getSyncStatus = fs.readFileSync(path.join(__dirname, 'getSyncStatus.gql'), 'utf8');
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
query route($id: ID!, $block: Block_height){
|
|
||||||
route(id: $id, block: $block){
|
|
||||||
id
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
timestamp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
query routeProcessor($id: ID!, $block: Block_height){
|
|
||||||
routeProcessor(id: $id, block: $block){
|
|
||||||
id
|
|
||||||
routeCount
|
|
||||||
userCount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
query routeProcessors($block: Block_height, $where: RouteProcessor_filter, $orderBy: RouteProcessor_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
|
||||||
routeProcessors(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
|
||||||
id
|
|
||||||
routeCount
|
|
||||||
userCount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
query routes($block: Block_height, $where: Route_filter, $orderBy: Route_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
|
||||||
routes(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
|
||||||
id
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
timestamp
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
query user($id: ID!, $block: Block_height){
|
|
||||||
user(id: $id, block: $block){
|
|
||||||
id
|
|
||||||
routeCount
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,37 +0,0 @@
|
|||||||
subscription onEvent{
|
|
||||||
onEvent{
|
|
||||||
block{
|
|
||||||
cid
|
|
||||||
hash
|
|
||||||
number
|
|
||||||
timestamp
|
|
||||||
parentHash
|
|
||||||
}
|
|
||||||
tx{
|
|
||||||
hash
|
|
||||||
index
|
|
||||||
from
|
|
||||||
to
|
|
||||||
}
|
|
||||||
contract
|
|
||||||
eventIndex
|
|
||||||
event{
|
|
||||||
... on OwnershipTransferredEvent {
|
|
||||||
previousOwner
|
|
||||||
newOwner
|
|
||||||
}
|
|
||||||
... on RouteEvent {
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
}
|
|
||||||
}
|
|
||||||
proof{
|
|
||||||
data
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,380 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright 2021 Vulcanize, Inc.
|
|
||||||
//
|
|
||||||
|
|
||||||
import assert from 'assert';
|
|
||||||
import debug from 'debug';
|
|
||||||
import { GraphQLResolveInfo } from 'graphql';
|
|
||||||
import { ExpressContext } from 'apollo-server-express';
|
|
||||||
import winston from 'winston';
|
|
||||||
|
|
||||||
import {
|
|
||||||
gqlTotalQueryCount,
|
|
||||||
gqlQueryCount,
|
|
||||||
gqlQueryDuration,
|
|
||||||
getResultState,
|
|
||||||
IndexerInterface,
|
|
||||||
GraphQLBigInt,
|
|
||||||
GraphQLBigDecimal,
|
|
||||||
BlockHeight,
|
|
||||||
OrderDirection,
|
|
||||||
jsonBigIntStringReplacer,
|
|
||||||
EventWatcher,
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
setGQLCacheHints
|
|
||||||
} from '@cerc-io/util';
|
|
||||||
|
|
||||||
import { Indexer } from './indexer';
|
|
||||||
|
|
||||||
import { RouteProcessor } from './entity/RouteProcessor';
|
|
||||||
import { Route } from './entity/Route';
|
|
||||||
import { User } from './entity/User';
|
|
||||||
|
|
||||||
const log = debug('vulcanize:resolver');
|
|
||||||
|
|
||||||
const executeAndRecordMetrics = async (
|
|
||||||
indexer: Indexer,
|
|
||||||
gqlLogger: winston.Logger,
|
|
||||||
opName: string,
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
operation: () => Promise<any>
|
|
||||||
) => {
|
|
||||||
gqlTotalQueryCount.inc(1);
|
|
||||||
gqlQueryCount.labels(opName).inc(1);
|
|
||||||
const endTimer = gqlQueryDuration.labels(opName).startTimer();
|
|
||||||
|
|
||||||
try {
|
|
||||||
const [result, syncStatus] = await Promise.all([
|
|
||||||
operation(),
|
|
||||||
indexer.getSyncStatus()
|
|
||||||
]);
|
|
||||||
|
|
||||||
gqlLogger.info({
|
|
||||||
opName,
|
|
||||||
query: expressContext.req.body.query,
|
|
||||||
variables: expressContext.req.body.variables,
|
|
||||||
latestIndexedBlockNumber: syncStatus?.latestIndexedBlockNumber,
|
|
||||||
urlPath: expressContext.req.path,
|
|
||||||
apiKey: expressContext.req.header('x-api-key'),
|
|
||||||
origin: expressContext.req.headers.origin
|
|
||||||
});
|
|
||||||
return result;
|
|
||||||
} catch (error) {
|
|
||||||
gqlLogger.error({
|
|
||||||
opName,
|
|
||||||
error,
|
|
||||||
query: expressContext.req.body.query,
|
|
||||||
variables: expressContext.req.body.variables,
|
|
||||||
urlPath: expressContext.req.path,
|
|
||||||
apiKey: expressContext.req.header('x-api-key'),
|
|
||||||
origin: expressContext.req.headers.origin
|
|
||||||
});
|
|
||||||
} finally {
|
|
||||||
endTimer();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const createResolvers = async (
|
|
||||||
indexerArg: IndexerInterface,
|
|
||||||
eventWatcher: EventWatcher,
|
|
||||||
gqlLogger: winston.Logger
|
|
||||||
): Promise<any> => {
|
|
||||||
const indexer = indexerArg as Indexer;
|
|
||||||
|
|
||||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
||||||
const gqlCacheConfig = indexer.serverConfig.gql.cache;
|
|
||||||
|
|
||||||
return {
|
|
||||||
BigInt: GraphQLBigInt,
|
|
||||||
|
|
||||||
BigDecimal: GraphQLBigDecimal,
|
|
||||||
|
|
||||||
Event: {
|
|
||||||
__resolveType: (obj: any) => {
|
|
||||||
assert(obj.__typename);
|
|
||||||
|
|
||||||
return obj.__typename;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
Subscription: {
|
|
||||||
onEvent: {
|
|
||||||
subscribe: () => eventWatcher.getEventIterator()
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
Mutation: {
|
|
||||||
watchContract: async (_: any, { address, kind, checkpoint, startingBlock = 1 }: { address: string, kind: string, checkpoint: boolean, startingBlock: number }): Promise<boolean> => {
|
|
||||||
log('watchContract', address, kind, checkpoint, startingBlock);
|
|
||||||
await indexer.watchContract(address, kind, checkpoint, startingBlock);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
Query: {
|
|
||||||
routeProcessor: async (
|
|
||||||
_: any,
|
|
||||||
{ id, block = {} }: { id: string, block: BlockHeight },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('routeProcessor', id, JSON.stringify(block, jsonBigIntStringReplacer));
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'routeProcessor',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntity(RouteProcessor, id, block, info)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
routeProcessors: async (
|
|
||||||
_: any,
|
|
||||||
{ block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('routeProcessors', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'routeProcessors',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntities(
|
|
||||||
RouteProcessor,
|
|
||||||
block,
|
|
||||||
where,
|
|
||||||
{ limit: first, skip, orderBy, orderDirection },
|
|
||||||
info
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
route: async (
|
|
||||||
_: any,
|
|
||||||
{ id, block = {} }: { id: string, block: BlockHeight },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('route', id, JSON.stringify(block, jsonBigIntStringReplacer));
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'route',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntity(Route, id, block, info)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
routes: async (
|
|
||||||
_: any,
|
|
||||||
{ block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('routes', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'routes',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntities(
|
|
||||||
Route,
|
|
||||||
block,
|
|
||||||
where,
|
|
||||||
{ limit: first, skip, orderBy, orderDirection },
|
|
||||||
info
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
user: async (
|
|
||||||
_: any,
|
|
||||||
{ id, block = {} }: { id: string, block: BlockHeight },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('user', id, JSON.stringify(block, jsonBigIntStringReplacer));
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'user',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntity(User, id, block, info)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
users: async (
|
|
||||||
_: any,
|
|
||||||
{ block = {}, where, first, skip, orderBy, orderDirection }: { block: BlockHeight, where: { [key: string]: any }, first: number, skip: number, orderBy: string, orderDirection: OrderDirection },
|
|
||||||
expressContext: ExpressContext,
|
|
||||||
info: GraphQLResolveInfo
|
|
||||||
) => {
|
|
||||||
log('users', JSON.stringify(block, jsonBigIntStringReplacer), JSON.stringify(where, jsonBigIntStringReplacer), first, skip, orderBy, orderDirection);
|
|
||||||
|
|
||||||
// Set cache-control hints
|
|
||||||
// setGQLCacheHints(info, block, gqlCacheConfig);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'users',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSubgraphEntities(
|
|
||||||
User,
|
|
||||||
block,
|
|
||||||
where,
|
|
||||||
{ limit: first, skip, orderBy, orderDirection },
|
|
||||||
info
|
|
||||||
)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
events: async (
|
|
||||||
_: any,
|
|
||||||
{ blockHash, contractAddress, name }: { blockHash: string, contractAddress: string, name?: string },
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('events', blockHash, contractAddress, name);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'events',
|
|
||||||
expressContext,
|
|
||||||
async () => {
|
|
||||||
const block = await indexer.getBlockProgress(blockHash);
|
|
||||||
if (!block || !block.isComplete) {
|
|
||||||
throw new Error(`Block hash ${blockHash} number ${block?.blockNumber} not processed yet`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const events = await indexer.getEventsByFilter(blockHash, contractAddress, name);
|
|
||||||
return events.map(event => indexer.getResultEvent(event));
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
eventsInRange: async (
|
|
||||||
_: any,
|
|
||||||
{ fromBlockNumber, toBlockNumber }: { fromBlockNumber: number, toBlockNumber: number },
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('eventsInRange', fromBlockNumber, toBlockNumber);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'eventsInRange',
|
|
||||||
expressContext,
|
|
||||||
async () => {
|
|
||||||
const syncStatus = await indexer.getSyncStatus();
|
|
||||||
|
|
||||||
if (!syncStatus) {
|
|
||||||
throw new Error('No blocks processed yet');
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((fromBlockNumber < syncStatus.initialIndexedBlockNumber) || (toBlockNumber > syncStatus.latestProcessedBlockNumber)) {
|
|
||||||
throw new Error(`Block range should be between ${syncStatus.initialIndexedBlockNumber} and ${syncStatus.latestProcessedBlockNumber}`);
|
|
||||||
}
|
|
||||||
|
|
||||||
const events = await indexer.getEventsInRange(fromBlockNumber, toBlockNumber);
|
|
||||||
return events.map(event => indexer.getResultEvent(event));
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
getStateByCID: async (
|
|
||||||
_: any,
|
|
||||||
{ cid }: { cid: string },
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('getStateByCID', cid);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'getStateByCID',
|
|
||||||
expressContext,
|
|
||||||
async () => {
|
|
||||||
const state = await indexer.getStateByCID(cid);
|
|
||||||
|
|
||||||
return state && state.block.isComplete ? getResultState(state) : undefined;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
getState: async (
|
|
||||||
_: any,
|
|
||||||
{ blockHash, contractAddress, kind }: { blockHash: string, contractAddress: string, kind: string },
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('getState', blockHash, contractAddress, kind);
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'getState',
|
|
||||||
expressContext,
|
|
||||||
async () => {
|
|
||||||
const state = await indexer.getPrevState(blockHash, contractAddress, kind);
|
|
||||||
|
|
||||||
return state && state.block.isComplete ? getResultState(state) : undefined;
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
_meta: async (
|
|
||||||
_: any,
|
|
||||||
{ block = {} }: { block: BlockHeight },
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('_meta');
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'_meta',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getMetaData(block)
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
getSyncStatus: async (
|
|
||||||
_: any,
|
|
||||||
__: Record<string, never>,
|
|
||||||
expressContext: ExpressContext
|
|
||||||
) => {
|
|
||||||
log('getSyncStatus');
|
|
||||||
|
|
||||||
return executeAndRecordMetrics(
|
|
||||||
indexer,
|
|
||||||
gqlLogger,
|
|
||||||
'getSyncStatus',
|
|
||||||
expressContext,
|
|
||||||
async () => indexer.getSyncStatus()
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
@@ -1,309 +0,0 @@
|
|||||||
directive @cacheControl(maxAge: Int, inheritMaxAge: Boolean, scope: CacheControlScope) on FIELD_DEFINITION | OBJECT | INTERFACE | UNION
|
|
||||||
|
|
||||||
enum CacheControlScope {
|
|
||||||
PUBLIC
|
|
||||||
PRIVATE
|
|
||||||
}
|
|
||||||
|
|
||||||
scalar BigInt
|
|
||||||
|
|
||||||
scalar BigDecimal
|
|
||||||
|
|
||||||
scalar Bytes
|
|
||||||
|
|
||||||
type Proof {
|
|
||||||
data: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type _Block_ {
|
|
||||||
cid: String
|
|
||||||
hash: String!
|
|
||||||
number: Int!
|
|
||||||
timestamp: Int!
|
|
||||||
parentHash: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type _Transaction_ {
|
|
||||||
hash: String!
|
|
||||||
index: Int!
|
|
||||||
from: String!
|
|
||||||
to: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResultEvent {
|
|
||||||
block: _Block_!
|
|
||||||
tx: _Transaction_!
|
|
||||||
contract: String!
|
|
||||||
eventIndex: Int!
|
|
||||||
event: Event!
|
|
||||||
proof: Proof
|
|
||||||
}
|
|
||||||
|
|
||||||
union Event = OwnershipTransferredEvent | RouteEvent
|
|
||||||
|
|
||||||
type OwnershipTransferredEvent {
|
|
||||||
previousOwner: String!
|
|
||||||
newOwner: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type RouteEvent {
|
|
||||||
from: String!
|
|
||||||
to: String!
|
|
||||||
tokenIn: String!
|
|
||||||
tokenOut: String!
|
|
||||||
amountIn: BigInt!
|
|
||||||
amountOutMin: BigInt!
|
|
||||||
amountOut: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
input Block_height {
|
|
||||||
hash: Bytes
|
|
||||||
number: Int
|
|
||||||
}
|
|
||||||
|
|
||||||
input BlockChangedFilter {
|
|
||||||
number_gte: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
enum OrderDirection {
|
|
||||||
asc
|
|
||||||
desc
|
|
||||||
}
|
|
||||||
|
|
||||||
enum RouteProcessor_orderBy {
|
|
||||||
id
|
|
||||||
routeCount
|
|
||||||
userCount
|
|
||||||
}
|
|
||||||
|
|
||||||
input RouteProcessor_filter {
|
|
||||||
id: ID
|
|
||||||
id_not: ID
|
|
||||||
id_gt: ID
|
|
||||||
id_lt: ID
|
|
||||||
id_gte: ID
|
|
||||||
id_lte: ID
|
|
||||||
id_in: [ID!]
|
|
||||||
id_not_in: [ID!]
|
|
||||||
routeCount: BigInt
|
|
||||||
routeCount_not: BigInt
|
|
||||||
routeCount_gt: BigInt
|
|
||||||
routeCount_lt: BigInt
|
|
||||||
routeCount_gte: BigInt
|
|
||||||
routeCount_lte: BigInt
|
|
||||||
routeCount_in: [BigInt!]
|
|
||||||
routeCount_not_in: [BigInt!]
|
|
||||||
userCount: BigInt
|
|
||||||
userCount_not: BigInt
|
|
||||||
userCount_gt: BigInt
|
|
||||||
userCount_lt: BigInt
|
|
||||||
userCount_gte: BigInt
|
|
||||||
userCount_lte: BigInt
|
|
||||||
userCount_in: [BigInt!]
|
|
||||||
userCount_not_in: [BigInt!]
|
|
||||||
_change_block: BlockChangedFilter
|
|
||||||
and: [RouteProcessor_filter]
|
|
||||||
or: [RouteProcessor_filter]
|
|
||||||
}
|
|
||||||
|
|
||||||
enum Route_orderBy {
|
|
||||||
id
|
|
||||||
from
|
|
||||||
to
|
|
||||||
tokenIn
|
|
||||||
tokenOut
|
|
||||||
amountIn
|
|
||||||
amountOutMin
|
|
||||||
amountOut
|
|
||||||
timestamp
|
|
||||||
}
|
|
||||||
|
|
||||||
input Route_filter {
|
|
||||||
id: ID
|
|
||||||
id_not: ID
|
|
||||||
id_gt: ID
|
|
||||||
id_lt: ID
|
|
||||||
id_gte: ID
|
|
||||||
id_lte: ID
|
|
||||||
id_in: [ID!]
|
|
||||||
id_not_in: [ID!]
|
|
||||||
from: Bytes
|
|
||||||
from_not: Bytes
|
|
||||||
from_gt: Bytes
|
|
||||||
from_lt: Bytes
|
|
||||||
from_gte: Bytes
|
|
||||||
from_lte: Bytes
|
|
||||||
from_in: [Bytes!]
|
|
||||||
from_not_in: [Bytes!]
|
|
||||||
from_contains: Bytes
|
|
||||||
from_not_contains: Bytes
|
|
||||||
to: Bytes
|
|
||||||
to_not: Bytes
|
|
||||||
to_gt: Bytes
|
|
||||||
to_lt: Bytes
|
|
||||||
to_gte: Bytes
|
|
||||||
to_lte: Bytes
|
|
||||||
to_in: [Bytes!]
|
|
||||||
to_not_in: [Bytes!]
|
|
||||||
to_contains: Bytes
|
|
||||||
to_not_contains: Bytes
|
|
||||||
tokenIn: Bytes
|
|
||||||
tokenIn_not: Bytes
|
|
||||||
tokenIn_gt: Bytes
|
|
||||||
tokenIn_lt: Bytes
|
|
||||||
tokenIn_gte: Bytes
|
|
||||||
tokenIn_lte: Bytes
|
|
||||||
tokenIn_in: [Bytes!]
|
|
||||||
tokenIn_not_in: [Bytes!]
|
|
||||||
tokenIn_contains: Bytes
|
|
||||||
tokenIn_not_contains: Bytes
|
|
||||||
tokenOut: Bytes
|
|
||||||
tokenOut_not: Bytes
|
|
||||||
tokenOut_gt: Bytes
|
|
||||||
tokenOut_lt: Bytes
|
|
||||||
tokenOut_gte: Bytes
|
|
||||||
tokenOut_lte: Bytes
|
|
||||||
tokenOut_in: [Bytes!]
|
|
||||||
tokenOut_not_in: [Bytes!]
|
|
||||||
tokenOut_contains: Bytes
|
|
||||||
tokenOut_not_contains: Bytes
|
|
||||||
amountIn: BigInt
|
|
||||||
amountIn_not: BigInt
|
|
||||||
amountIn_gt: BigInt
|
|
||||||
amountIn_lt: BigInt
|
|
||||||
amountIn_gte: BigInt
|
|
||||||
amountIn_lte: BigInt
|
|
||||||
amountIn_in: [BigInt!]
|
|
||||||
amountIn_not_in: [BigInt!]
|
|
||||||
amountOutMin: BigInt
|
|
||||||
amountOutMin_not: BigInt
|
|
||||||
amountOutMin_gt: BigInt
|
|
||||||
amountOutMin_lt: BigInt
|
|
||||||
amountOutMin_gte: BigInt
|
|
||||||
amountOutMin_lte: BigInt
|
|
||||||
amountOutMin_in: [BigInt!]
|
|
||||||
amountOutMin_not_in: [BigInt!]
|
|
||||||
amountOut: BigInt
|
|
||||||
amountOut_not: BigInt
|
|
||||||
amountOut_gt: BigInt
|
|
||||||
amountOut_lt: BigInt
|
|
||||||
amountOut_gte: BigInt
|
|
||||||
amountOut_lte: BigInt
|
|
||||||
amountOut_in: [BigInt!]
|
|
||||||
amountOut_not_in: [BigInt!]
|
|
||||||
timestamp: BigInt
|
|
||||||
timestamp_not: BigInt
|
|
||||||
timestamp_gt: BigInt
|
|
||||||
timestamp_lt: BigInt
|
|
||||||
timestamp_gte: BigInt
|
|
||||||
timestamp_lte: BigInt
|
|
||||||
timestamp_in: [BigInt!]
|
|
||||||
timestamp_not_in: [BigInt!]
|
|
||||||
_change_block: BlockChangedFilter
|
|
||||||
and: [Route_filter]
|
|
||||||
or: [Route_filter]
|
|
||||||
}
|
|
||||||
|
|
||||||
enum User_orderBy {
|
|
||||||
id
|
|
||||||
routeCount
|
|
||||||
}
|
|
||||||
|
|
||||||
input User_filter {
|
|
||||||
id: ID
|
|
||||||
id_not: ID
|
|
||||||
id_gt: ID
|
|
||||||
id_lt: ID
|
|
||||||
id_gte: ID
|
|
||||||
id_lte: ID
|
|
||||||
id_in: [ID!]
|
|
||||||
id_not_in: [ID!]
|
|
||||||
routeCount: BigInt
|
|
||||||
routeCount_not: BigInt
|
|
||||||
routeCount_gt: BigInt
|
|
||||||
routeCount_lt: BigInt
|
|
||||||
routeCount_gte: BigInt
|
|
||||||
routeCount_lte: BigInt
|
|
||||||
routeCount_in: [BigInt!]
|
|
||||||
routeCount_not_in: [BigInt!]
|
|
||||||
_change_block: BlockChangedFilter
|
|
||||||
and: [User_filter]
|
|
||||||
or: [User_filter]
|
|
||||||
}
|
|
||||||
|
|
||||||
type _MetaBlock_ {
|
|
||||||
hash: Bytes
|
|
||||||
number: Int!
|
|
||||||
timestamp: Int
|
|
||||||
}
|
|
||||||
|
|
||||||
type _Meta_ {
|
|
||||||
block: _MetaBlock_!
|
|
||||||
deployment: String!
|
|
||||||
hasIndexingErrors: Boolean!
|
|
||||||
}
|
|
||||||
|
|
||||||
type ResultState {
|
|
||||||
block: _Block_!
|
|
||||||
contractAddress: String!
|
|
||||||
cid: String!
|
|
||||||
kind: String!
|
|
||||||
data: String!
|
|
||||||
}
|
|
||||||
|
|
||||||
type SyncStatus {
|
|
||||||
latestIndexedBlockHash: String!
|
|
||||||
latestIndexedBlockNumber: Int!
|
|
||||||
latestCanonicalBlockHash: String!
|
|
||||||
latestCanonicalBlockNumber: Int!
|
|
||||||
initialIndexedBlockHash: String!
|
|
||||||
initialIndexedBlockNumber: Int!
|
|
||||||
latestProcessedBlockHash: String!
|
|
||||||
latestProcessedBlockNumber: Int!
|
|
||||||
}
|
|
||||||
|
|
||||||
type Query {
|
|
||||||
events(blockHash: String!, contractAddress: String!, name: String): [ResultEvent!]
|
|
||||||
eventsInRange(fromBlockNumber: Int!, toBlockNumber: Int!): [ResultEvent!]
|
|
||||||
routeProcessor(id: ID!, block: Block_height): RouteProcessor
|
|
||||||
routeProcessors(block: Block_height, where: RouteProcessor_filter, orderBy: RouteProcessor_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [RouteProcessor!]!
|
|
||||||
route(id: ID!, block: Block_height): Route
|
|
||||||
routes(block: Block_height, where: Route_filter, orderBy: Route_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [Route!]!
|
|
||||||
user(id: ID!, block: Block_height): User
|
|
||||||
users(block: Block_height, where: User_filter, orderBy: User_orderBy, orderDirection: OrderDirection, first: Int = 100, skip: Int = 0): [User!]!
|
|
||||||
_meta(block: Block_height): _Meta_
|
|
||||||
getStateByCID(cid: String!): ResultState
|
|
||||||
getState(blockHash: String!, contractAddress: String!, kind: String): ResultState
|
|
||||||
getSyncStatus: SyncStatus
|
|
||||||
}
|
|
||||||
|
|
||||||
type RouteProcessor {
|
|
||||||
id: ID!
|
|
||||||
routeCount: BigInt!
|
|
||||||
userCount: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
type Route {
|
|
||||||
id: ID!
|
|
||||||
from: Bytes!
|
|
||||||
to: Bytes!
|
|
||||||
tokenIn: Bytes!
|
|
||||||
tokenOut: Bytes!
|
|
||||||
amountIn: BigInt!
|
|
||||||
amountOutMin: BigInt!
|
|
||||||
amountOut: BigInt!
|
|
||||||
timestamp: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
type User {
|
|
||||||
id: ID!
|
|
||||||
routeCount: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
type Mutation {
|
|
||||||
watchContract(address: String!, kind: String!, checkpoint: Boolean!, startingBlock: Int): Boolean!
|
|
||||||
}
|
|
||||||
|
|
||||||
type Subscription {
|
|
||||||
onEvent: ResultEvent!
|
|
||||||
}
|
|
||||||
@@ -1,3 +0,0 @@
|
|||||||
//
|
|
||||||
// Copyright 2021 Vulcanize, Inc.
|
|
||||||
//
|
|
||||||
Binary file not shown.
-289
@@ -1,289 +0,0 @@
|
|||||||
[
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "_bentoBox",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address[]",
|
|
||||||
"name": "priviledgedUserList",
|
|
||||||
"type": "address[]"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "constructor"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "previousOwner",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "OwnershipTransferred",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"anonymous": false,
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "from",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": true,
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"indexed": false,
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "Route",
|
|
||||||
"type": "event"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "bentoBox",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "contract IBentoBoxMinimal",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "owner",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "view",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "pause",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "route",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "processRoute",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "renounceOwnership",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [],
|
|
||||||
"name": "resume",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "user",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bool",
|
|
||||||
"name": "priviledge",
|
|
||||||
"type": "bool"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "setPriviledge",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "newOwner",
|
|
||||||
"type": "address"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "transferOwnership",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "address payable",
|
|
||||||
"name": "transferValueTo",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountValueTransfer",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenIn",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountIn",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "tokenOut",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOutMin",
|
|
||||||
"type": "uint256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "address",
|
|
||||||
"name": "to",
|
|
||||||
"type": "address"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "route",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "transferValueAndprocessRoute",
|
|
||||||
"outputs": [
|
|
||||||
{
|
|
||||||
"internalType": "uint256",
|
|
||||||
"name": "amountOut",
|
|
||||||
"type": "uint256"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"inputs": [
|
|
||||||
{
|
|
||||||
"internalType": "int256",
|
|
||||||
"name": "amount0Delta",
|
|
||||||
"type": "int256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "int256",
|
|
||||||
"name": "amount1Delta",
|
|
||||||
"type": "int256"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"internalType": "bytes",
|
|
||||||
"name": "data",
|
|
||||||
"type": "bytes"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"name": "uniswapV3SwapCallback",
|
|
||||||
"outputs": [],
|
|
||||||
"stateMutability": "nonpayable",
|
|
||||||
"type": "function"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"stateMutability": "payable",
|
|
||||||
"type": "receive"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
type RouteProcessor @entity {
|
|
||||||
# route processor address
|
|
||||||
id: ID!
|
|
||||||
# amount of routes processed
|
|
||||||
routeCount: BigInt!
|
|
||||||
# amount of users
|
|
||||||
userCount: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
type Route @entity {
|
|
||||||
# tx hash - tx index
|
|
||||||
id: ID!
|
|
||||||
# from address
|
|
||||||
from: Bytes!
|
|
||||||
# to address
|
|
||||||
to: Bytes!
|
|
||||||
# tokenIn address
|
|
||||||
tokenIn: Bytes!
|
|
||||||
# tokenOut address
|
|
||||||
tokenOut: Bytes!
|
|
||||||
# amount of tokenIn
|
|
||||||
amountIn: BigInt!
|
|
||||||
# min amount of tokenOut
|
|
||||||
amountOutMin: BigInt!
|
|
||||||
# amount of tokenOut
|
|
||||||
amountOut: BigInt!
|
|
||||||
# timestamp
|
|
||||||
timestamp: BigInt!
|
|
||||||
}
|
|
||||||
|
|
||||||
type User @entity {
|
|
||||||
# user address
|
|
||||||
id: ID!
|
|
||||||
# amount of routes processed
|
|
||||||
routeCount: BigInt!
|
|
||||||
# list of routes processed
|
|
||||||
#routes: [Route!]! @derivedFrom(field: "from")
|
|
||||||
}
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
specVersion: 0.0.4
|
|
||||||
schema:
|
|
||||||
file: schema.graphql
|
|
||||||
dataSources:
|
|
||||||
- kind: ethereum/contract
|
|
||||||
name: RouteProcessor
|
|
||||||
network: mainnet
|
|
||||||
source:
|
|
||||||
address: "0x1f2fcf1d036b375b384012e61d3aa33f8c256bbe"
|
|
||||||
startBlock: 3685230
|
|
||||||
abi: RouteProcessor
|
|
||||||
mapping:
|
|
||||||
kind: ethereum/events
|
|
||||||
apiVersion: 0.0.6
|
|
||||||
language: wasm/assemblyscript
|
|
||||||
file: RouteProcessor/RouteProcessor.wasm
|
|
||||||
entities: []
|
|
||||||
abis:
|
|
||||||
- name: RouteProcessor
|
|
||||||
file: RouteProcessor/abis/RouteProcessor3.json
|
|
||||||
eventHandlers:
|
|
||||||
- event: Route(indexed address,address,indexed address,indexed
|
|
||||||
address,uint256,uint256,uint256)
|
|
||||||
handler: handleRoute
|
|
||||||
Regular → Executable
@@ -1,8 +1,8 @@
|
|||||||
# route-processor-watcher
|
# sushiswap-watcher
|
||||||
|
|
||||||
## Source
|
## Source
|
||||||
|
|
||||||
* Subgraph: sushiswap-subgraphs v0.1.2-watcher
|
* Subgraph: sushiswap-subgraphs release-v0.1.0-watcher
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
sudo su - postgres
|
sudo su - postgres
|
||||||
createdb route-processor-watcher
|
createdb sushiswap-watcher
|
||||||
```
|
```
|
||||||
|
|
||||||
* If the watcher is an `active` watcher:
|
* If the watcher is an `active` watcher:
|
||||||
@@ -24,19 +24,19 @@
|
|||||||
Create database for the job queue and enable the `pgcrypto` extension on them (https://github.com/timgit/pg-boss/blob/master/docs/usage.md#intro):
|
Create database for the job queue and enable the `pgcrypto` extension on them (https://github.com/timgit/pg-boss/blob/master/docs/usage.md#intro):
|
||||||
|
|
||||||
```
|
```
|
||||||
createdb route-processor-watcher-job-queue
|
createdb sushiswap-watcher-job-queue
|
||||||
```
|
```
|
||||||
|
|
||||||
```
|
```
|
||||||
postgres@tesla:~$ psql -U postgres -h localhost route-processor-watcher-job-queue
|
postgres@tesla:~$ psql -U postgres -h localhost sushiswap-watcher-job-queue
|
||||||
Password for user postgres:
|
Password for user postgres:
|
||||||
psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
|
psql (12.7 (Ubuntu 12.7-1.pgdg18.04+1))
|
||||||
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
|
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
|
||||||
Type "help" for help.
|
Type "help" for help.
|
||||||
|
|
||||||
route-processor-watcher-job-queue=# CREATE EXTENSION pgcrypto;
|
sushiswap-watcher-job-queue=# CREATE EXTENSION pgcrypto;
|
||||||
CREATE EXTENSION
|
CREATE EXTENSION
|
||||||
route-processor-watcher-job-queue=# exit
|
sushiswap-watcher-job-queue=# exit
|
||||||
```
|
```
|
||||||
|
|
||||||
* In the [config file](./environments/local.toml):
|
* In the [config file](./environments/local.toml):
|
||||||
+2
-2
@@ -56,7 +56,7 @@
|
|||||||
type = "postgres"
|
type = "postgres"
|
||||||
host = "localhost"
|
host = "localhost"
|
||||||
port = 5432
|
port = 5432
|
||||||
database = "route-processor-watcher"
|
database = "sushiswap-watcher"
|
||||||
username = "postgres"
|
username = "postgres"
|
||||||
password = "postgres"
|
password = "postgres"
|
||||||
synchronize = true
|
synchronize = true
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
deleteOnStart = false
|
deleteOnStart = false
|
||||||
|
|
||||||
[jobQueue]
|
[jobQueue]
|
||||||
dbConnectionString = "postgres://postgres:postgres@localhost/route-processor-watcher-job-queue"
|
dbConnectionString = "postgres://postgres:postgres@localhost/sushiswap-watcher-job-queue"
|
||||||
maxCompletionLagInSecs = 300
|
maxCompletionLagInSecs = 300
|
||||||
jobDelayInMilliSecs = 100
|
jobDelayInMilliSecs = 100
|
||||||
eventsInBatch = 50
|
eventsInBatch = 50
|
||||||
+7
-7
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "@cerc-io/route-processor-watcher",
|
"name": "@cerc-io/sushiswap-watcher",
|
||||||
"version": "0.1.0",
|
"version": "0.1.0",
|
||||||
"description": "route-processor-watcher",
|
"description": "sushiswap-watcher",
|
||||||
"private": true,
|
"private": true,
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -39,11 +39,11 @@
|
|||||||
"homepage": "https://github.com/cerc-io/watcher-ts#readme",
|
"homepage": "https://github.com/cerc-io/watcher-ts#readme",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@apollo/client": "^3.3.19",
|
"@apollo/client": "^3.3.19",
|
||||||
"@cerc-io/cli": "^0.2.93",
|
"@cerc-io/cli": "^0.2.94",
|
||||||
"@cerc-io/ipld-eth-client": "^0.2.93",
|
"@cerc-io/ipld-eth-client": "^0.2.94",
|
||||||
"@cerc-io/solidity-mapper": "^0.2.93",
|
"@cerc-io/solidity-mapper": "^0.2.94",
|
||||||
"@cerc-io/util": "^0.2.93",
|
"@cerc-io/util": "^0.2.94",
|
||||||
"@cerc-io/graph-node": "^0.2.93",
|
"@cerc-io/graph-node": "^0.2.94",
|
||||||
"@ethersproject/providers": "^5.4.4",
|
"@ethersproject/providers": "^5.4.4",
|
||||||
"debug": "^4.3.1",
|
"debug": "^4.3.1",
|
||||||
"decimal.js": "^10.3.1",
|
"decimal.js": "^10.3.1",
|
||||||
@@ -0,0 +1,217 @@
|
|||||||
|
{
|
||||||
|
"abi": [
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_feeToSetter",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "token0",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "token1",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "pair",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "PairCreated",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "allPairs",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "allPairsLength",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "tokenA",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "tokenB",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "createPair",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "pair",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "feeTo",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "feeToSetter",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "getPair",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "migrator",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "pairCodeHash",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "",
|
||||||
|
"type": "bytes32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "pure",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_feeTo",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "setFeeTo",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_feeToSetter",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "setFeeToSetter",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_migrator",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "setMigrator",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,660 @@
|
|||||||
|
{
|
||||||
|
"abi": [
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "constructor"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "owner",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "spender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Approval",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "sender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Burn",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "sender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Mint",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "sender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0In",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1In",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0Out",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1Out",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Swap",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint112",
|
||||||
|
"name": "reserve0",
|
||||||
|
"type": "uint112"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint112",
|
||||||
|
"name": "reserve1",
|
||||||
|
"type": "uint112"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Sync",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"anonymous": false,
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "from",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": true,
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"indexed": false,
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "Transfer",
|
||||||
|
"type": "event"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "DOMAIN_SEPARATOR",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "",
|
||||||
|
"type": "bytes32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "MINIMUM_LIQUIDITY",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "PERMIT_TYPEHASH",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "",
|
||||||
|
"type": "bytes32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "allowance",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "spender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "approve",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bool",
|
||||||
|
"name": "",
|
||||||
|
"type": "bool"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "balanceOf",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "burn",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "decimals",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint8",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint8"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "factory",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "getReserves",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint112",
|
||||||
|
"name": "_reserve0",
|
||||||
|
"type": "uint112"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint112",
|
||||||
|
"name": "_reserve1",
|
||||||
|
"type": "uint112"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint32",
|
||||||
|
"name": "_blockTimestampLast",
|
||||||
|
"type": "uint32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_token0",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "_token1",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "initialize",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "kLast",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "mint",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "liquidity",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "name",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "string",
|
||||||
|
"name": "",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "nonces",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "owner",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "spender",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "deadline",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint8",
|
||||||
|
"name": "v",
|
||||||
|
"type": "uint8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "r",
|
||||||
|
"type": "bytes32"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "bytes32",
|
||||||
|
"name": "s",
|
||||||
|
"type": "bytes32"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "permit",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "price0CumulativeLast",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "price1CumulativeLast",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "skim",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount0Out",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "amount1Out",
|
||||||
|
"type": "uint256"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "bytes",
|
||||||
|
"name": "data",
|
||||||
|
"type": "bytes"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "swap",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "symbol",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "string",
|
||||||
|
"name": "",
|
||||||
|
"type": "string"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "sync",
|
||||||
|
"outputs": [],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "token0",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "token1",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "",
|
||||||
|
"type": "address"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [],
|
||||||
|
"name": "totalSupply",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "view",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "transfer",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bool",
|
||||||
|
"name": "",
|
||||||
|
"type": "bool"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"inputs": [
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "from",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "address",
|
||||||
|
"name": "to",
|
||||||
|
"type": "address"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"internalType": "uint256",
|
||||||
|
"name": "value",
|
||||||
|
"type": "uint256"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": "transferFrom",
|
||||||
|
"outputs": [
|
||||||
|
{
|
||||||
|
"internalType": "bool",
|
||||||
|
"name": "",
|
||||||
|
"type": "bool"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"stateMutability": "nonpayable",
|
||||||
|
"type": "function"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
+20
-3
@@ -21,11 +21,28 @@ import { SyncStatus } from './entity/SyncStatus';
|
|||||||
import { StateSyncStatus } from './entity/StateSyncStatus';
|
import { StateSyncStatus } from './entity/StateSyncStatus';
|
||||||
import { BlockProgress } from './entity/BlockProgress';
|
import { BlockProgress } from './entity/BlockProgress';
|
||||||
import { State } from './entity/State';
|
import { State } from './entity/State';
|
||||||
import { RouteProcessor } from './entity/RouteProcessor';
|
import { Factory } from './entity/Factory';
|
||||||
import { Route } from './entity/Route';
|
import { Bundle } from './entity/Bundle';
|
||||||
|
import { Token } from './entity/Token';
|
||||||
|
import { TokenPrice } from './entity/TokenPrice';
|
||||||
|
import { _TokenPair } from './entity/_TokenPair';
|
||||||
|
import { _WhitelistedTokenPair } from './entity/_WhitelistedTokenPair';
|
||||||
|
import { Pair } from './entity/Pair';
|
||||||
import { User } from './entity/User';
|
import { User } from './entity/User';
|
||||||
|
import { LiquidityPosition } from './entity/LiquidityPosition';
|
||||||
|
import { Mint } from './entity/Mint';
|
||||||
|
import { Burn } from './entity/Burn';
|
||||||
|
import { Swap } from './entity/Swap';
|
||||||
|
import { Transaction } from './entity/Transaction';
|
||||||
|
import { LiquidityPositionSnapshot } from './entity/LiquidityPositionSnapshot';
|
||||||
|
import { PairHourSnapshot } from './entity/PairHourSnapshot';
|
||||||
|
import { PairDaySnapshot } from './entity/PairDaySnapshot';
|
||||||
|
import { TokenHourSnapshot } from './entity/TokenHourSnapshot';
|
||||||
|
import { TokenDaySnapshot } from './entity/TokenDaySnapshot';
|
||||||
|
import { FactoryHourSnapshot } from './entity/FactoryHourSnapshot';
|
||||||
|
import { FactoryDaySnapshot } from './entity/FactoryDaySnapshot';
|
||||||
|
|
||||||
export const SUBGRAPH_ENTITIES = new Set([RouteProcessor, Route, User]);
|
export const SUBGRAPH_ENTITIES = new Set([Factory, Bundle, Token, TokenPrice, _TokenPair, _WhitelistedTokenPair, Pair, User, LiquidityPosition, Mint, Burn, Swap, Transaction, LiquidityPositionSnapshot, PairHourSnapshot, PairDaySnapshot, TokenHourSnapshot, TokenDaySnapshot, FactoryHourSnapshot, FactoryDaySnapshot]);
|
||||||
export const ENTITIES = [...SUBGRAPH_ENTITIES];
|
export const ENTITIES = [...SUBGRAPH_ENTITIES];
|
||||||
// Map: Entity to suitable query type.
|
// Map: Entity to suitable query type.
|
||||||
export const ENTITY_QUERY_TYPE_MAP = new Map<new() => any, ENTITY_QUERY_TYPE>([]);
|
export const ENTITY_QUERY_TYPE_MAP = new Map<new() => any, ENTITY_QUERY_TYPE>([]);
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Bundle {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
nativePrice!: Decimal;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Burn {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
transaction!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
timestamp!: bigint;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
sender!: string | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amount0!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amount1!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
to!: string | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: bigintTransformer })
|
||||||
|
logIndex!: bigint | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amountUSD!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('boolean')
|
||||||
|
complete!: boolean;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
feeTo!: string | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
feeLiquidity!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,60 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { PairType } from '../types';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Factory {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column({ type: 'enum', enum: PairType })
|
||||||
|
type!: PairType;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
pairCount!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
tokenCount!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
userCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class FactoryDaySnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
factory!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,53 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class FactoryHourSnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
factory!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
+13
-4
@@ -7,7 +7,7 @@ import { bigintTransformer } from '@cerc-io/util';
|
|||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
@Index(['blockNumber'])
|
@Index(['blockNumber'])
|
||||||
export class RouteProcessor {
|
export class LiquidityPosition {
|
||||||
@PrimaryColumn('varchar')
|
@PrimaryColumn('varchar')
|
||||||
id!: string;
|
id!: string;
|
||||||
|
|
||||||
@@ -17,11 +17,20 @@ export class RouteProcessor {
|
|||||||
@Column('integer')
|
@Column('integer')
|
||||||
blockNumber!: number;
|
blockNumber!: number;
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('varchar')
|
||||||
routeCount!: bigint;
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
user!: string;
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
userCount!: bigint;
|
balance!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
createdAtBlock!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
createdAtTimestamp!: bigint;
|
||||||
|
|
||||||
@Column('boolean', { default: false })
|
@Column('boolean', { default: false })
|
||||||
isPruned!: boolean;
|
isPruned!: boolean;
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class LiquidityPositionSnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
liquidityPosition!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
timestamp!: number;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
block!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
user!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
token0PriceUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
token1PriceUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
reserve0!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
reserve1!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
reserveUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
liquidityTokenTotalSupply!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
liquidityTokenBalance!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,62 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Mint {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
transaction!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
timestamp!: bigint;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
to!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
sender!: string | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amount0!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amount1!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: bigintTransformer })
|
||||||
|
logIndex!: bigint | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
amountUSD!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
feeTo!: string | null;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: decimalTransformer })
|
||||||
|
feeLiquidity!: Decimal | null;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,105 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { PairType } from '../types';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Pair {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column({ type: 'enum', enum: PairType })
|
||||||
|
type!: PairType;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
swapFee!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean')
|
||||||
|
twapEnabled!: boolean;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
name!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token0!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token1!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
source!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
createdAtBlock!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
createdAtTimestamp!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
reserve0!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
reserve1!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
liquidity!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
trackedLiquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
token0Price!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
token1Price!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken0!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken1!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
apr!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
aprUpdatedAtTimestamp!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
txCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class PairDaySnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
cumulativeVolumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken0!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken1!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
apr!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,68 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class PairHourSnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
cumulativeVolumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken0!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeToken1!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
apr!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,59 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Swap {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
transaction!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
timestamp!: bigint;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
sender!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
tokenIn!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
tokenOut!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
amountIn!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
amountOut!: Decimal;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
to!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { nullable: true, transformer: bigintTransformer })
|
||||||
|
logIndex!: bigint | null;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
amountUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,80 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class Token {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
price!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
symbol!: string;
|
||||||
|
|
||||||
|
@Column('boolean')
|
||||||
|
symbolSuccess!: boolean;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
name!: string;
|
||||||
|
|
||||||
|
@Column('boolean')
|
||||||
|
nameSuccess!: boolean;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
decimals!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean')
|
||||||
|
decimalsSuccess!: boolean;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
liquidity!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volume!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
txCount!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
pairCount!: bigint;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
whitelistedPairCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class TokenDaySnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volume!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
priceNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
priceUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,65 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer, bigintTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class TokenHourSnapshot {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
date!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidity!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
liquidityUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volume!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
volumeUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
priceNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
priceUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
feesUSD!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
|
transactionCount!: bigint;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
import { decimalTransformer } from '@cerc-io/util';
|
||||||
|
import { Decimal } from 'decimal.js';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class TokenPrice {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token!: string;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
derivedNative!: Decimal;
|
||||||
|
|
||||||
|
@Column('numeric', { transformer: decimalTransformer })
|
||||||
|
lastUsdPrice!: Decimal;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
pricedOffToken!: string | null;
|
||||||
|
|
||||||
|
@Column('varchar', { nullable: true })
|
||||||
|
pricedOffPair!: string | null;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
+15
-18
@@ -7,7 +7,7 @@ import { bigintTransformer } from '@cerc-io/util';
|
|||||||
|
|
||||||
@Entity()
|
@Entity()
|
||||||
@Index(['blockNumber'])
|
@Index(['blockNumber'])
|
||||||
export class Route {
|
export class Transaction {
|
||||||
@PrimaryColumn('varchar')
|
@PrimaryColumn('varchar')
|
||||||
id!: string;
|
id!: string;
|
||||||
|
|
||||||
@@ -17,29 +17,26 @@ export class Route {
|
|||||||
@Column('integer')
|
@Column('integer')
|
||||||
blockNumber!: number;
|
blockNumber!: number;
|
||||||
|
|
||||||
@Column('varchar')
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
from!: string;
|
gasLimit!: bigint;
|
||||||
|
|
||||||
@Column('varchar')
|
|
||||||
to!: string;
|
|
||||||
|
|
||||||
@Column('varchar')
|
|
||||||
tokenIn!: string;
|
|
||||||
|
|
||||||
@Column('varchar')
|
|
||||||
tokenOut!: string;
|
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
amountIn!: bigint;
|
gasPrice!: bigint;
|
||||||
|
|
||||||
|
@Column('varchar', { array: true })
|
||||||
|
mints!: string[];
|
||||||
|
|
||||||
|
@Column('varchar', { array: true })
|
||||||
|
burns!: string[];
|
||||||
|
|
||||||
|
@Column('varchar', { array: true })
|
||||||
|
swaps!: string[];
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
amountOutMin!: bigint;
|
createdAtBlock!: bigint;
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
amountOut!: bigint;
|
createdAtTimestamp!: bigint;
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
|
||||||
timestamp!: bigint;
|
|
||||||
|
|
||||||
@Column('boolean', { default: false })
|
@Column('boolean', { default: false })
|
||||||
isPruned!: boolean;
|
isPruned!: boolean;
|
||||||
+1
-1
@@ -18,7 +18,7 @@ export class User {
|
|||||||
blockNumber!: number;
|
blockNumber!: number;
|
||||||
|
|
||||||
@Column('numeric', { transformer: bigintTransformer })
|
@Column('numeric', { transformer: bigintTransformer })
|
||||||
routeCount!: bigint;
|
lpSnapshotsCount!: bigint;
|
||||||
|
|
||||||
@Column('boolean', { default: false })
|
@Column('boolean', { default: false })
|
||||||
isPruned!: boolean;
|
isPruned!: boolean;
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class _TokenPair {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token!: string;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
//
|
||||||
|
// Copyright 2021 Vulcanize, Inc.
|
||||||
|
//
|
||||||
|
|
||||||
|
import { Entity, PrimaryColumn, Column, Index } from 'typeorm';
|
||||||
|
|
||||||
|
@Entity()
|
||||||
|
@Index(['blockNumber'])
|
||||||
|
export class _WhitelistedTokenPair {
|
||||||
|
@PrimaryColumn('varchar')
|
||||||
|
id!: string;
|
||||||
|
|
||||||
|
@PrimaryColumn('varchar', { length: 66 })
|
||||||
|
blockHash!: string;
|
||||||
|
|
||||||
|
@Column('integer')
|
||||||
|
blockNumber!: number;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
pair!: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
token!: string;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isPruned!: boolean;
|
||||||
|
|
||||||
|
@Column('boolean', { default: false })
|
||||||
|
isRemoved!: boolean;
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
query _TokenPair($id: ID!, $block: Block_height){
|
||||||
|
_TokenPair(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
token{
|
||||||
|
id
|
||||||
|
symbol
|
||||||
|
symbolSuccess
|
||||||
|
name
|
||||||
|
nameSuccess
|
||||||
|
decimals
|
||||||
|
decimalsSuccess
|
||||||
|
liquidity
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
volume
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
txCount
|
||||||
|
pairCount
|
||||||
|
whitelistedPairCount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
query _TokenPairs($block: Block_height, $where: _TokenPair_filter, $orderBy: _TokenPair_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
_TokenPairs(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
token{
|
||||||
|
id
|
||||||
|
symbol
|
||||||
|
symbolSuccess
|
||||||
|
name
|
||||||
|
nameSuccess
|
||||||
|
decimals
|
||||||
|
decimalsSuccess
|
||||||
|
liquidity
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
volume
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
txCount
|
||||||
|
pairCount
|
||||||
|
whitelistedPairCount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
query _WhitelistedTokenPair($id: ID!, $block: Block_height){
|
||||||
|
_WhitelistedTokenPair(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
token{
|
||||||
|
id
|
||||||
|
symbol
|
||||||
|
symbolSuccess
|
||||||
|
name
|
||||||
|
nameSuccess
|
||||||
|
decimals
|
||||||
|
decimalsSuccess
|
||||||
|
liquidity
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
volume
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
txCount
|
||||||
|
pairCount
|
||||||
|
whitelistedPairCount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
query _WhitelistedTokenPairs($block: Block_height, $where: _WhitelistedTokenPair_filter, $orderBy: _WhitelistedTokenPair_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
_WhitelistedTokenPairs(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
token{
|
||||||
|
id
|
||||||
|
symbol
|
||||||
|
symbolSuccess
|
||||||
|
name
|
||||||
|
nameSuccess
|
||||||
|
decimals
|
||||||
|
decimalsSuccess
|
||||||
|
liquidity
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
volume
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
txCount
|
||||||
|
pairCount
|
||||||
|
whitelistedPairCount
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
query bundle($id: ID!, $block: Block_height){
|
||||||
|
bundle(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
nativePrice
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
query bundles($block: Block_height, $where: Bundle_filter, $orderBy: Bundle_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
bundles(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
nativePrice
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
query burn($id: ID!, $block: Block_height){
|
||||||
|
burn(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
transaction{
|
||||||
|
id
|
||||||
|
gasLimit
|
||||||
|
gasPrice
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
}
|
||||||
|
timestamp
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
liquidity
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
to
|
||||||
|
logIndex
|
||||||
|
amountUSD
|
||||||
|
complete
|
||||||
|
feeTo
|
||||||
|
feeLiquidity
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,50 @@
|
|||||||
|
query burns($block: Block_height, $where: Burn_filter, $orderBy: Burn_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
burns(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
transaction{
|
||||||
|
id
|
||||||
|
gasLimit
|
||||||
|
gasPrice
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
}
|
||||||
|
timestamp
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
liquidity
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
to
|
||||||
|
logIndex
|
||||||
|
amountUSD
|
||||||
|
complete
|
||||||
|
feeTo
|
||||||
|
feeLiquidity
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
query events($blockHash: String!, $contractAddress: String!, $name: String){
|
||||||
|
events(blockHash: $blockHash, contractAddress: $contractAddress, name: $name){
|
||||||
|
block{
|
||||||
|
cid
|
||||||
|
hash
|
||||||
|
number
|
||||||
|
timestamp
|
||||||
|
parentHash
|
||||||
|
}
|
||||||
|
tx{
|
||||||
|
hash
|
||||||
|
index
|
||||||
|
from
|
||||||
|
to
|
||||||
|
}
|
||||||
|
contract
|
||||||
|
eventIndex
|
||||||
|
event{
|
||||||
|
... on PairCreatedEvent {
|
||||||
|
token0
|
||||||
|
token1
|
||||||
|
pair
|
||||||
|
null
|
||||||
|
}
|
||||||
|
... on ApprovalEvent {
|
||||||
|
owner
|
||||||
|
spender
|
||||||
|
value
|
||||||
|
}
|
||||||
|
... on BurnEvent {
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
to
|
||||||
|
}
|
||||||
|
... on MintEvent {
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
}
|
||||||
|
... on SwapEvent {
|
||||||
|
sender
|
||||||
|
amount0In
|
||||||
|
amount1In
|
||||||
|
amount0Out
|
||||||
|
amount1Out
|
||||||
|
to
|
||||||
|
}
|
||||||
|
... on SyncEvent {
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
}
|
||||||
|
... on TransferEvent {
|
||||||
|
from
|
||||||
|
to
|
||||||
|
value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
proof{
|
||||||
|
data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
query eventsInRange($fromBlockNumber: Int!, $toBlockNumber: Int!){
|
||||||
|
eventsInRange(fromBlockNumber: $fromBlockNumber, toBlockNumber: $toBlockNumber){
|
||||||
|
block{
|
||||||
|
cid
|
||||||
|
hash
|
||||||
|
number
|
||||||
|
timestamp
|
||||||
|
parentHash
|
||||||
|
}
|
||||||
|
tx{
|
||||||
|
hash
|
||||||
|
index
|
||||||
|
from
|
||||||
|
to
|
||||||
|
}
|
||||||
|
contract
|
||||||
|
eventIndex
|
||||||
|
event{
|
||||||
|
... on PairCreatedEvent {
|
||||||
|
token0
|
||||||
|
token1
|
||||||
|
pair
|
||||||
|
null
|
||||||
|
}
|
||||||
|
... on ApprovalEvent {
|
||||||
|
owner
|
||||||
|
spender
|
||||||
|
value
|
||||||
|
}
|
||||||
|
... on BurnEvent {
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
to
|
||||||
|
}
|
||||||
|
... on MintEvent {
|
||||||
|
sender
|
||||||
|
amount0
|
||||||
|
amount1
|
||||||
|
}
|
||||||
|
... on SwapEvent {
|
||||||
|
sender
|
||||||
|
amount0In
|
||||||
|
amount1In
|
||||||
|
amount0Out
|
||||||
|
amount1Out
|
||||||
|
to
|
||||||
|
}
|
||||||
|
... on SyncEvent {
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
}
|
||||||
|
... on TransferEvent {
|
||||||
|
from
|
||||||
|
to
|
||||||
|
value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
proof{
|
||||||
|
data
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
query factories($block: Block_height, $where: Factory_filter, $orderBy: Factory_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
factories(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
query factory($id: ID!, $block: Block_height){
|
||||||
|
factory(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
query factoryDaySnapshot($id: ID!, $block: Block_height){
|
||||||
|
factoryDaySnapshot(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
factory{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
date
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
transactionCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
query factoryDaySnapshots($block: Block_height, $where: FactoryDaySnapshot_filter, $orderBy: FactoryDaySnapshot_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
factoryDaySnapshots(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
factory{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
date
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
transactionCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
query factoryHourSnapshot($id: ID!, $block: Block_height){
|
||||||
|
factoryHourSnapshot(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
factory{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
date
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
transactionCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,27 @@
|
|||||||
|
query factoryHourSnapshots($block: Block_height, $where: FactoryHourSnapshot_filter, $orderBy: FactoryHourSnapshot_orderBy, $orderDirection: OrderDirection, $first: Int, $skip: Int){
|
||||||
|
factoryHourSnapshots(block: $block, where: $where, orderBy: $orderBy, orderDirection: $orderDirection, first: $first, skip: $skip){
|
||||||
|
id
|
||||||
|
factory{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
feesUSD
|
||||||
|
feesNative
|
||||||
|
pairCount
|
||||||
|
transactionCount
|
||||||
|
tokenCount
|
||||||
|
userCount
|
||||||
|
}
|
||||||
|
date
|
||||||
|
volumeUSD
|
||||||
|
volumeNative
|
||||||
|
liquidityNative
|
||||||
|
liquidityUSD
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
transactionCount
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,49 @@
|
|||||||
|
import fs from 'fs';
|
||||||
|
import path from 'path';
|
||||||
|
|
||||||
|
export const events = fs.readFileSync(path.join(__dirname, 'events.gql'), 'utf8');
|
||||||
|
export const eventsInRange = fs.readFileSync(path.join(__dirname, 'eventsInRange.gql'), 'utf8');
|
||||||
|
export const factory = fs.readFileSync(path.join(__dirname, 'factory.gql'), 'utf8');
|
||||||
|
export const factories = fs.readFileSync(path.join(__dirname, 'factories.gql'), 'utf8');
|
||||||
|
export const bundle = fs.readFileSync(path.join(__dirname, 'bundle.gql'), 'utf8');
|
||||||
|
export const bundles = fs.readFileSync(path.join(__dirname, 'bundles.gql'), 'utf8');
|
||||||
|
export const token = fs.readFileSync(path.join(__dirname, 'token.gql'), 'utf8');
|
||||||
|
export const tokens = fs.readFileSync(path.join(__dirname, 'tokens.gql'), 'utf8');
|
||||||
|
export const tokenPrice = fs.readFileSync(path.join(__dirname, 'tokenPrice.gql'), 'utf8');
|
||||||
|
export const tokenPrices = fs.readFileSync(path.join(__dirname, 'tokenPrices.gql'), 'utf8');
|
||||||
|
export const _TokenPair = fs.readFileSync(path.join(__dirname, '_TokenPair.gql'), 'utf8');
|
||||||
|
export const _TokenPairs = fs.readFileSync(path.join(__dirname, '_TokenPairs.gql'), 'utf8');
|
||||||
|
export const _WhitelistedTokenPair = fs.readFileSync(path.join(__dirname, '_WhitelistedTokenPair.gql'), 'utf8');
|
||||||
|
export const _WhitelistedTokenPairs = fs.readFileSync(path.join(__dirname, '_WhitelistedTokenPairs.gql'), 'utf8');
|
||||||
|
export const pair = fs.readFileSync(path.join(__dirname, 'pair.gql'), 'utf8');
|
||||||
|
export const pairs = fs.readFileSync(path.join(__dirname, 'pairs.gql'), 'utf8');
|
||||||
|
export const user = fs.readFileSync(path.join(__dirname, 'user.gql'), 'utf8');
|
||||||
|
export const users = fs.readFileSync(path.join(__dirname, 'users.gql'), 'utf8');
|
||||||
|
export const liquidityPosition = fs.readFileSync(path.join(__dirname, 'liquidityPosition.gql'), 'utf8');
|
||||||
|
export const liquidityPositions = fs.readFileSync(path.join(__dirname, 'liquidityPositions.gql'), 'utf8');
|
||||||
|
export const mint = fs.readFileSync(path.join(__dirname, 'mint.gql'), 'utf8');
|
||||||
|
export const mints = fs.readFileSync(path.join(__dirname, 'mints.gql'), 'utf8');
|
||||||
|
export const burn = fs.readFileSync(path.join(__dirname, 'burn.gql'), 'utf8');
|
||||||
|
export const burns = fs.readFileSync(path.join(__dirname, 'burns.gql'), 'utf8');
|
||||||
|
export const swap = fs.readFileSync(path.join(__dirname, 'swap.gql'), 'utf8');
|
||||||
|
export const swaps = fs.readFileSync(path.join(__dirname, 'swaps.gql'), 'utf8');
|
||||||
|
export const transaction = fs.readFileSync(path.join(__dirname, 'transaction.gql'), 'utf8');
|
||||||
|
export const transactions = fs.readFileSync(path.join(__dirname, 'transactions.gql'), 'utf8');
|
||||||
|
export const liquidityPositionSnapshot = fs.readFileSync(path.join(__dirname, 'liquidityPositionSnapshot.gql'), 'utf8');
|
||||||
|
export const liquidityPositionSnapshots = fs.readFileSync(path.join(__dirname, 'liquidityPositionSnapshots.gql'), 'utf8');
|
||||||
|
export const pairHourSnapshot = fs.readFileSync(path.join(__dirname, 'pairHourSnapshot.gql'), 'utf8');
|
||||||
|
export const pairHourSnapshots = fs.readFileSync(path.join(__dirname, 'pairHourSnapshots.gql'), 'utf8');
|
||||||
|
export const pairDaySnapshot = fs.readFileSync(path.join(__dirname, 'pairDaySnapshot.gql'), 'utf8');
|
||||||
|
export const pairDaySnapshots = fs.readFileSync(path.join(__dirname, 'pairDaySnapshots.gql'), 'utf8');
|
||||||
|
export const tokenHourSnapshot = fs.readFileSync(path.join(__dirname, 'tokenHourSnapshot.gql'), 'utf8');
|
||||||
|
export const tokenHourSnapshots = fs.readFileSync(path.join(__dirname, 'tokenHourSnapshots.gql'), 'utf8');
|
||||||
|
export const tokenDaySnapshot = fs.readFileSync(path.join(__dirname, 'tokenDaySnapshot.gql'), 'utf8');
|
||||||
|
export const tokenDaySnapshots = fs.readFileSync(path.join(__dirname, 'tokenDaySnapshots.gql'), 'utf8');
|
||||||
|
export const factoryHourSnapshot = fs.readFileSync(path.join(__dirname, 'factoryHourSnapshot.gql'), 'utf8');
|
||||||
|
export const factoryHourSnapshots = fs.readFileSync(path.join(__dirname, 'factoryHourSnapshots.gql'), 'utf8');
|
||||||
|
export const factoryDaySnapshot = fs.readFileSync(path.join(__dirname, 'factoryDaySnapshot.gql'), 'utf8');
|
||||||
|
export const factoryDaySnapshots = fs.readFileSync(path.join(__dirname, 'factoryDaySnapshots.gql'), 'utf8');
|
||||||
|
export const _meta = fs.readFileSync(path.join(__dirname, '_meta.gql'), 'utf8');
|
||||||
|
export const getStateByCID = fs.readFileSync(path.join(__dirname, 'getStateByCID.gql'), 'utf8');
|
||||||
|
export const getState = fs.readFileSync(path.join(__dirname, 'getState.gql'), 'utf8');
|
||||||
|
export const getSyncStatus = fs.readFileSync(path.join(__dirname, 'getSyncStatus.gql'), 'utf8');
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
query liquidityPosition($id: ID!, $block: Block_height){
|
||||||
|
liquidityPosition(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
user{
|
||||||
|
id
|
||||||
|
lpSnapshotsCount
|
||||||
|
}
|
||||||
|
balance
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,51 @@
|
|||||||
|
query liquidityPositionSnapshot($id: ID!, $block: Block_height){
|
||||||
|
liquidityPositionSnapshot(id: $id, block: $block){
|
||||||
|
id
|
||||||
|
liquidityPosition{
|
||||||
|
id
|
||||||
|
balance
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
}
|
||||||
|
timestamp
|
||||||
|
block
|
||||||
|
user{
|
||||||
|
id
|
||||||
|
lpSnapshotsCount
|
||||||
|
}
|
||||||
|
pair{
|
||||||
|
id
|
||||||
|
type
|
||||||
|
swapFee
|
||||||
|
twapEnabled
|
||||||
|
name
|
||||||
|
source
|
||||||
|
createdAtBlock
|
||||||
|
createdAtTimestamp
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
liquidity
|
||||||
|
liquidityUSD
|
||||||
|
liquidityNative
|
||||||
|
trackedLiquidityNative
|
||||||
|
token0Price
|
||||||
|
token1Price
|
||||||
|
volumeNative
|
||||||
|
volumeUSD
|
||||||
|
volumeToken0
|
||||||
|
volumeToken1
|
||||||
|
feesNative
|
||||||
|
feesUSD
|
||||||
|
apr
|
||||||
|
aprUpdatedAtTimestamp
|
||||||
|
txCount
|
||||||
|
}
|
||||||
|
token0PriceUSD
|
||||||
|
token1PriceUSD
|
||||||
|
reserve0
|
||||||
|
reserve1
|
||||||
|
reserveUSD
|
||||||
|
liquidityTokenTotalSupply
|
||||||
|
liquidityTokenBalance
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user