0.0.2-rc11 • Published 9 months ago

@gainsnetwork/trading-sdk v0.0.2-rc11

Weekly downloads
-
License
ISC
Repository
-
Last release
9 months ago

Gains Network Trading SDK

Install

npm i --save @gainsnetwork/trading-sdk

Usage

Read methods

// import and initialize
import { TradingSDK, SupportedChainId } from "@gainsnetwork/trading-sdk";

const tradingSdk = new TradingSDK({ chainId: SupportedChainId.ArbitrumSepolia });
await tradingSdk.initialize();

// use tradingSdk methods
const state = await tradingSdk.getState();
const userTrades = await tradingSdk.getUserTrades("USER_ADDRESS");

Build methods

// import and initialize
import { TradingSDK, SupportedChainId } from "@gainsnetwork/trading-sdk";

const tradingSdk = new TradingSDK({ chainId: SupportedChainId.ArbitrumSepolia });
await tradingSdk.initialize();

// openTrade transaction arguments
const args = {
  user: "0x73b3A111C5BCCf9086c97B96e0AbAad69Dc4f523",
  pairIndex: 0, // BTC/USD
  collateralAmount: parseUnits("100", 6), // 100 USDC
  openPrice: 66108.8,
  long: true, // Long
  leverage: 2, // 2x
  tp: 363598.4,
  sl: 0,
  collateralIndex: 3, // USDC
  tradeType: 0, // Market
  maxSlippage: 1.02,
};

// build openTrade transaction data
const tx = await tradingSdk.build.openTrade(args);

// (optional) use multicall to batch multiple requests in a single transaction
const multicallTx = await tradingSdk.build.multicall([tx /*, tx2, tx3, ...*/])

Write methods

// import and initialize
import { Wallet } from "ethers";
import { TradingSDK, SupportedChainId } from "@gainsnetwork/trading-sdk";

const wallet = new Wallet("YOUR_PRIVATE_KEY");
const tradingSdk = new TradingSDK({
  chainId: SupportedChainId.ArbitrumSepolia,
  signer: wallet
});
await tradingSdk.initialize();

// openTrade transaction arguments
const args = {
  user: "0x73b3A111C5BCCf9086c97B96e0AbAad69Dc4f523",
  pairIndex: 0, // BTC/USD
  collateralAmount: parseUnits("100", 6), // 100 USDC
  openPrice: 66108.8,
  long: true, // Long
  leverage: 2, // 2x
  tp: 363598.4,
  sl: 0,
  collateralIndex: 3, // USDC
  tradeType: 0, // Market
  maxSlippage: 1.02,
};

// send openTrade transaction
const hash = await tradingSdk.write.openTrade(args);

Adapters

Use adapters when working with supported integrations:

// import and initialize
import { TradingSDK, SupportedChainId } from "@gainsnetwork/trading-sdk";
import { getMarkets, getPositions } from "@gainsnetwork/trading-sdk/lib/adapters/kwenta";
const tradingSdk = new TradingSDK(SupportedChainId.ArbitrumSepolia);
await tradingSdk.initialize();

// use tradingSdk methods
const state = await tradingSdk.getState();
const userTrades = await tradingSdk.getUserTrades("USER_ADDRESS");

// use adapter to get integration-ready data
const markets = getMarkets(state);
const positions = getPositions(state, userTrades);
0.0.2-rc11

9 months ago

0.0.2-rc10

9 months ago

0.0.2-rc9

9 months ago

0.0.2-rc8

9 months ago

0.0.2-rc7

9 months ago

0.0.2-rc6

9 months ago

0.0.2-rc5

9 months ago

0.0.2-rc4

9 months ago

0.0.2-rc3

9 months ago

0.0.2-rc2

9 months ago

0.0.2-rc1

9 months ago

0.0.1-rc6

9 months ago

0.0.1-rc5

10 months ago

0.0.1-rc4

10 months ago

0.0.1-rc3

10 months ago

0.0.1-rc2

10 months ago

0.0.1-rc1

10 months ago