Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

alex-sdk

Package Overview
Dependencies
Maintainers
0
Versions
43
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

alex-sdk

Alex-SDK is an easy-to-use library that exposes the swap functionality from [alexlab.co](https://app.alexlab.co/swap) to be integrated into any app or wallet. It enables users to perform swaps with a wide variety of supported currencies.

  • 2.1.4
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
172
decreased by-64.75%
Maintainers
0
Weekly downloads
 
Created
Source

Alex-SDK

Alex-SDK is an easy-to-use library that exposes the swap functionality from alexlab.co to be integrated into any app or wallet. It enables users to perform swaps with a wide variety of supported currencies.

Methods

fetchSwappableCurrency()

Fetches the list of currencies that can be swapped on the DEX.

  • Returns: Promise<TokenInfo[]> - A promise that resolves to an array of TokenInfo objects, representing the swappable currencies.

getAllPossibleRoutes(from: Currency, to: Currency)

Retrieves all possible routes for swapping from one currency to another.

  • Parameters:

    • from: Currency - The currency to swap from.
    • to: Currency - The currency to swap to.
  • Returns: Promise<AMMRoute[]> - A promise that resolves to an array of AMMRoute objects, representing all possible routes for the swap.

getRoute(from: Currency, to: Currency)

Retrieves the best route for swapping from one currency to another.

  • Parameters:

    • from: Currency - The currency to swap from.
    • to: Currency - The currency to swap to.
  • Returns: Promise<AMMRoute> - A promise that resolves to an AMMRoute object, representing the best route for the swap.

getWayPoints(route: AMMRoute)

Displays the detailed route information.

  • Parameters:

    • route: AMMRoute - The route to display.
  • Returns: Promise<TokenInfo[]> - A promise that resolves to an array of TokenInfo objects, representing the detailed information of the route.

getFeeRate(from: Currency, to: Currency, customRoute?: AMMRoute)

Calculates the fee rate for a swap between two currencies.

  • Parameters:

    • from: Currency - The currency to swap from.
    • to: Currency - The currency to swap to.
    • customRoute?: AMMRoute - An optional custom route for the swap.
  • Returns: Promise<bigint> - A promise that resolves to a bigint representing the fee rate for the swap.

getAmountTo(from: Currency, fromAmount: bigint, to: Currency, customRoute?: AMMRoute)

Calculates the amount of the destination currency that will be received for a given amount of the source currency.

  • Parameters:

    • from: Currency - The currency to swap from.
    • fromAmount: bigint - The amount of the source currency to swap.
    • to: Currency - The currency to swap to.
    • customRoute?: AMMRoute - An optional custom route for the swap.
  • Returns: Promise<bigint> - A promise that resolves to a bigint representing the amount of the destination currency that will be received.

runSwap(stxAddress: string, currencyX: Currency, currencyY: Currency, fromAmount: bigint, minDy: bigint, customRoute?: AMMRoute)

Executes a swap transaction between two currencies.

  • Parameters:

    • stxAddress: string - The Stacks (STX) address to execute the swap from.
    • currencyX: Currency - The currency to swap from.
    • currencyY: Currency - The currency to swap to.
    • fromAmount: bigint - The amount of the source currency to swap.
    • minDy: bigint - The minimum amount of the destination currency to receive.
    • customRoute?: AMMRoute - An optional custom route for the swap.
  • Returns: Promise<TxToBroadCast> - A promise that resolves to a TxToBroadCast object, representing the transaction to be broadcasted.

getLatestPrices()

Retrieves the latest prices for all supported currencies.

  • Returns: Promise<Partial<{ [currency in Currency]: number }>> - A promise that resolves to an object containing the latest prices for each currency.

getBalances(stxAddress: string)

Retrieves the balances of all supported currencies for a given Stacks (STX) address.

  • Parameters:

    • stxAddress: string - The Stacks (STX) address to retrieve the balances for.
  • Returns: Promise<Partial<{ [currency in Currency]: bigint }>> - A promise that resolves to an object containing the balances of each currency for the given address.

Usage

import { AlexSDK, Currency } from 'alex-sdk';

const alex = new AlexSDK();

(async () => {
  // Get swap fee between STX and ALEX
  const feeRate = await alex.getFeeRate(Currency.STX, Currency.ALEX);
  console.log('Swap fee:', feeRate);

  // Get the route for swapping STX to ALEX
  const route = await alex.getRoute(Currency.STX, Currency.ALEX);
  const routeDisplay = await alex.getWayPoints(route);
  console.log('Route:', routeDisplay.map((x) => x.name).join(' -> '));

  // Get the amount of USDA that will be received when swapping 100 ALEX
  const amountTo = await alex.getAmountTo(
    Currency.STX,
    BigInt(100 * 1e8), // all decimals are multiplied by 1e8
    Currency.ALEX
  );
  console.log('Amount to receive:', Number(amountTo) / 1e8);

  // To get the transaction to broadcast
  const tx = await alex.runSwap(
    stxAddress,
    Currency.STX,
    Currency.ALEX,
    BigInt(Number(amount) * 1e8),
    BigInt(0)
  );

  // Then broadcast the transaction yourself
  await openContractCall(tx);
})();

There is a fully working example in the alex-sdk-example

Contributing

Contributions to the project are welcome. Please fork the repository, make your changes, and submit a pull request. Ensure your changes follow the code style and conventions used

FAQs

Package last updated on 04 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc