# 0xorderbuilder

> Llibrary for building orders to use the 0x protocol

Latest version **1.1.0** (published 2018-07-26) · ISC license · 0 weekly downloads

## Install

```sh
npm install 0xorderbuilder
pnpm add 0xorderbuilder
yarn add 0xorderbuilder
bun add 0xorderbuilder
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.1.0 |
| Published | 2018-07-26 |
| First published | 2018-04-08 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Dependencies | 7 |
| Unpacked size | 65.4 KB |
| Known vulnerabilities | 0 (+24 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 2 |
| Author | Fábio Cesso |
| Maintainers | fabio.cesso |
| Keywords | ethereum, utilties, 0xRelayer, AmadeusRelayer |

## Links

- npm: https://www.npmjs.com/package/0xorderbuilder
- Repository: https://github.com/AmadeusRelay/0xOrderBuilder
- Homepage: https://github.com/AmadeusRelay/0xOrderBuilder#readme
- Issues: https://github.com/AmadeusRelay/0xOrderBuilder/issues
- npm.io page: https://npm.io/package/0xorderbuilder

## Dependencies (7)

- [rxjs](https://npm.io/package/rxjs.md) ^5.5.8
- [0x.js](https://npm.io/package/0x.js.md) 0.33.6
- [axios](https://npm.io/package/axios.md) ^0.18.0
- [moment](https://npm.io/package/moment.md) ^2.22.0
- [ethereumjs-util](https://npm.io/package/ethereumjs-util.md) ^5.1.2
- [@0xproject/types](https://npm.io/package/@0xproject/types.md) ^0.5.0
- [@0xproject/connect](https://npm.io/package/@0xproject/connect.md) ^0.6.8

## Alternatives

- [apollo-link-http-common](https://npm.io/package/apollo-link-http-common.md) — 879.0K weekly downloads
- [react-relay](https://npm.io/package/react-relay.md) — 336.8K weekly downloads
- [relay-test-utils](https://npm.io/package/relay-test-utils.md) — 181.6K weekly downloads
- [@vendure/core](https://npm.io/package/@vendure/core.md) — 14.8K weekly downloads
- [@pnpm/deps.graph-sequencer](https://npm.io/package/@pnpm/deps.graph-sequencer.md) — 13.4K weekly downloads

## Recent versions

- 1.1.0 (latest) — 2018-07-26
- 1.0.7 — 2018-05-25
- 1.0.4 — 2018-04-12
- 1.0.2 — 2018-04-09
- 1.0.1 — 2018-04-09
- 1.0.0 — 2018-04-08

## README

# 0xOrderBuilder
Llibrary for building orders to use the 0x protocol.

## Types

* ZeroExOrderBuilder: main class with the static methods:
  * buildQuoteProviderOrder: creating a order to use in Quote Provider relayer strategy. A relayer will be called to get conversion rate and fees.
  * buildSignedOrder: signing a order. You can use the order returned in previous method.
* EthNetwork: enum, used to inform the desired Ethereum network.

## Installation

```bash
npm install 0xorderbuilder --save
```

## Use

**Import**
```typescript
import { ZeroExOrderBuilder, EthNetwork } from "0xorderbuilder";
import { BigNumber } from "bignumber.js"; // used as parameter in buildQuoteProviderOrder method
```
**buildQuoteProviderOrder** 
```typescript
    static buildQuoteProviderOrder(maker: string, makerTokenAddress: string, takerTokenAddress: string, makerTokenAmount: BigNumber, 
        milisecondsToExpire: number, relayerUrl: string, network: EthNetwork): Promise<Order>;
```
* maker: yours eth wallet address;
* makerTokenAddress: the token address you wish to sell;
* takerTokenAddress: the token address you wish to buy;
* makerTokenAmount: the amount you wish to sell (in base units, e.g.: 1 ZRX => new BigNumber(1000000000000000000));
* milisecondsToExpire: used to calculate the returned order expiration date;
* relayerUrl: the relayer addres used to get conversion rate and fee;
* network: the desired Ethereum network
* return: a promise that will be return a JSON representing the order.

**buildSignedOrder**
```typescript
    static buildSignedOrder(order: Order, privateKey: string): SignedOrder;
```
* order: the unsigned order;
* privateKey: the private key of the maker wallet. Note: this private WILL NOT be transfer to relayer or any other;
* return: the signed order.

**Example**
```typescript
import { ZeroExOrderBuilder, EthNetwork } from "0xorderbuilder";
import { BigNumber } from "bignumber.js";

function testZeroExOrderBuilder() {
    ZeroExOrderBuilder.buildQuoteProviderOrder("0xf60345bcff9feedb98bbdfc996b33cba00ee2c75", "0x6ff6c0ff1d68b964901f986d4c9fa3ac68346570", 
        "0xd0a1e359811322d97991e03f863a0c30c2cf029c", new BigNumber(1000000000000000000), 10000, 
        "http://localhost:3000/api/v0", EthNetwork.Kovan).then((order) =>
    {
        const signedOrder = ZeroExOrderBuilder.buildSignedOrder(order, "0x5edd9d13a5d62821bbda8ac6da7d7ca69a1b540dc99ac9232fefc04d09e28055");
        console.log(JSON.stringify(signedOrder));
    });
        
}

testZeroExOrderBuilder();
```

---
_Source: https://npm.io/package/0xorderbuilder · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
