UNPKG

@rholabs/rho-sdk

Version:

Rho Protocol SDK

112 lines (90 loc) 2.97 kB
import { BrowserProvider, JsonRpcSigner, JsonRpcProvider } from 'ethers' import { LiquidityOperation, OraclePackage, RiskDirection } from './typings' export type RhoSDKNetwork = 'mainnet' | 'testnet' | 'devnet' | 'custom' export interface RhoSDKParams { network?: RhoSDKNetwork routerAddress?: string viewAddress?: string quoterAddress?: string rpcUrl?: string oracleServiceUrl?: string | string[] privateKey?: string provider?: JsonRpcProvider | BrowserProvider signer?: JsonRpcSigner } export interface RhoSDKConfig extends RhoSDKParams { routerAddress: string viewAddress: string quoterAddress: string rpcUrl: string oracleServiceUrl: string | string[] } export interface OraclePackagesParams { oraclePackages?: OraclePackage[] } export interface PaginationParams { offset?: number limit?: number } export interface UserPaginationParams extends PaginationParams { userAddress: string } export interface UserOracleParams extends OraclePackagesParams { userAddress: string } export interface UserOraclePaginationParams extends UserOracleParams, PaginationParams {} export interface OraclePaginationParams extends OraclePackagesParams, PaginationParams {} export interface MarketOracleParams extends OraclePackagesParams { marketId: string } export interface MarketUserOracleParams extends UserOracleParams, MarketOracleParams {} export interface MarketFutureOracleParams extends OraclePackagesParams { marketId: string futureId: string } export interface MarketFutureOraclePaginationParams extends MarketFutureOracleParams, PaginationParams {} export interface FutureMarketUserOracleParams extends MarketUserOracleParams { futureId: string } export interface TradeQuoteParams extends FutureMarketUserOracleParams { notional: bigint } export interface LiquidityPositionQuoteParams extends TradeQuoteParams { operation: LiquidityOperation lowerBound: string upperBound: string } export interface LiquidatePositionParams extends MarketUserOracleParams { futureIds: string[] positionsPercentage: string[] settleMaturedPositions?: boolean } export interface ExecuteTradeParams extends MarketFutureOracleParams { riskDirection: RiskDirection notional: bigint futureRateLimit: bigint depositAmount: bigint deadline?: number settleMaturedPositions?: boolean } export interface DepositParams extends MarketUserOracleParams { amount: bigint settleMaturedPositions?: boolean } export interface WithdrawParams extends MarketOracleParams { amount: bigint unwrapNativeToken?: boolean settleMaturedPositions?: boolean } export interface LiquidityOperationParams extends MarketFutureOracleParams { notional: bigint collateral: string lowerBound: string upperBound: string deadline?: number settleMaturedPositions?: boolean } export interface TransferPositionsOwnershipParams extends MarketUserOracleParams { depositAmount: bigint settleMaturedPositions?: boolean }