LogoLogo
Website
  • πŸ‘‹Welcome to Velar
  • Overview
    • πŸ’‘Introduction
    • πŸ›£οΈRoadmap
    • ✨Architecture
  • Getting Started
    • πŸ’»How to Use Velar Products
    • 🌊Providing Liquidity
    • 🚜Yield Farming
    • πŸ”Staking $VELAR Tokens
    • 🧩Building Integrations
    • 🀹Giving Feedback
    • πŸ‘‹Joining Community Channels
  • Velar PerpDex
    • πŸŽ›οΈCore Concepts
    • 🟧Stacks
    • πŸŸ₯Mezo (Coming Soon)
  • Velar Versions
    • ☸️Velar Dharma
      • Automated Market Maker (AMM)
      • Liquidity Pools & Yield Farming
      • IDO Launchpad
      • Bridge
      • MemeStacker
    • πŸ’‘Velar Artha
      • πŸ“ŠPerpetual Swaps
      • 🚿Concentrated Liquidity
      • πŸŒ‰Cross-Chain Bridge
    • πŸ›£οΈVelar Kama
    • ✨Velar Moksha
  • Audits
    • πŸ’‘Introduction
    • πŸ›£οΈAMM Audit on Clarity
    • 🚊PerpDex Audit on Clarity
    • πŸš‰PerpDex Audit on EVM
  • Token
    • πŸ’‘Introduction
    • πŸŽ›οΈTokenomics
    • πŸ“’Vesting Contracts
    • πŸͺœEmission
  • Developers
    • πŸ”¨Contract Addresses
    • πŸ”©Velar SDK
      • Velar SDK 0.7.0-beta [Latest]
      • Velar SDK 0.6.9
    • πŸ”¬Velar API
    • πŸ”₯Velar Verified Burner Contract
    • Velar Assets
  • Velar Executive Leadership
    • ♣️CEO - Mithil Thakore
    • ♠️CMO - Peter Watson
Powered by GitBook
On this page
  • Velar SDK Types:
  • VELAR SDK Interface:
  • Swap:
  • Available tokens:

Was this helpful?

  1. Developers
  2. Velar SDK

Velar SDK 0.7.0-beta [Latest]

Installation:

npm i @velarprotocol/velar-sdk

Velar SDK Types:

  import { ContractPrincipalCV, PostCondition, PostConditionMode, UIntCV } from "@stacks/transactions";

  export interface SwapConfig {
      account: string;
      inToken: string;  // Token Symbol or Token Contract Address
      outToken: string; // Token Symbol or Token Contract Address
  }

  export interface ISwapService {
    swap(args: SwapPayload): Promise<SwapResponse>;
    getComputedAmount(args: ComputedAmountPayload): Promise<AmountOutResponse>;
  }

  export interface ComputedAmountPayload {
    amount: Number;
    slippage?: Number;
  }

  interface DestinationToken {
    symbol: string,
    contractAddress: string,
    tokenDecimalNum: Number,
    assetName: string,
  }

  export interface AmountOutResponse {
    value: Number,
    amountOut: Number // raw amount out
    path: Array<string> // route contract addresses
    path2: Array<string> // route symbols
    destinationToken: { symbol: string,  contractAddress: string,  tokenDecimalNum: Number,  assetName: string } // destination token details
    amountOutDecimal: Number // amountOutWithDecimals
    route?: Array<string>, // multihop optimal route
    result?: any // multihop routes results
  }

  export interface SwapResponse {
    contractAddress: string,
    contractName: string,
    functionName: string,
    functionArgs: [
      UIntCV,                  // pool id
      ContractPrincipalCV,    // pool token0 address
      ContractPrincipalCV,    // pool token1 address
      ContractPrincipalCV,    // in token address
      ContractPrincipalCV,    // out token address
      ContractPrincipalCV,    // staking contract
      UIntCV,                 // amount in
      UIntCV                  // amount out
    ],
    postConditions: Array<PostCondition>,
    postConditionMode: PostConditionMode,
  }

  export declare class SwapService {
    constructor(args: SwapConfig);
    swap(args: SwapPayload): Promise<SwapResponse>;
    getComputedAmount(args: ComputedAmountPayload): Promise<AmountOutResponse>;
  }

VELAR SDK Interface:

  export declare class VelarSDK {
    getPairs (symbol: string): Promise<Array<string>>;
    getSwapInstance(args: SwapConfig): SwapService;
  }

Swap:

import {
  VelarSDK,
  getTokens,
  ISwapService,
  SwapResponse,
} from '@velarprotocol/velar-sdk';
import { openContractCall } from '@stacks/connect';

const sdk = new VelarSDK();

async () => {
  const account = '';
  // setup swap instance
  const swapInstance: ISwapService = await sdk.getSwapInstance({
    account: account,
    inToken: 'SP1Y5YSTAHZ88XYK1VPDH24GY0HPX5J4JECTMY4A1.wstx',
    outToken: 'SP1Y5YSTAHZ88XYK1VPDH24GY0HPX5J4JECTMY4A1.velar-token',
  });

  // to display amount out
  const amount: AmountOutResponse = await swapInstance.getComputedAmount({
    amount: 10,
  });

  // get swap calculated arguments for contract call
  const swapOptions: SwapResponse = await swapInstance.swap({
    amount: 10,
  });

  // build options for contract call
  const options = {
    ...swapOptions,
    network: AppService.getNetwork(),
    appDetails: AppService.getAppDetails(),
    anchorMode: AnchorMode.Any,
    onFinish: data => {},
    onCancel: ex => {},
  };

  // open contract call
  await openContractCall(options);
};

Available tokens:

PreviousVelar SDKNextVelar SDK 0.6.9

Last updated 3 months ago

Was this helpful?

For more detailed information and additional functions, please refer to the npm library .

πŸ”©
https://sdk-beta.velar.network/tokens/symbols
here