@autonomysdk/perpaggregator
TypeScript icon, indicating that this package has built-in type declarations

0.8.8 • Public • Published

PerpAggregator

This project has typescript implementation of how we can interact with contracts and use it in UI

Sample Code


// import {  swapPath } from "./domain/synthetics/orders/swapPath";
// import { ARBITRUM, getRpcUrl } from "./config/chains";
// import { useMarketInfo } from "./domain/synthetics/markets/useMarketInfo";
// import { BigNumber, ethers } from "ethers";
// import { getGasPrice } from "./domain/synthetics/fees/useGasPrice";
// import { useGasLimits } from "./domain/synthetics/fees/useGasLimits";
// import { estimateExecuteIncreaseOrderGasLimit, getExecutionFee } from "./domain/synthetics/fees/utils/executionFee";
// import { GasLimitsConfig } from "./domain/synthetics/fees/types";
// import { createIncreaseOrder } from "./domain/synthetics/orders/createIncreaseOrder";
// import { getSwapPathStats } from "./domain/synthetics/trade/utils/swapStats";
// import { kuseSwapRoutes } from "./domain/synthetics/trade/useSwapRoute";
// import { cancelOrdersTxn } from "./domain/synthetics/orders/cancelOrder";

// async function bootstrap() {
//   const {marketsInfoData}=await useMarketInfo(ARBITRUM)
//   const marketAddress='0x47c031236e19d024b42f8AE6780E44A573170703'
//   const marketInfo = marketsInfoData[marketAddress];
//   console.log(marketInfo);
  
//   const url = getRpcUrl(ARBITRUM)?.[0];
//   const provider = new ethers.providers.JsonRpcProvider(url);
//   const privateKey = process.env.PRIVATE_KEY as string;
//   const wallet = new ethers.Wallet(privateKey, provider);
//   const execFee=await exec()
  // const swapP=['0x47c031236e19d024b42f8AE6780E44A573170703']
  // const swap= getSwapPathStats({
  //   marketsInfoData:marketsInfoData,
  //   swapPath:swapP,
  //   initialCollateralAddress:"0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f",
  //   wrappedNativeTokenAddress:"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1",
  //   usdIn: BigNumber.from('0x02034ea2c876458ba412da680000'),
  //   shouldApplyPriceImpact:false,
  //   shouldUnwrapNativeToken:false

  // })
 
  

  // const positionInfo ={
  //   isLong : false,
  //   sizeInUsd : BigNumber.from("188453000000000000000000000000000"),
  //   market: ethers.utils.getAddress("0x70d95587d40A2caf56bd97485aB3Eec10Bee6336"),
  //   collateralAmount:BigNumber.from("9930471606974805")
  // }
  const execFee=await exec()

  // const data   = await createClosePosition(marketInfo, wallet, ARBITRUM, positionInfo)
  // console.log('Hashs', data);

  const hashsx = await createDecreaseOrder(marketInfo, wallet, ARBITRUM,execFee)
  console.log('Hashs', hashsx);
  // const hash=await cancelOrdersTxn(ARBITRUM,wallet,['0x7d5c470655a19429153a1be5f3262b079e38025150fee56c67811a9ef5dcb1fc',
  // '0x2ac7d17d7f1f818866184ebff2a41b2788f3c635fdac308bdfac67490bfef621'],execFee)
  // console.log(hash);
  
  // const hash = await createIncreaseOrder(marketInfo,marketsInfoData, wallet, '0.0001', '10.00', ARBITRUM, '0.3', false, true,execFee,3,'0x2f2a2543B76A4166549F7aaB2e75Bef0aefC5B0f',"40000");
  // console.log('Hash', hash);



//   const { positionsInfoData } = await usePositionsInfo(ARBITRUM, {
//     account: wallet.address,
//     marketsInfoData: marketsInfoData,
//     tokensData: tokensData,
//     pricesUpdatedAt: pricesUpdatedAt,
//     showPnlInLeverage: true,
//   });

//   const parsedPosition = [];
//   for (const key in positionsInfoData) {
//     const position = positionsInfoData[key];
//     const poolName = getMarketPoolName(position.marketInfo);
//     const indexName = getMarketIndexName(position.marketInfo);
//     console.log("PPPPPP",position);
    
//     parsedPosition.push({
//       InitialCollateral: formatUsd(position.collateralUsd),
//       PnL: formatUsd(position.pnl),
//       PnLAfterFees: formatDeltaUsd(position.pnlAfterFees, position.pnlAfterFeesPercentage),
//       Market: position.marketAddress,
//       EntryPrice: formatUsd(position.entryPrice, { displayDecimals: position?.indexToken?.priceDecimals }),
//       MarkPrice: formatUsd(position.markPrice, { displayDecimals: position?.indexToken?.priceDecimals }),
//       LiqPrice: formatUsd(position.liquidationPrice, { displayDecimals: position?.indexToken?.priceDecimals }),
//       isLong: position.isLong,
//       NetValue: formatUsd(position.netValue),
//       PoolName: poolName,
//       IndexName: indexName,
//     });
//   }

//   console.log(parsedPosition);

//   // const hashs = await createDecreaseOrder(marketInfo, wallet, ARBITRUM);
//   // console.log('hashs', hashs);
}

bootstrap();

Execution Fee

import { getGasPrice } from './domain/synthetics/fees/useGasPrice';
import { useGasLimits } from './domain/synthetics/fees/useGasLimits';
import { estimateExecuteIncreaseOrderGasLimit, getExecutionFee } from './domain/synthetics/fees/utils/executionFee';
import { GasLimitsConfig } from './domain/synthetics/fees/types';

const exec=async () => {
  const activeChain = ARBITRUM;

  const gasPrice = await getGasPrice(activeChain);
  console.log('gasPrice', gasPrice.toString());

  const gasLimits = await useGasLimits(activeChain);
  console.log('gasLimits', gasLimits);

  const { marketsInfoData, tokensData, pricesUpdatedAt } = await useMarketInfo(activeChain);

  const estimatedGas = estimateExecuteIncreaseOrderGasLimit(gasLimits.gasLimits as GasLimitsConfig, {
    swapPath: [],
  });

  const executionFee = getExecutionFee(activeChain, gasLimits.gasLimits, tokensData, estimatedGas, gasPrice);
  console.log('executionFee', executionFee.feeTokenAmount);
  return executionFee.feeTokenAmount
};



Readme

Keywords

Package Sidebar

Install

npm i @autonomysdk/perpaggregator

Weekly Downloads

1

Version

0.8.8

License

ISC

Unpacked Size

1.7 MB

Total Files

208

Last publish

Collaborators

  • sandeep-narahari
  • saisunkari19