Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/xf00f/web3x
Ethereum TypeScript Client Library - for perfect types and tiny builds.
https://github.com/xf00f/web3x
api ethereum javascript swarm typescript web3 web3js whisper
Last synced: 1 day ago
JSON representation
Ethereum TypeScript Client Library - for perfect types and tiny builds.
- Host: GitHub
- URL: https://github.com/xf00f/web3x
- Owner: xf00f
- Created: 2018-10-10T19:37:19.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-03-07T15:41:43.000Z (almost 4 years ago)
- Last Synced: 2025-01-13T01:05:28.288Z (9 days ago)
- Topics: api, ethereum, javascript, swarm, typescript, web3, web3js, whisper
- Language: TypeScript
- Homepage:
- Size: 1.22 MB
- Stars: 211
- Watchers: 11
- Forks: 27
- Open Issues: 12
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
- DeFi-Developer-Road-Map - web3x - A TypeScript port of web3.js. Benefits includes tiny builds and full type safety, including when interacting with contracts. (Roadmap)
README
# web3x
[![Version](https://img.shields.io/npm/v/web3x.svg)](https://www.npmjs.com/package/web3x)
[![Downloads](https://img.shields.io/npm/dm/web3x.svg)](https://www.npmjs.com/package/web3x)
[![GitHub Stars](https://img.shields.io/github/stars/xf00f/web3x.svg)](https://github.com/xf00f/web3x/stargazers)
[![GitHub Issues](https://img.shields.io/github/issues/xf00f/web3x.svg)](https://github.com/xf00f/web3x/issues)
[![Coverage](https://img.shields.io/coveralls/github/xf00f/web3x/master.svg)](https://coveralls.io/github/xf00f/web3x)Ethereum TypeScript Client Library - for perfect types and tiny builds.
![Demo](https://user-images.githubusercontent.com/44038056/48001064-5d377d00-e0ff-11e8-994f-36d165f9124e.gif)
## 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](/web3x) - main client library.
- [web3x-codegen](/web3x-codegen) - tool for generating type safe contract classes from ABIs.
- [web3x-evm](/web3x-evm) - EVM implementation for testing contract code completely in process or in browser.
- [web3x-node-example](/web3x-node-example) - Example backend TypeScript project with Jest for testing.
- [web3x-webpack-example](/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](https://github.com/lerna/lerna/issues/901) 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](CHANGELOG.md).
- After merging the PR to master, the repository should be tagged with the new version number.