0x-sdk
0x SDK is a TypeScript SDK for building exchange functionality on Ethereum and EVM-compatible chains. 0x SDK uses 0x API to aggregate liquidity. Building exchange functionality with the 0x API requires integrators to go through a number of steps. Integrators may need to manage chain IDs, API endpoints, convert numbers, approve tokens, sign messages, communicate with smart contracts, etc. The 0x SDK aims to simplify these steps.
Installation
npm install @0x/0x-sdk
# or
yarn add @0x/0x-sdk
Usage
Swap tokens with the 0x-sdk:
import { ZeroExSdk } from '@0x/0x-sdk';
const sdk = new ZeroExSdk();
const takerAddress = await signer.getAddress();
const params = {
sellToken: WETH_ADDRESS,
buyToken: DAI_ADDRESS,
sellAmount: '100000000000000000',
takerAddress,
};
const price = await sdk.getIndicativePrice({
resource: 'swap',
params,
chainId,
});
const quote = await sdk.getFirmQuote({
resource: 'swap',
params,
chainId,
});
const contractTx = await sdk.approveToken({
tokenContractAddress: WETH_ADDRESS,
contractAddressToApprove: ZEROEX_CONTRACT_ADDRESS,
signer,
});
await contractTx.wait();
const txResponse = await sdk.fillOrder({ quote, signer, chainId });
const { transactionHash } = await txResponse.wait();
Example
This repository includes a basic example in the [/examples](/examples)
folder which demonstrates basic exchange functionality. Follow these instructions to run the example:
- Navigate to the
/example
folder
cd /example
- Install the dependencies
yarn
- Run the example app
yarn dev
Contributing
Please follow this project's contributing guidelines.