From 433300aa62e14f13eb7a05c1624df87950c36336 Mon Sep 17 00:00:00 2001 From: Richard Ramos Date: Mon, 9 Mar 2020 08:46:25 -0400 Subject: [PATCH] feat: type definition --- packages/core/package.json | 1 + packages/core/types/index.d.ts | 39 ++++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 packages/core/types/index.d.ts diff --git a/packages/core/package.json b/packages/core/package.json index 63c32a7..e372523 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -27,6 +27,7 @@ "main": "./dist/index.js", "browser": "./lib/index.js", "module": "./module/index.js", + "types": "types/index.d.ts", "scripts": { "clean": "rimraf dist; rimraf lib; rimraf module;", "build:browser": "cross-env BABEL_ENV=browser babel ./src --out-dir ./lib --source-maps --copy-files", diff --git a/packages/core/types/index.d.ts b/packages/core/types/index.d.ts new file mode 100644 index 0000000..70a5a6a --- /dev/null +++ b/packages/core/types/index.d.ts @@ -0,0 +1,39 @@ +import Web3 from "web3"; +import {Contract} from "web3-eth-contract"; +import {AbiItem} from "web3-utils"; +import {Observable} from "rxjs"; +import {LogsOptions, TransactionConfig, } from "web3-core"; +import {BlockTransactionObject} from "web3-eth"; + +export default class Subspace { + constructor(web3: Web3, options?: SubspaceOptions); + async init(): void; + contract(contractInstance: Contract | ContractLike): Contract; + clearDB(collection: string) : void; + trackProperty(contractInstance: Contract, propName: string, methodArgs?: any[], callArgs?: TransactionConfig): Observable; + trackLogs(options?: LogsOptions, inputsABI?: AbiItem): Observable; + trackEvent(contractInstance: Contract, eventName: string, filterConditions: any): Observable; + trackBalance(address: string, erc20Address?: string): Observable; + trackBlockNumber(): Observable; + trackBlock(): Observable; + trackGasPrice(): Observable; + trackAverageBlocktime(): Observable; + close(): void; +} + +export interface ContractLike { + address?: string; + deployedAddress?: string; + abi?: AbiItem[]; + abiDefinition?: AbiItem[]; + from?: string; + defaultAddress?: string; + gas?: string | number; +} + +export interface SubspaceOptions { + dbFilename?: string; + callInterval?: number; + refreshLastNBlocks?: number; + disableSubscriptions?: boolean; +} \ No newline at end of file