Package Exports
- @0x/0x-parser
- @0x/0x-parser/dist/index.cjs.js
- @0x/0x-parser/dist/index.esm.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@0x/0x-parser) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
0x-parser
This library is specifically designed for 0x integrators, and it simplifies the complex task of parsing 0x transactions into a format that is both user-friendly and easy to understand. One of the challenges in these trades is that they can experience slippage through Automated Market Makers (AMMs), making the final swap amounts difficult to predict prior to executing the trade. However, this library overcomes that challenge by accepting a transaction hash as input and parsing the receipt and event logs to accurately identify the final swap amounts. Try the demo here.
Installation
npm install @0x/0x-parser
Usage
import { parseSwap } from '@0x/0x-parser';
async function main() {
const response = await fetch(
"https://raw.githubusercontent.com/0xProject/protocol/development/packages/contract-artifacts/artifacts/IZeroEx.json"
);
const IZeroEx = await response.json();
const data = await parseSwap({
rpcUrl: "https://eth.llamarpc.com",
exchangeProxyAbi: IZeroEx.compilerOutput.abi,
transactionHash: "0xd8637124d650268ae7680781809800e103a3a2bee9fec56083028fea6d98140b",
});
console.log(data);
}
main();
Bundle Size
This package directly integrates the latest version of Ethers.js, a decision driven by the rapid and often inconsistent upgrade patterns observed in some web3 codebases. This decision simplifies the source code by eliminating the need to support multiple versions of Ethers.js. However, it may lead to redundancy if you're already using the provider and contract modules in the latest Ethers.js version. This redundancy, though, might not affect your application.
The impact this library may have on your app's bundle size varies depending on the context. It's not a concern for server-side scripts, but could influence the initial bundle size of client-side browser applications. Given this library tree-shakes Ethers.js dependencies, it's beneficial to use lazy loading to prevent an increase in your client application's initial bundle size. For a demonstration of lazy loading the library, refer to the example available here.
Examples
This repository includes examples you can execute locally. Navigate to the /examples
directory for additional README
information on how to run the demos locally. You can also explore a live demo of 0x-parser here.
Contributing
Contributions are always welcomed! Please read the contributing guidelines before submitting a pull request.