eulith-web3js
Version:
Official Eulith Typescript client library
100 lines (99 loc) • 4.16 kB
TypeScript
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;
}
}