Natively Pronounced Mandarin

    paraswap
    TypeScript icon, indicating that this package has built-in type declarations

    5.1.0 • Public • Published

    ParaSwap SDK


    API docs are available here :

    https://developers.paraswap.network

    To use ParaSwap SDK :

    Install the lib using npm or yarn

    yarn add paraswap
    Then on a Javascript file:
    const { ParaSwap } = require('paraswap');
    const paraSwap = new ParaSwap();

    ES6 or TypeScript

    import { ParaSwap } from 'paraswap';
    const paraSwap = new ParaSwap();
    To retrieve the list all available tokens:
    const tokens = await paraSwap.getTokens();
    To get the rate of a token pair using the API:
    const srcToken = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'; // ETH
    const destToken = '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359'; // DAI
    const srcAmount = '1000000000000000000'; //The source amount multiplied by its decimals: 10 ** 18 here
    
    const priceRoute: OptimalRates = await paraSwap.getRate(
      srcToken,
      destToken,
      srcAmount,
    );

    Where priceRoute contains the rate and the distribution among exchanges, checkout the OptimalRates type for more details.

    To get the rate of a token pair using the Price Feed Contract:

    This can be used for trustless integrations, the

    const paraswapFeed = new ParaswapFeed(1);
    const priceRoute: OptimalRates = await paraswapFeed.getRate(
      srcToken,
      destToken,
      srcAmount,
    );

    This is a schema that describes the data flow from price query to executing a Swap:

    Also available at https://paraswap-achirecture.netlify.com

    To get the allowance of an ERC20
    const paraSwap = new ParaSwap().setWeb3Provider(web3Provider);
    
    const allowance = await paraSwap.getAllowance(userAddress, tokenAddress);
    To approve an ERC20
    const paraSwap = new ParaSwap().setWeb3Provider(web3Provider);
    
    const txHash = await paraSwap.approveToken(amount, userAddress, tokenAddress);
    To build and sign a transaction
    const srcToken = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
    const destToken = '0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359';
    const srcAmount = '1000000000000000000'; //The source amount multiplied by its decimals
    const senderAddress = '0xfceA770875E7e6f25E33CEa5188d12Ef234606b4';
    const receiver = '0x8B4e846c90a2521F0D2733EaCb56760209EAd51A'; // Useful in case of swap and transfer
    const referrer = 'my-company-or-nick-name';
    
    const txParams = await paraSwap.buildTx(
      srcToken,
      destToken,
      srcAmount,
      destAmount,
      priceRoute,
      senderAddress,
      referrer,
      receiver,
    );
    
    web3.eth.sendTransaction(
      txParams,
      async (err: Error, transactionHash: string) => {
        if (err) {
          return this.setState({ error: err.toString(), loading: false });
        }
        console.log('transactionHash', transactionHash);
      },
    );

    To run the example locally:

    Created an .env file with these 2 env variables:

    PROVIDER_URL=YOUR_PROVIDRER_URL_OR_INFURA_URL
    NODE_ENV=production

    run

    yarn install paraswap

    For local developement you can run

    yarn dev

    For production build:

    yarn build

    Which will generate a production build on "dist" folder

    Install

    npm i paraswap

    DownloadsWeekly Downloads

    1,951

    Version

    5.1.0

    License

    MIT

    Unpacked Size

    1.06 MB

    Total Files

    143

    Last publish

    Collaborators

    • verisana_paraswap
    • louis-paraswap
    • erezool
    • colonelj
    • ps_admin
    • velenir
    • shresthagrawal
    • mwamedacen