Giter Site home page Giter Site logo

xf00f / web3x Goto Github PK

View Code? Open in Web Editor NEW
209.0 11.0 27.0 1.25 MB

Ethereum TypeScript Client Library - for perfect types and tiny builds.

TypeScript 97.72% JavaScript 2.26% HTML 0.01% Shell 0.01%
ethereum typescript api javascript swarm whisper web3 web3js

web3x's Introduction

web3x

Version Downloads GitHub Stars GitHub Issues Coverage

Ethereum TypeScript Client Library - for perfect types and tiny builds.

Demo

Overview

web3x was created originally as a pure TypeScript port of web3.js. Although its API has diverged slightly from web3.js, it still maintains a strong degree of alignment and porting from one to the other should be fairly trivial.

web3x provides full type safety when interacting with contracts by building type definitions from contract ABIs.

It has its own EVM implementation for testing contract behaviour fully in process using standard testing tools (e.g. Jest).

Packages

This monorepo is split into several sub-packages.

  • web3x - main client library.
  • web3x-codegen - tool for generating type safe contract classes from ABIs.
  • web3x-evm - EVM implementation for testing contract code completely in process or in browser.
  • web3x-node-example - Example backend TypeScript project with Jest for testing.
  • web3x-webpack-example - Example frontend TypeScript Webpack project with Jest for testing.

Versioning

Versioning is managed manually, and follows the same pattern as Lerna fixed mode. Lerna is not used due to a trilemma that the Lerna maintainer refuses to resolve:

  • A PR should correctly modify version.json and package version numbers.
  • For minor or patch changes, the packages that changed need their version set to the new version in version.json.
  • For major version changes, all packages should have their version numbers set to the new version in version.json.
  • All changes across all packages are tracked in the CHANGELOG.
  • After merging the PR to master, the repository should be tagged with the new version number.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.