mirror of
https://github.com/cerc-io/watcher-ts
synced 2025-01-09 21:08:06 +00:00
Use eth client for getStorageAt query (#302)
This commit is contained in:
parent
ec586216db
commit
f89a7a07aa
@ -69,7 +69,7 @@ export class Indexer {
|
|||||||
this._ethClient = ethClient;
|
this._ethClient = ethClient;
|
||||||
this._postgraphileClient = postgraphileClient;
|
this._postgraphileClient = postgraphileClient;
|
||||||
this._ethProvider = ethProvider;
|
this._ethProvider = ethProvider;
|
||||||
this._baseIndexer = new BaseIndexer(this._db, this._postgraphileClient, this._ethProvider);
|
this._baseIndexer = new BaseIndexer(this._db, this._ethClient, this._postgraphileClient, this._ethProvider);
|
||||||
|
|
||||||
const { abi, storageLayout } = artifacts;
|
const { abi, storageLayout } = artifacts;
|
||||||
|
|
||||||
|
@ -62,7 +62,7 @@ export class Indexer {
|
|||||||
this._postgraphileClient = postgraphileClient;
|
this._postgraphileClient = postgraphileClient;
|
||||||
this._ethProvider = ethProvider;
|
this._ethProvider = ethProvider;
|
||||||
this._serverMode = serverMode;
|
this._serverMode = serverMode;
|
||||||
this._baseIndexer = new BaseIndexer(this._db, this._postgraphileClient, this._ethProvider);
|
this._baseIndexer = new BaseIndexer(this._db, this._ethClient, this._postgraphileClient, this._ethProvider);
|
||||||
|
|
||||||
const { abi, storageLayout } = artifacts;
|
const { abi, storageLayout } = artifacts;
|
||||||
|
|
||||||
|
@ -38,7 +38,7 @@ export const builder = {
|
|||||||
export const handler = async (argv: any): Promise<void> => {
|
export const handler = async (argv: any): Promise<void> => {
|
||||||
const config = await getConfig(argv.configFile);
|
const config = await getConfig(argv.configFile);
|
||||||
await resetJobs(config);
|
await resetJobs(config);
|
||||||
const { dbConfig, serverConfig, upstreamConfig, postgraphileClient, ethProvider } = await getResetConfig(config);
|
const { dbConfig, serverConfig, upstreamConfig, ethClient, postgraphileClient, ethProvider } = await getResetConfig(config);
|
||||||
|
|
||||||
// Initialize database.
|
// Initialize database.
|
||||||
const db = new Database(dbConfig);
|
const db = new Database(dbConfig);
|
||||||
@ -52,7 +52,7 @@ export const handler = async (argv: any): Promise<void> => {
|
|||||||
const uniClient = new UniClient(uniWatcher);
|
const uniClient = new UniClient(uniWatcher);
|
||||||
const erc20Client = new ERC20Client(tokenWatcher);
|
const erc20Client = new ERC20Client(tokenWatcher);
|
||||||
|
|
||||||
const indexer = new Indexer(db, uniClient, erc20Client, postgraphileClient, ethProvider, serverConfig.mode);
|
const indexer = new Indexer(db, uniClient, erc20Client, ethClient, postgraphileClient, ethProvider, serverConfig.mode);
|
||||||
|
|
||||||
const syncStatus = await indexer.getSyncStatus();
|
const syncStatus = await indexer.getSyncStatus();
|
||||||
assert(syncStatus, 'Missing syncStatus');
|
assert(syncStatus, 'Missing syncStatus');
|
||||||
|
@ -63,6 +63,7 @@ export const main = async (): Promise<any> => {
|
|||||||
assert(gqlPostgraphileEndpoint, 'Missing upstream ethServer.gqlPostgraphileEndpoint');
|
assert(gqlPostgraphileEndpoint, 'Missing upstream ethServer.gqlPostgraphileEndpoint');
|
||||||
|
|
||||||
const cache = await getCache(cacheConfig);
|
const cache = await getCache(cacheConfig);
|
||||||
|
|
||||||
const ethClient = new EthClient({
|
const ethClient = new EthClient({
|
||||||
gqlEndpoint: gqlApiEndpoint,
|
gqlEndpoint: gqlApiEndpoint,
|
||||||
gqlSubscriptionEndpoint: gqlPostgraphileEndpoint,
|
gqlSubscriptionEndpoint: gqlPostgraphileEndpoint,
|
||||||
@ -81,7 +82,7 @@ export const main = async (): Promise<any> => {
|
|||||||
// Note: In-memory pubsub works fine for now, as each watcher is a single process anyway.
|
// Note: In-memory pubsub works fine for now, as each watcher is a single process anyway.
|
||||||
// Later: https://www.apollographql.com/docs/apollo-server/data/subscriptions/#production-pubsub-libraries
|
// Later: https://www.apollographql.com/docs/apollo-server/data/subscriptions/#production-pubsub-libraries
|
||||||
const pubsub = new PubSub();
|
const pubsub = new PubSub();
|
||||||
const indexer = new Indexer(db, uniClient, erc20Client, postgraphileClient, ethProvider, mode);
|
const indexer = new Indexer(db, uniClient, erc20Client, ethClient, postgraphileClient, ethProvider, mode);
|
||||||
|
|
||||||
assert(jobQueueConfig, 'Missing job queue config');
|
assert(jobQueueConfig, 'Missing job queue config');
|
||||||
const { dbConnectionString, maxCompletionLagInSecs } = jobQueueConfig;
|
const { dbConnectionString, maxCompletionLagInSecs } = jobQueueConfig;
|
||||||
|
@ -43,11 +43,12 @@ export class Indexer implements IndexerInterface {
|
|||||||
_db: Database
|
_db: Database
|
||||||
_uniClient: UniClient
|
_uniClient: UniClient
|
||||||
_erc20Client: ERC20Client
|
_erc20Client: ERC20Client
|
||||||
|
_ethClient: EthClient
|
||||||
_postgraphileClient: EthClient
|
_postgraphileClient: EthClient
|
||||||
_baseIndexer: BaseIndexer
|
_baseIndexer: BaseIndexer
|
||||||
_isDemo: boolean
|
_isDemo: boolean
|
||||||
|
|
||||||
constructor (db: Database, uniClient: UniClient, erc20Client: ERC20Client, postgraphileClient: EthClient, ethProvider: providers.BaseProvider, mode: string) {
|
constructor (db: Database, uniClient: UniClient, erc20Client: ERC20Client, ethClient: EthClient, postgraphileClient: EthClient, ethProvider: providers.BaseProvider, mode: string) {
|
||||||
assert(db);
|
assert(db);
|
||||||
assert(uniClient);
|
assert(uniClient);
|
||||||
assert(erc20Client);
|
assert(erc20Client);
|
||||||
@ -56,8 +57,9 @@ export class Indexer implements IndexerInterface {
|
|||||||
this._db = db;
|
this._db = db;
|
||||||
this._uniClient = uniClient;
|
this._uniClient = uniClient;
|
||||||
this._erc20Client = erc20Client;
|
this._erc20Client = erc20Client;
|
||||||
|
this._ethClient = ethClient;
|
||||||
this._postgraphileClient = postgraphileClient;
|
this._postgraphileClient = postgraphileClient;
|
||||||
this._baseIndexer = new BaseIndexer(this._db, this._postgraphileClient, ethProvider);
|
this._baseIndexer = new BaseIndexer(this._db, this._ethClient, this._postgraphileClient, ethProvider);
|
||||||
this._isDemo = mode === 'demo';
|
this._isDemo = mode === 'demo';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -101,16 +101,24 @@ export const main = async (): Promise<any> => {
|
|||||||
tokenWatcher,
|
tokenWatcher,
|
||||||
cache: cacheConfig,
|
cache: cacheConfig,
|
||||||
ethServer: {
|
ethServer: {
|
||||||
|
gqlApiEndpoint,
|
||||||
gqlPostgraphileEndpoint,
|
gqlPostgraphileEndpoint,
|
||||||
rpcProviderEndpoint
|
rpcProviderEndpoint
|
||||||
}
|
}
|
||||||
} = upstream;
|
} = upstream;
|
||||||
|
|
||||||
|
assert(gqlApiEndpoint, 'Missing upstream ethServer.gqlApiEndpoint');
|
||||||
assert(gqlEndpoint, 'Missing upstream uniWatcher.gqlEndpoint');
|
assert(gqlEndpoint, 'Missing upstream uniWatcher.gqlEndpoint');
|
||||||
assert(gqlSubscriptionEndpoint, 'Missing upstream uniWatcher.gqlSubscriptionEndpoint');
|
assert(gqlSubscriptionEndpoint, 'Missing upstream uniWatcher.gqlSubscriptionEndpoint');
|
||||||
|
|
||||||
const cache = await getCache(cacheConfig);
|
const cache = await getCache(cacheConfig);
|
||||||
|
|
||||||
|
const ethClient = new EthClient({
|
||||||
|
gqlEndpoint: gqlApiEndpoint,
|
||||||
|
gqlSubscriptionEndpoint: gqlPostgraphileEndpoint,
|
||||||
|
cache
|
||||||
|
});
|
||||||
|
|
||||||
const postgraphileClient = new EthClient({
|
const postgraphileClient = new EthClient({
|
||||||
gqlEndpoint: gqlPostgraphileEndpoint,
|
gqlEndpoint: gqlPostgraphileEndpoint,
|
||||||
cache
|
cache
|
||||||
@ -124,7 +132,7 @@ export const main = async (): Promise<any> => {
|
|||||||
const erc20Client = new ERC20Client(tokenWatcher);
|
const erc20Client = new ERC20Client(tokenWatcher);
|
||||||
const ethProvider = getCustomProvider(rpcProviderEndpoint);
|
const ethProvider = getCustomProvider(rpcProviderEndpoint);
|
||||||
|
|
||||||
const indexer = new Indexer(db, uniClient, erc20Client, postgraphileClient, ethProvider, mode);
|
const indexer = new Indexer(db, uniClient, erc20Client, ethClient, postgraphileClient, ethProvider, mode);
|
||||||
|
|
||||||
assert(jobQueueConfig, 'Missing job queue config');
|
assert(jobQueueConfig, 'Missing job queue config');
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ export const main = async (): Promise<any> => {
|
|||||||
const uniClient = new UniClient(uniWatcher);
|
const uniClient = new UniClient(uniWatcher);
|
||||||
const erc20Client = new ERC20Client(tokenWatcher);
|
const erc20Client = new ERC20Client(tokenWatcher);
|
||||||
const ethProvider = getCustomProvider(rpcProviderEndpoint);
|
const ethProvider = getCustomProvider(rpcProviderEndpoint);
|
||||||
const indexer = new Indexer(db, uniClient, erc20Client, postgraphileClient, ethProvider, mode);
|
const indexer = new Indexer(db, uniClient, erc20Client, ethClient, postgraphileClient, ethProvider, mode);
|
||||||
|
|
||||||
assert(jobQueueConfig, 'Missing job queue config');
|
assert(jobQueueConfig, 'Missing job queue config');
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ export class Indexer implements IndexerInterface {
|
|||||||
this._ethClient = ethClient;
|
this._ethClient = ethClient;
|
||||||
this._postgraphileClient = postgraphileClient;
|
this._postgraphileClient = postgraphileClient;
|
||||||
this._ethProvider = ethProvider;
|
this._ethProvider = ethProvider;
|
||||||
this._baseIndexer = new BaseIndexer(this._db, this._postgraphileClient, this._ethProvider);
|
this._baseIndexer = new BaseIndexer(this._db, this._ethClient, this._postgraphileClient, this._ethProvider);
|
||||||
|
|
||||||
this._factoryContract = new ethers.utils.Interface(factoryABI);
|
this._factoryContract = new ethers.utils.Interface(factoryABI);
|
||||||
this._poolContract = new ethers.utils.Interface(poolABI);
|
this._poolContract = new ethers.utils.Interface(poolABI);
|
||||||
|
@ -26,15 +26,17 @@ export interface ValueResult {
|
|||||||
|
|
||||||
export class Indexer {
|
export class Indexer {
|
||||||
_db: DatabaseInterface;
|
_db: DatabaseInterface;
|
||||||
|
_ethClient: EthClient;
|
||||||
_postgraphileClient: EthClient;
|
_postgraphileClient: EthClient;
|
||||||
_getStorageAt: GetStorageAt;
|
_getStorageAt: GetStorageAt;
|
||||||
_ethProvider: ethers.providers.BaseProvider;
|
_ethProvider: ethers.providers.BaseProvider;
|
||||||
|
|
||||||
constructor (db: DatabaseInterface, ethClient: EthClient, ethProvider: ethers.providers.BaseProvider) {
|
constructor (db: DatabaseInterface, ethClient: EthClient, postgraphileClient: EthClient, ethProvider: ethers.providers.BaseProvider) {
|
||||||
this._db = db;
|
this._db = db;
|
||||||
this._postgraphileClient = ethClient;
|
this._ethClient = ethClient;
|
||||||
|
this._postgraphileClient = postgraphileClient;
|
||||||
this._ethProvider = ethProvider;
|
this._ethProvider = ethProvider;
|
||||||
this._getStorageAt = this._postgraphileClient.getStorageAt.bind(this._postgraphileClient);
|
this._getStorageAt = this._ethClient.getStorageAt.bind(this._ethClient);
|
||||||
}
|
}
|
||||||
|
|
||||||
async getSyncStatus (): Promise<SyncStatusInterface | undefined> {
|
async getSyncStatus (): Promise<SyncStatusInterface | undefined> {
|
||||||
|
Loading…
Reference in New Issue
Block a user