UNPKG

eulith-web3js

Version:

Official Eulith Typescript client library

100 lines (99 loc) 4.16 kB
import { TransactionConfig } from "web3-core"; import * as Eulith from "./index"; export declare module Gmx { const GLP_DECIMALS = 18; const PRICE_PRECISION_DECIMALS = 30; interface GmxPositionRequest { collateralToken: string; indexToken: string; isLong: boolean; } interface GmxPosition { collateralTokenAddress: string; indexTokenAddress: string; isLong: boolean; positionSizeDenomUsd: number; collateralSizeDenomUsd: number; entryPriceDenomUsd: number; realizedPnL: number; hasProfit: boolean; liquidationPriceDenomUsd: number; currentDeltaDenomUsd: number; } function getPositions(provider: Eulith.Provider, wallet: string, requests: GmxPositionRequest[]): Promise<GmxPosition[]>; interface GmxSwapRequest { sellToken: string; buyToken: string; amountIn: number; slippage: number; recipient?: string; approveErc: boolean; } interface GmxSwap { price: number; fee: number; tx: TransactionConfig; } function swap(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: GmxSwapRequest, gmxAddresses?: GmxAddresses): Promise<GmxSwap>; function getStakedGlpBalance(ew3: Eulith.Web3, address: string, gmxAddresses?: GmxAddresses): Promise<number>; interface MintGlpResponse { minGlp: number; minUsdValue: number; txs: TransactionConfig[]; } function mintGlp(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, payIn: Eulith.Contracts.ERC20TokenContract, payAmount: number, slippage?: number): Promise<MintGlpResponse>; interface RedeemGlpRequest { receiveToken: Eulith.Contracts.ERC20TokenContract; glpAmount: bigint; minReceiveToken?: number; recipient?: string; } function redeemGlp(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: RedeemGlpRequest, gmxAddresses?: GmxAddresses): Promise<TransactionConfig>; interface IncreasePositionRequest { positionToken: Eulith.Contracts.ERC20TokenContract; collateralToken: Eulith.Contracts.ERC20TokenContract; trueForLong: boolean; collateralAmountIn: number; leverage?: number; approveErc?: boolean; } function increasePosition(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: IncreasePositionRequest, gmxAddresses?: GmxAddresses): Promise<string>; interface DecreasePositionRequest { positionToken: Eulith.Contracts.ERC20TokenContract; collateralToken: Eulith.Contracts.ERC20TokenContract; trueForLong: boolean; decreaseCollateral: number; decreaseExposure: number; recipient?: string; } function decreasePosition(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: DecreasePositionRequest, gmxAddresses?: GmxAddresses): Promise<string>; interface IncreaseOrderRequest { positionToken: Eulith.Contracts.ERC20TokenContract; payToken: Eulith.Contracts.ERC20TokenContract; trueForLong: boolean; amountIn: number; sizeDeltaUsd: number; limitPriceUsd: number; approveErc: boolean; } function createIncreaseOrder(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: IncreaseOrderRequest, gmxAddresses?: GmxAddresses): Promise<string>; interface DecreaseOrderRequest { positionToken: Eulith.Contracts.ERC20TokenContract; collateralToken: Eulith.Contracts.ERC20TokenContract; sizeDeltaUsd: number; collateralDeltaUsd: number; trueForLong: boolean; limitPriceUsd: number; } function createDecreaseOrder(ew3: Eulith.Web3, signer: Eulith.Signing.SigningService, request: DecreaseOrderRequest, gmxAddresses?: GmxAddresses): Promise<string>; interface GmxAddresses { router: string; reader: string; vault: string; rewardRouter: string; glpManager: string; positionRouter: string; rewardTracker: string; orderbook: string; } }