From 8021cce5cd1f628669038da1b29721b18391f9c2 Mon Sep 17 00:00:00 2001 From: Alex Coseru Date: Wed, 10 Feb 2021 19:35:23 +0200 Subject: [PATCH] speed up previous order (#599) --- src/datatokens/Datatokens.ts | 15 +++++++++++++-- src/ocean/Ocean.ts | 3 ++- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/datatokens/Datatokens.ts b/src/datatokens/Datatokens.ts index 065c2e14..00369ecc 100644 --- a/src/datatokens/Datatokens.ts +++ b/src/datatokens/Datatokens.ts @@ -19,6 +19,7 @@ export class DataTokens { public datatokensABI: AbiItem | AbiItem[] public web3: Web3 private logger: Logger + public startBlock: number /** * Instantiate DataTokens (independently of Ocean). * @param {String} factoryAddress @@ -31,13 +32,15 @@ export class DataTokens { factoryABI: AbiItem | AbiItem[], datatokensABI: AbiItem | AbiItem[], web3: Web3, - logger: Logger + logger: Logger, + startBlock?: number ) { this.factoryAddress = factoryAddress this.factoryABI = factoryABI || (defaultFactoryABI.abi as AbiItem[]) this.datatokensABI = datatokensABI || (defaultDatatokensABI.abi as AbiItem[]) this.web3 = web3 this.logger = logger + this.startBlock = startBlock || 0 } /** @@ -469,9 +472,17 @@ export class DataTokens { const datatoken = new this.web3.eth.Contract(this.datatokensABI, dataTokenAddress, { from: address }) + let fromBlock + if (timeout > 0) { + const lastBlock = await this.web3.eth.getBlockNumber() + fromBlock = lastBlock - timeout + if (fromBlock < this.startBlock) fromBlock = this.startBlock + } else { + fromBlock = this.startBlock + } const events = await datatoken.getPastEvents('OrderStarted', { filter: { consumer: address }, - fromBlock: 0, + fromBlock, toBlock: 'latest' }) for (let i = 0; i < events.length; i++) { diff --git a/src/ocean/Ocean.ts b/src/ocean/Ocean.ts index 1ee5ba37..e59d0e0e 100644 --- a/src/ocean/Ocean.ts +++ b/src/ocean/Ocean.ts @@ -51,7 +51,8 @@ export class Ocean extends Instantiable { instanceConfig.config.factoryABI, instanceConfig.config.datatokensABI, instanceConfig.config.web3Provider, - instanceConfig.logger + instanceConfig.logger, + instanceConfig.config.startBlock ) instance.pool = new OceanPool( instanceConfig.config.web3Provider,