aboutsummaryrefslogtreecommitdiffstats
path: root/packages/pipeline/src/data_sources/web3/index.ts
blob: 45a9ea161630de6255dcbcb4e19d55a70ec1ca58 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { Web3ProviderEngine } from '@0x/subproviders';
import { Web3Wrapper } from '@0x/web3-wrapper';
import { BlockWithoutTransactionData, Transaction } from 'ethereum-types';

export class Web3Source {
    private readonly _web3Wrapper: Web3Wrapper;
    constructor(provider: Web3ProviderEngine) {
        this._web3Wrapper = new Web3Wrapper(provider);
    }

    public async getBlockInfoAsync(blockNumber: number): Promise<BlockWithoutTransactionData> {
        const block = await this._web3Wrapper.getBlockIfExistsAsync(blockNumber);
        if (block == null) {
            return Promise.reject(new Error(`Could not find block for given block number: ${blockNumber}`));
        }
        return block;
    }

    public async getTransactionInfoAsync(txHash: string): Promise<Transaction> {
        return this._web3Wrapper.getTransactionByHashAsync(txHash);
    }
}