import EventEmitter from 'eventemitter3'; import ICollateralPool from '../interfaces/models/ICollateralPool'; import IPositionService from '../interfaces/services/IPositionService'; import { DefaultProvider } from '../types'; export default class PositionService implements IPositionService { provider: DefaultProvider; chainId: number; emitter: EventEmitter; private _abiCoder; private _stableCoinProxyActionInterface; private _stableCoinProxyActionInterfaceMethodNames; constructor(provider: DefaultProvider, chainId: number); /** * Create new position, lock collateral in contract and mint FXD stable coin. (Native token) * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - amount of collateral * @param fathomToken - amount for mint FXD stable coin. */ openPosition(address: string, pool: ICollateralPool, collateral: string, fathomToken: string): Promise; /** * Create new position, lock collateral in contract and mint FXD stable coin. (ERC20 token) * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - amount of collateral * @param fathomToken - amount for mint FXD stable coin. */ openPositionERC20(address: string, pool: ICollateralPool, collateral: string, fathomToken: string): Promise; /** * Add extra collateral to existing position or/and mint more FXD stable coin. * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - add extra collateral for existing position. * @param fathomToken - mint additional FXD stable coin. * @param positionId - existing position id. */ topUpPositionAndBorrow(address: string, pool: ICollateralPool, collateral: string, fathomToken: string, positionId: string): Promise; /** * Add extra collateral to existing position or/and mint more FXD stable coin. (ERC20 token) * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - add extra collateral for existing position. * @param fathomToken - mint additional FXD stable coin. * @param positionId - existing position id. */ topUpPositionAndBorrowERC20(address: string, pool: ICollateralPool, collateral: string, fathomToken: string, positionId: string): Promise; /** * Add extra collateral to existing position. * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - add extra collateral for existing position without extra mint FXD stable coin. * @param positionId - existing position id. */ topUpPosition(address: string, pool: ICollateralPool, collateral: string, positionId: string): Promise; /** * Add extra collateral to existing position. (ERC20) * @param address - wallet address. Create or get proxy wallet for provided address. * @param pool - collateral pool model. * @param collateral - add extra collateral for existing position without extra mint FXD stable coin. * @param positionId - existing position id. */ topUpPositionERC20(address: string, pool: ICollateralPool, collateral: string, positionId: string): Promise; /** * Create proxy wallet for provided wallet address. * @param address - wallet address. */ createProxyWallet(address: string): Promise; /** * Repay full position and unlock all collateral, burn FXD stable coin. * @param positionId - existing position id. * @param pool - collateral pool model. * @param address - wallet address. * @param collateral - amount of collateral which will unlock after repay. */ closePosition(positionId: string, pool: ICollateralPool, address: string, collateral: string): Promise; /** * Repay full position and unlock all collateral, burn FXD stable coin. (ERC20) * @param positionId - existing position id. * @param pool - collateral pool model. * @param address - wallet address. * @param collateral - amount of collateral which will unlock after repay. */ closePositionERC20(positionId: string, pool: ICollateralPool, address: string, collateral: string): Promise; /** * Partly repay position and unlock collateral, burn FXD stable coin. * @param positionId - existing position id. * @param pool - collateral pool model. * @param address - wallet address. * @param stableCoin - amount of FXD stable coin for repay. * @param collateral - amount of collateral which will unlock after repay. */ partiallyClosePosition(positionId: string, pool: ICollateralPool, address: string, stableCoin: string, collateral: string): Promise; /** * Partly repay position and unlock collateral, burn FXD stable coin. (ERC20) * @param positionId - existing position id. * @param pool - collateral pool model. * @param address - wallet address. * @param stableCoin - amount of FXD stable coin for repay. * @param collateral - amount of collateral which will unlock after repay. */ partiallyClosePositionERC20(positionId: string, pool: ICollateralPool, address: string, stableCoin: string, collateral: string): Promise; /** * Approve ERC20 token. * @param address - wallet address * @param tokenAddress - ERC20 token to approve. */ approve(address: string, tokenAddress: string): Promise; /** * Check approved collateral token. * @param address - wallet address. * @param tokenAddress - ERC20 token address. * @param collateral - amount of collateral for check. */ approvalStatus(address: string, tokenAddress: string, collateral: string): Promise; /** * Check approved FXD stable coin for wallet address. * @param address - wallet address. */ approveStableCoin(address: string): Promise; /** * Return proxy wallet for provided wallet address. * @param address - wallet address */ getProxyWallet(address: string): any; /** * Return balance of FXD stable coin for provided wallet address. * @param address - wallet address. */ balanceStableCoin(address: string): any; /** * Check is approved stable coin is equal or greater than amount * @param amount - amount which should be approved * @param address - wallet address */ approvalStatusStableCoin(amount: string, address: string): Promise; /** * Get debtValue = debtShare * debtAccumulatedRate. * @param debtShare - debt share amount. * @param poolId - protocol pool id. */ getDebtValue(debtShare: number, poolId: string): Promise; /** * Return max borrow amount available for pool. * @param poolId - protocol pool id. */ getPositionDebtCeiling(poolId: string): Promise; /** * Is Decentralized mode enabled * @return boolean; */ isDecentralizedMode(): any; /** * Check is wallet address whitelisted. * @param address - wallet address. */ isWhitelisted(address: string): any; /** * Set JsonRpcProvider provider for service * @param provider - JsonRpcProvider provider */ setProvider(provider: DefaultProvider): void; /** * Set chainId * @param chainId */ setChainId(chainId: number): void; } //# sourceMappingURL=PositionService.d.ts.map