Product
Introducing SSO
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
alex-sdk
Advanced tools
Alex-SDK is a 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.
Readme
Alex-SDK is a 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.
The SDK supports the following currencies:
export enum Currency {
ALEX = 'age000-governance-token',
USDA = 'token-wusda',
STX = 'token-wstx',
BANANA = 'token-wban',
XBTC = 'token-wbtc',
DIKO = 'token-wdiko',
SLIME = 'token-wslm',
XUSD = 'token-wxusd',
MIA = 'token-wmia',
NYCC = 'token-wnycc',
CORGI = 'token-wcorgi',
}
The AlexSDK class includes the following functions:
export declare class AlexSDK {
getFeeRate(from: Currency, to: Currency): Promise<bigint>;
getRouter(from: Currency, to: Currency): Promise<Currency[]>;
getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
runSwap(stxAddress: string, currencyX: Currency, currencyY: Currency, fromAmount: bigint, minDy: bigint, router: Currency[]): TxToBroadCast;
getCurrencyFrom(address: string): Currency | undefined;
getLatestPrices(): Promise<
Partial<{
[currency in Currency]: number;
}>
>
}
Rate Get the swap fee (liquidity provider fee) between two currencies.
async function getFeeRate(from: Currency, to: Currency): Promise<bigint>;
Get the router path for swapping between two currencies.
async function getRouter(from: Currency, to: Currency): Promise<Currency[]>;
Get the amount of destination currency that will be received when swapping from one currency to another.
async function getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
Perform a swap between two currencies using the specified route and amount.
function runSwap(stxAddress: string, currencyX: Currency, currencyY: Currency, fromAmount: bigint, minDy: bigint, router: Currency[]): TxToBroadCast;
Get the corresponding currency for a given address.
function getCurrencyFrom(address: string): Currency | undefined;
Get the corresponding currency for a given address.
function getAddressFrom(currency: Exclude<Currency, Currency.STX>): string;
Get a list of token prices from Alex's price endpoint
getLatestPrices(): Promise<
Partial<{
[currency in Currency]: number;
}>
>
It will do it's best to find the price, and where it can't, it will return undefined.
Check if a transaction is a swap transaction from Alex
function isAlexSwapTransaction(deployer: string, contractName: string, functionName: string): boolean;
Broadcast a sponsored transaction to Alex's sponsored tx services
function broadcastSponsoredTx(txRaw: string): Promise<string>;
Check if alex's swap sponsor service is activated
function isSponsoredSwapEnabled(): Promise<boolean>;
You can install Alex-SDK using npm:
npm install alex-sdk
To use the AlexSDK, you can import it into your project and instantiate a new object:
import { AlexSDK, Currency } from 'alex-sdk';
const alex = new AlexSDK();
(async () => {
// Get swap fee between ALEX and USDA
const feeRate = await alex.getFeeRate(Currency.ALEX, Currency.USDA);
console.log('Swap fee:', feeRate);
// Get the router path for swapping ALEX to USDA
const router = await alex.getRouter(Currency.ALEX, Currency.USDA);
console.log('Router path:', router);
// Get the amount of USDA that will be received when swapping 100 ALEX
const amountTo = await alex.getAmountTo(
Currency.ALEX,
BigInt(100),
Currency.USDA
);
console.log('Amount to receive:', amountTo);
// To get the transaction to broadcast
const tx = await alex.runSwap(
stxAddress,
Currency.ALEX,
Currency.USDA,
BigInt(Number(amount) * 1e8),
BigInt(0),
router
);
// Then broadcast the transaction yourself
await openContractCall(tx);
})();
There is a fully working example in the alex-sdk-example
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
Alex-SDK is a 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.
The npm package alex-sdk receives a total of 273 weekly downloads. As such, alex-sdk popularity was classified as not popular.
We found that alex-sdk demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Product
Streamline your login process and enhance security by enabling Single Sign-On (SSO) on the Socket platform, now available for all customers on the Enterprise plan, supporting 20+ identity providers.
Security News
Tea.xyz, a crypto project aimed at rewarding open source contributions, is once again facing backlash due to an influx of spam packages flooding public package registries.
Security News
As cyber threats become more autonomous, AI-powered defenses are crucial for businesses to stay ahead of attackers who can exploit software vulnerabilities at scale.