mirror of
https://github.com/alexgo-io/alex-sdk.git
synced 2026-01-12 06:14:21 +08:00
Merge pull request #6 from CoinFabrik/docs/refactor-readme-apidoc-aside
Docs/refactor readme api-doc aside
This commit is contained in:
136
README.md
136
README.md
@@ -2,125 +2,37 @@
|
||||
|
||||
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.
|
||||
|
||||
## Supported Currencies
|
||||
|
||||
The SDK supports the following currencies:
|
||||
|
||||
```typescript
|
||||
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',
|
||||
}
|
||||
```
|
||||
|
||||
## Functions
|
||||
|
||||
The AlexSDK class includes the following functions:
|
||||
|
||||
```typescript
|
||||
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[]): Promise<TxToBroadCast>;
|
||||
getLatestPrices(): Promise<Partial<{ [currency in Currency]: number }>>;
|
||||
getBalances(stxAddress: string): Promise<Partial<{ [currency in Currency]: bigint }>>;
|
||||
fetchSwappableCurrency(): Promise<TokenInfo[]>;
|
||||
}
|
||||
```
|
||||
|
||||
### getFee
|
||||
Rate
|
||||
Get the swap fee (liquidity provider fee) between two currencies.
|
||||
|
||||
```typescript
|
||||
async function getFeeRate(from: Currency, to: Currency): Promise<bigint>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `No AMM pools in route`, `Too many AMM pools in route`, `Error calling read-only function`.
|
||||
|
||||
### getRouter
|
||||
|
||||
Get the router path for swapping between two currencies.
|
||||
|
||||
```typescript
|
||||
async function getRouter(from: Currency, to: Currency): Promise<Currency[]>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `Can't find route`.
|
||||
|
||||
### getAmountTo
|
||||
|
||||
Get the amount of destination currency that will be received when swapping from one currency to another.
|
||||
|
||||
```typescript
|
||||
async function getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `No AMM pool found for the given route`, `Too many AMM pools in route`, `Error calling read-only function`.
|
||||
|
||||
|
||||
### runSwap
|
||||
|
||||
Perform a swap between two currencies using the specified route and amount.
|
||||
|
||||
```typescript
|
||||
function runSwap(stxAddress: string, currencyX: Currency, currencyY: Currency,
|
||||
fromAmount: bigint, minDy: bigint, router: Currency[]): Promise<TxToBroadCast>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `Can't find AMM route`, `Token mapping not found`, `Too many AMM pools in route`.
|
||||
|
||||
### getLatestPrices
|
||||
|
||||
This function fetches the current price data for all supported tokens. It returns an object where the keys are the currency identifiers (as defined in the `Currency` enum) and the values are the corresponding prices in USD.
|
||||
|
||||
```typescript
|
||||
async function getLatestPrices(): Promise<Partial<{ [currency in Currency]: number }>>;
|
||||
```
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
### getBalances
|
||||
|
||||
This function fetches the current balances of all supported tokens for a specified STX address. It returns an object where the keys are the currency identifiers (as defined in the `Currency` enum) and the values are the corresponding balances as `bigint` values.
|
||||
|
||||
```typescript
|
||||
async function getBalances(stxAddress: string): Promise<Partial<{ [currency in Currency]: bigint }>>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
|
||||
### fetchSwappableCurrency
|
||||
|
||||
This function returns an array of `TokenInfo` objects, each containing detailed information about a supported swappable currency.
|
||||
|
||||
```typescript
|
||||
function fetchSwappableCurrency(): Promise<TokenInfo[]>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
You can install Alex-SDK using npm:
|
||||
You can install Alex-SDK using npm:
|
||||
|
||||
```bash
|
||||
npm install alex-sdk
|
||||
```
|
||||
|
||||
## Currencies and API
|
||||
|
||||
The AlexSDK class includes the following currencies and functions:
|
||||
|
||||
```typescript
|
||||
export enum Currency {
|
||||
ALEX, USDA, STX, BANANA, XBTC, DIKO,
|
||||
SLIME, XUSD, MIA, NYCC, CORGI,
|
||||
}
|
||||
|
||||
export declare class AlexSDK {
|
||||
fetchSwappableCurrency(): Promise<TokenInfo[]>;
|
||||
getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
|
||||
getBalances(stxAddress: string): Promise<Partial<{ [currency in Currency]: bigint }>>;
|
||||
getFeeRate(from: Currency, to: Currency): Promise<bigint>;
|
||||
getLatestPrices(): Promise<Partial<{ [currency in Currency]: number }>>;
|
||||
getRouter(from: Currency, to: Currency): Promise<Currency[]>;
|
||||
runSwap(stxAddress: string, currencyX: Currency,
|
||||
currencyY: Currency, fromAmount: bigint,
|
||||
minDy: bigint, router: Currency[]): Promise<TxToBroadCast>;
|
||||
}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
To use the AlexSDK, you can import it into your project and instantiate a new object:
|
||||
|
||||
111
documentation.md
Normal file
111
documentation.md
Normal file
@@ -0,0 +1,111 @@
|
||||
# API documentation
|
||||
|
||||
## Supported Currencies
|
||||
|
||||
The SDK supports the following currencies:
|
||||
|
||||
```typescript
|
||||
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',
|
||||
}
|
||||
```
|
||||
|
||||
## Functions
|
||||
|
||||
The AlexSDK class includes the following functions:
|
||||
|
||||
```typescript
|
||||
export declare class AlexSDK {
|
||||
fetchSwappableCurrency(): Promise<TokenInfo[]>;
|
||||
getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
|
||||
getBalances(stxAddress: string): Promise<Partial<{ [currency in Currency]: bigint }>>;
|
||||
getFeeRate(from: Currency, to: Currency): Promise<bigint>;
|
||||
getLatestPrices(): Promise<Partial<{ [currency in Currency]: number }>>;
|
||||
getRouter(from: Currency, to: Currency): Promise<Currency[]>;
|
||||
runSwap(stxAddress: string, currencyX: Currency,
|
||||
currencyY: Currency, fromAmount: bigint,
|
||||
minDy: bigint, router: Currency[]): Promise<TxToBroadCast>;
|
||||
}
|
||||
```
|
||||
|
||||
### fetchSwappableCurrency
|
||||
|
||||
This function returns an array of `TokenInfo` objects, each containing detailed information about a supported swappable currency.
|
||||
|
||||
```typescript
|
||||
function fetchSwappableCurrency(): Promise<TokenInfo[]>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
### getAmountTo
|
||||
|
||||
Get the amount of destination currency that will be received when swapping from one currency to another.
|
||||
|
||||
```typescript
|
||||
async function getAmountTo(from: Currency, fromAmount: bigint, to: Currency): Promise<bigint>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `No AMM pool found for the given route`, `Too many AMM pools in route`, `Error calling read-only function`.
|
||||
|
||||
### getBalances
|
||||
|
||||
This function fetches the current balances of all supported tokens for a specified STX address. It returns an object where the keys are the currency identifiers (as defined in the `Currency` enum) and the values are the corresponding balances as `bigint` values.
|
||||
|
||||
```typescript
|
||||
async function getBalances(stxAddress: string): Promise<Partial<{ [currency in Currency]: bigint }>>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
### getFee
|
||||
Rate
|
||||
Get the swap fee (liquidity provider fee) between two currencies.
|
||||
|
||||
```typescript
|
||||
async function getFeeRate(from: Currency, to: Currency): Promise<bigint>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `No AMM pools in route`, `Too many AMM pools in route`, `Error calling read-only function`.
|
||||
|
||||
|
||||
### getLatestPrices
|
||||
|
||||
This function fetches the current price data for all supported tokens. It returns an object where the keys are the currency identifiers (as defined in the `Currency` enum) and the values are the corresponding prices in USD.
|
||||
|
||||
```typescript
|
||||
async function getLatestPrices(): Promise<Partial<{ [currency in Currency]: number }>>;
|
||||
```
|
||||
Possible exceptions: `Failed to fetch token mappings`.
|
||||
|
||||
|
||||
### getRouter
|
||||
|
||||
Get the router path for swapping between two currencies.
|
||||
|
||||
```typescript
|
||||
async function getRouter(from: Currency, to: Currency): Promise<Currency[]>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `Can't find route`.
|
||||
|
||||
### runSwap
|
||||
|
||||
Perform a swap between two currencies using the specified route and amount.
|
||||
|
||||
```typescript
|
||||
function runSwap(stxAddress: string, currencyX: Currency, currencyY: Currency,
|
||||
fromAmount: bigint, minDy: bigint, router: Currency[]): Promise<TxToBroadCast>;
|
||||
```
|
||||
|
||||
Possible exceptions: `Failed to fetch token mappings`, `Can't find AMM route`, `Token mapping not found`, `Too many AMM pools in route`.
|
||||
Reference in New Issue
Block a user