Skip to content

A JS library for getting Solidity method data from a four-byte method signature

License

Notifications You must be signed in to change notification settings

MetaMask/eth-method-registry

Repository files navigation

Eth Method Registry

A javascript library for getting Solidity method data from a four-byte method signature.

Currently uses the parity on-chain method registry, but eventually I am interested in adding various parallel methods, whatever works and returns a valid response!

Installation

With Node.js Installed:

yarn install eth-method-registry -S

Usage

const { MethodRegistry } = require('eth-method-registry')
const Eth = require('@metamask/ethjs')

const provider = new Eth.HttpProvider('https://mainnet.infura.io/v3/YOUR-PROJECT-ID')
const registry = new MethodRegistry({ provider })

// Uses promises, pass the 4byte prefix to the lookup method:
registry.lookup('0xa9059cbb')
  .then((result) => {
   console.log(result) // prints 'transfer(address,uint256)'
  })

// Also includes a method for parsing the resulting sig
// into something more useful for rendering:
const sig = 'transferFrom(address,uint256)'
const parsed = registry.parse(sig)
/* Parsed value:
   {
    name :'Transfer From',
    args: [
      { type: 'address' },
      { type: 'uint256' }
    ]
   }
*/

Development

The unit tests of this package run against Infura's v3 API. After cloning this repository, run cp .infurarc.template .infurarc and add your Infura project ID to the file.

Running Tests

yarn test

About

A JS library for getting Solidity method data from a four-byte method signature

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published