eth-events
TypeScript icon, indicating that this package has built-in type declarations

0.9.3 • Public • Published

eth-events

FOSSA Status Build Status npm package

eth-events is a library for querying and decoding Ethereum event logs

Install

npm install eth-events

API

interface IContractDetails {
  abi: any[];
  address: string;
  name?: string;
}
 
interface IFilter {
  fromBlock: number;
  toBlock: number | 'latest';
  address: string | string[];
  topics?: string[];
}
 
interface IEthEvent {
  name: string;
  values: {
    [key: string]: string | number;
  };
  sender: string;
  recipient: string;
  txHash: string;
  logIndex: number;
  blockNumber: number;
  timestamp: number;
  toContract?: string;
}
 
// init eth-events
function EthEvents(
  contracts: IContractDetails[],
  jsonRpcEndpoint: string,
  startBlock?: number,
  extraneousEventNames?: string[]
);
 
// get events by block range
async function getEvents(startBlock?: startBlock, endBlock?: number): Promise<IEthEvent[]>;
 
// get events by filter (via eth_getLogs)
async function getEventsByFilter(filter: IFilter): Promise<IEthEvent[]>;

Usage

import { EthEvents } from 'eth-events';
import Token from './abis/EIP20.json';
 
// contract details
const token: IContractDetails = {
  abi: Token.abi,
  address: '0xDEADBEEFCAFE12345678912456789',
  name: 'Basic Token', // optional
};
const contracts: IContractDetails[] = [token];
// provider endpoint
const jsonRpcEndpoint: string = 'http://localhost:8545';
// either the initial block to begin the query || block number of when the contract was deployed
const startBlock: number = 1;
 
// init eth-events
const ethEvents = EthEvents(contracts, jsonRpcEndpoint, startBlock);
 
// get events by block range
ethEvents.getEvents().then((events: IEthEvent[]) => {
  // ...
});
 
const filter: IFilter = {
  fromBlock: 4555363,
  toBlock: 'latest',
  address: '0xDEADBEEFCAFE12345678912456789',
  topics: [],
};
 
// get events by filter (via eth_getLogs)
ethEvents.getEventsByFilter(filter).then((events: IEthEvent[]) => {
  // ...
});

Development

Test

npm test

Compile typescript files and watch for changes

npm run dev

Compile typescript files & declarations

npm run build

License

FOSSA Status

Readme

Keywords

none

Package Sidebar

Install

npm i eth-events

Weekly Downloads

9

Version

0.9.3

License

MIT

Unpacked Size

1.68 MB

Total Files

25

Last publish

Collaborators

  • kangarang