0xorderbuilder

Llibrary for building orders to use the 0x protocol.

Usage no npm install needed!

<script type="module">
  import xorderbuilder from 'https://cdn.skypack.dev/0xorderbuilder';
</script>

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

npm install 0xorderbuilder --save

Use

Import

import { ZeroExOrderBuilder, EthNetwork } from "0xorderbuilder";
import { BigNumber } from "bignumber.js"; // used as parameter in buildQuoteProviderOrder method

buildQuoteProviderOrder

    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

    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

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();