Decrease Position
The decreasePosition
function allows users to reduce the size of an existing position.
Function Signature
decreasePosition(
pcpId: string,
collateralToken: string,
indexToken: string,
amount: bigint,
long: boolean,
indexPrice: number,
collateralPrice: number,
isTriggerOrder?: boolean,
isTakeProfitOrder?: boolean,
isIocOrder?: boolean,
pricesSlippage?: number,
collateralSlippage?: number,
relayerFee?: bigint
): Promise<TransactionBlock>
Parameters
pcpId
: The ID of the position to decreasecollateralToken
: The token used as collateral (e.g., "USDC")indexToken
: The token used as the market index (e.g., "BTC")amount
: The amount to decrease the position bylong
: Boolean indicating if this is a long (true) or short (false) positionindexPrice
: The current price of the index tokencollateralPrice
: The current price of the collateral tokenisTriggerOrder
: Boolean indicating if this is a trigger order (default: false)isTakeProfitOrder
: Boolean indicating if this is a take profit order (default: true)isIocOrder
: Boolean indicating if this is an IOC (Immediate-or-Cancel) order (default: false)pricesSlippage
: Maximum allowed slippage for prices (default: 0.003 or 0.3%)collateralSlippage
: Maximum allowed slippage for collateral (default: 0.5 or 50%)relayerFee
: Fee paid to the relayer (default: 1)
Return Value
Returns a Promise
that resolves to a TransactionBlock
object.
Usage Example
const tx = await sudoAPI.decreasePosition(
'0x123...', // pcpId
'USDC', // collateralToken
'BTC', // indexToken
BigInt(500000), // amount (0.5 BTC if BTC has 6 decimals)
true, // long position
50000, // indexPrice (BTC price in USD)
1, // collateralPrice (USDC price in USD)
false, // not a trigger order
true, // is a take profit order
false, // not an IOC order
0.001, // pricesSlippage (0.1%)
0.1, // collateralSlippage (10%)
BigInt(2) // relayerFee
);
Last updated