web3-plugin-0x
A plugin that adds Aggregated Swap functionality using 0x Aggregated Network
Prerequisites
Installation
Note: Make sure you are using
web3
version 4.0.3 or higher in your project.
npm i web3-plugin-0x --save
How to use
Disclaimer: These methods are only for ERC20 tokens.
- Initialize the taker address (The address which will fill the quote.)
import { Chains } from "web3-plugin-0x/lib/types";
import {ZeroXSwapPlugin} from "web3-plugin-0x";
const web3rpcurl = "any_rpc_url_for_the_chain";
const web3 = new Web3(web3rpcurl);
const takerPrivateKey = "0x..."; // Replace with the actual private key
const wallet = web3.eth.accounts.wallet.add(takerPrivateKey);
const takerAddress = wallet[0].address;
- Construct the swap parameters and Initialize the plugin
Note: Get your API key from here: https://dashboard.0x.org
const apiKey = "your_api_key";
const defaultParams = {
sellToken: "token_address_1",
buyToken: "token_address_2",
sellAmount: "1000000000000000000", // 1 ETH in wei
takerAddress : takerAddress,
};
const chain = Chains.PolygonMumbai;
web3.registerPlugin(new ZeroXSwapPlugin(
apiKey,
defaultParams,
takerPrivateKey,
chain,
web3rpcurl)
);
- Get the price for the selected tokens.
Note: New defaultParams can be set in any function, they will simply override the values of the previously defined parameters. If not provided, the functions will still work with old parameters.
web3.zeroXSwap.getPrice(paramters:optional);
- Allow 0x to move your tokens.
web3.zeroXSwap.tokenAllowance(paramters:optional);
- Swapping Tokens
web3.zeroXSwap.swap(paramters:optional);
Contributing
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.