Socket
Socket
Sign inDemoInstall

firm.web3

Package Overview
Dependencies
Maintainers
1
Versions
3
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

firm.web3

[![NPM version][npm-image]][npm-url] [![Build Status][travis-image]][travis-url] [![Join the chat at https://gitter.im/ethcore/parity][gitter-image]][gitter-url] [![GPLv3][license-image]][license-url]


Version published
Maintainers
1
Created
Source

NPM version Build Status Join the chat at https://gitter.im/ethcore/parity GPLv3

Firm Web3

Subset of original Web3 API with additional certainty checks. I.e. wait for some confirmations (new blocks) before triggering the callback.

Usage

// Import the library
import {FirmWeb3, Certainty} from 'firm.web3';

// Create new `FirmWeb3` passing existing `web3` instance.
let firmWeb3 = new FirmWeb3(global.web3);

// Change certainty level (default MEDIUM=4 blocks)
firmWeb3 = firmWeb3.withCertainty(Certainty.HIGH); // wait for 12 blocks

// send transaction and wait for receipt
web3.eth.sendTransaction({...}, (err, txHash) => {
  console.log('Transaction sent.');

  // wait for receipt with sufficient confirmations count
  firmWeb3.getTransactionReceipt(txHash, (err, receipt) => {
    console.log('Transaction has 12 confirmations.');
  });  
});

or without ES2015:

// Import the library
var firmWeb3 = require('firm.web3');

// Create new `FirmWeb3` passing existing `web3` instance.
var firmWeb3 = new firmWeb3.FirmWeb3(global.web3);

// Change certainty level (default MEDIUM=4 blocks)
firmWeb3 = firmWeb3.withCertainty(firmWeb3.Certainty.HIGH); // wait for 12 blocks

// send transaction and wait for receipt
web3.eth.sendTransaction({...}, function (err, txHash) {
  console.log('Transaction sent.');

  // wait for receipt with sufficient confirmations count
  firmWeb3.getTransactionReceipt(txHash, function (err, receipt) {
    console.log('Transaction has 12 confirmations.');
  });
});

API

Web3

  • firmWeb3.withCertainty(level) - returns a new instance with given certainty level (Certainty.{LOW(2 blocks), MEDIUM(4), HIGH(12)} or just number of blocks),
  • firmWeb3.getTransactionReceipt(hash, callback) - gets a receipt for given hash (will retry up to 24 blocks),
  • firmWeb3.getCode(address, callback) - gets contract code under given address (will retry up to 24 blocks),
  • firmWeb3.filter(filterOptions) - returns a new logs (events) filter,
  • firmWeb3.contract(abiArray) - returns a new contract factory.

Filter

  • filter.withCertainty(level) - returns a new filter with changed certainty level,
  • filter.get(callback) - gets current "firm" logs (logs coming from block latest - confirmationLevel),
  • filter.watch(callback) - fires a callback for each new logs specified in filter and happening in block latest - confirmationLevel,
  • filter.stopWatching() - stops watching and uninstall filter.

Contract

  • contractF.at(address) - returns contract with current ABI bound to given address,

  • contractF.new([...args,] callback) - deploys contract with current ABI and calls back with FirmContract.

  • contract.withCertainty(level) - returns a new contract with different certainty level,

  • contract.allEvents([filterOptions] [, callback]) - returns a filter for all events hapening in contract

  • contract.[eventName]([filterValues] [, filterOptions] [, callback]) - returns a filter for specific event in contract

Parameters values are the same as specified here: JavaScript API

TODO

  • [] Better retries handling (each block instead of timeout)
  • [] Information about progress

FAQs

Package last updated on 26 Jul 2016

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc