• This repository has been archived on 09/Jul/2021
  • Stars
    star
    1,412
  • Rank 33,316 (Top 0.7 %)
  • Language
    TypeScript
  • License
    Other
  • Created over 7 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

0x protocol monorepo - includes our smart contracts and many developer tools


⚠️ Deprecation Warning ️️⚠️

This project is deprecated and no longer maintained, refer to 0xProject/protocol and 0xProject/tools instead.


0x is an open protocol that facilitates trustless, low friction exchange of Ethereum-based assets. For more information on how it works, check out the 0x protocol specification.

This repository is a monorepo including the 0x protocol smart contracts and numerous developer tools. Each public sub-package is independently published to NPM.

CircleCI Coverage Status Discord License

Packages

Visit our developer portal for a comprehensive list of core & community maintained packages. All packages maintained with this monorepo are listed below.

Python Packages

Package Version Description
0x-contract-addresses PyPI A tiny utility library for getting known deployed contract addresses for a particular network
0x-contract-artifacts PyPI 0x smart contract compilation artifacts
0x-contract-wrappers PyPI 0x smart contract wrappers
0x-json-schemas PyPI 0x-related JSON schemas
0x-order-utils PyPI A set of utilities for generating, parsing, signing and validating 0x orders
0x-sra-client PyPI A Python client for interacting with servers conforming to the Standard Relayer API specification

Solidity Packages

These packages are all under development. See /contracts/README.md for a list of deployed packages.

Package Version Description
@0x/contracts-asset-proxy npm AssetProxy contracts used within the protocol
@0x/contracts-erc20 npm Implementations of various ERC20 tokens
@0x/contracts-erc721 npm Implementations of various ERC721 tokens
@0x/contracts-erc1155 npm Implementations of various ERC1155 tokens
@0x/contracts-exchange npm The Exchange contract used for settling trades within the protocol
@0x/contracts-exchange-forwarder npm A Forwarder contract used to simplify UX for interacting with the protocol
@0x/contracts-exchange-libs npm Protocol specific libraries used within the Exchange contract
@0x/contracts-extensions npm Contracts that interact with and extend the functionality of the core protocol
@0x/contracts-multisig npm Various implementations of multisignature wallets, including the AssetProxyOwner contract that has permissions to upgrade the protocol
@0x/contracts-test-utils npm TypeScript/Javascript shared utilities used for testing contracts
@0x/contracts-utils npm Generic libraries and utilities used throughout all of the contracts
@0x/contracts-coordinator npm A contract that allows users to execute 0x transactions with permission from a Coordinator
@0x/contracts-dev-utils npm A contract contains utility functions for developers (such as validating many orders using a single eth_call)
@0x/contracts-staking npm Implements the stake-based liquidity incentives defined by ZEIP-31

TypeScript/Javascript Packages

0x-specific packages

Package Version Description
0x.js npm An aggregate package combining many smaller utility packages for interacting with the 0x protocol
@0x/contract-addresses npm A tiny utility library for getting known deployed contract addresses for a particular network.
@0x/contract-wrappers npm JS/TS wrappers for interacting with the 0x smart contracts
@0x/order-utils npm A set of utilities for generating, parsing, signing and validating 0x orders
@0x/json-schemas npm 0x-related JSON schemas
@0x/migrations npm Migration tool for deploying 0x smart contracts on private testnets
@0x/contract-artifacts npm 0x smart contract compilation artifacts
@0x/sra-spec npm OpenAPI specification for the Standard Relayer API
@0x/connect npm An HTTP/WS client for interacting with the Standard Relayer API
@0x/asset-swapper npm Convenience package for discovering and performing swaps for any ERC20 Assets

Ethereum tooling

Package Version Description
@0x/web3-wrapper npm An Ethereum JSON RPC client
@0x/sol-compiler npm A wrapper around solc-js that adds smart re-compilation, ability to compile an entire project, Solidity version specific compilation, standard input description support and much more.
@0x/sol-coverage npm A solidity test coverage tool
@0x/sol-profiler npm A solidity gas cost profiler
@0x/sol-trace npm A solidity stack trace tool
@0x/sol-resolver npm Import resolver for smart contracts dependencies
@0x/subproviders npm Web3 provider middlewares (e.g. LedgerSubprovider)
@0x/sol-doc npm Solidity documentation generator

Utilities

Package Version Description
@0x/abi-gen npm Tool to generate TS wrappers from smart contract ABIs
@0x/tslint-config npm Custom TSLint rules used by the 0x core team
@0x/types npm Shared type declarations
@0x/typescript-typings npm Repository of types for external packages
@0x/utils npm Shared utilities
@0x/assert npm Type and schema assertions used by our packages
@0x/base-contract npm BaseContract used by auto-generated abi-gen wrapper contracts
@0x/dev-utils npm Dev utils to be shared across 0x packages

Private Packages

Package Description
@0x/instant A free and flexible way to offer simple crypto purchasing in any app or website.

Usage

Node version 6.x or 8.x is required.

Most of the packages require additional typings for external dependencies. You can include those by prepending the @0x/typescript-typings package to your typeRoots config.

"typeRoots": ["node_modules/@0x/typescript-typings/types", "node_modules/@types"],

Contributing

We strongly recommend that the community help us make improvements and determine the future direction of the protocol. To report bugs within this package, please create an issue in this repository.

Install dependencies

Make sure you are using Yarn v1.9.4. To install using brew:

brew install [email protected]

Then install dependencies

yarn install

You will also need to have Python 3 installed, in order to build and run the tests of abi-gen's command-line interface, which is integrated with the yarn build, yarn test, and yarn lint commands described below. More specifically, your local pip should resolve to the Python 3 version of pip, not a Python 2.x version.

Build

To build all packages:

yarn build

To build a specific package:

PKG=@0x/web3-wrapper yarn build

To build all contracts packages:

yarn build:contracts

Watch

To re-build all packages on change:

yarn watch

To watch a specific package and all it's dependent packages:

PKG=[NPM_PACKAGE_NAME] yarn watch

e.g
PKG=@0x/web3-wrapper yarn watch

Clean

Clean all packages:

yarn clean

Clean a specific package

PKG=0x.js yarn clean

Rebuild

To re-build (clean & build) all packages:

yarn rebuild

To re-build (clean & build) a specific package & it's deps:

PKG=0x.js yarn rebuild

Lint

Lint all packages:

yarn lint

Lint a specific package:

PKG=0x.js yarn lint

Run Tests

Run all tests:

yarn test

Run a specific package's test:

PKG=@0x/web3-wrapper yarn test

Run all contracts packages tests:

yarn test:contracts

More Repositories

1

OpenZKP

OpenZKP - pure Rust implementations of Zero-Knowledge Proof systems.
Rust
646
star
2

0x-launch-kit

Start an exchange in under a minute
JavaScript
380
star
3

protocol

TypeScript
362
star
4

0x-api

An HTTP Interface to 0x liquidity and tooling
TypeScript
362
star
5

0x-mesh

A peer-to-peer network for sharing 0x orders
Go
258
star
6

0x-starter-project

A project showcasing how to get started with 0x.js
TypeScript
200
star
7

0x-launch-kit-backend

Launch a 0x relayer in under a minute [DEPRECATED]
TypeScript
173
star
8

standard-relayer-api

Standard specifications for 0x relayer public APIs
164
star
9

0x-protocol-specification

Specification for 0x protocol
148
star
10

0x-launch-kit-frontend

TypeScript
112
star
11

tools

TypeScript
96
star
12

ZEIPs

0x Improvement Proposals
91
star
13

swap-demo-tutorial

JavaScript
67
star
14

website

0x.org website
TypeScript
54
star
15

0x-nextjs-demo-app

Example ERC20 swapping app made with 0x Swap API, Next.js, and ConnectKit
TypeScript
52
star
16

rpc-gateway

A failover proxy for node providers
Go
47
star
17

0x-relayer-registry

A collection of relayers using 0x
TypeScript
43
star
18

whitepaper

Technical document that specifies 0x protocol.
TeX
33
star
19

0x-parser

🧾 A library that parses 0x transactions from EVM blockchains into a format that is user-friendly and easy to understand.
TypeScript
30
star
20

web3-typescript-typings

[DEPRECATED] A preliminary Web3 v0.x typescript type definition
30
star
21

dev-tools-truffle-example

An example Truffle project showing how to use the 0x Dev Tools with the Truffle framework
JavaScript
28
star
22

fast-abi

ABI encoding, fast
Rust
27
star
23

0x-event-pipeline

A node.js app for pulling 0x event info to inform things like staking.
TypeScript
26
star
24

0x-examples

A collection of 0x API code examples
TypeScript
19
star
25

VDF

A Solidity implementation of a VDF verifier contract
Solidity
16
star
26

0x-sdk

TypeScript SDK for building exchange functionality on Ethereum and EVM-compatible chains 🛠.
TypeScript
15
star
27

0x-codesandbox

0x Codesandbox
TypeScript
14
star
28

0x-debug

TypeScript
14
star
29

quote-server

An RFQ quote server that can be used to provide quotes via 0x API
TypeScript
14
star
30

0x-settler

0x settlement contracts using Permit2
Solidity
11
star
31

0x-instant

JavaScript
10
star
32

0x-staking-pool-registry

A collection of metadata about staking pools on 0x - https://0x.org/
TypeScript
10
star
33

connect-starter-project

A tutorial for interacting with a relayer that conforms to the standard relayer API
TypeScript
10
star
34

0x-coordinator-server

A reference implementation of a 0x coordinator server (soft-cancel variant)
TypeScript
9
star
35

sutro

Eye of Sutro: Ethereum State Watcher
Rust
7
star
36

pm

6
star
37

branding

Logos and other media
5
star
38

p2p_incentives

Python
5
star
39

node-anvil

Nodejs bindings to Foundry Anvil
Rust
5
star
40

zrx-buyer

A demonstration of using asset-buyer to buy ZRX
TypeScript
4
star
41

0x-subgraph

TypeScript
4
star
42

mesh-viz

https://mesh-viz.0x.org/
TypeScript
4
star
43

matcha-flagged-tokens

4
star
44

0x-exchange-proxy-subgraph

TypeScript
4
star
45

0x-api-forked-testnet-example

A basic example for how you can test 0x API using a private for of Ethereum mainnet
TypeScript
4
star
46

proxy

Simple Go Proxy
Go
3
star
47

mesh-mock-graphql-api

Demo of the new Mesh GraphQL API using mock data
TypeScript
3
star
48

setup-helm

Github Action for Helm installation
TypeScript
3
star
49

mesh-workshop-demo

TypeScript
3
star
50

exchange-v3

TypeScript
2
star
51

0x-mesh-demo-client-javascript

[DEPRECATED] A demo 0x Mesh WebSocket client written in Javascript
TypeScript
2
star
52

ts-doc-gen

A CLI for generating a single MD reference doc file for a TS project
TypeScript
2
star
53

setup-govulncheck

Setup govulncheck: https://go.dev/security/vuln/
TypeScript
2
star
54

setup-foundry

Install foundry-rs/foundry in your Github Action workflow
TypeScript
2
star
55

mesh-rs

Rust implementation of the 0x Mesh protocol
Rust
1
star
56

matcha-unsupported-tokens

1
star
57

permit2-matcha

A headless prototype of how the Matcha API works with permit2 smart contracts.
TypeScript
1
star