flash-sdk 1.0.85 → 1.0.86

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,7 +4,7 @@ import { Program, AnchorProvider, BN } from "@coral-xyz/anchor";
4
4
  import { PublicKey, TransactionInstruction, Commitment, Signer, AddressLookupTableAccount } from "@solana/web3.js";
5
5
  import { PoolAccount } from "./PoolAccount";
6
6
  import { PositionAccount } from "./PositionAccount";
7
- import { AddLiquidityAmountAndFee, AumCalcMode, BorrowRateParams, EntryPriceAndFee, ExitPriceAndFee, Fees, OracleParams, Permissions, PositionSide, PricingParams, RemoveCollateralData, RemoveLiquidityAmountAndFee, Side, SwapAmountAndFees, TokenRatios, MinAndMaxPrice } from "./types";
7
+ import { AddLiquidityAmountAndFee, AumCalcMode, BorrowRateParams, EntryPriceAndFee, ExitPriceAndFee, Fees, OracleParams, Permissions, PositionSide, PricingParams, RemoveCollateralData, RemoveLiquidityAmountAndFee, Side, SwapAmountAndFees, TokenRatios, MinAndMaxPrice, FeesAction } from "./types";
8
8
  import { OraclePrice } from "./OraclePrice";
9
9
  import { CustodyAccount } from "./CustodyAccount";
10
10
  import { Perpetuals } from "./idl/perpetuals";
@@ -2190,34 +2190,34 @@ export declare class PerpetualsClient {
2190
2190
  getSwapAmountAndFees: (poolName: string, tokenMintIn: PublicKey, tokenMintOut: PublicKey, amountIn: BN) => Promise<any>;
2191
2191
  getAumView: (poolName: string) => Promise<any>;
2192
2192
  getAumTrx: (poolName: string) => Promise<string>;
2193
- getAddLiquidityAmountAndFeeSync: (amountIn: BN, poolAccount: PoolAccount, inputToken: Token, inputTokenPrice: OraclePrice, inputTokenEmaPrice: OraclePrice, inputTokenCustodyAccount: CustodyAccount, lpTokenSupplyAmount: BN, poolAumUsdMax: BN) => AddLiquidityAmountAndFee;
2194
- getRemoveLiquidityAmountAndFeeSync: (lpAmountIn: BN, poolAccount: PoolAccount, outputToken: Token, outputTokenPrice: OraclePrice, outputTokenEmaPrice: OraclePrice, outputTokenCustodyAccount: CustodyAccount, lpTokenSupply: BN, poolAumUsdMax: BN) => RemoveLiquidityAmountAndFee;
2195
- getEntryPriceAndFeeSync: (positionAccount: PositionAccount | null, delta: {
2196
- collateralDeltaAmount: BN;
2197
- sizeDeltaAmount: BN;
2198
- } | null, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => EntryPriceAndFee;
2199
- getEntryPriceSync: (side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => BN;
2193
+ getAddLiquidityAmountAndFeeSync: (amountIn: BN, poolAccount: PoolAccount, inputToken: Token, inputTokenPrice: OraclePrice, inputTokenEmaPrice: OraclePrice, inputTokenCustodyAccount: CustodyAccount, lpTokenSupplyAmount: BN, poolAumUsdMax: BN, poolConfig: PoolConfig) => AddLiquidityAmountAndFee;
2194
+ getRemoveLiquidityAmountAndFeeSync: (lpAmountIn: BN, poolAccount: PoolAccount, outputToken: Token, outputTokenPrice: OraclePrice, outputTokenEmaPrice: OraclePrice, outputTokenCustodyAccount: CustodyAccount, lpTokenSupply: BN, poolAumUsdMax: BN, poolConfig: PoolConfig) => RemoveLiquidityAmountAndFee;
2195
+ getFeeAmount(fee: BN, amount: BN): BN;
2196
+ getNewRatio(amount: BN, custodyAccount: CustodyAccount, maxPrice: BN, poolAumUsdMax: BN): BN;
2197
+ getFee: (action: FeesAction, amount: BN, inputTokenCustodyAccount: CustodyAccount, maxPrice: BN, poolAumUsdMax: BN, poolAccount: PoolAccount, poolConfig: PoolConfig) => BN;
2198
+ getMinAndMaxPriceHelper: (price: OraclePrice, emaPrice: OraclePrice, custodyAccount: CustodyAccount) => {
2199
+ min: OraclePrice;
2200
+ max: OraclePrice;
2201
+ };
2200
2202
  getMinAndMaxPriceSync: (price: OraclePrice, emaPrice: OraclePrice, custodyAccount: CustodyAccount) => MinAndMaxPrice;
2201
2203
  checkIfPriceStaleOrCustom: (price: OraclePrice, emaPrice: OraclePrice, custodyAccount: CustodyAccount, timestampInSeconds: BN) => boolean;
2204
+ getAveragePriceSync: (price1: BN, size1: BN, price2: BN, size2: BN) => BN;
2205
+ getEntryPriceAndFeeSync: (positionAccount: PositionAccount | null, collateralDeltaAmount: BN, sizeDeltaAmount: BN, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => EntryPriceAndFee;
2206
+ getEntryPriceSync: (side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount) => BN;
2207
+ getExitPriceAndFeeSync: (positionAccount: PositionAccount, collateralDeltaAmount: BN, sizeDeltaAmount: BN, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => ExitPriceAndFee;
2208
+ getExitPriceSync: (side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount) => BN;
2202
2209
  getSizeAmountFromLeverageAndCollateral: (collateralAmtWithFee: BN, leverage: string, marketToken: Token, collateralToken: Token, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => BN;
2203
2210
  getCollateralAmountWithFeeFromLeverageAndSize: (sizeAmount: BN, leverage: string, marketToken: Token, collateralToken: Token, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => BN;
2204
- getExitPriceAndFeeSync: (positionAccount: PositionAccount | null, delta: {
2205
- collateralDeltaAmount: BN;
2206
- sizeDeltaAmount: BN;
2207
- } | null, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => ExitPriceAndFee;
2208
- getExitPriceSync: (side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => BN;
2209
2211
  getDecreaseSizeCollateralAndFeeSync: (positionAccount: PositionAccount, sizeDeltaAmount: BN, keepLevSame: boolean, side: Side, marketPrice: OraclePrice, marketEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => RemoveCollateralData;
2210
2212
  getCumulativeInterestSync: (custodyAccount: CustodyAccount) => BN;
2211
- getInterestAmountUsdForPosition: (position: PositionAccount, custodyAccount: CustodyAccount) => BN;
2212
- getLiquidationPriceSync: (positionAccount: PositionAccount | null, delta: {
2213
- collateralDeltaAmount: BN;
2214
- sizeDeltaAmount: BN;
2215
- } | null, side: Side, tokenPrice: OraclePrice, tokenEmaPrice: OraclePrice, custodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => OraclePrice;
2213
+ getInterestAmountUsdForPosition: (position: PositionAccount, collateralCustodyAccount: CustodyAccount) => BN;
2214
+ getLiquidationPriceSync: (collateralAmount: BN, sizeAmount: BN, entryPrice: BN, interestAmountUsd: BN, unrealizedPnlUsd: BN, side: Side, custodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount) => BN;
2216
2215
  getPnlSync: (positionAccount: PositionAccount, marketTokenPrice: OraclePrice, marketTokenEmaPrice: OraclePrice, marketCustodyAccount: CustodyAccount, collateralPrice: OraclePrice, collateralEmaPrice: OraclePrice, collateralCustodyAccount: CustodyAccount, poolAccount: PoolAccount, currentTime: BN) => {
2217
2216
  profit: BN;
2218
2217
  loss: BN;
2219
2218
  };
2220
- getSwapAmountAndFeesSync: (amountIn: BN, poolAccount: PoolAccount, inputToken: Token, inputTokenPrice: OraclePrice, inputTokenEmaPrice: OraclePrice, inputTokenCustodyAccount: CustodyAccount, outputToken: Token, outputTokenPrice: OraclePrice, outputTokenEmaPrice: OraclePrice, outputTokenCustodyAccount: CustodyAccount) => SwapAmountAndFees;
2219
+ getSwapAmountAndFeesSync: (amountIn: BN, poolAccount: PoolAccount, inputToken: Token, inputTokenPrice: OraclePrice, inputTokenEmaPrice: OraclePrice, inputTokenCustodyAccount: CustodyAccount, outputToken: Token, outputTokenPrice: OraclePrice, outputTokenEmaPrice: OraclePrice, outputTokenCustodyAccount: CustodyAccount, poolAumUsdMax: BN, poolConfig: PoolConfig) => SwapAmountAndFees;
2220
+ decimal_mul: (arg1: BN, expo1: BN, arg2: BN, expo2: BN, newExpo: BN) => BN;
2221
2221
  getAumSdk: (poolAccount: PoolAccount, token_prices: OraclePrice[], token_ema_prices: OraclePrice[], custodies: CustodyAccount[], aum_calc_mode: AumCalcMode, currentTime: BN) => BN;
2222
2222
  openPosition: (marketSymbol: string, collateralSymbol: string, priceAfterSlippage: BN, collateralWithfee: BN, size: BN, side: Side, poolConfig: PoolConfig, skipBalanceChecks?: boolean) => Promise<{
2223
2223
  instructions: TransactionInstruction[];
@@ -1048,73 +1048,126 @@ var PerpetualsClient = (function () {
1048
1048
  }
1049
1049
  });
1050
1050
  }); };
1051
- this.getAddLiquidityAmountAndFeeSync = function (amountIn, poolAccount, inputToken, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, lpTokenSupplyAmount, poolAumUsdMax) {
1051
+ this.getAddLiquidityAmountAndFeeSync = function (amountIn, poolAccount, inputToken, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, lpTokenSupplyAmount, poolAumUsdMax, poolConfig) {
1052
+ if (inputTokenCustodyAccount.isVirtual) {
1053
+ throw new Error("Virtual custody, cannot add liquidity");
1054
+ }
1055
+ var minMaxPrice = _this.getMinAndMaxPriceHelper(inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount);
1056
+ var fee = _this.getFee(types_1.FeesAction.AddLiquidity, amountIn, inputTokenCustodyAccount, minMaxPrice.max.price, poolAumUsdMax, poolAccount, poolConfig);
1057
+ var tokenAmountUsd = inputTokenPrice.getAssetAmountUsd((amountIn.sub(fee)), inputTokenCustodyAccount.decimals);
1058
+ var lpTokenOut;
1052
1059
  if (poolAumUsdMax.isZero()) {
1053
- return {
1054
- lpAmountOut: amountIn,
1055
- fee: amountIn.mul(new anchor_1.BN(90)).div(new anchor_1.BN(100)),
1056
- };
1060
+ lpTokenOut = tokenAmountUsd;
1061
+ }
1062
+ else {
1063
+ lpTokenOut = (tokenAmountUsd.mul(lpTokenSupplyAmount)).div(poolAumUsdMax);
1057
1064
  }
1058
- var amountInUsdUi = new bignumber_js_1.default(inputTokenPrice.toUiPrice(constants_1.PRICE_DECIMALS))
1059
- .multipliedBy(amountIn.toString())
1060
- .dividedBy(Math.pow(10, inputToken.decimals));
1061
- var lpAmountOutUi = new bignumber_js_1.default(amountInUsdUi)
1062
- .multipliedBy(new bignumber_js_1.default(lpTokenSupplyAmount.toString()).dividedBy(Math.pow(10, constants_1.LP_DECIMALS)))
1063
- .dividedBy(new bignumber_js_1.default(poolAumUsdMax.toString()).dividedBy(new bignumber_js_1.default(Math.pow(10, constants_1.USD_DECIMALS))));
1064
- var lpAmountOut = lpAmountOutUi.multipliedBy(new bignumber_js_1.default(Math.pow(10, constants_1.LP_DECIMALS)));
1065
- var lpAmountOutBn = new anchor_1.BN(lpAmountOut.toFixed(0, bignumber_js_1.default.ROUND_DOWN));
1066
- var fee = amountIn.mul(new anchor_1.BN(90)).div(new anchor_1.BN(100));
1067
1065
  return {
1068
- lpAmountOut: lpAmountOutBn,
1069
- fee: fee,
1066
+ lpAmountOut: lpTokenOut,
1067
+ fee: fee
1070
1068
  };
1071
1069
  };
1072
- this.getRemoveLiquidityAmountAndFeeSync = function (lpAmountIn, poolAccount, outputToken, outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount, lpTokenSupply, poolAumUsdMax) {
1073
- var amountOutUsdUi = new bignumber_js_1.default(poolAumUsdMax.toString())
1074
- .dividedBy(new bignumber_js_1.default(Math.pow(10, constants_1.USD_DECIMALS)))
1075
- .multipliedBy(new bignumber_js_1.default(lpAmountIn.toString()).dividedBy(new bignumber_js_1.default(Math.pow(10, constants_1.LP_DECIMALS))))
1076
- .dividedBy(new bignumber_js_1.default(lpTokenSupply.toString()).dividedBy(new bignumber_js_1.default(Math.pow(10, constants_1.LP_DECIMALS))));
1077
- var amountOutUi = amountOutUsdUi.dividedBy(new bignumber_js_1.default(outputTokenPrice.toUiPrice(constants_1.PRICE_DECIMALS)));
1078
- var amountOut = new anchor_1.BN(amountOutUi.multipliedBy(new bignumber_js_1.default(Math.pow(10, outputToken.decimals))).toFixed(0, bignumber_js_1.default.ROUND_DOWN));
1079
- var fee = amountOut.mul(new anchor_1.BN(90)).div(new anchor_1.BN(100));
1070
+ this.getRemoveLiquidityAmountAndFeeSync = function (lpAmountIn, poolAccount, outputToken, outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount, lpTokenSupply, poolAumUsdMax, poolConfig) {
1071
+ var minMaxPrice = _this.getMinAndMaxPriceHelper(outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount);
1072
+ var removeAmountUsd = (poolAumUsdMax.mul(lpAmountIn)).div(lpTokenSupply);
1073
+ var MaxPriceoracle = OraclePrice_1.OraclePrice.from({ price: new anchor_1.BN(minMaxPrice.max.price), exponent: new anchor_1.BN(-8), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1074
+ var removeAmount;
1075
+ if (outputTokenCustodyAccount.isStable && minMaxPrice.min != minMaxPrice.max && minMaxPrice.max.price < new anchor_1.BN(Math.pow(10, 8))) {
1076
+ var oneOracle = OraclePrice_1.OraclePrice.from({ price: new anchor_1.BN(Math.pow(10, 8)), exponent: new anchor_1.BN(-8), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1077
+ removeAmount = oneOracle.getTokenAmount(removeAmountUsd, outputTokenCustodyAccount.decimals);
1078
+ }
1079
+ else {
1080
+ removeAmount = MaxPriceoracle.getTokenAmount(removeAmountUsd, outputTokenCustodyAccount.decimals);
1081
+ }
1082
+ var fee = _this.getFee(types_1.FeesAction.RemoveLiquidity, removeAmount, outputTokenCustodyAccount, minMaxPrice.max.price, poolAumUsdMax, poolAccount, poolConfig);
1080
1083
  return {
1081
- tokenAmountOut: amountOut,
1084
+ tokenAmountOut: removeAmount.sub(fee),
1082
1085
  fee: fee,
1083
1086
  };
1084
1087
  };
1085
- this.getEntryPriceAndFeeSync = function (positionAccount, delta, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1086
- var newPositionAccount;
1087
- if (positionAccount == null && delta == null) {
1088
- throw "Invalid Input for getEntryPriceAndFeeSync";
1088
+ this.getFee = function (action, amount, inputTokenCustodyAccount, maxPrice, poolAumUsdMax, poolAccount, poolConfig) {
1089
+ var fees;
1090
+ switch (action) {
1091
+ case types_1.FeesAction.AddLiquidity:
1092
+ fees = inputTokenCustodyAccount.fees.addLiquidity;
1093
+ break;
1094
+ case types_1.FeesAction.RemoveLiquidity:
1095
+ fees = inputTokenCustodyAccount.fees.removeLiquidity;
1096
+ break;
1097
+ case types_1.FeesAction.SwapIn:
1098
+ fees = inputTokenCustodyAccount.fees.swapIn;
1099
+ break;
1100
+ case types_1.FeesAction.SwapOut:
1101
+ fees = inputTokenCustodyAccount.fees.swapOut;
1102
+ break;
1089
1103
  }
1090
- if (positionAccount == null && delta != null) {
1091
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: delta.collateralDeltaAmount });
1092
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1104
+ if (inputTokenCustodyAccount.fees.mode == types_1.FeesMode.Fixed) {
1105
+ return _this.getFeeAmount(fees.targetFee, amount.abs());
1093
1106
  }
1094
- else if (positionAccount != null && delta == null) {
1095
- newPositionAccount = positionAccount;
1107
+ var newRatio = _this.getNewRatio(amount, inputTokenCustodyAccount, maxPrice, poolAumUsdMax);
1108
+ var inputCustodyConfig = poolConfig.custodies.find(function (i) { return i.custodyAccount.equals(inputTokenCustodyAccount.publicKey); });
1109
+ var index = inputCustodyConfig.custodyId;
1110
+ var ratios = poolAccount.ratios[index];
1111
+ var fee = constants_1.BN_ZERO;
1112
+ if (action == types_1.FeesAction.AddLiquidity || action == types_1.FeesAction.SwapIn || action == types_1.FeesAction.StableSwapIn) {
1113
+ if (newRatio < ratios.min) {
1114
+ fee = fees.minFee;
1115
+ }
1116
+ else if (newRatio <= ratios.target && ratios.target > ratios.min) {
1117
+ fee = fees.minFee.add((newRatio.sub(ratios.min)).mul(fees.target.sub(fees.min)).div(ratios.target.sub(ratios.min)));
1118
+ }
1119
+ else if (newRatio <= ratios.max && ratios.max > ratios.target) {
1120
+ fee = fees.target.add((newRatio.sub(ratios.target)).mul(fees.max.sub(fees.target)).div(ratios.max.sub(ratios.target)));
1121
+ }
1122
+ else {
1123
+ fee = fees.maxFee;
1124
+ }
1096
1125
  }
1097
- else if (positionAccount != null && delta != null) {
1098
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: positionAccount.collateralAmount.add(delta.collateralDeltaAmount) });
1099
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1126
+ else {
1127
+ if (newRatio >= ratios.max) {
1128
+ fee = fees.min_fee;
1129
+ }
1130
+ else if (newRatio >= ratios.target && ratios.max > ratios.target) {
1131
+ fee = fees.minFee.add((ratios.max.sub(newRatio)).mul(fees.target.sub(fees.min)).div(ratios.max.sub(ratios.target)));
1132
+ }
1133
+ else if (newRatio >= ratios.min && ratios.target > ratios.min) {
1134
+ fees.target.add((ratios.target.sub(newRatio)).mul(fees.max.sub(fees.target)).div(ratios.target.sub(ratios.min)));
1135
+ }
1136
+ else {
1137
+ fee = fees.max_fee;
1138
+ }
1139
+ }
1140
+ return _this.getFeeAmount(fee, amount.abs());
1141
+ };
1142
+ this.getMinAndMaxPriceHelper = function (price, emaPrice, custodyAccount) {
1143
+ var minPrice = price;
1144
+ var deviation;
1145
+ if (custodyAccount.isStable) {
1146
+ deviation = price.getDeviationFactor(OraclePrice_1.OraclePrice.from({ price: new anchor_1.BN(10).pow(price.exponent.abs()), exponent: price.exponent, confidence: price.confidence, timestamp: price.timestamp }));
1100
1147
  }
1101
1148
  else {
1102
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, types_1.DEFAULT_POSITION);
1103
- throw "Invalid Input for getEntryPriceAndFeeSync";
1149
+ deviation = price.getDeviationFactor(emaPrice);
1150
+ }
1151
+ if (deviation.gte(custodyAccount.oracle.maxDeviationThreshold)) {
1152
+ var confFactor = (price.confidence.muln(constants_1.BPS_POWER)).div(price.price);
1153
+ if (confFactor.lt(custodyAccount.oracle.maxPriceError)) {
1154
+ minPrice.price = price.price.sub(price.confidence);
1155
+ }
1156
+ else {
1157
+ minPrice.price = price.price.sub(price.confidence);
1158
+ }
1159
+ }
1160
+ else {
1161
+ return {
1162
+ min: price,
1163
+ max: price
1164
+ };
1104
1165
  }
1105
- var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1106
- var liquidationPrice = _this.getLiquidationPriceSync(positionAccount, delta, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1107
- var fee = newPositionAccount.collateralAmount.mul(marketCustodyAccount.fees.openPosition).div(new anchor_1.BN(constants_1.RATE_POWER));
1108
1166
  return {
1109
- price: entryPriceBN,
1110
- fee: fee,
1111
- liquidationPrice: liquidationPrice.scale_to_exponent(new anchor_1.BN(constants_1.PRICE_DECIMALS).neg()).price,
1167
+ min: minPrice,
1168
+ max: price
1112
1169
  };
1113
1170
  };
1114
- this.getEntryPriceSync = function (side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1115
- var entryPriceBN = marketPrice.scale_to_exponent(new anchor_1.BN(constants_1.PRICE_DECIMALS * -1)).price;
1116
- return entryPriceBN;
1117
- };
1118
1171
  this.getMinAndMaxPriceSync = function (price, emaPrice, custodyAccount) {
1119
1172
  var minPrice = price;
1120
1173
  var deviation;
@@ -1169,10 +1222,97 @@ var PerpetualsClient = (function () {
1169
1222
  }
1170
1223
  return false;
1171
1224
  };
1225
+ this.getAveragePriceSync = function (price1, size1, price2, size2) {
1226
+ var initialValue = size1.mul(price1);
1227
+ var addedValue = size2.mul(price2);
1228
+ var totalValue = initialValue.add(addedValue);
1229
+ var totalSize = size1.add(size2);
1230
+ var averageEntryPrice = totalValue.div(totalSize);
1231
+ return averageEntryPrice;
1232
+ };
1233
+ this.getEntryPriceAndFeeSync = function (positionAccount, collateralDeltaAmount, sizeDeltaAmount, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1234
+ if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
1235
+ throw new Error("Delta Amounts cannot be negative.");
1236
+ }
1237
+ var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount);
1238
+ if (positionAccount === null) {
1239
+ var data = __assign({}, types_1.DEFAULT_POSITION);
1240
+ positionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, data);
1241
+ }
1242
+ else {
1243
+ positionAccount = positionAccount.clone();
1244
+ entryPriceBN = _this.getAveragePriceSync(positionAccount.price, positionAccount.sizeAmount, entryPriceBN, sizeDeltaAmount);
1245
+ }
1246
+ positionAccount.collateralAmount = positionAccount.collateralAmount.add(collateralDeltaAmount);
1247
+ positionAccount.sizeAmount = positionAccount.sizeAmount.add(sizeDeltaAmount);
1248
+ var interestAmountUsd = _this.getInterestAmountUsdForPosition(positionAccount, collateralCustodyAccount);
1249
+ var liquidationPrice = _this.getLiquidationPriceSync(positionAccount.collateralAmount, positionAccount.sizeAmount, entryPriceBN, interestAmountUsd, positionAccount.unrealizedLossUsd, side, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1250
+ var entryOraclePrice = new OraclePrice_1.OraclePrice({ price: entryPriceBN, exponent: new anchor_1.BN(constants_1.PRICE_DECIMALS).neg(), confidence: marketPrice.confidence, timestamp: marketPrice.timestamp });
1251
+ var sizeAmountUsd = entryOraclePrice.getAssetAmountUsd(sizeDeltaAmount, marketCustodyAccount.decimals);
1252
+ var collateralTokenMinOraclePrice = _this.getMinAndMaxPriceHelper(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
1253
+ var feeUsd = constants_1.BN_ZERO;
1254
+ var feeAmount = constants_1.BN_ZERO;
1255
+ if (positionAccount !== null && sizeDeltaAmount.isZero()) {
1256
+ }
1257
+ else {
1258
+ feeUsd = sizeAmountUsd.mul(marketCustodyAccount.fees.openPosition).div(new anchor_1.BN(constants_1.RATE_POWER));
1259
+ feeAmount = feeUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralTokenMinOraclePrice.price);
1260
+ }
1261
+ return {
1262
+ entryPrice: entryPriceBN,
1263
+ feeUsd: feeUsd,
1264
+ feeAmount: feeAmount,
1265
+ liquidationPrice: liquidationPrice
1266
+ };
1267
+ };
1268
+ this.getEntryPriceSync = function (side, marketPrice, marketEmaPrice, marketCustodyAccount) {
1269
+ var _a = _this.getMinAndMaxPriceSync(marketPrice, marketEmaPrice, marketCustodyAccount), minPrice = _a.min, maxPrice = _a.max;
1270
+ var entryPriceBN = side ===
1271
+ types_1.Side.Long ?
1272
+ maxPrice.add(maxPrice.mul(marketCustodyAccount.pricing.tradeSpreadLong).div(new anchor_1.BN(constants_1.BPS_POWER))) :
1273
+ minPrice.sub(minPrice.mul(marketCustodyAccount.pricing.tradeSpreadShort).div(new anchor_1.BN(constants_1.BPS_POWER)));
1274
+ return entryPriceBN;
1275
+ };
1276
+ this.getExitPriceAndFeeSync = function (positionAccount, collateralDeltaAmount, sizeDeltaAmount, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1277
+ positionAccount = positionAccount.clone();
1278
+ if (collateralDeltaAmount.isNeg() || sizeDeltaAmount.isNeg()) {
1279
+ throw new Error("Delta Amounts cannot be negative ");
1280
+ }
1281
+ positionAccount.collateralAmount = positionAccount.collateralAmount.sub(collateralDeltaAmount);
1282
+ positionAccount.sizeAmount = positionAccount.sizeAmount.sub(sizeDeltaAmount);
1283
+ if (positionAccount.collateralAmount.isNeg() || positionAccount.sizeAmount.isNeg()) {
1284
+ throw new Error("cannot remove/close more than collateral/Size");
1285
+ }
1286
+ var exitPriceBN = _this.getExitPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount);
1287
+ var _a = _this.getMinAndMaxPriceHelper(collateralPrice, collateralEmaPrice, collateralCustodyAccount), collateralTokenMinOraclePrice = _a.min, collateralTokenMaxOraclePrice = _a.max;
1288
+ var interestAmountUsd = _this.getInterestAmountUsdForPosition(positionAccount, collateralCustodyAccount);
1289
+ var interestAmount = interestAmountUsd.mul(new anchor_1.BN(Math.pow(10, collateralCustodyAccount.decimals))).div(collateralTokenMinOraclePrice.price);
1290
+ var exitOraclePrice = new OraclePrice_1.OraclePrice({ price: exitPriceBN, exponent: new anchor_1.BN(constants_1.PRICE_DECIMALS).neg(), confidence: marketPrice.confidence, timestamp: marketPrice.timestamp });
1291
+ var sizeAmountUsd = exitOraclePrice.getAssetAmountUsd(sizeDeltaAmount, marketCustodyAccount.decimals);
1292
+ var feeUsd = sizeAmountUsd.mul(marketCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
1293
+ var feeAmount = collateralTokenMaxOraclePrice.getTokenAmount(feeUsd, collateralCustodyAccount.decimals);
1294
+ var liquidationPrice = _this.getLiquidationPriceSync(positionAccount.collateralAmount, positionAccount.sizeAmount, exitPriceBN, interestAmountUsd, positionAccount.unrealizedLossUsd, side, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1295
+ return {
1296
+ exitPrice: exitPriceBN,
1297
+ borrowFeeUsd: interestAmountUsd,
1298
+ borrowFeeAmount: interestAmount,
1299
+ exitFeeUsd: feeUsd,
1300
+ exitFeeAmount: feeAmount,
1301
+ liquidationPrice: liquidationPrice
1302
+ };
1303
+ };
1304
+ this.getExitPriceSync = function (side, marketPrice, marketEmaPrice, marketCustodyAccount) {
1305
+ var _a = _this.getMinAndMaxPriceSync(marketPrice, marketEmaPrice, marketCustodyAccount), minPrice = _a.min, maxPrice = _a.max;
1306
+ var exitPriceBN = side ===
1307
+ types_1.Side.Long ?
1308
+ minPrice.sub(minPrice.mul(marketCustodyAccount.pricing.tradeSpreadShort).div(new anchor_1.BN(constants_1.BPS_POWER))) :
1309
+ maxPrice.add(maxPrice.mul(marketCustodyAccount.pricing.tradeSpreadLong).div(new anchor_1.BN(constants_1.BPS_POWER)));
1310
+ return exitPriceBN;
1311
+ };
1172
1312
  this.getSizeAmountFromLeverageAndCollateral = function (collateralAmtWithFee, leverage, marketToken, collateralToken, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1173
1313
  var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
1174
1314
  var collateralTokenMinPriceUi = new bignumber_js_1.default(collateralTokenMinPrice.toString()).dividedBy(Math.pow(10, constants_1.PRICE_DECIMALS));
1175
- var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1315
+ var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount);
1176
1316
  var entryPriceUi = new bignumber_js_1.default(entryPriceBN.toString()).dividedBy(Math.pow(10, constants_1.PRICE_DECIMALS));
1177
1317
  var collateralAmtMinUsdUi = new bignumber_js_1.default(collateralAmtWithFee.toString()).dividedBy(Math.pow(10, collateralToken.decimals))
1178
1318
  .multipliedBy(collateralTokenMinPriceUi);
@@ -1185,7 +1325,7 @@ var PerpetualsClient = (function () {
1185
1325
  this.getCollateralAmountWithFeeFromLeverageAndSize = function (sizeAmount, leverage, marketToken, collateralToken, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1186
1326
  var collateralTokenMinPrice = _this.getMinAndMaxPriceSync(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
1187
1327
  var collateralTokenMinPriceUi = new bignumber_js_1.default(collateralTokenMinPrice.toString()).dividedBy(Math.pow(10, constants_1.PRICE_DECIMALS));
1188
- var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1328
+ var entryPriceBN = _this.getEntryPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount);
1189
1329
  var entryPriceUi = new bignumber_js_1.default(entryPriceBN.toString()).dividedBy(Math.pow(10, constants_1.PRICE_DECIMALS));
1190
1330
  var openPosFeeRateUi = new bignumber_js_1.default(marketCustodyAccount.fees.openPosition.toString()).dividedBy(Math.pow(10, constants_1.RATE_DECIMALS));
1191
1331
  var sizeAmountUi = new bignumber_js_1.default(sizeAmount.toString()).dividedBy(Math.pow(10, marketToken.decimals));
@@ -1194,42 +1334,6 @@ var PerpetualsClient = (function () {
1194
1334
  var collateralAmtWithFeeUi = collateralWithFeeUsdUi.dividedBy(collateralTokenMinPriceUi);
1195
1335
  return (0, utils_1.uiDecimalsToNative)(collateralAmtWithFeeUi.toFixed(collateralToken.decimals, bignumber_js_1.default.ROUND_DOWN), collateralToken.decimals);
1196
1336
  };
1197
- this.getExitPriceAndFeeSync = function (positionAccount, delta, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1198
- var _a;
1199
- var newPositionAccount;
1200
- if (positionAccount == null && delta == null) {
1201
- throw "Invalid Input for getExitPriceAndFeeSync";
1202
- }
1203
- if (positionAccount == null && delta != null) {
1204
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: delta.collateralDeltaAmount });
1205
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1206
- }
1207
- else if (positionAccount != null && delta == null) {
1208
- newPositionAccount = positionAccount;
1209
- }
1210
- else if (positionAccount != null && delta != null) {
1211
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: positionAccount.collateralAmount.add(delta.collateralDeltaAmount) });
1212
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1213
- }
1214
- else {
1215
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, types_1.DEFAULT_POSITION);
1216
- throw "Invalid Input for getExitPriceAndFeeSync";
1217
- }
1218
- var exitPriceBN = _this.getExitPriceSync(side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1219
- var fee = newPositionAccount.collateralAmount.mul(marketCustodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.BPS_POWER * 100));
1220
- var exitAmount = (_a = newPositionAccount.collateralAmount) === null || _a === void 0 ? void 0 : _a.mul(new anchor_1.BN(90)).div(new anchor_1.BN(100));
1221
- var liquidationPrice = _this.getLiquidationPriceSync(positionAccount, delta, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount);
1222
- return {
1223
- price: exitPriceBN,
1224
- fee: fee,
1225
- exitAmount: exitAmount,
1226
- liquidationPrice: liquidationPrice.scale_to_exponent(new anchor_1.BN(constants_1.PRICE_DECIMALS).neg()).price,
1227
- };
1228
- };
1229
- this.getExitPriceSync = function (side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1230
- var exitPriceBN = marketPrice.scale_to_exponent(new anchor_1.BN(constants_1.PRICE_DECIMALS * -1)).price;
1231
- return exitPriceBN;
1232
- };
1233
1337
  this.getDecreaseSizeCollateralAndFeeSync = function (positionAccount, sizeDeltaAmount, keepLevSame, side, marketPrice, marketEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1234
1338
  var changeRatio = new bignumber_js_1.default(sizeDeltaAmount.toString()).dividedBy(positionAccount.sizeAmount.toString()).multipliedBy(100).toFixed(0, bignumber_js_1.default.ROUND_DOWN);
1235
1339
  if (keepLevSame) {
@@ -1249,52 +1353,49 @@ var PerpetualsClient = (function () {
1249
1353
  var currentTimestamp = new anchor_1.BN((0, utils_1.getUnixTs)());
1250
1354
  var cumulativeInterest = constants_1.BN_ZERO;
1251
1355
  if (currentTimestamp.gt(custodyAccount.borrowRateState.lastUpdate)) {
1252
- cumulativeInterest = currentTimestamp
1253
- .sub(custodyAccount.borrowRateState.lastUpdate)
1356
+ cumulativeInterest = (currentTimestamp
1357
+ .sub(custodyAccount.borrowRateState.lastUpdate))
1254
1358
  .mul(custodyAccount.borrowRateState.currentRate)
1255
- .div(new anchor_1.BN(3600));
1359
+ .div(new anchor_1.BN(3600))
1360
+ .add(custodyAccount.borrowRateState.cumulativeInterest);
1256
1361
  }
1257
1362
  else {
1258
1363
  cumulativeInterest = custodyAccount.borrowRateState.cumulativeInterest;
1259
1364
  }
1260
1365
  return cumulativeInterest;
1261
1366
  };
1262
- this.getInterestAmountUsdForPosition = function (position, custodyAccount) {
1263
- var cumulativeInterest = _this.getCumulativeInterestSync(custodyAccount);
1367
+ this.getInterestAmountUsdForPosition = function (position, collateralCustodyAccount) {
1368
+ var cumulativeInterest = _this.getCumulativeInterestSync(collateralCustodyAccount);
1264
1369
  var interestAmountUsd = constants_1.BN_ZERO;
1265
1370
  if (cumulativeInterest.gt(position.cumulativeInterestSnapshot)) {
1266
- interestAmountUsd = cumulativeInterest.sub(position.cumulativeInterestSnapshot).mul(position.borrowSizeUsd);
1371
+ interestAmountUsd = cumulativeInterest.sub(position.cumulativeInterestSnapshot).mul(position.borrowSizeUsd).div(new anchor_1.BN(constants_1.RATE_POWER));
1267
1372
  }
1268
1373
  return interestAmountUsd;
1269
1374
  };
1270
- this.getLiquidationPriceSync = function (positionAccount, delta, side, tokenPrice, tokenEmaPrice, custodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1271
- var newPositionAccount;
1272
- if (positionAccount == null && delta == null) {
1273
- throw "Invalid Input for getLiquidationPriceSync";
1375
+ this.getLiquidationPriceSync = function (collateralAmount, sizeAmount, entryPrice, interestAmountUsd, unrealizedPnlUsd, side, custodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount) {
1376
+ if (interestAmountUsd === void 0) { interestAmountUsd = constants_1.BN_ZERO; }
1377
+ if (unrealizedPnlUsd === void 0) { unrealizedPnlUsd = constants_1.BN_ZERO; }
1378
+ if (collateralAmount.isZero() || sizeAmount.isZero()) {
1379
+ return constants_1.BN_ZERO;
1274
1380
  }
1275
- if (positionAccount == null && delta != null) {
1276
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: delta.collateralDeltaAmount });
1277
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1278
- }
1279
- else if (positionAccount != null && delta == null) {
1280
- newPositionAccount = positionAccount;
1281
- }
1282
- else if (positionAccount != null && delta != null) {
1283
- var newPosition = __assign(__assign({}, types_1.DEFAULT_POSITION), { collateralAmount: positionAccount.collateralAmount.add(delta.collateralDeltaAmount) });
1284
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, newPosition);
1285
- }
1286
- else {
1287
- newPositionAccount = PositionAccount_1.PositionAccount.from(web3_js_1.PublicKey.default, types_1.DEFAULT_POSITION);
1288
- throw "Invalid Input for getLiquidationPriceSync";
1289
- }
1290
- var x;
1291
- if ((0, types_1.isVariant)(newPositionAccount.side, 'long')) {
1292
- x = tokenPrice.price.mul(new anchor_1.BN(90)).div(new anchor_1.BN(100));
1381
+ var entryPriceOracle = new OraclePrice_1.OraclePrice({ price: entryPrice, exponent: new anchor_1.BN(constants_1.PRICE_DECIMALS).neg(), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
1382
+ var sizeUsd = entryPriceOracle.getAssetAmountUsd(sizeAmount, custodyAccount.decimals);
1383
+ var exitFeeUsd = sizeUsd.mul(custodyAccount.fees.closePosition).div(new anchor_1.BN(constants_1.RATE_POWER));
1384
+ var currentUnrealisedUsd = exitFeeUsd.add(interestAmountUsd).add(unrealizedPnlUsd);
1385
+ var liablityThresholdUsd = sizeUsd.mul(new anchor_1.BN(constants_1.BPS_POWER)).div(custodyAccount.pricing.maxLeverage).add(currentUnrealisedUsd);
1386
+ var collateralMinPriceOracle = _this.getMinAndMaxPriceHelper(collateralPrice, collateralEmaPrice, collateralCustodyAccount).min;
1387
+ var currentCollateralUsd = collateralMinPriceOracle.getAssetAmountUsd(collateralAmount, collateralCustodyAccount.decimals);
1388
+ var maxLossUsd = sizeUsd.add(currentCollateralUsd);
1389
+ var sizeDecimals = (0, utils_1.scaleToExponent)(sizeAmount, new anchor_1.BN(-1 * custodyAccount.decimals), new anchor_1.BN(-1 * constants_1.PRICE_DECIMALS));
1390
+ var collateralDecimals = (0, utils_1.scaleToExponent)(collateralAmount, new anchor_1.BN(-1 * custodyAccount.decimals), new anchor_1.BN(-1 * constants_1.PRICE_DECIMALS));
1391
+ var liquidationPrice = constants_1.BN_ZERO;
1392
+ if (side === types_1.Side.Long) {
1393
+ liquidationPrice = sizeUsd.add(liablityThresholdUsd).mul(new anchor_1.BN(Math.pow(10, constants_1.PRICE_DECIMALS))).div(sizeDecimals.add(collateralDecimals));
1293
1394
  }
1294
1395
  else {
1295
- x = tokenPrice.price.mul(new anchor_1.BN(110)).div(new anchor_1.BN(100));
1396
+ liquidationPrice = maxLossUsd.sub(liablityThresholdUsd).mul(new anchor_1.BN(Math.pow(10, constants_1.PRICE_DECIMALS))).div(sizeDecimals);
1296
1397
  }
1297
- return new OraclePrice_1.OraclePrice({ price: x, exponent: tokenPrice.exponent, confidence: constants_1.BN_ZERO });
1398
+ return liquidationPrice.isNeg() ? constants_1.BN_ZERO : liquidationPrice;
1298
1399
  };
1299
1400
  this.getPnlSync = function (positionAccount, marketTokenPrice, marketTokenEmaPrice, marketCustodyAccount, collateralPrice, collateralEmaPrice, collateralCustodyAccount, poolAccount, currentTime) {
1300
1401
  var _a = poolAccount.getPnlUsd(positionAccount, marketTokenPrice, marketTokenEmaPrice, marketCustodyAccount, currentTime, false), profit = _a.profit, loss = _a.loss, exitFee = _a.exitFee;
@@ -1303,21 +1404,40 @@ var PerpetualsClient = (function () {
1303
1404
  loss: loss
1304
1405
  };
1305
1406
  };
1306
- this.getSwapAmountAndFeesSync = function (amountIn, poolAccount, inputToken, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, outputToken, outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount) {
1307
- var inputTokenUSDUi = new bignumber_js_1.default(inputTokenPrice.toUiPrice(constants_1.PRICE_DECIMALS))
1308
- .multipliedBy(amountIn.toString())
1309
- .dividedBy(new bignumber_js_1.default(Math.pow(10, inputToken.decimals)));
1310
- var outputTokenAmountUi = inputTokenUSDUi.dividedBy(new bignumber_js_1.default(outputTokenPrice.toUiPrice(constants_1.PRICE_DECIMALS)));
1311
- var outputTokenAmount = outputTokenAmountUi.multipliedBy(new bignumber_js_1.default(Math.pow(10, outputToken.decimals)));
1312
- var outputTokenAmountOutBn = new anchor_1.BN(outputTokenAmount.toFixed(0, bignumber_js_1.default.ROUND_DOWN));
1313
- var feeIn = amountIn.div(new anchor_1.BN(100));
1314
- var feeOut = outputTokenAmountOutBn.div(new anchor_1.BN(100));
1407
+ this.getSwapAmountAndFeesSync = function (amountIn, poolAccount, inputToken, inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount, outputToken, outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount, poolAumUsdMax, poolConfig) {
1408
+ var inputMinMaxPrice = _this.getMinAndMaxPriceHelper(inputTokenPrice, inputTokenEmaPrice, inputTokenCustodyAccount);
1409
+ var outputMinMaxPrice = _this.getMinAndMaxPriceHelper(outputTokenPrice, outputTokenEmaPrice, outputTokenCustodyAccount);
1410
+ var pairPrice;
1411
+ if (outputTokenCustodyAccount.isStable && outputMinMaxPrice.min != outputMinMaxPrice.max && outputMinMaxPrice.max.price < new anchor_1.BN(Math.pow(10, 8))) {
1412
+ pairPrice = inputMinMaxPrice.min.price.div(new anchor_1.BN(Math.pow(10, 8)));
1413
+ }
1414
+ else {
1415
+ pairPrice = inputMinMaxPrice.min.price.div(outputMinMaxPrice.max.price);
1416
+ }
1417
+ var swapPrice = pairPrice.sub(pairPrice.mul(inputTokenCustodyAccount.pricing.swapSpread).div(new anchor_1.BN(constants_1.BPS_POWER)));
1418
+ var swapAmount = (0, utils_1.scaleToExponent)(amountIn.mul(swapPrice), new anchor_1.BN(-1 * inputTokenCustodyAccount.decimals), new anchor_1.BN(-8));
1419
+ var feeIn = _this.getFee(types_1.FeesAction.SwapIn, amountIn, inputTokenCustodyAccount, inputMinMaxPrice.max.price, poolAumUsdMax, poolAccount, poolConfig);
1420
+ var feeOut = _this.getFee(types_1.FeesAction.SwapOut, swapAmount, outputTokenCustodyAccount, outputMinMaxPrice.max.price, poolAumUsdMax, poolAccount, poolConfig);
1315
1421
  return {
1316
- amountOut: outputTokenAmountOutBn,
1422
+ amountOut: swapAmount,
1317
1423
  feeIn: feeIn,
1318
1424
  feeOut: feeOut,
1319
1425
  };
1320
1426
  };
1427
+ this.decimal_mul = function (arg1, expo1, arg2, expo2, newExpo) {
1428
+ if (arg1 == constants_1.BN_ZERO || arg2 == constants_1.BN_ZERO) {
1429
+ return constants_1.BN_ZERO;
1430
+ }
1431
+ var targetExpo = (expo1.add(expo2)).sub(newExpo);
1432
+ var result;
1433
+ if (targetExpo >= constants_1.BN_ZERO) {
1434
+ result = (arg1.mul(arg2)).mul(new anchor_1.BN(Math.pow(10, targetExpo.toNumber())));
1435
+ }
1436
+ else {
1437
+ result = (arg1.mul(arg2)).div(new anchor_1.BN(-1 * Math.pow(10, targetExpo.toNumber())));
1438
+ }
1439
+ return result;
1440
+ };
1321
1441
  this.getAumSdk = function (poolAccount, token_prices, token_ema_prices, custodies, aum_calc_mode, currentTime) {
1322
1442
  return poolAccount.getAssetsUnderManagementUsd(token_prices, token_ema_prices, custodies, aum_calc_mode, currentTime);
1323
1443
  };
@@ -2338,6 +2458,22 @@ var PerpetualsClient = (function () {
2338
2458
  return this.toString(10);
2339
2459
  };
2340
2460
  }
2461
+ PerpetualsClient.prototype.getFeeAmount = function (fee, amount) {
2462
+ return new anchor_1.BN(amount.mul(fee));
2463
+ };
2464
+ PerpetualsClient.prototype.getNewRatio = function (amount, custodyAccount, maxPrice, poolAumUsdMax) {
2465
+ var newRatio = constants_1.BN_ZERO;
2466
+ var maxPriceOracle = OraclePrice_1.OraclePrice.from({ price: new anchor_1.BN(maxPrice), exponent: new anchor_1.BN(-8), confidence: constants_1.BN_ZERO, timestamp: constants_1.BN_ZERO });
2467
+ var tokenAumUsd = maxPriceOracle.getAssetAmountUsd(custodyAccount.assets.owned, custodyAccount.decimals);
2468
+ if (amount.isZero()) {
2469
+ newRatio = tokenAumUsd.div(poolAumUsdMax);
2470
+ }
2471
+ else {
2472
+ var amountUsd = maxPriceOracle.getAssetAmountUsd(amount, custodyAccount.decimals);
2473
+ newRatio = (tokenAumUsd.add(amountUsd).div(poolAumUsdMax.add(amountUsd)));
2474
+ }
2475
+ return newRatio;
2476
+ };
2341
2477
  PerpetualsClient.prototype.sendTransaction = function (ixs, opts) {
2342
2478
  if (opts === void 0) { opts = {}; }
2343
2479
  return __awaiter(this, void 0, void 0, function () {
@@ -25,6 +25,7 @@ export declare class PositionAccount implements Position {
25
25
  bump: number;
26
26
  constructor(publicKey: PublicKey, parseData: Position);
27
27
  static from(publicKey: PublicKey, parseData: Position): PositionAccount;
28
+ clone(): PositionAccount;
28
29
  updatePositionData(position: Position): void;
29
30
  static getLiquidationPrice(poolKey: PublicKey, custodyKey: PublicKey, position: PublicKey): Promise<BN>;
30
31
  static getPnl(poolKey: PublicKey, custodyKey: PublicKey, position: PublicKey): Promise<BN>;
@@ -57,6 +57,9 @@ var PositionAccount = (function () {
57
57
  PositionAccount.from = function (publicKey, parseData) {
58
58
  return new PositionAccount(publicKey, parseData);
59
59
  };
60
+ PositionAccount.prototype.clone = function () {
61
+ return __assign({}, this);
62
+ };
60
63
  PositionAccount.prototype.updatePositionData = function (position) {
61
64
  Object.assign(this, __assign({}, position));
62
65
  };
@@ -1 +1 @@
1
- {"program":{"fileNames":["../node_modules/typescript/lib/lib.d.ts","../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/buffer/index.d.ts","../node_modules/formdata-polyfill/esm.min.d.ts","../node_modules/fetch-blob/file.d.ts","../node_modules/fetch-blob/index.d.ts","../node_modules/fetch-blob/from.d.ts","../node_modules/node-fetch/@types/index.d.ts","../node_modules/@solana/web3.js/lib/index.d.ts","../node_modules/@types/bn.js/index.d.ts","../node_modules/eventemitter3/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts","../src/poolconfig.json","../src/poolconfig.ts","../src/constants/index.ts","../src/idl/perpetuals.ts","../src/types/index.ts","../src/positionaccount.ts","../node_modules/bignumber.js/bignumber.d.ts","../src/utils/index.ts","../src/custodyaccount.ts","../src/oracleprice.ts","../node_modules/@solana/spl-token/lib/types/actions/amounttouiamount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/approve.d.ts","../node_modules/@solana/spl-token/lib/types/actions/approvechecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/burn.d.ts","../node_modules/@solana/spl-token/lib/types/actions/burnchecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/closeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createassociatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createassociatedtokenaccountidempotent.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createmint.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createmultisig.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createnativemint.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createwrappednativeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/freezeaccount.d.ts","../node_modules/@solana/buffer-layout/lib/layout.d.ts","../node_modules/@solana/spl-token/lib/types/state/mint.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/extensiontype.d.ts","../node_modules/@solana/spl-token/lib/types/state/account.d.ts","../node_modules/@solana/spl-token/lib/types/actions/getorcreateassociatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/mintto.d.ts","../node_modules/@solana/spl-token/lib/types/actions/minttochecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/revoke.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/types.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/setauthority.d.ts","../node_modules/@solana/spl-token/lib/types/actions/setauthority.d.ts","../node_modules/@solana/spl-token/lib/types/actions/syncnative.d.ts","../node_modules/@solana/spl-token/lib/types/actions/thawaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/transfer.d.ts","../node_modules/@solana/spl-token/lib/types/actions/transferchecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/uiamounttoamount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/index.d.ts","../node_modules/@solana/spl-token/lib/types/constants.d.ts","../node_modules/@solana/spl-token/lib/types/errors.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/accounttype.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/immutableowner.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/mintcloseauthority.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/nontransferable.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/permanentdelegate.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/index.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/associatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/amounttouiamount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/approve.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/approvechecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/burn.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/burnchecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/closeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/freezeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount3.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemint2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemultisig.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/mintto.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/minttochecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/revoke.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/syncnative.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/thawaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/transfer.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/transferchecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/uiamounttoamount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/decode.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemultisig2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeimmutableowner.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemintcloseauthority.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/reallocate.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/createnativemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializenontransferablemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializepermanentdelegate.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/index.d.ts","../node_modules/@solana/spl-token/lib/types/state/multisig.d.ts","../node_modules/@solana/spl-token/lib/types/state/index.d.ts","../node_modules/@solana/spl-token/lib/types/index.d.ts","../node_modules/js-sha256/index.d.ts","../node_modules/base-x/src/index.d.ts","../node_modules/bs58/index.d.ts","../node_modules/typescript/lib/typescript.d.ts","../src/poolaccount.ts","../src/utils/rpc.ts","../src/perpetualsclient.ts","../src/pooldataclient.ts","../src/token.ts","../src/utils/anchorcpievents.ts","../src/utils/alt.ts","../src/index.ts","../src/test.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/ws/index.d.ts","../../node_modules/@types/chai/index.d.ts","../../node_modules/@types/json5/index.d.ts","../../node_modules/@types/mocha/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"b4473933ebd454f0b38bf002e92738f978f5197ad47627e6b2a6647046997256","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true},"84168c1e1f6e21906eea5167154748c1e9fea5ef6f2e1b2b2d2cb19e89fbd81a",{"version":"8155b7b79b6e7d7c13d3203f40cd8c201bdf2c0c25af536992d8962a28cac561","affectsGlobalScope":true},"5ca34a9a8b59bcc0e58730e702aa0823557122c86d6a6e1b6eeae85babb48513","c1d93a28c5312d757e449ad068c3a43ad0d961ab06e6a3b7aaa7d48c204a1deb",{"version":"77b2a2f1719b4c19b79bf2bf4833f67770e30767e49102a6b75ab3b3cf8b5db7","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","57e75559358fd6f9593b44506d75871004c124a70b6be3e0ce18597b71a08fc2","160f307d5ccc1f934de7fbed97f1d2016402f90f204c484e20bd5c2a19a4172a","9c1363edb96f09d8d2140284a39015dba08d5b01a98334ba9ad8784ab160c835","2a56407acc5881608ef5fa4c0688d446df6adfd010578ce83dd1b747d895b17f","ffa8324a4c0611f9a50262fb36f097eeabe0fa0d71755aa67156da13cde1b932","ad5c7ca4a4dc8e39e0aa221b981f6306ca1c037c99bd4902bf02831ba5d7fae9",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"5362b44ccdfba77ac392febf7f8d755af484222cfdc7a9aa1dee67bf51a352f9","affectsGlobalScope":true},"4866843595b27b290ce6cc8092818ede98631734525453dec48d32d7f6726f18","d036da8d9e6391ad06ff5a71b8018838f0990667a178390eb48462059dba92de","63728b518fee91037e3d44081b0c7f3cc6fafb79a997dca5300a899277384867","8c4a16f8523cd932b16f3b6feb983037d2ca5699946d1f32b3787055fccbfff3","b76baf9af98ef1da1c3a681e66034c9ce21862fa4177235153d9719df72c2b1d","89d639ae440d34751d94c0333d83bc4dcfadc45cd15849f74cc1d9c0f0ce0413",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"92cfb0fd9ea018f140b7a9af0868daa80646e4f2fcbde2d60fb60c0319862ec8","7faa534c9c865c9338a8b46fe3fc3822f6ad58747240b103d0606e63990a4935","0ae6b96cc95c41d86deb7c208256f126bc58bbb6829e1e29b063aa9eed9ea3f7",{"version":"c6e4a85271072ff15b04d09075b357407d4cdead8ca536ec613a2bb02a03285e","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"e9f997f4724f4a19ddb396660061b55ae90dd0e4bb7a34788f7c9d1ceaf7dade","f6c9e1baa89f163bc1b29001ed43d3a24734e53a756e0ed89a92e40be17af5e3","4103297e96869b5226a7570a295fbf5f845e9dc4a3b3f8f242993c7f8aad1d42","2b847f2aba41dcd69677684d5d300c08aea4e306c305fd39bf548cef19f03cfe","f3b323d28220d61475dc0229fad6d0bff24381766b40a30fe67743da772c82ad","b966a6e620b297ecd31d0359894a4018255d85da5a277b21867296e97e21fefd","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","cd2b61246eeb62ebc6842fe28f7b3389c081d3b6355091cffe3d12c083bd5705","48e2eb12763f6f72f9daf15967499f69bc4dcda00e1c93696ba25d14af513660",{"version":"57141225815ac2d5caf7e781c6442861854149675096afd9ed5b699aff80a5e7","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","1edbd43bfc703943f0eabfef8aac222fb3e509d9b13c60295cb206b9b75bb6be","12fd795309573a15193cf71d22f7e5debbec599b77ffeb3bb5c0fd1bd15cbe6d","4082bc53696f77cae7f84dd002d4766f3a814b9b2b0d9be4e399ee3f9afc501d",{"version":"e32d7b239d2649efbb57eca949ffc764fb76fd8cce9f57632c0217407a79fa1a","affectsGlobalScope":true},{"version":"5bf73febf7c8cc741ba62e94758eed3208f62473c50702d209bcfece18e12421","affectsGlobalScope":true},"3758d3cb9971c113455a802ad7fa16fa216639add0f2c90767cf177f8d85106d","048a373805662e209f7af8717b45ae77a8052ff2272234d6f8cb84d87831f516","f71e0cc279b5086fa3f46f0bb467d376a18776ec7c99c45b3bd7c670097e1308",{"version":"09e6c9b5d3f323c84bc103e387d1b41e03f5155909615ad877d862ff82758d00","affectsGlobalScope":true},"5af698993d8ba0b74e6d34902091b9cadab8e30d3b009746331721651b5890a4",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"27fea46e25bceaf52375ad48afdf5b9f78af76d551e30cc86077541d1c405e8e","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","d782e571cb7d6ec0f0645957ed843d00e3f8577e08cc2940f400c931bc47a8df","9167246623f181441e6116605221268d94e33a1ebd88075e2dc80133c928ae7e","dc1a838d8a514b6de9fbce3bd5e6feb9ccfe56311e9338bb908eb4d0d966ecaf","186f09ed4b1bc1d5a5af5b1d9f42e2d798f776418e82599b3de16423a349d184","d692ae73951775d2448df535ce8bc8abf162dc343911fedda2c37b8de3b20d8e","867d62c61432e319e2cbdef2980ae7e1fc034f72fd265c91f92eec3d07e4d9d6","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","b61b573ff4ba88d0ca9f59655f66ddd34db4696d2b51c6ef7a959f2b70cb4109","8174e9c229331b9202cf34327e89794a98bb1a442aeee03c46c4b50034b72142","f40fd5b46add805ff018d3490352931e069eb524e3068b86d46d048534d1b824","2c31f69dc0e07f3c396462dae566bf822b1fbc9b56ae1f64ac73a652cf7e4a35","6888c13dda417d9057790a8c403e77e0fa1d7a083d947fdd9310961548a0a08e","a0ff940b1a0e503c45976623abdb39bcfecee97e9f40c3c59f16c659a4da3239","e2befcff13777268fe913fdae10fdca86632e142d0a56bafa88c2a15ee220701","5a739f3dbc49e8769afe70233c31489ed34ba9efe7f1150635658497cb1cbc71","3035306296b362047b08a2a4040a3bf33f0625287b3891e69b864b5d78b8286b","b11e5173a66497863b6d525009624f56ec5124cd6c30e56e8a3e9b41dd303962","178e4bbf4575f0f3d8027d67870aa11bf30ea98663a9f205ca03adc05fa135d7","d57e501aa9e3208fa52cdf03c414173e40523b20a89b5f70c5bffb53ead42c07","a011ef547fb4aca43d5b37d44419f9fc16ba089edf1eb96d20d9c9ee6beefc77","0eb499336fda2cdb3acbfb5c160153028f647904326921b84103e2c83f6892fb","29d441a45ca67aa4b9dc48eb80f26dce82602a066e51af92978a1b4bcb78c507","c5dbca090d5b388006482f4c159f9560ac5a44a7a6d77bb4a64c8749cf8ddb4b","cf18efc36568036078617bb6bd66186f3f68ba789baa67147a0e3128c9398bd0","dc4b884038ecf1dc687a89944e04cf6b1e83391f2d541212dccbb0de67c97f1d","8835ccff7f7bf75094749fd5da9604becacc31016f683907642f92cfefa9346d","8ac4904be5b82699041086aa0dd33327d2afa3bcb107fa887c308bbdde1ea7ce","257e143511763fc89bde384f58bf0a02e1708330705370c0a4483e9f1500ceaa","18584847cdf14e522faa67916d50b8ba7479c8f12262c99d90078dffcae12a8e","44e590a660a2ed3c71e92c85a4af2507b43359825ab4805ec2dcef54e9d564ee","30a39429dd194c9bd3bbb32a32e247d9b547524308d61acc1ba8f16e72e61ee9","f0b04452cd330d29522cbe34176e683f21429e690c2aaec5ecee88303537fda4","f499b42bfdba1be1e0a9cf2ea797ad00694bc7908fdbb8f1f50e4a8034387f67","57794fc7348347817d469e09db6a3faf7aec386f92cb0dad0acbe1336a3f68d7","b82e3f89b8b5d563df90b8e5da3dc2b39443a4db8a3c0310919d55a242da56dc","847ccc20490110124a2252c5a705dfe1355921470d2bd6da9af1d4943e54346b","4cc6d8bdf1e7d492569cf7437ca3f01bf9cc767c3295953b415a6c8d5badf1ab","3b0309147d62225ffd116d3440f480e8df63a47e71e47fb6b432858db931b9e0","139db12276e11f90df65778f7513bc3f85957d74fd0d1bbeb19e4a1dace4f662","2884fcc91f5d42a3288a75a558b036923e3d926354fa0c3fa0251c2c3d4b54e8","013446b40d561ed0b2c2822d01954d4612d5e67222369073345aeebeb03fd406","4cb9df3ea8035d85480096a5ff94dbbcf941efb38c5c1ea77f1dc164d4342728","b35517e270f8735aa771989daa684625bc6285c91e8e4377f13f70a6ff415fc9","291b47b629e4c15e96bacb8d1f707573e72fedbb0fcab43f729e5f9d73560c3c","ae147af43f062662157775c85e3801ea3b70dc7b8f39c7aa260ad215e1942cb3","2a1d0598c9acba389f6a3369d52822a34045bd2ce75d012613bd0b802663c73b","78e817751f43865838b80e44aec551f4d2eb50c7a8ef528a628da9cf8c427b66","878d8319802cbd907be389848225859546d87c66c5b8cf7b864fab14d3dda283","897537e8a5aa22a4ec865ade55b791c0010c863ac5f34e57e7e1c156d9862546","f253b0f34ac2757af5c73868b3235104f5e311c03859987b2402afd1382db058","88f98a99221fa413325886b54d3f2eec69c6092190c2693c2a460240c7bb2f28","ca95dd8de6b9287f549aa934ebb814bf03dd9468a4062089eb6e1f77331b9f3d",{"version":"7ff313b5e58e1d527a408af5f8a64cad499994620bdc4c1b50a3255de9acadbd","signature":"2872e66e2dd859942aba599a7702f32085f0c58bda69f2cb7e80922712b10ab7"},{"version":"628e77409b256a47afbe304369f517bcb8c99dbb0c97ad86e878f910648eea87","signature":"62b2fcddf65f30dfd636a42b0a6c52c041bd064b20d8618f8fb4f5a06ab281c1"},{"version":"cfbaf47da8a6a2fe810958382f625ca76e70f181b5d0b5355f3c69f57527719b","signature":"aca4f886fd9bf249376308b7c3dbb1b7c6428e44148b1cdc1bdb2b2648d98dde"},{"version":"7d8d5e5812b5e98249168d8dfd9e70a0afa444e57ffbcefbd43952c9289f6a94","signature":"4eed9e3ab938e43d8a06528ce98a5d0ef9c099a67bc6180cd87cc04ef10b5af5"},{"version":"1af2e2046b322915ed5f366d41f5d230904722e4421c89b2aa25ad34c8f73dd7","signature":"6446035880af643bf544b573cf1582e069938f6533f44c9debe814be7cca420f"},"e9b48596baefe465d46567a4beccd564035024a154d99f54c7fed02380707333",{"version":"5dd38381170af019f16ed4289b29f496f33a2d53e6dcd40a79018d7f5bb6041b","signature":"78a24d28a45c741b54a73122c3a894d0ca7064e7e9c74d499e1881f9fb112e30"},{"version":"dfb859840ebd240f6393a4fdc48a47ef82a6169c9529b261fa483dadbbd74e14","signature":"c6fa1667649ec7d17f474b558ba0e3e4c485aae474c7514cafd274401d9c6146"},{"version":"d9855475838b959b6cdc2744ec49658769558144125e44f15201e2b0ad08be2e","signature":"d4ee6c08bff19f130ac1b323a4a12df6b318573b2e9e3477c44598c8bfdad423"},"f2e5fa7d4aefe542762909ac966abdeaaaa76befbf561924edabb02b9b57542d","28e9fcac58f5957d1b82ab2b856799c24f7530e1d048198c1d0b9923762265ed","072a49808080400016c2557d47648297d854da5d75c2005083432f5bbbc19949","f25d3ac13258725686f0fbad31b82418ce00799f5d145570d6ee398a39651043","bbfcec9ed673c3dcb2668c3b216c7be9102a9e900e3d73801611da7f21746fdc","da3e4adedc5b5fd041f31a11d6bd98dde20febb2f2705988396d5a07f6f17543","9e6a844fae8202f8aa8bc6c7d076980221a15106c2a6a6f1e38fe1f2b8d07d62","99b07e053c9eae92b706ce3914d4b14bde4d896afc5a351c4660918ac64c6584","9fd36cbc7e5eaa50308919a4496ac677490c20a36a26208ef288f3033ad4c855","739adbaa02fd46f768fb88c72bc3359966241d36bc844a54f158fc68539f951b","8909288948f7bf5a408b6521a659a78765939ee319cd68ad5df4fb76fe1a755d","ff90f20e235b71cea80a352916e7f2a4737302e4f5b539d00e75204c82014b70","10ed1e58a17e61a6eb4f1bca430999ac214629058239489d498b88dc891f2327","1d1c0c879e2139313479670b032fc056ac93136a8199ed3e30fd118004077627","92ad95e6220ab829c8f5cfca9be43e26e041a2922cde6e998782030d41c49963","12c924e7f2e516943ce436ad51965a38cbbd9dee5fe670ae6349bd8c1bf76f52","75f4d060766b9c61825a122b94d61c45bbb6cafaa9f077c59987dc6c00467c76","42b7e0b9bed165997eb168904dfcd11254ff978ceeacda906e77d8f44c89f31f","b16879b91b181532922b7f279d8cba9c877c1436d3b0c55285ab8c6f43fd5dce","278055752eff1ed4b30b663d6b812923f041fbfd6cb6563d1b9350b53850059e","4ba1b1b1750a88a8fcc7d521d3ec3ba6235c28c73993e38adcaaec51afd57d5b","4991ee4482820b62aa2e6cd775d9984e0a45a7f6ba64d8a2737cbbb8af7c53f9","450257cba6657271a6646f9561b43062a5d2b39dba8b2e7b4d7c7fda73c6fe57","9a909c6bcc1cd061f649dc3b4dc9922fda9858166617bbc7263dd4c8bee7546f","c47421f20cec5286ce39834a3327579f36cad21f053ef8c09076c1894cd66d93","4c9975f07791ea91c74c2b8140ab48eb5ac2cc81417a108e6612c889a8bd23b3","b7b49dc760f6440dc8677ef49f0ca75c7f0f2f97f461a07bf2aa03723ac61d3d","79d938cb2e44b94e4f1497a9ccc2ff5da2fb7360d4eb7485da114055bc712379","566fd6af165b3acfa13b916594e422994e5d14f4138609fd252504800c9b96b7","ba9605656fa2ff88d69fd3676770ff1440fd70b4cbdce4ca85ac4ce27e659c7a","fedb9303cc3d1af9e5698092e3fd3622c2eb05805582107ac36c8cf0a160d16e","65d51b460383b6f7546f22c888c8b41e0de7385f20ec971acbb56da83bcbe611","b64e1ff30069e6fcfbd6b01df71b89e9f7d34581d1eba2e1fe3f3b1eaf70f28e","b725c869a5ff20458780f26afbe392017e690ee03decdb7d1202ac3539a8e235","4aaaa437c7b26c9b2668da29c1674d5be3b8f8fa150f3d7dac75d67314be9f37","f945eeb4aa141ce1af78affc6547c979f97b1cbb7d8995d4762d006e3e35c667","13bce356dc26c750244fe75f160388f59a1725d33e401ae26dc084277dd9491e","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","8a561d8bcaf60594a95c3390a489824c6688e81802701260444fb47881950257","cbc6cad822896d9d97bda9a0cea0834be8999dbe2040758cd6da3948c24415b3","e6ee1dcd00ca1c765c95b0abb2114c2ead786ae7610c823df4cd8fffbcbede10","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","8b25e65927ea90be5da89799997c6f7e7dbcd826a954bd1a466a931d380a3511","af7d2a7f8f8a0d9bcce2a017b1a9f6ec85f57e9484a65f46b6cafe8fb079e9a3","9cb1f37abda1396ced2508edf3d111c99a94421553138edc06353c1c824b8cc8","68a8ceeea894c6d5989c89207e3ac1b33c2c2026ad4a9e8c3cff1d87ea67ec77","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","989b5f3bf15619484ef2327c0a108ad33191bfc2e3deb6347bf175e79fd02e51","2b51763cbd722ee2747bc9e860dd0cc0200cdfdf6735c5c2fd4f5e3e02f1ec86","b650f3fdfd9e86f82d906dfbd81b87ef7c7d7434ee1de923d7d6cf5647434a02","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","3e2b6603bed1f4a82bdad05b68a66cc5943f8e12c647bf2f45a06c9d72cc0e00","eabca6c007c20da02a0cbbf23f6de3c39e662a9adc1a92736968179d7c4cc569","625ea89b6b179966c652b7bb93b57e7c1c2343eb9aba6cfb3ddf801359cde65c","1a69659e9cd6e3785e995d1e748809aa708a76fda03988b7ead402534311c106","27e553ea7ffbcaef2be2af5a79fdbf83cfcda0f95bf17e3c378b33402a28c1d6","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","068a6c2f0554b945cbfb006187f4c9c27386684810189dfe026a9b30470d3984","dd22a6e590d7fbabb29b903a809141cb1426846d23c21164ff4223a7f9dcff1d","93cd3ba5193ea2029b2eb0b20b94ca9c4e6b9c2a696d7d1a05211a2916ca0d77","748553e51bfbef2b4c8e646275f687e60ea77665c514ee1f880bf5a3cd509f37","a4d09f9410ec90d4b07cd054e8e2f234feb27b66b106202b386ab0b157663358","3749f5690d24338ff4b878db8d0f1b47d04fe891634c88ca56f7166f944fb96b","939f5a5215d6be2165c6a4116f5abb433b84df00f3ac4e458f3cd732786e8431","5f92a8bc72a87fca63d413ed8f303a2df36fb8143f0e974d0844c7422318909c","2a0e1e0a89c6a3991cc04812d4c6fcf92fe7511de87a684bc60357438dddf399","4ddb790ba5f1fd3689213c0501dbf21a7285f2edf562a8f7d86654877a868fc9","b0b840a3379f3539d037cb5b602541d2ab6984462761e505a23793866dc7a0d7","7aed6616e78d880577a37fa5edd42b690354874f1001acdbf21ead2f803a36a0","73a7dc6d00925ef047bc915a54cab15bb242d549b9334d9b5151cc0f35cfaf77","0a1c74bccc0c5a1f22012144a3d9afc19951348540c7ff5e5feaf4eef6259b80","3a1d5de5adaede0fb1ca2045f8b10a0e86f480a1082a11829a0b48da8ad6157f","0a1057aef93b764fb9665d101f2a050f6e060c37ec5b88f2d27bb83412a3487e","6164b754612e5776cc934dc0d6494fe2ee084d39d1cbc6fe4a23a45326730ccc","47679a6b6411019e8f7a443ec3addbec38a79a7e4679c00bc73d3ccdb81d64ce","cac86b9dbfd00f0ac7731f4074d2c69260c88ea28de96a71b0cb4efb5779b869","65bd0d34233fcaab54f5463703a0f022b2db197ef24c4a1d3adda1a9d3d6d502","f5cd1b398a44c53407e4aa1e8b503d0664299f002313d31bbce221644aadc6cb","c2f032cbe6aa8d59f021ccd865990d4d55c11fd3a1b96b81c56903cf05e36f1f","aa20bc1ba435f2a49bd640992da9517e31896e8f6d1a4817800ac96d6f10d6ea","5621180d5cf6e50f53fd6c73e0a60cd4115353f919bdd193580746896167da63","9cc5c390465b87096b69b2b0612a341d974b658cd28447696583f2762226f8c3","08371984685828cedaa25037b76def8f8f7f8304910dc66627bb58a2f53ecea4","7dd1c6c1b927f9edb94773f9333666f52f7b0bdf49a9a7f63129e9e66d1222cf","174f99dc1948a64c4211702a0fcc45d684d05fdfba3100ba4485fe45adb4d7f3","19405c79422e9c2d9ae1affae558857d3cbd138b17db596c642d008cd6c485cb","6c2ba8fe0797b626104a2fd4e8de0dad6edc4b932e4a50a7b72afa09fdcddbe9","dabc6bfb18fc1f988d37c8b659eb07fd35e8269bfa099b6dc02c14093c2b8b1a","ec9dd267b792e7c5c3733a45a3d2e43b93f02b98d86d8be50e11f9c15940c02b","a8f278a697ab8646f88cb2ba9783814e5438637cdfc3c5278e8aca82b4a1fc44","239d9e77e0026e7375dc9b6122f1b62d2c39fc2e5c10f50787cd321880146b95","0f3ca52b0d50160be177f8c79efbbcd666726c2de9256d6335e0d0bcb2e40d6f","1d8820a067af2309ef4f7739d2ada59882eebb3b2b595ff78496760c6f51ba60","0afbe91142eb631d6f31be624cf8a550b03736bfd22b0f309405a6fe4d4c9517","a3c89483a38d76c77a13b69b268a9e5d13abcdf0957ca3f28c9702c47ce8050f","40ec7e761ea0ddfc0add7aedb95dacfc579b25010ed0e2190abc1d34bb67f81e","57e52a0882af4e835473dda27e4316cc31149866970210f9f79b940e916b7838",{"version":"80ffd66f6d9d32985009436642b6335d3acbf31ad496f6d7a8dbee2935dc3751","signature":"913c02dfbe0601ecd8d146b596ee86cdead2f44186aabc187a0ee9ad631e260e"},{"version":"7267b7b75ba5ec5131804becf902b090c59aac4f8a8448c7c419b761b6c91625","signature":"a50c30a3b6e56b48ab06620b914fae4586647703e2998ca7886faf1b51abb512"},{"version":"5e1836a8657c9efa58f5f9a79aad6dde9dbd7e283aab46a72a7a6664d31481da","signature":"f69eb9b493f5882b0005ddf574b5eb4bca29168c50ff576888ec2a58e6598771"},{"version":"f3c76b29fea10d308adb98828a1b6a94e59ab9bae3166884dda38a2da056d5f1","signature":"d28afb4fb06e906027f4f2795823a43b893e40ac97fd0dce6c8aca3e6ddadee4"},{"version":"cbe55fad4dd27bd9d3c0ad6deb96a70dbaf32b2a4388e706d11ee508e654c4c0","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"69ea20104923b196ebbf0ae37374ae1a572fdad17480e30403b107b765c67095","signature":"78fa342775f68d2c9160b5728b6642e66479372e62f5c5d08c399a4a95786243"},{"version":"c98b2f3a14dad97d0ff29c37cbf369c51a0198d64d944693e2c9c6248297e2e7","signature":"f6f5d902e2ef2f3904fac06f2223e72cb4f37786320a1ec087b06c934de48d7c"},{"version":"f0a930ce3e51cca077b139e56aeffad6b55a46ac3e0b1c27e5fb03997bc2f93f","signature":"123b52edb06a3999ebd740030b8943d808b60e3928eeb61f53fb54b34f02c92f"},{"version":"9beb80dde5c3910015093c0f8669b5684fc372b9208e80401c15d97800fed549","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","bc81aff061c53a7140270555f4b22da4ecfe8601e8027cf5aa175fbdc7927c31",{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538",{"version":"677646e2620795c98a539fb12fb531f10331c217cef1492132b2518f894fa92d","affectsGlobalScope":true}],"options":{"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","removeComments":true,"skipLibCheck":true,"target":1},"fileIdsList":[[50,92,99,109,135],[50,92,99,109,125,135],[92,109,126,127,128,135,136],[50,92,99,106,109,135],[92,99,109,125,129,134],[92,99,109,135],[92,109,125,135],[92,109,130,131,132,133,135],[92,106],[50,92,99,106],[92,106,107,109,113,114,115,117,135,136,147,149,151],[92,150,152],[92,113,134,149],[92,106,113],[92,106,109,113,116,123,124],[92,106,108,109,110],[92,106,109,111],[92,106,109,113,124,135],[92,106,109,110,111,113,117,125,135,148],[92,99,106,108,109,111,113,124,135],[92,106,109,113,116,117,118,119,120,121,122,123,124,135],[92,99,106,109,110,124],[92,106,109,110,111,113,116,117,118,119,120,121,122,124],[92,106,109,113,119,124],[92,106,109,113,119,124,125,135],[92,106,109,118,124],[92,99,106,107,109,110,123,152],[92,106,109,121,124],[92,106,112],[50,92,99],[92,99],[92,139,140,141,142],[92],[92,112,137,138,143,144,145,146],[50,92,99,106,111],[92,99,106,107],[50,92,99,106,111,113],[50,92],[92,106,180],[92,163,164,165,166,167,168,169,170,171,172,173,174,175,176,181,182,183,184,187,188,189,190,191,192],[92,106,186],[92,197,198,199],[92,106,177,185],[92,177,180],[92,201,202,203],[92,106,177,180,185],[92,177,178,180],[92,99,178],[92,179,196,200,204,205,209,213,214,215,219,220],[92,206,207,208],[92,106,177,178],[92,210,211,212],[92,177,178],[92,216,217,218],[92,106,177,178,180],[92,193,194,195,221,252,254],[92,106,186,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243],[92,185,186,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251],[92,106,179,185],[92,106,185],[92,99,106,177,179],[92,178,180,253],[92,99,106,177],[50,65,67,92,99,105],[65,92,99],[46,92],[49,92],[50,55,83,92],[51,62,63,70,80,91,92],[51,52,62,70,92],[53,92],[54,55,63,71,92],[55,80,88,92],[56,58,62,70,92],[57,92],[58,59,92],[62,92],[60,62,92],[62,63,64,80,91,92],[62,63,64,77,80,83,92],[92,96],[58,65,70,80,91,92],[62,63,65,66,70,80,88,91,92],[65,67,80,88,91,92],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[62,68,92],[69,91,92],[58,62,70,80,92],[71,92],[72,92],[49,73,92],[74,90,92,96],[75,92],[76,92],[62,77,78,92],[77,79,92,94],[50,62,80,81,82,83,92],[50,80,82,92],[80,81,92],[83,92],[84,92],[62,86,87,92],[86,87,92],[55,70,80,88,92],[89,92],[70,90,92],[50,65,76,91,92],[55,92],[80,92,93],[92,94],[92,95],[50,55,62,64,73,80,91,92,94,96],[80,92,97],[62,65,67,70,80,88,91,92,97,99],[92,257],[92,102,103],[65,92,99,101,104],[92,106,107,154],[92,106,107,155,157,158,160],[92,154,155,156,157,158,160,161,162,260,261,262,263,265,266],[92,106,152,155,157,160],[92,106,152,154,155,156,157,158,159,160,161,162,255,256,258,260,261],[92,106,152,155,157,158,160,161,162,255,259],[92,106,152,153],[92,106,152,154,155,158,159,160,161,162,255,260],[92,106,152,157],[92,106,152,155,156],[92,143,152,156],[92,106,107,155,159],[92,106,114,152],[106,107],[106,107,157,158],[154,155,156,157,158,160,161,162,260,261,262,263,265,266],[152],[106,152,154,156,157,158,161,162,260,261],[106,152,157,158,161,162],[106,152],[152,154,161,162,255,260],[106,152,157],[152,156],[106],[106,107,159]],"referencedMap":[[126,1],[127,2],[129,3],[136,4],[128,1],[135,5],[131,6],[132,7],[134,8],[130,6],[133,6],[115,9],[109,10],[152,11],[151,12],[150,13],[114,14],[117,15],[111,16],[110,17],[125,18],[149,19],[116,20],[148,21],[118,22],[123,23],[120,24],[121,25],[119,26],[124,27],[122,28],[113,29],[142,30],[141,31],[139,30],[143,32],[140,33],[145,33],[147,34],[138,35],[146,36],[112,37],[137,33],[144,9],[177,38],[163,9],[164,9],[165,9],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[181,39],[193,40],[182,9],[183,9],[184,9],[187,41],[188,9],[189,9],[190,9],[191,9],[192,9],[194,9],[195,33],[196,33],[197,9],[200,42],[198,43],[199,44],[201,39],[204,45],[202,46],[203,47],[179,48],[205,44],[221,49],[206,9],[209,50],[207,43],[208,51],[210,9],[213,52],[211,43],[212,44],[214,51],[215,53],[220,51],[216,9],[219,54],[217,43],[218,55],[255,56],[223,43],[224,43],[225,43],[222,9],[226,43],[227,43],[228,43],[249,43],[244,57],[229,43],[252,58],[230,43],[231,43],[232,43],[246,43],[233,43],[234,43],[247,43],[235,43],[245,33],[250,43],[251,43],[236,43],[237,43],[248,59],[238,43],[186,43],[239,43],[240,43],[241,43],[242,43],[185,33],[243,60],[180,61],[254,62],[178,61],[253,63],[106,64],[107,31],[269,65],[46,66],[47,66],[49,67],[50,68],[51,69],[52,70],[53,71],[54,72],[55,73],[56,74],[57,75],[58,76],[59,76],[61,77],[60,78],[62,77],[63,79],[64,80],[48,81],[98,33],[65,82],[66,83],[67,84],[99,85],[68,86],[69,87],[70,88],[71,89],[72,90],[73,91],[74,92],[75,93],[76,94],[77,95],[78,95],[79,96],[80,97],[82,98],[81,99],[83,100],[84,101],[85,33],[86,102],[87,103],[88,104],[89,105],[90,106],[91,107],[92,108],[93,109],[94,110],[95,111],[96,112],[97,113],[270,114],[257,33],[159,33],[258,115],[100,33],[108,33],[102,33],[104,116],[103,33],[101,33],[256,33],[105,117],[1,33],[9,33],[13,33],[12,33],[3,33],[14,33],[15,33],[16,33],[17,33],[18,33],[19,33],[20,33],[21,33],[4,33],[5,33],[25,33],[22,33],[23,33],[24,33],[26,33],[27,33],[28,33],[6,33],[29,33],[30,33],[31,33],[32,33],[7,33],[36,33],[33,33],[34,33],[35,33],[37,33],[8,33],[38,33],[43,33],[44,33],[39,33],[40,33],[41,33],[42,33],[2,33],[45,33],[11,33],[10,33],[259,33],[155,118],[161,119],[156,33],[267,120],[162,121],[262,122],[260,123],[153,33],[154,124],[263,125],[158,126],[268,33],[264,33],[157,127],[266,9],[265,128],[160,129],[261,130],[271,33],[272,33],[273,33]],"exportedModulesMap":[[126,1],[127,2],[129,3],[136,4],[128,1],[135,5],[131,6],[132,7],[134,8],[130,6],[133,6],[115,9],[109,10],[152,11],[151,12],[150,13],[114,14],[117,15],[111,16],[110,17],[125,18],[149,19],[116,20],[148,21],[118,22],[123,23],[120,24],[121,25],[119,26],[124,27],[122,28],[113,29],[142,30],[141,31],[139,30],[143,32],[140,33],[145,33],[147,34],[138,35],[146,36],[112,37],[137,33],[144,9],[177,38],[163,9],[164,9],[165,9],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[181,39],[193,40],[182,9],[183,9],[184,9],[187,41],[188,9],[189,9],[190,9],[191,9],[192,9],[194,9],[195,33],[196,33],[197,9],[200,42],[198,43],[199,44],[201,39],[204,45],[202,46],[203,47],[179,48],[205,44],[221,49],[206,9],[209,50],[207,43],[208,51],[210,9],[213,52],[211,43],[212,44],[214,51],[215,53],[220,51],[216,9],[219,54],[217,43],[218,55],[255,56],[223,43],[224,43],[225,43],[222,9],[226,43],[227,43],[228,43],[249,43],[244,57],[229,43],[252,58],[230,43],[231,43],[232,43],[246,43],[233,43],[234,43],[247,43],[235,43],[245,33],[250,43],[251,43],[236,43],[237,43],[248,59],[238,43],[186,43],[239,43],[240,43],[241,43],[242,43],[185,33],[243,60],[180,61],[254,62],[178,61],[253,63],[106,64],[107,31],[269,65],[46,66],[47,66],[49,67],[50,68],[51,69],[52,70],[53,71],[54,72],[55,73],[56,74],[57,75],[58,76],[59,76],[61,77],[60,78],[62,77],[63,79],[64,80],[48,81],[98,33],[65,82],[66,83],[67,84],[99,85],[68,86],[69,87],[70,88],[71,89],[72,90],[73,91],[74,92],[75,93],[76,94],[77,95],[78,95],[79,96],[80,97],[82,98],[81,99],[83,100],[84,101],[85,33],[86,102],[87,103],[88,104],[89,105],[90,106],[91,107],[92,108],[93,109],[94,110],[95,111],[96,112],[97,113],[270,114],[257,33],[159,33],[258,115],[100,33],[108,33],[102,33],[104,116],[103,33],[101,33],[256,33],[105,117],[1,33],[9,33],[13,33],[12,33],[3,33],[14,33],[15,33],[16,33],[17,33],[18,33],[19,33],[20,33],[21,33],[4,33],[5,33],[25,33],[22,33],[23,33],[24,33],[26,33],[27,33],[28,33],[6,33],[29,33],[30,33],[31,33],[32,33],[7,33],[36,33],[33,33],[34,33],[35,33],[37,33],[8,33],[38,33],[43,33],[44,33],[39,33],[40,33],[41,33],[42,33],[2,33],[45,33],[11,33],[10,33],[259,33],[155,131],[161,132],[267,133],[162,134],[262,135],[260,136],[153,33],[154,137],[263,138],[158,139],[157,140],[266,141],[265,134],[160,142],[261,137],[271,33],[272,33],[273,33]],"semanticDiagnosticsPerFile":[126,127,129,136,128,135,131,132,134,130,133,115,109,152,151,150,114,117,111,110,125,149,116,148,118,123,120,121,119,124,122,113,142,141,139,143,140,145,147,138,146,112,137,144,177,163,164,165,166,167,168,169,170,171,172,173,174,175,176,181,193,182,183,184,187,188,189,190,191,192,194,195,196,197,200,198,199,201,204,202,203,179,205,221,206,209,207,208,210,213,211,212,214,215,220,216,219,217,218,255,223,224,225,222,226,227,228,249,244,229,252,230,231,232,246,233,234,247,235,245,250,251,236,237,248,238,186,239,240,241,242,185,243,180,254,178,253,106,107,269,46,47,49,50,51,52,53,54,55,56,57,58,59,61,60,62,63,64,48,98,65,66,67,99,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,270,257,159,258,100,108,102,104,103,101,256,105,1,9,13,12,3,14,15,16,17,18,19,20,21,4,5,25,22,23,24,26,27,28,6,29,30,31,32,7,36,33,34,35,37,8,38,43,44,39,40,41,42,2,45,11,10,259,155,161,156,267,162,262,260,153,154,263,158,268,264,157,266,265,160,261,271,272,273]},"version":"4.9.5"}
1
+ {"program":{"fileNames":["../node_modules/typescript/lib/lib.d.ts","../node_modules/typescript/lib/lib.es5.d.ts","../node_modules/typescript/lib/lib.es2015.d.ts","../node_modules/typescript/lib/lib.es2016.d.ts","../node_modules/typescript/lib/lib.es2017.d.ts","../node_modules/typescript/lib/lib.es2018.d.ts","../node_modules/typescript/lib/lib.es2019.d.ts","../node_modules/typescript/lib/lib.es2020.d.ts","../node_modules/typescript/lib/lib.dom.d.ts","../node_modules/typescript/lib/lib.webworker.importscripts.d.ts","../node_modules/typescript/lib/lib.scripthost.d.ts","../node_modules/typescript/lib/lib.es2015.core.d.ts","../node_modules/typescript/lib/lib.es2015.collection.d.ts","../node_modules/typescript/lib/lib.es2015.generator.d.ts","../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../node_modules/typescript/lib/lib.es2015.promise.d.ts","../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../node_modules/typescript/lib/lib.es2017.object.d.ts","../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2017.string.d.ts","../node_modules/typescript/lib/lib.es2017.intl.d.ts","../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../node_modules/typescript/lib/lib.es2018.intl.d.ts","../node_modules/typescript/lib/lib.es2018.promise.d.ts","../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../node_modules/typescript/lib/lib.es2019.array.d.ts","../node_modules/typescript/lib/lib.es2019.object.d.ts","../node_modules/typescript/lib/lib.es2019.string.d.ts","../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../node_modules/typescript/lib/lib.es2019.intl.d.ts","../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../node_modules/typescript/lib/lib.es2020.date.d.ts","../node_modules/typescript/lib/lib.es2020.promise.d.ts","../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../node_modules/typescript/lib/lib.es2020.string.d.ts","../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../node_modules/typescript/lib/lib.es2020.intl.d.ts","../node_modules/typescript/lib/lib.es2020.number.d.ts","../node_modules/typescript/lib/lib.esnext.intl.d.ts","../node_modules/@types/node/assert.d.ts","../node_modules/@types/node/assert/strict.d.ts","../node_modules/@types/node/globals.d.ts","../node_modules/@types/node/async_hooks.d.ts","../node_modules/@types/node/buffer.d.ts","../node_modules/@types/node/child_process.d.ts","../node_modules/@types/node/cluster.d.ts","../node_modules/@types/node/console.d.ts","../node_modules/@types/node/constants.d.ts","../node_modules/@types/node/crypto.d.ts","../node_modules/@types/node/dgram.d.ts","../node_modules/@types/node/diagnostics_channel.d.ts","../node_modules/@types/node/dns.d.ts","../node_modules/@types/node/dns/promises.d.ts","../node_modules/@types/node/domain.d.ts","../node_modules/@types/node/dom-events.d.ts","../node_modules/@types/node/events.d.ts","../node_modules/@types/node/fs.d.ts","../node_modules/@types/node/fs/promises.d.ts","../node_modules/@types/node/http.d.ts","../node_modules/@types/node/http2.d.ts","../node_modules/@types/node/https.d.ts","../node_modules/@types/node/inspector.d.ts","../node_modules/@types/node/module.d.ts","../node_modules/@types/node/net.d.ts","../node_modules/@types/node/os.d.ts","../node_modules/@types/node/path.d.ts","../node_modules/@types/node/perf_hooks.d.ts","../node_modules/@types/node/process.d.ts","../node_modules/@types/node/punycode.d.ts","../node_modules/@types/node/querystring.d.ts","../node_modules/@types/node/readline.d.ts","../node_modules/@types/node/readline/promises.d.ts","../node_modules/@types/node/repl.d.ts","../node_modules/@types/node/stream.d.ts","../node_modules/@types/node/stream/promises.d.ts","../node_modules/@types/node/stream/consumers.d.ts","../node_modules/@types/node/stream/web.d.ts","../node_modules/@types/node/string_decoder.d.ts","../node_modules/@types/node/test.d.ts","../node_modules/@types/node/timers.d.ts","../node_modules/@types/node/timers/promises.d.ts","../node_modules/@types/node/tls.d.ts","../node_modules/@types/node/trace_events.d.ts","../node_modules/@types/node/tty.d.ts","../node_modules/@types/node/url.d.ts","../node_modules/@types/node/util.d.ts","../node_modules/@types/node/v8.d.ts","../node_modules/@types/node/vm.d.ts","../node_modules/@types/node/wasi.d.ts","../node_modules/@types/node/worker_threads.d.ts","../node_modules/@types/node/zlib.d.ts","../node_modules/@types/node/globals.global.d.ts","../node_modules/@types/node/index.d.ts","../node_modules/buffer/index.d.ts","../node_modules/formdata-polyfill/esm.min.d.ts","../node_modules/fetch-blob/file.d.ts","../node_modules/fetch-blob/index.d.ts","../node_modules/fetch-blob/from.d.ts","../node_modules/node-fetch/@types/index.d.ts","../node_modules/@solana/web3.js/lib/index.d.ts","../node_modules/@types/bn.js/index.d.ts","../node_modules/eventemitter3/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/idl.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/context.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/common.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/rpc.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/provider.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/nodewallet.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/error.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/account.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/accounts-resolver.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/transaction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/rpc.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/simulate.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/views.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/methods.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/event.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/accounts.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/event.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/accounts.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/events.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/types.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/system/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/coder/borsh/instruction.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/sha256.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/pubkey.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/hex.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/utf8.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/bs58.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/base64.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/bytes/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/token.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/features.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/registry.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/utils/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/namespace/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/program/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/native/system.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/native/index.d.ts","../node_modules/@coral-xyz/anchor/dist/cjs/index.d.ts","../src/poolconfig.json","../src/poolconfig.ts","../src/constants/index.ts","../src/idl/perpetuals.ts","../src/types/index.ts","../src/positionaccount.ts","../node_modules/bignumber.js/bignumber.d.ts","../src/utils/index.ts","../src/custodyaccount.ts","../src/oracleprice.ts","../node_modules/@solana/spl-token/lib/types/actions/amounttouiamount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/approve.d.ts","../node_modules/@solana/spl-token/lib/types/actions/approvechecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/burn.d.ts","../node_modules/@solana/spl-token/lib/types/actions/burnchecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/closeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createassociatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createassociatedtokenaccountidempotent.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createmint.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createmultisig.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createnativemint.d.ts","../node_modules/@solana/spl-token/lib/types/actions/createwrappednativeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/freezeaccount.d.ts","../node_modules/@solana/buffer-layout/lib/layout.d.ts","../node_modules/@solana/spl-token/lib/types/state/mint.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/extensiontype.d.ts","../node_modules/@solana/spl-token/lib/types/state/account.d.ts","../node_modules/@solana/spl-token/lib/types/actions/getorcreateassociatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/mintto.d.ts","../node_modules/@solana/spl-token/lib/types/actions/minttochecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/revoke.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/types.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/setauthority.d.ts","../node_modules/@solana/spl-token/lib/types/actions/setauthority.d.ts","../node_modules/@solana/spl-token/lib/types/actions/syncnative.d.ts","../node_modules/@solana/spl-token/lib/types/actions/thawaccount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/transfer.d.ts","../node_modules/@solana/spl-token/lib/types/actions/transferchecked.d.ts","../node_modules/@solana/spl-token/lib/types/actions/uiamounttoamount.d.ts","../node_modules/@solana/spl-token/lib/types/actions/index.d.ts","../node_modules/@solana/spl-token/lib/types/constants.d.ts","../node_modules/@solana/spl-token/lib/types/errors.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/accounttype.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/cpiguard/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/defaultaccountstate/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/immutableowner.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/interestbearingmint/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/memotransfer/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/mintcloseauthority.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/nontransferable.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/actions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/instructions.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/state.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/transferfee/index.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/permanentdelegate.d.ts","../node_modules/@solana/spl-token/lib/types/extensions/index.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/associatedtokenaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/amounttouiamount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/approve.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/approvechecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/burn.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/burnchecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/closeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/freezeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeaccount3.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemint2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemultisig.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/mintto.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/minttochecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/revoke.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/syncnative.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/thawaccount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/transfer.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/transferchecked.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/uiamounttoamount.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/decode.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemultisig2.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializeimmutableowner.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializemintcloseauthority.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/reallocate.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/createnativemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializenontransferablemint.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/initializepermanentdelegate.d.ts","../node_modules/@solana/spl-token/lib/types/instructions/index.d.ts","../node_modules/@solana/spl-token/lib/types/state/multisig.d.ts","../node_modules/@solana/spl-token/lib/types/state/index.d.ts","../node_modules/@solana/spl-token/lib/types/index.d.ts","../node_modules/js-sha256/index.d.ts","../node_modules/base-x/src/index.d.ts","../node_modules/bs58/index.d.ts","../node_modules/typescript/lib/typescript.d.ts","../src/poolaccount.ts","../src/utils/rpc.ts","../src/perpetualsclient.ts","../src/pooldataclient.ts","../src/token.ts","../src/utils/anchorcpievents.ts","../src/utils/alt.ts","../src/index.ts","../src/test.ts","../node_modules/@types/connect/index.d.ts","../node_modules/@types/ws/index.d.ts","../../node_modules/@types/chai/index.d.ts","../../node_modules/@types/json5/index.d.ts","../../node_modules/@types/mocha/index.d.ts"],"fileInfos":["2dc8c927c9c162a773c6bb3cdc4f3286c23f10eedc67414028f9cb5951610f60",{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"7fac8cb5fc820bc2a59ae11ef1c5b38d3832c6d0dfaec5acdb5569137d09a481","affectsGlobalScope":true},{"version":"097a57355ded99c68e6df1b738990448e0bf170e606707df5a7c0481ff2427cd","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},"b4473933ebd454f0b38bf002e92738f978f5197ad47627e6b2a6647046997256","a69c09dbea52352f479d3e7ac949fde3d17b195abe90b045d619f747b38d6d1a",{"version":"f749812878fecfa53cfc13b36e5d35086fb6377983a9df44175da83ccc23af1f","affectsGlobalScope":true},"84168c1e1f6e21906eea5167154748c1e9fea5ef6f2e1b2b2d2cb19e89fbd81a",{"version":"8155b7b79b6e7d7c13d3203f40cd8c201bdf2c0c25af536992d8962a28cac561","affectsGlobalScope":true},"5ca34a9a8b59bcc0e58730e702aa0823557122c86d6a6e1b6eeae85babb48513","c1d93a28c5312d757e449ad068c3a43ad0d961ab06e6a3b7aaa7d48c204a1deb",{"version":"77b2a2f1719b4c19b79bf2bf4833f67770e30767e49102a6b75ab3b3cf8b5db7","affectsGlobalScope":true},"82408ed3e959ddc60d3e9904481b5a8dc16469928257af22a3f7d1a3bc7fd8c4","57e75559358fd6f9593b44506d75871004c124a70b6be3e0ce18597b71a08fc2","160f307d5ccc1f934de7fbed97f1d2016402f90f204c484e20bd5c2a19a4172a","9c1363edb96f09d8d2140284a39015dba08d5b01a98334ba9ad8784ab160c835","2a56407acc5881608ef5fa4c0688d446df6adfd010578ce83dd1b747d895b17f","ffa8324a4c0611f9a50262fb36f097eeabe0fa0d71755aa67156da13cde1b932","ad5c7ca4a4dc8e39e0aa221b981f6306ca1c037c99bd4902bf02831ba5d7fae9",{"version":"6b526a5ec4a401ca7c26cfe6a48e641d8f30af76673bad3b06a1b4504594a960","affectsGlobalScope":true},{"version":"5362b44ccdfba77ac392febf7f8d755af484222cfdc7a9aa1dee67bf51a352f9","affectsGlobalScope":true},"4866843595b27b290ce6cc8092818ede98631734525453dec48d32d7f6726f18","d036da8d9e6391ad06ff5a71b8018838f0990667a178390eb48462059dba92de","63728b518fee91037e3d44081b0c7f3cc6fafb79a997dca5300a899277384867","8c4a16f8523cd932b16f3b6feb983037d2ca5699946d1f32b3787055fccbfff3","b76baf9af98ef1da1c3a681e66034c9ce21862fa4177235153d9719df72c2b1d","89d639ae440d34751d94c0333d83bc4dcfadc45cd15849f74cc1d9c0f0ce0413",{"version":"125af9d85cb9d5e508353f10a8d52f01652d2d48b2cea54789a33e5b4d289c1c","affectsGlobalScope":true},"92cfb0fd9ea018f140b7a9af0868daa80646e4f2fcbde2d60fb60c0319862ec8","7faa534c9c865c9338a8b46fe3fc3822f6ad58747240b103d0606e63990a4935","0ae6b96cc95c41d86deb7c208256f126bc58bbb6829e1e29b063aa9eed9ea3f7",{"version":"c6e4a85271072ff15b04d09075b357407d4cdead8ca536ec613a2bb02a03285e","affectsGlobalScope":true},{"version":"5761c90b0cabdd6bd1f5fb1c3bf942088fdd39e18ed35dbe39b0c34bc733bf13","affectsGlobalScope":true},"e9f997f4724f4a19ddb396660061b55ae90dd0e4bb7a34788f7c9d1ceaf7dade","f6c9e1baa89f163bc1b29001ed43d3a24734e53a756e0ed89a92e40be17af5e3","4103297e96869b5226a7570a295fbf5f845e9dc4a3b3f8f242993c7f8aad1d42","2b847f2aba41dcd69677684d5d300c08aea4e306c305fd39bf548cef19f03cfe","f3b323d28220d61475dc0229fad6d0bff24381766b40a30fe67743da772c82ad","b966a6e620b297ecd31d0359894a4018255d85da5a277b21867296e97e21fefd","1b952304137851e45bc009785de89ada562d9376177c97e37702e39e60c2f1ff","785e5be57d4f20f290a20e7b0c6263f6c57fd6e51283050756cef07d6d651c68","44b8b584a338b190a59f4f6929d072431950c7bd92ec2694821c11bce180c8a5","cd2b61246eeb62ebc6842fe28f7b3389c081d3b6355091cffe3d12c083bd5705","48e2eb12763f6f72f9daf15967499f69bc4dcda00e1c93696ba25d14af513660",{"version":"57141225815ac2d5caf7e781c6442861854149675096afd9ed5b699aff80a5e7","affectsGlobalScope":true},"ad08154d9602429522cac965a715fde27d421d69b24756c5d291877dda75353e","1edbd43bfc703943f0eabfef8aac222fb3e509d9b13c60295cb206b9b75bb6be","12fd795309573a15193cf71d22f7e5debbec599b77ffeb3bb5c0fd1bd15cbe6d","4082bc53696f77cae7f84dd002d4766f3a814b9b2b0d9be4e399ee3f9afc501d",{"version":"e32d7b239d2649efbb57eca949ffc764fb76fd8cce9f57632c0217407a79fa1a","affectsGlobalScope":true},{"version":"5bf73febf7c8cc741ba62e94758eed3208f62473c50702d209bcfece18e12421","affectsGlobalScope":true},"3758d3cb9971c113455a802ad7fa16fa216639add0f2c90767cf177f8d85106d","048a373805662e209f7af8717b45ae77a8052ff2272234d6f8cb84d87831f516","f71e0cc279b5086fa3f46f0bb467d376a18776ec7c99c45b3bd7c670097e1308",{"version":"09e6c9b5d3f323c84bc103e387d1b41e03f5155909615ad877d862ff82758d00","affectsGlobalScope":true},"5af698993d8ba0b74e6d34902091b9cadab8e30d3b009746331721651b5890a4",{"version":"ab9b9a36e5284fd8d3bf2f7d5fcbc60052f25f27e4d20954782099282c60d23e","affectsGlobalScope":true},"27fea46e25bceaf52375ad48afdf5b9f78af76d551e30cc86077541d1c405e8e","4967529644e391115ca5592184d4b63980569adf60ee685f968fd59ab1557188","d782e571cb7d6ec0f0645957ed843d00e3f8577e08cc2940f400c931bc47a8df","9167246623f181441e6116605221268d94e33a1ebd88075e2dc80133c928ae7e","dc1a838d8a514b6de9fbce3bd5e6feb9ccfe56311e9338bb908eb4d0d966ecaf","186f09ed4b1bc1d5a5af5b1d9f42e2d798f776418e82599b3de16423a349d184","d692ae73951775d2448df535ce8bc8abf162dc343911fedda2c37b8de3b20d8e","867d62c61432e319e2cbdef2980ae7e1fc034f72fd265c91f92eec3d07e4d9d6","01f7828047b5c6703d3c601473618b448f5506a88fcac852638b0715c3abf4eb","b80c780c52524beb13488942543972c8b0e54400e8b59cee0169f38d0fabb968","b61b573ff4ba88d0ca9f59655f66ddd34db4696d2b51c6ef7a959f2b70cb4109","8174e9c229331b9202cf34327e89794a98bb1a442aeee03c46c4b50034b72142","f40fd5b46add805ff018d3490352931e069eb524e3068b86d46d048534d1b824","2c31f69dc0e07f3c396462dae566bf822b1fbc9b56ae1f64ac73a652cf7e4a35","6888c13dda417d9057790a8c403e77e0fa1d7a083d947fdd9310961548a0a08e","a0ff940b1a0e503c45976623abdb39bcfecee97e9f40c3c59f16c659a4da3239","e2befcff13777268fe913fdae10fdca86632e142d0a56bafa88c2a15ee220701","5a739f3dbc49e8769afe70233c31489ed34ba9efe7f1150635658497cb1cbc71","3035306296b362047b08a2a4040a3bf33f0625287b3891e69b864b5d78b8286b","b11e5173a66497863b6d525009624f56ec5124cd6c30e56e8a3e9b41dd303962","178e4bbf4575f0f3d8027d67870aa11bf30ea98663a9f205ca03adc05fa135d7","d57e501aa9e3208fa52cdf03c414173e40523b20a89b5f70c5bffb53ead42c07","a011ef547fb4aca43d5b37d44419f9fc16ba089edf1eb96d20d9c9ee6beefc77","0eb499336fda2cdb3acbfb5c160153028f647904326921b84103e2c83f6892fb","29d441a45ca67aa4b9dc48eb80f26dce82602a066e51af92978a1b4bcb78c507","c5dbca090d5b388006482f4c159f9560ac5a44a7a6d77bb4a64c8749cf8ddb4b","cf18efc36568036078617bb6bd66186f3f68ba789baa67147a0e3128c9398bd0","dc4b884038ecf1dc687a89944e04cf6b1e83391f2d541212dccbb0de67c97f1d","8835ccff7f7bf75094749fd5da9604becacc31016f683907642f92cfefa9346d","8ac4904be5b82699041086aa0dd33327d2afa3bcb107fa887c308bbdde1ea7ce","257e143511763fc89bde384f58bf0a02e1708330705370c0a4483e9f1500ceaa","18584847cdf14e522faa67916d50b8ba7479c8f12262c99d90078dffcae12a8e","44e590a660a2ed3c71e92c85a4af2507b43359825ab4805ec2dcef54e9d564ee","30a39429dd194c9bd3bbb32a32e247d9b547524308d61acc1ba8f16e72e61ee9","f0b04452cd330d29522cbe34176e683f21429e690c2aaec5ecee88303537fda4","f499b42bfdba1be1e0a9cf2ea797ad00694bc7908fdbb8f1f50e4a8034387f67","57794fc7348347817d469e09db6a3faf7aec386f92cb0dad0acbe1336a3f68d7","b82e3f89b8b5d563df90b8e5da3dc2b39443a4db8a3c0310919d55a242da56dc","847ccc20490110124a2252c5a705dfe1355921470d2bd6da9af1d4943e54346b","4cc6d8bdf1e7d492569cf7437ca3f01bf9cc767c3295953b415a6c8d5badf1ab","3b0309147d62225ffd116d3440f480e8df63a47e71e47fb6b432858db931b9e0","139db12276e11f90df65778f7513bc3f85957d74fd0d1bbeb19e4a1dace4f662","2884fcc91f5d42a3288a75a558b036923e3d926354fa0c3fa0251c2c3d4b54e8","013446b40d561ed0b2c2822d01954d4612d5e67222369073345aeebeb03fd406","4cb9df3ea8035d85480096a5ff94dbbcf941efb38c5c1ea77f1dc164d4342728","b35517e270f8735aa771989daa684625bc6285c91e8e4377f13f70a6ff415fc9","291b47b629e4c15e96bacb8d1f707573e72fedbb0fcab43f729e5f9d73560c3c","ae147af43f062662157775c85e3801ea3b70dc7b8f39c7aa260ad215e1942cb3","2a1d0598c9acba389f6a3369d52822a34045bd2ce75d012613bd0b802663c73b","78e817751f43865838b80e44aec551f4d2eb50c7a8ef528a628da9cf8c427b66","878d8319802cbd907be389848225859546d87c66c5b8cf7b864fab14d3dda283","897537e8a5aa22a4ec865ade55b791c0010c863ac5f34e57e7e1c156d9862546","f253b0f34ac2757af5c73868b3235104f5e311c03859987b2402afd1382db058","88f98a99221fa413325886b54d3f2eec69c6092190c2693c2a460240c7bb2f28","ca95dd8de6b9287f549aa934ebb814bf03dd9468a4062089eb6e1f77331b9f3d",{"version":"7ff313b5e58e1d527a408af5f8a64cad499994620bdc4c1b50a3255de9acadbd","signature":"2872e66e2dd859942aba599a7702f32085f0c58bda69f2cb7e80922712b10ab7"},{"version":"628e77409b256a47afbe304369f517bcb8c99dbb0c97ad86e878f910648eea87","signature":"62b2fcddf65f30dfd636a42b0a6c52c041bd064b20d8618f8fb4f5a06ab281c1"},{"version":"cfbaf47da8a6a2fe810958382f625ca76e70f181b5d0b5355f3c69f57527719b","signature":"aca4f886fd9bf249376308b7c3dbb1b7c6428e44148b1cdc1bdb2b2648d98dde"},{"version":"fbc135787f2fdfa828e0f223b8a9abdc9cc91f8936bce4f9fc9c06b9afaa1b9f","signature":"fec0ad8d5aac6c522d7a32b1442b32bca8153df9af53fa50da91b61da731d5bf"},{"version":"c8b87c7e2a4b74e2d7cf976527040362f7a46645c394655478887f777d1ac3ee","signature":"fd1b3b41bce549c01092940515b6e8a10ebc7037bfc8eb3c37e72d1c1293fb36"},"e9b48596baefe465d46567a4beccd564035024a154d99f54c7fed02380707333",{"version":"8379dd803cd20e3bf3e599c39aa787ff40b31e11f3e4f663daf827112592e1dd","signature":"78a24d28a45c741b54a73122c3a894d0ca7064e7e9c74d499e1881f9fb112e30"},{"version":"dfb859840ebd240f6393a4fdc48a47ef82a6169c9529b261fa483dadbbd74e14","signature":"c6fa1667649ec7d17f474b558ba0e3e4c485aae474c7514cafd274401d9c6146"},{"version":"d9855475838b959b6cdc2744ec49658769558144125e44f15201e2b0ad08be2e","signature":"d4ee6c08bff19f130ac1b323a4a12df6b318573b2e9e3477c44598c8bfdad423"},"f2e5fa7d4aefe542762909ac966abdeaaaa76befbf561924edabb02b9b57542d","28e9fcac58f5957d1b82ab2b856799c24f7530e1d048198c1d0b9923762265ed","072a49808080400016c2557d47648297d854da5d75c2005083432f5bbbc19949","f25d3ac13258725686f0fbad31b82418ce00799f5d145570d6ee398a39651043","bbfcec9ed673c3dcb2668c3b216c7be9102a9e900e3d73801611da7f21746fdc","da3e4adedc5b5fd041f31a11d6bd98dde20febb2f2705988396d5a07f6f17543","9e6a844fae8202f8aa8bc6c7d076980221a15106c2a6a6f1e38fe1f2b8d07d62","99b07e053c9eae92b706ce3914d4b14bde4d896afc5a351c4660918ac64c6584","9fd36cbc7e5eaa50308919a4496ac677490c20a36a26208ef288f3033ad4c855","739adbaa02fd46f768fb88c72bc3359966241d36bc844a54f158fc68539f951b","8909288948f7bf5a408b6521a659a78765939ee319cd68ad5df4fb76fe1a755d","ff90f20e235b71cea80a352916e7f2a4737302e4f5b539d00e75204c82014b70","10ed1e58a17e61a6eb4f1bca430999ac214629058239489d498b88dc891f2327","1d1c0c879e2139313479670b032fc056ac93136a8199ed3e30fd118004077627","92ad95e6220ab829c8f5cfca9be43e26e041a2922cde6e998782030d41c49963","12c924e7f2e516943ce436ad51965a38cbbd9dee5fe670ae6349bd8c1bf76f52","75f4d060766b9c61825a122b94d61c45bbb6cafaa9f077c59987dc6c00467c76","42b7e0b9bed165997eb168904dfcd11254ff978ceeacda906e77d8f44c89f31f","b16879b91b181532922b7f279d8cba9c877c1436d3b0c55285ab8c6f43fd5dce","278055752eff1ed4b30b663d6b812923f041fbfd6cb6563d1b9350b53850059e","4ba1b1b1750a88a8fcc7d521d3ec3ba6235c28c73993e38adcaaec51afd57d5b","4991ee4482820b62aa2e6cd775d9984e0a45a7f6ba64d8a2737cbbb8af7c53f9","450257cba6657271a6646f9561b43062a5d2b39dba8b2e7b4d7c7fda73c6fe57","9a909c6bcc1cd061f649dc3b4dc9922fda9858166617bbc7263dd4c8bee7546f","c47421f20cec5286ce39834a3327579f36cad21f053ef8c09076c1894cd66d93","4c9975f07791ea91c74c2b8140ab48eb5ac2cc81417a108e6612c889a8bd23b3","b7b49dc760f6440dc8677ef49f0ca75c7f0f2f97f461a07bf2aa03723ac61d3d","79d938cb2e44b94e4f1497a9ccc2ff5da2fb7360d4eb7485da114055bc712379","566fd6af165b3acfa13b916594e422994e5d14f4138609fd252504800c9b96b7","ba9605656fa2ff88d69fd3676770ff1440fd70b4cbdce4ca85ac4ce27e659c7a","fedb9303cc3d1af9e5698092e3fd3622c2eb05805582107ac36c8cf0a160d16e","65d51b460383b6f7546f22c888c8b41e0de7385f20ec971acbb56da83bcbe611","b64e1ff30069e6fcfbd6b01df71b89e9f7d34581d1eba2e1fe3f3b1eaf70f28e","b725c869a5ff20458780f26afbe392017e690ee03decdb7d1202ac3539a8e235","4aaaa437c7b26c9b2668da29c1674d5be3b8f8fa150f3d7dac75d67314be9f37","f945eeb4aa141ce1af78affc6547c979f97b1cbb7d8995d4762d006e3e35c667","13bce356dc26c750244fe75f160388f59a1725d33e401ae26dc084277dd9491e","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","8a561d8bcaf60594a95c3390a489824c6688e81802701260444fb47881950257","cbc6cad822896d9d97bda9a0cea0834be8999dbe2040758cd6da3948c24415b3","e6ee1dcd00ca1c765c95b0abb2114c2ead786ae7610c823df4cd8fffbcbede10","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","8b25e65927ea90be5da89799997c6f7e7dbcd826a954bd1a466a931d380a3511","af7d2a7f8f8a0d9bcce2a017b1a9f6ec85f57e9484a65f46b6cafe8fb079e9a3","9cb1f37abda1396ced2508edf3d111c99a94421553138edc06353c1c824b8cc8","68a8ceeea894c6d5989c89207e3ac1b33c2c2026ad4a9e8c3cff1d87ea67ec77","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","989b5f3bf15619484ef2327c0a108ad33191bfc2e3deb6347bf175e79fd02e51","2b51763cbd722ee2747bc9e860dd0cc0200cdfdf6735c5c2fd4f5e3e02f1ec86","b650f3fdfd9e86f82d906dfbd81b87ef7c7d7434ee1de923d7d6cf5647434a02","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","3e2b6603bed1f4a82bdad05b68a66cc5943f8e12c647bf2f45a06c9d72cc0e00","eabca6c007c20da02a0cbbf23f6de3c39e662a9adc1a92736968179d7c4cc569","625ea89b6b179966c652b7bb93b57e7c1c2343eb9aba6cfb3ddf801359cde65c","1a69659e9cd6e3785e995d1e748809aa708a76fda03988b7ead402534311c106","27e553ea7ffbcaef2be2af5a79fdbf83cfcda0f95bf17e3c378b33402a28c1d6","1c91d24b8452adecfa340f4eefa3752b546eb68441b01a6ec43aa39f182f2181","068a6c2f0554b945cbfb006187f4c9c27386684810189dfe026a9b30470d3984","dd22a6e590d7fbabb29b903a809141cb1426846d23c21164ff4223a7f9dcff1d","93cd3ba5193ea2029b2eb0b20b94ca9c4e6b9c2a696d7d1a05211a2916ca0d77","748553e51bfbef2b4c8e646275f687e60ea77665c514ee1f880bf5a3cd509f37","a4d09f9410ec90d4b07cd054e8e2f234feb27b66b106202b386ab0b157663358","3749f5690d24338ff4b878db8d0f1b47d04fe891634c88ca56f7166f944fb96b","939f5a5215d6be2165c6a4116f5abb433b84df00f3ac4e458f3cd732786e8431","5f92a8bc72a87fca63d413ed8f303a2df36fb8143f0e974d0844c7422318909c","2a0e1e0a89c6a3991cc04812d4c6fcf92fe7511de87a684bc60357438dddf399","4ddb790ba5f1fd3689213c0501dbf21a7285f2edf562a8f7d86654877a868fc9","b0b840a3379f3539d037cb5b602541d2ab6984462761e505a23793866dc7a0d7","7aed6616e78d880577a37fa5edd42b690354874f1001acdbf21ead2f803a36a0","73a7dc6d00925ef047bc915a54cab15bb242d549b9334d9b5151cc0f35cfaf77","0a1c74bccc0c5a1f22012144a3d9afc19951348540c7ff5e5feaf4eef6259b80","3a1d5de5adaede0fb1ca2045f8b10a0e86f480a1082a11829a0b48da8ad6157f","0a1057aef93b764fb9665d101f2a050f6e060c37ec5b88f2d27bb83412a3487e","6164b754612e5776cc934dc0d6494fe2ee084d39d1cbc6fe4a23a45326730ccc","47679a6b6411019e8f7a443ec3addbec38a79a7e4679c00bc73d3ccdb81d64ce","cac86b9dbfd00f0ac7731f4074d2c69260c88ea28de96a71b0cb4efb5779b869","65bd0d34233fcaab54f5463703a0f022b2db197ef24c4a1d3adda1a9d3d6d502","f5cd1b398a44c53407e4aa1e8b503d0664299f002313d31bbce221644aadc6cb","c2f032cbe6aa8d59f021ccd865990d4d55c11fd3a1b96b81c56903cf05e36f1f","aa20bc1ba435f2a49bd640992da9517e31896e8f6d1a4817800ac96d6f10d6ea","5621180d5cf6e50f53fd6c73e0a60cd4115353f919bdd193580746896167da63","9cc5c390465b87096b69b2b0612a341d974b658cd28447696583f2762226f8c3","08371984685828cedaa25037b76def8f8f7f8304910dc66627bb58a2f53ecea4","7dd1c6c1b927f9edb94773f9333666f52f7b0bdf49a9a7f63129e9e66d1222cf","174f99dc1948a64c4211702a0fcc45d684d05fdfba3100ba4485fe45adb4d7f3","19405c79422e9c2d9ae1affae558857d3cbd138b17db596c642d008cd6c485cb","6c2ba8fe0797b626104a2fd4e8de0dad6edc4b932e4a50a7b72afa09fdcddbe9","dabc6bfb18fc1f988d37c8b659eb07fd35e8269bfa099b6dc02c14093c2b8b1a","ec9dd267b792e7c5c3733a45a3d2e43b93f02b98d86d8be50e11f9c15940c02b","a8f278a697ab8646f88cb2ba9783814e5438637cdfc3c5278e8aca82b4a1fc44","239d9e77e0026e7375dc9b6122f1b62d2c39fc2e5c10f50787cd321880146b95","0f3ca52b0d50160be177f8c79efbbcd666726c2de9256d6335e0d0bcb2e40d6f","1d8820a067af2309ef4f7739d2ada59882eebb3b2b595ff78496760c6f51ba60","0afbe91142eb631d6f31be624cf8a550b03736bfd22b0f309405a6fe4d4c9517","a3c89483a38d76c77a13b69b268a9e5d13abcdf0957ca3f28c9702c47ce8050f","40ec7e761ea0ddfc0add7aedb95dacfc579b25010ed0e2190abc1d34bb67f81e","57e52a0882af4e835473dda27e4316cc31149866970210f9f79b940e916b7838",{"version":"80ffd66f6d9d32985009436642b6335d3acbf31ad496f6d7a8dbee2935dc3751","signature":"913c02dfbe0601ecd8d146b596ee86cdead2f44186aabc187a0ee9ad631e260e"},{"version":"7267b7b75ba5ec5131804becf902b090c59aac4f8a8448c7c419b761b6c91625","signature":"a50c30a3b6e56b48ab06620b914fae4586647703e2998ca7886faf1b51abb512"},{"version":"17b9edbf7cf1a664352d2f307814fd0fb8db78e3cb992f00e5cef3620d7e7dfe","signature":"cfcdb9fbcb730987553e04ce70c3848fadc93e8ff5f48da91f67026da67c2db0"},{"version":"f3c76b29fea10d308adb98828a1b6a94e59ab9bae3166884dda38a2da056d5f1","signature":"d28afb4fb06e906027f4f2795823a43b893e40ac97fd0dce6c8aca3e6ddadee4"},{"version":"cbe55fad4dd27bd9d3c0ad6deb96a70dbaf32b2a4388e706d11ee508e654c4c0","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},{"version":"69ea20104923b196ebbf0ae37374ae1a572fdad17480e30403b107b765c67095","signature":"78fa342775f68d2c9160b5728b6642e66479372e62f5c5d08c399a4a95786243"},{"version":"c98b2f3a14dad97d0ff29c37cbf369c51a0198d64d944693e2c9c6248297e2e7","signature":"f6f5d902e2ef2f3904fac06f2223e72cb4f37786320a1ec087b06c934de48d7c"},{"version":"f0a930ce3e51cca077b139e56aeffad6b55a46ac3e0b1c27e5fb03997bc2f93f","signature":"123b52edb06a3999ebd740030b8943d808b60e3928eeb61f53fb54b34f02c92f"},{"version":"56f3fda0e7fc790bc7abffb7bae74eea21061214db808a484931a6292ede7d57","signature":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},"6d829824ead8999f87b6df21200df3c6150391b894b4e80662caa462bd48d073","bc81aff061c53a7140270555f4b22da4ecfe8601e8027cf5aa175fbdc7927c31",{"version":"b9734142a4b241cfb505be4a2eb0261d211647df7c73043f817f4fdd8d96c846","affectsGlobalScope":true},"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538",{"version":"677646e2620795c98a539fb12fb531f10331c217cef1492132b2518f894fa92d","affectsGlobalScope":true}],"options":{"declaration":true,"esModuleInterop":true,"module":1,"outDir":"./","removeComments":true,"skipLibCheck":true,"target":1},"fileIdsList":[[50,92,99,109,135],[50,92,99,109,125,135],[92,109,126,127,128,135,136],[50,92,99,106,109,135],[92,99,109,125,129,134],[92,99,109,135],[92,109,125,135],[92,109,130,131,132,133,135],[92,106],[50,92,99,106],[92,106,107,109,113,114,115,117,135,136,147,149,151],[92,150,152],[92,113,134,149],[92,106,113],[92,106,109,113,116,123,124],[92,106,108,109,110],[92,106,109,111],[92,106,109,113,124,135],[92,106,109,110,111,113,117,125,135,148],[92,99,106,108,109,111,113,124,135],[92,106,109,113,116,117,118,119,120,121,122,123,124,135],[92,99,106,109,110,124],[92,106,109,110,111,113,116,117,118,119,120,121,122,124],[92,106,109,113,119,124],[92,106,109,113,119,124,125,135],[92,106,109,118,124],[92,99,106,107,109,110,123,152],[92,106,109,121,124],[92,106,112],[50,92,99],[92,99],[92,139,140,141,142],[92],[92,112,137,138,143,144,145,146],[50,92,99,106,111],[92,99,106,107],[50,92,99,106,111,113],[50,92],[92,106,180],[92,163,164,165,166,167,168,169,170,171,172,173,174,175,176,181,182,183,184,187,188,189,190,191,192],[92,106,186],[92,197,198,199],[92,106,177,185],[92,177,180],[92,201,202,203],[92,106,177,180,185],[92,177,178,180],[92,99,178],[92,179,196,200,204,205,209,213,214,215,219,220],[92,206,207,208],[92,106,177,178],[92,210,211,212],[92,177,178],[92,216,217,218],[92,106,177,178,180],[92,193,194,195,221,252,254],[92,106,186,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243],[92,185,186,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251],[92,106,179,185],[92,106,185],[92,99,106,177,179],[92,178,180,253],[92,99,106,177],[50,65,67,92,99,105],[65,92,99],[46,92],[49,92],[50,55,83,92],[51,62,63,70,80,91,92],[51,52,62,70,92],[53,92],[54,55,63,71,92],[55,80,88,92],[56,58,62,70,92],[57,92],[58,59,92],[62,92],[60,62,92],[62,63,64,80,91,92],[62,63,64,77,80,83,92],[92,96],[58,65,70,80,91,92],[62,63,65,66,70,80,88,91,92],[65,67,80,88,91,92],[46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],[62,68,92],[69,91,92],[58,62,70,80,92],[71,92],[72,92],[49,73,92],[74,90,92,96],[75,92],[76,92],[62,77,78,92],[77,79,92,94],[50,62,80,81,82,83,92],[50,80,82,92],[80,81,92],[83,92],[84,92],[62,86,87,92],[86,87,92],[55,70,80,88,92],[89,92],[70,90,92],[50,65,76,91,92],[55,92],[80,92,93],[92,94],[92,95],[50,55,62,64,73,80,91,92,94,96],[80,92,97],[62,65,67,70,80,88,91,92,97,99],[92,257],[92,102,103],[65,92,99,101,104],[92,106,107,154],[92,106,107,155,157,158,160],[92,154,155,156,157,158,160,161,162,260,261,262,263,265,266],[92,106,152,155,157,160],[92,106,152,154,155,156,157,158,159,160,161,162,255,256,258,260,261],[92,106,152,155,157,158,160,161,162,255,259],[92,106,152,153],[92,106,152,154,155,158,159,160,161,162,255,260],[92,106,152,157],[92,106,152,155,156],[92,143,152,156],[92,106,107,155,159],[92,106,114,152],[106,107],[106,107,157,158],[154,155,156,157,158,160,161,162,260,261,262,263,265,266],[152],[106,152,154,156,157,158,161,162,260,261],[106,152,157,158,161,162],[106,152],[152,154,161,162,255,260],[106,152,157],[152,156],[106],[106,107,159]],"referencedMap":[[126,1],[127,2],[129,3],[136,4],[128,1],[135,5],[131,6],[132,7],[134,8],[130,6],[133,6],[115,9],[109,10],[152,11],[151,12],[150,13],[114,14],[117,15],[111,16],[110,17],[125,18],[149,19],[116,20],[148,21],[118,22],[123,23],[120,24],[121,25],[119,26],[124,27],[122,28],[113,29],[142,30],[141,31],[139,30],[143,32],[140,33],[145,33],[147,34],[138,35],[146,36],[112,37],[137,33],[144,9],[177,38],[163,9],[164,9],[165,9],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[181,39],[193,40],[182,9],[183,9],[184,9],[187,41],[188,9],[189,9],[190,9],[191,9],[192,9],[194,9],[195,33],[196,33],[197,9],[200,42],[198,43],[199,44],[201,39],[204,45],[202,46],[203,47],[179,48],[205,44],[221,49],[206,9],[209,50],[207,43],[208,51],[210,9],[213,52],[211,43],[212,44],[214,51],[215,53],[220,51],[216,9],[219,54],[217,43],[218,55],[255,56],[223,43],[224,43],[225,43],[222,9],[226,43],[227,43],[228,43],[249,43],[244,57],[229,43],[252,58],[230,43],[231,43],[232,43],[246,43],[233,43],[234,43],[247,43],[235,43],[245,33],[250,43],[251,43],[236,43],[237,43],[248,59],[238,43],[186,43],[239,43],[240,43],[241,43],[242,43],[185,33],[243,60],[180,61],[254,62],[178,61],[253,63],[106,64],[107,31],[269,65],[46,66],[47,66],[49,67],[50,68],[51,69],[52,70],[53,71],[54,72],[55,73],[56,74],[57,75],[58,76],[59,76],[61,77],[60,78],[62,77],[63,79],[64,80],[48,81],[98,33],[65,82],[66,83],[67,84],[99,85],[68,86],[69,87],[70,88],[71,89],[72,90],[73,91],[74,92],[75,93],[76,94],[77,95],[78,95],[79,96],[80,97],[82,98],[81,99],[83,100],[84,101],[85,33],[86,102],[87,103],[88,104],[89,105],[90,106],[91,107],[92,108],[93,109],[94,110],[95,111],[96,112],[97,113],[270,114],[257,33],[159,33],[258,115],[100,33],[108,33],[102,33],[104,116],[103,33],[101,33],[256,33],[105,117],[1,33],[9,33],[13,33],[12,33],[3,33],[14,33],[15,33],[16,33],[17,33],[18,33],[19,33],[20,33],[21,33],[4,33],[5,33],[25,33],[22,33],[23,33],[24,33],[26,33],[27,33],[28,33],[6,33],[29,33],[30,33],[31,33],[32,33],[7,33],[36,33],[33,33],[34,33],[35,33],[37,33],[8,33],[38,33],[43,33],[44,33],[39,33],[40,33],[41,33],[42,33],[2,33],[45,33],[11,33],[10,33],[259,33],[155,118],[161,119],[156,33],[267,120],[162,121],[262,122],[260,123],[153,33],[154,124],[263,125],[158,126],[268,33],[264,33],[157,127],[266,9],[265,128],[160,129],[261,130],[271,33],[272,33],[273,33]],"exportedModulesMap":[[126,1],[127,2],[129,3],[136,4],[128,1],[135,5],[131,6],[132,7],[134,8],[130,6],[133,6],[115,9],[109,10],[152,11],[151,12],[150,13],[114,14],[117,15],[111,16],[110,17],[125,18],[149,19],[116,20],[148,21],[118,22],[123,23],[120,24],[121,25],[119,26],[124,27],[122,28],[113,29],[142,30],[141,31],[139,30],[143,32],[140,33],[145,33],[147,34],[138,35],[146,36],[112,37],[137,33],[144,9],[177,38],[163,9],[164,9],[165,9],[166,9],[167,9],[168,9],[169,9],[170,9],[171,9],[172,9],[173,9],[174,9],[175,9],[176,9],[181,39],[193,40],[182,9],[183,9],[184,9],[187,41],[188,9],[189,9],[190,9],[191,9],[192,9],[194,9],[195,33],[196,33],[197,9],[200,42],[198,43],[199,44],[201,39],[204,45],[202,46],[203,47],[179,48],[205,44],[221,49],[206,9],[209,50],[207,43],[208,51],[210,9],[213,52],[211,43],[212,44],[214,51],[215,53],[220,51],[216,9],[219,54],[217,43],[218,55],[255,56],[223,43],[224,43],[225,43],[222,9],[226,43],[227,43],[228,43],[249,43],[244,57],[229,43],[252,58],[230,43],[231,43],[232,43],[246,43],[233,43],[234,43],[247,43],[235,43],[245,33],[250,43],[251,43],[236,43],[237,43],[248,59],[238,43],[186,43],[239,43],[240,43],[241,43],[242,43],[185,33],[243,60],[180,61],[254,62],[178,61],[253,63],[106,64],[107,31],[269,65],[46,66],[47,66],[49,67],[50,68],[51,69],[52,70],[53,71],[54,72],[55,73],[56,74],[57,75],[58,76],[59,76],[61,77],[60,78],[62,77],[63,79],[64,80],[48,81],[98,33],[65,82],[66,83],[67,84],[99,85],[68,86],[69,87],[70,88],[71,89],[72,90],[73,91],[74,92],[75,93],[76,94],[77,95],[78,95],[79,96],[80,97],[82,98],[81,99],[83,100],[84,101],[85,33],[86,102],[87,103],[88,104],[89,105],[90,106],[91,107],[92,108],[93,109],[94,110],[95,111],[96,112],[97,113],[270,114],[257,33],[159,33],[258,115],[100,33],[108,33],[102,33],[104,116],[103,33],[101,33],[256,33],[105,117],[1,33],[9,33],[13,33],[12,33],[3,33],[14,33],[15,33],[16,33],[17,33],[18,33],[19,33],[20,33],[21,33],[4,33],[5,33],[25,33],[22,33],[23,33],[24,33],[26,33],[27,33],[28,33],[6,33],[29,33],[30,33],[31,33],[32,33],[7,33],[36,33],[33,33],[34,33],[35,33],[37,33],[8,33],[38,33],[43,33],[44,33],[39,33],[40,33],[41,33],[42,33],[2,33],[45,33],[11,33],[10,33],[259,33],[155,131],[161,132],[267,133],[162,134],[262,135],[260,136],[153,33],[154,137],[263,138],[158,139],[157,140],[266,141],[265,134],[160,142],[261,137],[271,33],[272,33],[273,33]],"semanticDiagnosticsPerFile":[126,127,129,136,128,135,131,132,134,130,133,115,109,152,151,150,114,117,111,110,125,149,116,148,118,123,120,121,119,124,122,113,142,141,139,143,140,145,147,138,146,112,137,144,177,163,164,165,166,167,168,169,170,171,172,173,174,175,176,181,193,182,183,184,187,188,189,190,191,192,194,195,196,197,200,198,199,201,204,202,203,179,205,221,206,209,207,208,210,213,211,212,214,215,220,216,219,217,218,255,223,224,225,222,226,227,228,249,244,229,252,230,231,232,246,233,234,247,235,245,250,251,236,237,248,238,186,239,240,241,242,185,243,180,254,178,253,106,107,269,46,47,49,50,51,52,53,54,55,56,57,58,59,61,60,62,63,64,48,98,65,66,67,99,68,69,70,71,72,73,74,75,76,77,78,79,80,82,81,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,270,257,159,258,100,108,102,104,103,101,256,105,1,9,13,12,3,14,15,16,17,18,19,20,21,4,5,25,22,23,24,26,27,28,6,29,30,31,32,7,36,33,34,35,37,8,38,43,44,39,40,41,42,2,45,11,10,259,155,161,156,267,162,262,260,153,154,263,158,268,264,157,266,265,160,261,271,272,273]},"version":"4.9.5"}
@@ -1,10 +1,11 @@
1
1
  /// <reference types="bn.js" />
2
- import { MethodsNamespace, IdlTypes, IdlAccounts, BN } from "@coral-xyz/anchor";
2
+ import { MethodsNamespace, IdlTypes, IdlAccounts, BN, IdlEvents } from "@coral-xyz/anchor";
3
3
  import { Perpetuals } from "../idl/perpetuals";
4
4
  export type PositionSide = "long" | "short";
5
5
  export type Methods = MethodsNamespace<Perpetuals>;
6
6
  export type Accounts = IdlAccounts<Perpetuals>;
7
7
  export type Types = IdlTypes<Perpetuals>;
8
+ export type Events = IdlEvents<Perpetuals>;
8
9
  export type InitParams = Types["InitParams"];
9
10
  export type OracleParams = Types["OracleParams"];
10
11
  export type PricingParams = Types["PricingParams"];
@@ -91,9 +92,11 @@ export declare class FeesAction {
91
92
  }
92
93
  export declare const DEFAULT_POSITION: Position;
93
94
  export interface ExitPriceAndFee {
94
- price: BN;
95
- fee: BN;
96
- exitAmount: BN;
95
+ exitPrice: BN;
96
+ borrowFeeUsd: BN;
97
+ borrowFeeAmount: BN;
98
+ exitFeeUsd: BN;
99
+ exitFeeAmount: BN;
97
100
  liquidationPrice: BN;
98
101
  }
99
102
  export interface MinAndMaxPrice {
@@ -101,8 +104,9 @@ export interface MinAndMaxPrice {
101
104
  max: BN;
102
105
  }
103
106
  export interface EntryPriceAndFee {
104
- price: BN;
105
- fee: BN;
107
+ entryPrice: BN;
108
+ feeUsd: BN;
109
+ feeAmount: BN;
106
110
  liquidationPrice: BN;
107
111
  }
108
112
  export interface RemoveCollateralData {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "flash-sdk",
3
- "version": "1.0.85",
3
+ "version": "1.0.86",
4
4
  "main": "dist/index.js",
5
5
  "types": "dist/index.d.ts",
6
6
  "files": [
@@ -21,11 +21,13 @@
21
21
  },
22
22
  "dependencies": {
23
23
  "@coral-xyz/anchor": "^0.27.0",
24
+ "@pythnetwork/client": "^2.19.0",
24
25
  "@solana/spl-token": "^0.3.6",
25
26
  "@solana/web3.js": "^1.70.1",
26
27
  "@types/node": "^20.0.0",
27
28
  "bignumber.js": "^9.1.2",
28
29
  "bs58": "^5.0.0",
30
+ "dotenv": "^16.3.1",
29
31
  "fs": "^0.0.1-security",
30
32
  "js-sha256": "^0.9.0",
31
33
  "jsbi": "^4",