Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@findeth/abi

Package Overview
Dependencies
Maintainers
1
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@findeth/abi

A tiny Solidity ABI encoder and decoder

  • 0.7.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
9.4K
increased by93.31%
Maintainers
1
Weekly downloads
 
Created
Source

@findeth/abi

Version License GitHub CI codecov

@findeth/abi is a zero-dependencies ABI encoder and decoder library for FindETH. It supports both Node.js and web browsers. This library is experimental, and may not work with all contract interfaces. It is used in the FindETH applications, that can be found here:

  • Web

Currently, most types (except fixed-point numbers (fixed<M>x<N>), and fixed-length arrays type<M>) are supported.

Note: This is a work-in-progress version of FindETH, and is not production-ready. For the current version of FindETH, please refer to this repository. The public API may change in minor releases below 1.0.0 (though this is unlikely).


Installation

You can install @findeth/abi with Yarn (recommended) or NPM:

$ yarn add @findeth/abi
$ npm install @findeth/abi

Note: If you are using TypeScript, @findeth/abi requires TypeScript 4.1 or newer. This is used for automatically inferring the types of the input and output, based on the specified types.

Getting Started

You can use the encode and decode functions to encode and decode ABI respectively.

Encode

The encode function takes an array of ABI types (e.g., ["string", "uint256"]) and an array of values to encode. For example:

import { encode, toHex } from "@findeth/abi";

const buffer = encode(["string", "uint256"], ["foo bar", 12345]);
console.log(toHex(buffer));

// 000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000030390000000000000000000000000000000000000000000000000000000000000007666f6f2062617200000000000000000000000000000000000000000000000000

Decode

The decode function takes an array of ABI types, and a buffer (Uint8Array) to decode. Note that Node.js Buffers are compatible with Uint8Array, but in order to maintain full compatibility with web browsers (without the need for polyfills), this library does not use Buffer. Example:

import { decode, fromHex } from "@findeth/abi";

const value = fromHex("000000000000000000000000000000000000000000000000000000000000004000000000000000000000000000000000000000000000000000000000000030390000000000000000000000000000000000000000000000000000000000000007666f6f2062617200000000000000000000000000000000000000000000000000");
console.log(decode(["string", "uint256"], value));

// ["foo bar", 12345n]

Development

Install dependencies with yarn:

$ yarn

To run automated tests, use the test script:

$ yarn test

To build the library, use the build script:

$ yarn build

Keywords

FAQs

Package last updated on 05 Apr 2021

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