Warden
  • About Us
    • WardenSwap
    • WardenSwap V2.0
    • WardenSwap V1.5 “Aegis”
    • Warden V1.5
    • Master Plan 2021
  • Tokennomics
    • WAD Token
    • Trading Fee Scheme
    • Buyback Program Tracking
    • Token Burning
    • Liquidity Pools
  • Transparency
    • References and Sources
    • Audited by Certik
    • Audited by Valix
    • Bug Bounty
    • Community Links
  • MetaWarden
    • MetaWarden NFT
    • Licensed Commercial Use Rights
  • WardenSwap SDK
    • Overview
    • Getting Started
    • Advance Usage
    • Warden UI Kits (Beta)
    • Referral Link
    • Testing
    • Profit Sharing Program
    • References
      • Class: WardenBestRate
      • Class: WardenPayloadCompressor
  • How to
    • Arbitrum Bridge Tutorial
Powered by GitBook
On this page
  • Why WardenSwap SDK?
  • Supported Chains
  • Supported Tokens
  • How it works?
  • Quick Sample Code: Get Quote & Swap
  • Available Functions
  1. WardenSwap SDK

Overview

The WardenSwap SDK is a Javascript/Typescript library that provides developers the seamless way of integrating the most sophisticated best rate AI swap into your application or DeFi with ease.

PreviousLicensed Commercial Use RightsNextGetting Started

Last updated 2 years ago

Why WardenSwap SDK?

WardenSwap SDK will be your best way to equip the Best Rate AI power to bring your platform to the next level.

Supported Chains

  • Ethereum (Mainnet)

  • Binance Smart Chain

  • Polygon

  • Avalanche

  • Optimism

  • Arbitrum

Supported Tokens

How it works?

Let's say the user want to swap 1,000 BUSD to WAD on your dashboard in Binance Smart Chain

You can integrate WardenSwap SDK to help get the quote, then send the swap transaction with normal Web3.js or Ethers.js. So for now the key functionality of the SDK is to get you the best rate quote.

  1. Connecting Wallet can be done with Ethers.js, Web3.js or related libraries.

  2. Approve BUSD will required user to approve spending by sending the approve transaction to the BUSD contract to be spent by WardenSwap contract. In case the user already approved or swapping BNB, no need for approval.

  3. Get Quote can be done with WardenSwap SDK, it will return you the amountOut which is the full amount of the destination token to display to users. Note that the amountOut is the estimated value.

  4. Swap is when you request user to confirm the swap transaction built from quote response and send to WardenSwap contract with function swap or swapSplit.

After the swap submission, the transaction will be pending. You will need to watch the transaction to see the swap result.

Quick Sample Code: Get Quote & Swap

Here is the minimal sample code for BNB Smart Chain integration to help you understand how to use it quickly.

import {
  initProvider,
  WardenBestRate,
} from "@wardenswap/bestrate-sdk";
import { ethers } from "ethers";

async function swapWithWarden() {
  const provider = initProvider("https://bsc-dataseed.binance.org");
  const warden = new WardenBestRate(provider, "bsc");

  const src = "0xe9e7cea3dedca5984780bafc599bd69add087d56"; // source Token Address: BUSD
  const srcDecimals = 18; // source token's decimals
  const dest = "0x0feadcc3824e7f3c12f40e324a60c23ca51627fc"; // destination Token Address: WAD
  const amountIn = ethers.utils.parseUnits("100", srcDecimals); // amount of source token
  const gasPrice = ethers.utils.parseUnits("5", "gwei"); // current gas price

  // Get BEST RATE!
  const quote = await warden.getQuote(src, dest, amountIn, gasPrice, {
    enableSplit: true,
  });

  // Get the signer with private key
  // For using with Metamask, see: https://docs.ethers.io/v5/getting-started/#getting-started--connecting
  // For using other wallet, see: https://docs.ethers.io/v5/single-page/#/v5/api/signer/-%23-Wallet
  const YOUR_PRIVATE_KEY = process.env.PRIVATE_KEY;
  const signer = new ethers.Wallet(YOUR_PRIVATE_KEY, provider);

  // Specify slippage, which is 1%
  const minDestAmount = ethers.BigNumber.from(quote.amountOut).mul(99).div(100);

  // Allow WardenSwap contract to use token in your wallet to perform swapping
  console.log("Approving token...");
  let tx = await warden.approve(signer, src, amountIn);
  console.log("Tx Hash:", tx.hash);
  await tx.wait();

  // Perform a swap!
  console.log("Swapping...");
  tx = await warden.swap(signer, src, dest, amountIn, minDestAmount, quote);
  console.log("Tx Hash:", tx.hash);
  await tx.wait();
  console.log("Swapped!");
}

swapWithWarden();

Available Functions

Address of native currencies e.g. BNB, MATIC, ETH are represented as 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE

Warden SDK is already available for public use. To participate in the profit sharing program, please submit the form here:

Warden Router Contract:

Warden Router Contract:

Warden Router Contract:

Warden Router Contract:

Warden Router Contract:

Warden Router Contract:

For testing without using actual tokens, see section.

In order to use your own implementation to perform swap, ABI of WardenSwap contract can be found at etherscan links in section.

Available functions can be found in Section

https://forms.gle/qZfiW67SNvRKRL7h8
0x39f97198c5DbC193EB962c4B3B7e447091A18eAB
0x451ef8D6B645a60115EB8b8bEa76B39C0C761004
0x030B8b7bF245E762736e65c0903295447B898c30
0x5EF960Eb78B8CFc11e654D03BeEB313BaDF5C7C0
0x7EA8c22E6Dcd7bd69eb180664Da68e1f1F11D696
0x79A556ef2c5b613dB3DFa8797E6772c5AAF86834
Testing
Ethereum Token List
BSC Token List
Polygon Token List
Avalanche Token List
Arbitrum Token List
Optimism Token List
Reference
Supported Chains