Cancel Positions
import { fromWei, SupportedChainId, toBN } from "@intentx/core";
import { CancelRequestHooks, TradingSDK } from "@intentx/trading-sdk";
import * as dotenv from "dotenv";
dotenv.config();
async function cancelPositionExample() {
const tradingSDK = new TradingSDK({
apiKey: process.env.API_KEY,
baseUrl: process.env.API_BASE_URL ?? undefined,
});
const positionIds = [128773, 128775, 128777, 128778];
const positionDetailsPromises = positionIds.map((positionId) =>
tradingSDK.tradeManager.getPositionInfo(
positionId.toString(),
SupportedChainId.BASE
)
);
const positionDetails = await Promise.all(positionDetailsPromises);
const cancelRequests = await Promise.all(
positionDetails.map(async (position, index) => {
const amountToClose = toBN(fromWei(position.quantity))
.minus(position.closedQuantity)
.toString();
const cancelRequest =
await tradingSDK.tradeManager.createCancelQuoteRequest({
quoteId: positionIds[index].toString(),
chainId: SupportedChainId.BASE,
});
cancelRequest.on(CancelRequestHooks.SUCCESS, (state, justification) => {
console.log(
`Position ${positionIds[index]} cancelled`,
state,
justification
);
});
cancelRequest.on(CancelRequestHooks.FAILED, (state, justification) => {
console.log(
`Position ${positionIds[index]} cancellation failed`,
state,
justification
);
});
return cancelRequest;
})
);
await Promise.all(
cancelRequests.map((request) => request.waitForCompletion())
);
}
cancelPositionExample()
.then(() => {
console.log("All positions cancelled");
})
.catch((error) => {
console.error("Error cancelling positions", error.message, error.code);
});
Last updated