npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

eth-blockchain-helper

v1.3.0

Published

package helper for ethereum blockchain and EVM based network

Downloads

82

Readme

eth-blockchain-helper

This library help interacts with Smart Contract and more Web3 utils in any networks based on the EVM platform (Ethereum, Binance Smart Chain, Polygon,...).

Features

Block

Get block

Get base fee of block EIP-1559

Account

Get nonce

Transaction

Create raw transaction

Sign raw transaction

Send raw transaction

Decode raw transaction

Get transaction

Get receipt transaction

Create raw transaction EIP-1559

Sign raw transaction EIP-1559

Create raw transaction to deploy Smart Contract

Event

Get event log

Decode event log

Signature

Sign message

Recovery signer

Function

Get function calldata

Decode function calldata

Estimate gas

Contract

Pre-compute SCA with CREATE2 opcode

Wallet

Generate mnemonic

Mnemonic To PrivateKey

PrivateKey To PublicKey

PublicKey To Address

Install

  npm install eth-blockchain-helper --save
// es6
import pkg from 'eth-blockchain-helper';
const BlockchainService = pkg.default;

// es5
const BlockchainService = require('eth-blockchain-helper').default;
/** 
 * Config with constructor
 *
 *   @param {string} RPC - The RPC address of the Ethereum node you want to connect to.
 *   @param {string} chainId - The chainId of the Ethereum node you want to connect to.
 *   @param {string} SCA - The address of the smart contract you want to interact with.
 *   @param {any} ABI - The ABI of the contract you want to interact with.
 *   @param {number} gasBasePrice - The gas price you want to use for your transactions or base fee for EIP-1559.
 */ 
const [RPC,chainId,SCA,ABI,gasBasePrice] 
const instance = new BlockchainService(RPC,chainId,SCA,ABI,gasBasePrice);

/** Usage with methods */

  /** 
   * Create raw transaction
   *   @param [funcName] - The name of the function you want to call
   *   @param params - The parameters of the function you want to call.
   *   @param [from] - The address of the account that will be sending the transaction.
   *  @returns A raw transaction object.
   */
  const rawTx = await instance.createRaw("setValue",
    ["hi",1],
    "0x560f8526C325d4C76DCf6F554F25e29Ad82C5a95");

  /** 
   * Create raw transaction with EIP-1559
   *   @param [funcName] - The name of the function you want to call.
   *   @param params - an array of parameters to pass to the function
   *   @param [from] - The address that will be sending the transaction.
   *   @param [value=0] - The amount of ETH you want to send with the transaction.
   *   @param [maxPriorityFeePerGas=0x01] - This is the amount of ETH TIPs you want to pay for the transaction miner
   *   to be prioritized.
   *  @returns A raw transaction object.
   */
  const rawTx = await instance.createRawEIP1559("setValue",
    ["hi",1],
    "0x560f8526C325d4C76DCf6F554F25e29Ad82C5a95",
    0); //baseFee 

  /**
   * This function creates a raw transaction for deploying a smart contract with given bytecode,
   * parameters, sender address, and value.
   * @param [bytecode] - The bytecode of the smart contract that you want to deploy.
   * @param params - params is an array of input parameters that will be passed to the constructor of
   * the smart contract being deployed. These parameters are used to initialize the state variables of
   * the contract.
   * @param [from] - The Ethereum address that will be used to deploy the smart contract.
   * @param [value=0] - The `value` parameter in this function represents the amount of ether (in wei)
   * that is being sent along with the contract deployment transaction. It is set to 0 by default, but
   * can be changed to any valid amount of ether.
   * @returns a Promise that resolves to a raw transaction object (`rawTx`) which contains the
   * necessary information to deploy a smart contract on the Ethereum blockchain.
   */
  const rawTx = await instance.createRawDeploySC(bytecode, params, from, value);  

  /** 
   * Decode raw transaction
   *   @param {string} raw - The raw transaction string
   *   @param [chainId=97] - The chainId of the network you're on.
   *  @returns The rawTx object is being returned.
   */
  const decode = await instance.decodeRaw("0xf9012280808094739ec8b040502bf50f3fe3fc96ab5af0803d89fe80b8c4e26b5771490e6b0a1f64e7fd3ccef41e61182dc198732945d88833677850c7fc8656a86d000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000412530b686d44c26c93d0541101f4da47d3db4b6713d6300072b761883d138e89c5631204c6f89fdd398bc5b6702432d556830eb4578f741950ab31722e2c8d87d1b000000000000000000000000000000000000000000000000000000000000001ba0d7b51dcc2c2f0ae1f1b0f54f900f914dea7a31b9f4d9b4ff82420a4a4cd2dbdca007e9d1c43fc375f77f4a092f5bee0700ec096409b5904ec454da6a8bcf28bd9a");

  /** 
   * Recovery signer 
   *   @param signature - The signature of the message
   *   @param params - The parameters that you want to hash.
   *  @returns The signer's address.
   */
  const signer = await instance.recoverSigner("0xf2f5b5c06b13b9e1c801f4620b40e4d11ec4fadd70033d5e73c8044026b420e66d311f65954974c5e01521207274250046eb35cec5462ea4f7a20a174ca91d291b",
    "0x560f8526C325d4C76DCf6F554F25e29Ad82C5a95",
    "0x739eC8b040502Bf50F3fE3FC96AB5af0803d89fe",
    "0xe26b5771",
    "ae162b82081a5a2991c5f804e2e556857f55b015289b9ed31c10a0e4fd4c209e000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000000410fd711c07b016cd2bb00035a1f0140b08dc5c33e8629fb3813be49910d5317f7941ed6b5a03aff08da967a83f04e5431670e93b716581c28b146b00a533c7008f100000000000000000000000000000000000000000000000000000000000000");

  /** 
   * Get block 
   *   @param [blockNumber=lastest] - The block number to get the block from.
   *  @returns The block object.
   */
  const block = await instance.getBlock(27025025);

  /**
   *  Get func calldata 
   *   @param funcName - The name of the function you want to call.
   *   @param params - an array of parameters to pass to the function.
   *  @returns The call data for the function call.
   */
  const funcCalldata = await instance.getFuncCall("setValue",
    ["hi",1]);
  
  /** 
   * Get transaction 
   *   @param {string} txHash - The transaction hash of the transaction you want to get.
   *  @returns A transaction object
   */
  const transaction = await instance.getTransaction("0x087de883fc21bee35fd47c8f3940519b22a00f1f79c985690114cabed8c319ca");

  /** 
   * Decode funcCall 
   *   @param data - The data field of the transaction.
   *  @returns The decoded data is being returned.
   */
  const dataFuncCall = await instance.decodeFuncCall("0x7c2da7aa0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000026869000000000000000000000000000000000000000000000000000000000000");

  /** 
   * Pre compute contract address created by CREATE2 opcode 
   *   @param address - The address of the contract that will be created.
   *   @param salt - A 256-bit salt value.
   *   @param initCode - The bytecode of the contract you want to deploy.
   *  @returns The address of the contract that will be created.
   */
  const SCA = await instance.precomputeCreate2("0x871d7bD834be976192a39f9E2dDB053D14E115A7",1,"0x60806040526040516102f33803806102f38339818101604052810190610025919061010c565b816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600181905550505061014c565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006100a382610078565b9050919050565b6100b381610098565b81146100be57600080fd5b50565b6000815190506100d0816100aa565b92915050565b6000819050919050565b6100e9816100d6565b81146100f457600080fd5b50565b600081519050610106816100e0565b92915050565b6000806040838503121561012357610122610073565b5b6000610131858286016100c1565b9250506020610142858286016100f7565b9150509250929050565b6101988061015b6000396000f3fe608060405234801561001057600080fd5b50600436106100415760003560e01c806312065fe0146100465780638da5cb5b14610064578063c298557814610082575b600080fd5b61004e6100a0565b60405161005b91906100eb565b60405180910390f35b61006c6100a8565b6040516100799190610147565b60405180910390f35b61008a6100cc565b60405161009791906100eb565b60405180910390f35b600047905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60015481565b6000819050919050565b6100e5816100d2565b82525050565b600060208201905061010060008301846100dc565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061013182610106565b9050919050565b61014181610126565b82525050565b600060208201905061015c6000830184610138565b9291505056fea264697066735822122068b729b8e4c2b376c9614dcdd0cf43913ec035f3ccb835951e32acb5157832ed64736f6c63430008110033000000000000000000000000560f8526c325d4c76dcf6f554f25e29ad82c5a950000000000000000000000000000000000000000000000000000000000000001");

Contact and donation

Contact me by email

Buy me a coffee