Merge pull request #482 from 0xProject/feature/web3-types
Move common types out of web3 types
This commit is contained in:
		@@ -1,4 +1,16 @@
 | 
			
		||||
import { RawLogEntry, TransactionReceipt, TxData } from '@0xproject/types';
 | 
			
		||||
import {
 | 
			
		||||
    BlockParam,
 | 
			
		||||
    BlockWithoutTransactionData,
 | 
			
		||||
    CallData,
 | 
			
		||||
    ContractAbi,
 | 
			
		||||
    FilterObject,
 | 
			
		||||
    JSONRPCRequestPayload,
 | 
			
		||||
    JSONRPCResponsePayload,
 | 
			
		||||
    LogEntry,
 | 
			
		||||
    RawLogEntry,
 | 
			
		||||
    TransactionReceipt,
 | 
			
		||||
    TxData,
 | 
			
		||||
} from '@0xproject/types';
 | 
			
		||||
import { BigNumber, promisify } from '@0xproject/utils';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import * as Web3 from 'web3';
 | 
			
		||||
@@ -157,8 +169,8 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param blockParam The block you wish to fetch (blockHash, blockNumber or blockLiteral)
 | 
			
		||||
     * @returns The requested block without transaction data
 | 
			
		||||
     */
 | 
			
		||||
    public async getBlockAsync(blockParam: string | Web3.BlockParam): Promise<Web3.BlockWithoutTransactionData> {
 | 
			
		||||
        const block = await promisify<Web3.BlockWithoutTransactionData>(this._web3.eth.getBlock)(blockParam);
 | 
			
		||||
    public async getBlockAsync(blockParam: string | BlockParam): Promise<BlockWithoutTransactionData> {
 | 
			
		||||
        const block = await promisify<BlockWithoutTransactionData>(this._web3.eth.getBlock)(blockParam);
 | 
			
		||||
        return block;
 | 
			
		||||
    }
 | 
			
		||||
    /**
 | 
			
		||||
@@ -166,7 +178,7 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param blockParam The block you wish to fetch (blockHash, blockNumber or blockLiteral)
 | 
			
		||||
     * @returns The block's timestamp
 | 
			
		||||
     */
 | 
			
		||||
    public async getBlockTimestampAsync(blockParam: string | Web3.BlockParam): Promise<number> {
 | 
			
		||||
    public async getBlockTimestampAsync(blockParam: string | BlockParam): Promise<number> {
 | 
			
		||||
        const { timestamp } = await this.getBlockAsync(blockParam);
 | 
			
		||||
        return timestamp;
 | 
			
		||||
    }
 | 
			
		||||
@@ -214,7 +226,7 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param filter Parameters by which to filter which logs to retrieve
 | 
			
		||||
     * @returns The corresponding log entries
 | 
			
		||||
     */
 | 
			
		||||
    public async getLogsAsync(filter: Web3.FilterObject): Promise<Web3.LogEntry[]> {
 | 
			
		||||
    public async getLogsAsync(filter: FilterObject): Promise<LogEntry[]> {
 | 
			
		||||
        let fromBlock = filter.fromBlock;
 | 
			
		||||
        if (_.isNumber(fromBlock)) {
 | 
			
		||||
            fromBlock = this._web3.toHex(fromBlock);
 | 
			
		||||
@@ -243,7 +255,7 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param abi Smart contract ABI
 | 
			
		||||
     * @returns Web3 contract factory which can create Web3 Contract instances from the supplied ABI
 | 
			
		||||
     */
 | 
			
		||||
    public getContractFromAbi(abi: Web3.ContractAbi): Web3.Contract<any> {
 | 
			
		||||
    public getContractFromAbi(abi: ContractAbi): Web3.Contract<any> {
 | 
			
		||||
        const web3Contract = this._web3.eth.contract(abi);
 | 
			
		||||
        return web3Contract;
 | 
			
		||||
    }
 | 
			
		||||
@@ -252,7 +264,7 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param txData Transaction data
 | 
			
		||||
     * @returns Estimated gas cost
 | 
			
		||||
     */
 | 
			
		||||
    public async estimateGasAsync(txData: Partial<Web3.TxData>): Promise<number> {
 | 
			
		||||
    public async estimateGasAsync(txData: Partial<TxData>): Promise<number> {
 | 
			
		||||
        const gas = await promisify<number>(this._web3.eth.estimateGas)(txData);
 | 
			
		||||
        return gas;
 | 
			
		||||
    }
 | 
			
		||||
@@ -262,7 +274,7 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param defaultBlock Block height at which to make the call. Defaults to `latest`
 | 
			
		||||
     * @returns The raw call result
 | 
			
		||||
     */
 | 
			
		||||
    public async callAsync(callData: Web3.CallData, defaultBlock?: Web3.BlockParam): Promise<string> {
 | 
			
		||||
    public async callAsync(callData: CallData, defaultBlock?: BlockParam): Promise<string> {
 | 
			
		||||
        const rawCallResult = await promisify<string>(this._web3.eth.call)(callData, defaultBlock);
 | 
			
		||||
        return rawCallResult;
 | 
			
		||||
    }
 | 
			
		||||
@@ -271,13 +283,13 @@ export class Web3Wrapper {
 | 
			
		||||
     * @param txData Transaction data
 | 
			
		||||
     * @returns Transaction hash
 | 
			
		||||
     */
 | 
			
		||||
    public async sendTransactionAsync(txData: Web3.TxData): Promise<string> {
 | 
			
		||||
    public async sendTransactionAsync(txData: TxData): Promise<string> {
 | 
			
		||||
        const txHash = await promisify<string>(this._web3.eth.sendTransaction)(txData);
 | 
			
		||||
        return txHash;
 | 
			
		||||
    }
 | 
			
		||||
    private async _sendRawPayloadAsync<A>(payload: Partial<Web3.JSONRPCRequestPayload>): Promise<A> {
 | 
			
		||||
    private async _sendRawPayloadAsync<A>(payload: Partial<JSONRPCRequestPayload>): Promise<A> {
 | 
			
		||||
        const sendAsync = this._web3.currentProvider.sendAsync.bind(this._web3.currentProvider);
 | 
			
		||||
        const response = await promisify<Web3.JSONRPCResponsePayload>(sendAsync)(payload);
 | 
			
		||||
        const response = await promisify<JSONRPCResponsePayload>(sendAsync)(payload);
 | 
			
		||||
        const result = response.result;
 | 
			
		||||
        return result;
 | 
			
		||||
    }
 | 
			
		||||
@@ -295,7 +307,7 @@ export class Web3Wrapper {
 | 
			
		||||
            return status;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    private _formatLog(rawLog: RawLogEntry): Web3.LogEntry {
 | 
			
		||||
    private _formatLog(rawLog: RawLogEntry): LogEntry {
 | 
			
		||||
        const formattedLog = {
 | 
			
		||||
            ...rawLog,
 | 
			
		||||
            logIndex: this._hexToDecimal(rawLog.logIndex),
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user