@pendle/sdk-boros 1.1.18 → 1.1.19-strategies-1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/CHANGELOG.md +6 -0
  2. package/dist/entities/Calculator/exchangeFees.d.ts +47 -0
  3. package/dist/entities/Calculator/exchangeFees.js +93 -0
  4. package/dist/entities/Calculator/exchangeFees.js.map +1 -0
  5. package/dist/entities/Calculator/index.d.ts +7 -0
  6. package/dist/entities/Calculator/index.js +24 -0
  7. package/dist/entities/Calculator/index.js.map +1 -0
  8. package/dist/entities/Calculator/marginCalculator.d.ts +10 -0
  9. package/dist/entities/Calculator/marginCalculator.js +64 -0
  10. package/dist/entities/Calculator/marginCalculator.js.map +1 -0
  11. package/dist/entities/Calculator/strategyApr.d.ts +30 -0
  12. package/dist/entities/Calculator/strategyApr.js +97 -0
  13. package/dist/entities/Calculator/strategyApr.js.map +1 -0
  14. package/dist/entities/Calculator/strategyExecution.d.ts +28 -0
  15. package/dist/entities/Calculator/strategyExecution.js +137 -0
  16. package/dist/entities/Calculator/strategyExecution.js.map +1 -0
  17. package/dist/entities/Calculator/strategyFinder.d.ts +13 -0
  18. package/dist/entities/Calculator/strategyFinder.js +201 -0
  19. package/dist/entities/Calculator/strategyFinder.js.map +1 -0
  20. package/dist/entities/Calculator/strategyUtils.d.ts +17 -0
  21. package/dist/entities/Calculator/strategyUtils.js +59 -0
  22. package/dist/entities/Calculator/strategyUtils.js.map +1 -0
  23. package/dist/entities/Calculator/types.d.ts +69 -0
  24. package/dist/entities/Calculator/types.js +3 -0
  25. package/dist/entities/Calculator/types.js.map +1 -0
  26. package/dist/entities/index.d.ts +1 -0
  27. package/dist/entities/index.js +1 -0
  28. package/dist/entities/index.js.map +1 -1
  29. package/dist/types/encoders.d.ts +5 -0
  30. package/dist/types/encoders.js +7 -0
  31. package/dist/types/encoders.js.map +1 -1
  32. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @pendle/sdk-boros
2
2
 
3
+ ## 1.1.19
4
+
5
+ ### Patch Changes
6
+
7
+ - 746caf0: Add tryAggregate to encoder
8
+
3
9
  ## 1.1.18
4
10
 
5
11
  ### Patch Changes
@@ -0,0 +1,47 @@
1
+ import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
2
+ export declare const EXCHANGE_PERP_FEES: Record<string, {
3
+ maker: number;
4
+ taker: number;
5
+ }>;
6
+ export declare const DEFAULT_PERP_FEE: {
7
+ maker: number;
8
+ taker: number;
9
+ };
10
+ export type FeeType = 'maker' | 'taker';
11
+ export declare function getExchangePerpFee(exchange: string, feeType?: FeeType): number;
12
+ export declare function getBorosFeesFromMarket(market: MarketResponse): {
13
+ tradeFee: number;
14
+ settlementFee: number;
15
+ };
16
+ export declare function getStrategyFees(longMarket: MarketResponse, shortMarket: MarketResponse): {
17
+ exchangeFee1: number;
18
+ exchangeFee2: number;
19
+ borosTradeFee: number;
20
+ borosSettlementFee: number;
21
+ };
22
+ export type VipTier = 'base' | 'vip1' | 'vip2' | 'vip3' | 'vip4' | 'vip5';
23
+ export declare const BINANCE_VIP_FEES: Record<VipTier, {
24
+ maker: number;
25
+ taker: number;
26
+ }>;
27
+ export declare const HYPERLIQUID_TIER_FEES: Record<string, {
28
+ maker: number;
29
+ taker: number;
30
+ }>;
31
+ export declare const OKX_VIP_FEES: Record<VipTier, {
32
+ maker: number;
33
+ taker: number;
34
+ }>;
35
+ export declare function getExchangePerpFeeWithTier(exchange: string, tier?: VipTier, feeType?: FeeType): number;
36
+ export declare function formatFeeSummary(fees: {
37
+ exchangeFee1: number;
38
+ exchangeFee2: number;
39
+ borosTradeFee: number;
40
+ borosSettlementFee: number;
41
+ }): {
42
+ exchangeFee1Pct: string;
43
+ exchangeFee2Pct: string;
44
+ borosTradeFeePct: string;
45
+ borosSettlementFeePct: string;
46
+ totalFeePct: string;
47
+ };
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OKX_VIP_FEES = exports.HYPERLIQUID_TIER_FEES = exports.BINANCE_VIP_FEES = exports.DEFAULT_PERP_FEE = exports.EXCHANGE_PERP_FEES = void 0;
4
+ exports.getExchangePerpFee = getExchangePerpFee;
5
+ exports.getBorosFeesFromMarket = getBorosFeesFromMarket;
6
+ exports.getStrategyFees = getStrategyFees;
7
+ exports.getExchangePerpFeeWithTier = getExchangePerpFeeWithTier;
8
+ exports.formatFeeSummary = formatFeeSummary;
9
+ exports.EXCHANGE_PERP_FEES = {
10
+ Binance: {
11
+ maker: 0.0002,
12
+ taker: 0.0005,
13
+ },
14
+ Hyperliquid: {
15
+ maker: 0.0001,
16
+ taker: 0.00035,
17
+ },
18
+ OKX: {
19
+ maker: 0.0002,
20
+ taker: 0.0005,
21
+ },
22
+ };
23
+ exports.DEFAULT_PERP_FEE = {
24
+ maker: 0.0002,
25
+ taker: 0.0005,
26
+ };
27
+ function getExchangePerpFee(exchange, feeType = 'taker') {
28
+ const fees = exports.EXCHANGE_PERP_FEES[exchange] ?? exports.DEFAULT_PERP_FEE;
29
+ return fees[feeType];
30
+ }
31
+ function getBorosFeesFromMarket(market) {
32
+ const tradeFee = market.config.takerFee ? Number(market.config.takerFee) / 1e18 : 0.0015;
33
+ const settlementFee = market.extConfig.settleFeeRate ? Number(market.extConfig.settleFeeRate) / 1e18 : 0.0015;
34
+ return {
35
+ tradeFee,
36
+ settlementFee,
37
+ };
38
+ }
39
+ function getStrategyFees(longMarket, shortMarket) {
40
+ const exchange1 = longMarket.metadata?.platformName ?? 'Unknown';
41
+ const exchange2 = shortMarket.metadata?.platformName ?? 'Unknown';
42
+ const borosFees = getBorosFeesFromMarket(longMarket);
43
+ return {
44
+ exchangeFee1: getExchangePerpFee(exchange1, 'taker'),
45
+ exchangeFee2: getExchangePerpFee(exchange2, 'taker'),
46
+ borosTradeFee: borosFees.tradeFee,
47
+ borosSettlementFee: borosFees.settlementFee,
48
+ };
49
+ }
50
+ exports.BINANCE_VIP_FEES = {
51
+ base: { maker: 0.0002, taker: 0.0005 },
52
+ vip1: { maker: 0.00016, taker: 0.0004 },
53
+ vip2: { maker: 0.00014, taker: 0.00035 },
54
+ vip3: { maker: 0.00012, taker: 0.00032 },
55
+ vip4: { maker: 0.0001, taker: 0.0003 },
56
+ vip5: { maker: 0.00008, taker: 0.00027 },
57
+ };
58
+ exports.HYPERLIQUID_TIER_FEES = {
59
+ base: { maker: 0.0001, taker: 0.00035 },
60
+ referral: { maker: 0.0001, taker: 0.00035 },
61
+ vip: { maker: 0.00005, taker: 0.00025 },
62
+ };
63
+ exports.OKX_VIP_FEES = {
64
+ base: { maker: 0.0002, taker: 0.0005 },
65
+ vip1: { maker: 0.00018, taker: 0.00045 },
66
+ vip2: { maker: 0.00015, taker: 0.0004 },
67
+ vip3: { maker: 0.00012, taker: 0.00035 },
68
+ vip4: { maker: 0.0001, taker: 0.0003 },
69
+ vip5: { maker: 0.00008, taker: 0.00025 },
70
+ };
71
+ function getExchangePerpFeeWithTier(exchange, tier = 'base', feeType = 'taker') {
72
+ switch (exchange) {
73
+ case 'Binance':
74
+ return exports.BINANCE_VIP_FEES[tier]?.[feeType] ?? exports.BINANCE_VIP_FEES.base[feeType];
75
+ case 'OKX':
76
+ return exports.OKX_VIP_FEES[tier]?.[feeType] ?? exports.OKX_VIP_FEES.base[feeType];
77
+ case 'Hyperliquid':
78
+ return exports.HYPERLIQUID_TIER_FEES.base[feeType];
79
+ default:
80
+ return exports.DEFAULT_PERP_FEE[feeType];
81
+ }
82
+ }
83
+ function formatFeeSummary(fees) {
84
+ const totalFee = 2 * (fees.exchangeFee1 + fees.exchangeFee2 + fees.borosTradeFee + fees.borosSettlementFee);
85
+ return {
86
+ exchangeFee1Pct: `${(fees.exchangeFee1 * 100).toFixed(3)}%`,
87
+ exchangeFee2Pct: `${(fees.exchangeFee2 * 100).toFixed(3)}%`,
88
+ borosTradeFeePct: `${(fees.borosTradeFee * 100).toFixed(3)}%`,
89
+ borosSettlementFeePct: `${(fees.borosSettlementFee * 100).toFixed(3)}%`,
90
+ totalFeePct: `${(totalFee * 100).toFixed(3)}%`,
91
+ };
92
+ }
93
+ //# sourceMappingURL=exchangeFees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"exchangeFees.js","sourceRoot":"","sources":["../../../src/entities/Calculator/exchangeFees.ts"],"names":[],"mappings":";;;AA+CA,gDAGC;AAQD,wDAcC;AAWD,0CAkBC;AA8CD,gEAgBC;AAKD,4CAqBC;AAtLY,QAAA,kBAAkB,GAAqD;IAGlF,OAAO,EAAE;QACP,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;KACd;IAID,WAAW,EAAE;QACX,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,OAAO;KACf;IAID,GAAG,EAAE;QACH,KAAK,EAAE,MAAM;QACb,KAAK,EAAE,MAAM;KACd;CACF,CAAC;AAKW,QAAA,gBAAgB,GAAG;IAC9B,KAAK,EAAE,MAAM;IACb,KAAK,EAAE,MAAM;CACd,CAAC;AAWF,SAAgB,kBAAkB,CAAC,QAAgB,EAAE,UAAmB,OAAO;IAC7E,MAAM,IAAI,GAAG,0BAAkB,CAAC,QAAQ,CAAC,IAAI,wBAAgB,CAAC;IAC9D,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC;AACvB,CAAC;AAQD,SAAgB,sBAAsB,CAAC,MAAsB;IAK3D,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAGzF,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC;IAE9G,OAAO;QACL,QAAQ;QACR,aAAa;KACd,CAAC;AACJ,CAAC;AAWD,SAAgB,eAAe,CAAC,UAA0B,EAAE,WAA2B;IAMrF,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,EAAE,YAAY,IAAI,SAAS,CAAC;IACjE,MAAM,SAAS,GAAG,WAAW,CAAC,QAAQ,EAAE,YAAY,IAAI,SAAS,CAAC;IAGlE,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IAErD,OAAO;QACL,YAAY,EAAE,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACpD,YAAY,EAAE,kBAAkB,CAAC,SAAS,EAAE,OAAO,CAAC;QACpD,aAAa,EAAE,SAAS,CAAC,QAAQ;QACjC,kBAAkB,EAAE,SAAS,CAAC,aAAa;KAC5C,CAAC;AACJ,CAAC;AAWY,QAAA,gBAAgB,GAAsD;IACjF,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;IACvC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CACzC,CAAC;AAMW,QAAA,qBAAqB,GAAqD;IACrF,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;IACvC,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE;IAC3C,GAAG,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CACxC,CAAC;AAMW,QAAA,YAAY,GAAsD;IAC7E,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE;IACvC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;IACxC,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IACtC,IAAI,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE;CACzC,CAAC;AAKF,SAAgB,0BAA0B,CACxC,QAAgB,EAChB,OAAgB,MAAM,EACtB,UAAmB,OAAO;IAE1B,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,SAAS;YACZ,OAAO,wBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,wBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7E,KAAK,KAAK;YACR,OAAO,oBAAY,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,oBAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACrE,KAAK,aAAa;YAEhB,OAAO,6BAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C;YACE,OAAO,wBAAgB,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;AACH,CAAC;AAKD,SAAgB,gBAAgB,CAAC,IAKhC;IAOC,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC;IAE5G,OAAO;QACL,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC3D,eAAe,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC3D,gBAAgB,EAAE,GAAG,CAAC,IAAI,CAAC,aAAa,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QAC7D,qBAAqB,EAAE,GAAG,CAAC,IAAI,CAAC,kBAAkB,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;QACvE,WAAW,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG;KAC/C,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ export * from './types';
2
+ export * from './strategyFinder';
3
+ export * from './strategyExecution';
4
+ export * from './strategyApr';
5
+ export * from './exchangeFees';
6
+ export * from './marginCalculator';
7
+ export * from './strategyUtils';
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./types"), exports);
18
+ __exportStar(require("./strategyFinder"), exports);
19
+ __exportStar(require("./strategyExecution"), exports);
20
+ __exportStar(require("./strategyApr"), exports);
21
+ __exportStar(require("./exchangeFees"), exports);
22
+ __exportStar(require("./marginCalculator"), exports);
23
+ __exportStar(require("./strategyUtils"), exports);
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/entities/Calculator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,mDAAiC;AACjC,sDAAoC;AACpC,gDAA8B;AAC9B,iDAA+B;AAC/B,qDAAmC;AACnC,kDAAgC"}
@@ -0,0 +1,10 @@
1
+ import { FixedX18 } from '@pendle/boros-offchain-math';
2
+ import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
3
+ export declare function getMarginRequiredFor1YU(market: MarketResponse, leverage?: number): number;
4
+ export declare function getMarginRequiredFor1YUFixedX18(market: MarketResponse, leverage?: number): FixedX18;
5
+ export declare function getStrategyBorosMargin(longMarket: MarketResponse, shortMarket: MarketResponse, leverage?: number): number;
6
+ export declare function getStrategyMarginRequirements(longMarket: MarketResponse, shortMarket: MarketResponse, leverage?: number): {
7
+ marginRequired1: number;
8
+ marginRequired2: number;
9
+ totalBorosMargin: number;
10
+ };
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarginRequiredFor1YU = getMarginRequiredFor1YU;
4
+ exports.getMarginRequiredFor1YUFixedX18 = getMarginRequiredFor1YUFixedX18;
5
+ exports.getStrategyBorosMargin = getStrategyBorosMargin;
6
+ exports.getStrategyMarginRequirements = getStrategyMarginRequirements;
7
+ const boros_offchain_math_1 = require("@pendle/boros-offchain-math");
8
+ const market_1 = require("../market/market");
9
+ const DEFAULT_MIN_MARGIN_INDEX_RATE = boros_offchain_math_1.FixedX18.fromNumber(0.1);
10
+ const DEFAULT_MIN_MARGIN_INDEX_DURATION_S = 604800;
11
+ const ONE_YU = 10n ** 18n;
12
+ function extractMarketParams(market, leverage) {
13
+ const effectiveLeverage = leverage ?? market.metadata?.maxLeverage ?? 1;
14
+ const marginFactor = market.config.kIM
15
+ ? boros_offchain_math_1.FixedX18.fromRawValue(BigInt(market.config.kIM))
16
+ : boros_offchain_math_1.FixedX18.fromNumber(0.5);
17
+ const minMarginIndexDuration_s = market.config.tThresh ?? DEFAULT_MIN_MARGIN_INDEX_DURATION_S;
18
+ const timeToMaturity = market.data?.timeToMaturity ??
19
+ Math.max(0, market.imData.maturity - Math.floor(Date.now() / 1000));
20
+ const impliedApr = market.data?.ammImpliedApr ?? market.data?.midApr ?? 0;
21
+ const orderRate = boros_offchain_math_1.FixedX18.fromNumber(impliedApr);
22
+ const markRate = boros_offchain_math_1.FixedX18.fromNumber(market.data?.markApr ?? impliedApr);
23
+ return {
24
+ marginFactor,
25
+ markRate,
26
+ minMarginIndexRate: (0, boros_offchain_math_1.getRateAtTick)(BigInt(market.imData.iTickThresh), BigInt(market.imData.tickStep)),
27
+ minMarginIndexDuration_s,
28
+ timeToMaturity,
29
+ leverage: effectiveLeverage,
30
+ orderRate,
31
+ isMarketOrder: true,
32
+ };
33
+ }
34
+ function getMarginRequiredFor1YU(market, leverage) {
35
+ const params = extractMarketParams(market, leverage);
36
+ const marginBigInt = market_1.Market.getInitialMarginByOrderSize({
37
+ ...params,
38
+ orderSize: ONE_YU,
39
+ }, false);
40
+ return Number(marginBigInt) / 1e18;
41
+ }
42
+ function getMarginRequiredFor1YUFixedX18(market, leverage) {
43
+ const params = extractMarketParams(market, leverage);
44
+ const marginBigInt = market_1.Market.getInitialMarginByOrderSize({
45
+ ...params,
46
+ orderSize: ONE_YU,
47
+ }, false);
48
+ return boros_offchain_math_1.FixedX18.fromRawValue(marginBigInt);
49
+ }
50
+ function getStrategyBorosMargin(longMarket, shortMarket, leverage) {
51
+ const marginRequired1 = getMarginRequiredFor1YU(longMarket, leverage);
52
+ const marginRequired2 = getMarginRequiredFor1YU(shortMarket, leverage);
53
+ return marginRequired1 + marginRequired2;
54
+ }
55
+ function getStrategyMarginRequirements(longMarket, shortMarket, leverage) {
56
+ const marginRequired1 = getMarginRequiredFor1YU(longMarket, leverage);
57
+ const marginRequired2 = getMarginRequiredFor1YU(shortMarket, leverage);
58
+ return {
59
+ marginRequired1,
60
+ marginRequired2,
61
+ totalBorosMargin: marginRequired1 + marginRequired2,
62
+ };
63
+ }
64
+ //# sourceMappingURL=marginCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marginCalculator.js","sourceRoot":"","sources":["../../../src/entities/Calculator/marginCalculator.ts"],"names":[],"mappings":";;AAkEA,0DAiBC;AAKD,0EAeC;AAUD,wDAQC;AAKD,sEAgBC;AA9ID,qEAAsE;AAEtE,6CAA0C;AAM1C,MAAM,6BAA6B,GAAG,8BAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAK/D,MAAM,mCAAmC,GAAG,MAAM,CAAC;AAKnD,MAAM,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC;AAK1B,SAAS,mBAAmB,CAAC,MAAsB,EAAE,QAAiB;IACpE,MAAM,iBAAiB,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC;IAGxE,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG;QACpC,CAAC,CAAC,8BAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClD,CAAC,CAAC,8BAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;IAG7B,MAAM,wBAAwB,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,mCAAmC,CAAC;IAG9F,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,EAAE,cAAc;QAChD,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAGtE,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;IAC1E,MAAM,SAAS,GAAG,8BAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAGlD,MAAM,QAAQ,GAAG,8BAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,IAAI,UAAU,CAAC,CAAC;IAEzE,OAAO;QACL,YAAY;QACZ,QAAQ;QACR,kBAAkB,EAAE,IAAA,mCAAa,EAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACpG,wBAAwB;QACxB,cAAc;QACd,QAAQ,EAAE,iBAAiB;QAC3B,SAAS;QACT,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC;AAWD,SAAgB,uBAAuB,CACrC,MAAsB,EACtB,QAAiB;IAEjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAGrD,MAAM,YAAY,GAAG,eAAM,CAAC,2BAA2B,CACrD;QACE,GAAG,MAAM;QACT,SAAS,EAAE,MAAM;KAClB,EACD,KAAK,CACN,CAAC;IAGF,OAAO,MAAM,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC;AACrC,CAAC;AAKD,SAAgB,+BAA+B,CAC7C,MAAsB,EACtB,QAAiB;IAEjB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAErD,MAAM,YAAY,GAAG,eAAM,CAAC,2BAA2B,CACrD;QACE,GAAG,MAAM;QACT,SAAS,EAAE,MAAM;KAClB,EACD,KAAK,CACN,CAAC;IAEF,OAAO,8BAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;AAC7C,CAAC;AAUD,SAAgB,sBAAsB,CACpC,UAA0B,EAC1B,WAA2B,EAC3B,QAAiB;IAEjB,MAAM,eAAe,GAAG,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvE,OAAO,eAAe,GAAG,eAAe,CAAC;AAC3C,CAAC;AAKD,SAAgB,6BAA6B,CAC3C,UAA0B,EAC1B,WAA2B,EAC3B,QAAiB;IAMjB,MAAM,eAAe,GAAG,uBAAuB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACtE,MAAM,eAAe,GAAG,uBAAuB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACvE,OAAO;QACL,eAAe;QACf,eAAe;QACf,gBAAgB,EAAE,eAAe,GAAG,eAAe;KACpD,CAAC;AACJ,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { FixedX18 } from '@pendle/boros-offchain-math';
2
+ import type { Strategy, StrategyCalculatorInput, StrategyCalculatorResult, StrategyFixedAprParams } from './types';
3
+ export declare function calculateStrategyFixedApr(params: StrategyFixedAprParams): number;
4
+ export declare function calculateStrategyFixedAprFixedX18(params: {
5
+ perpLeverage: number;
6
+ daysToMaturity: number;
7
+ borosMargin: FixedX18;
8
+ impliedApr1: FixedX18;
9
+ impliedApr2: FixedX18;
10
+ exchangeFee1: FixedX18;
11
+ exchangeFee2: FixedX18;
12
+ borosTradeFee: FixedX18;
13
+ borosSettlementFee: FixedX18;
14
+ }): FixedX18;
15
+ export declare function calculateStrategy(input: StrategyCalculatorInput): StrategyCalculatorResult;
16
+ export declare function calculateStrategyAprFromStrategy(params: {
17
+ strategy: Strategy;
18
+ perpLeverage: number;
19
+ borosMargin: number;
20
+ exchangeFee1?: number;
21
+ exchangeFee2?: number;
22
+ borosTradeFee?: number;
23
+ borosSettlementFee?: number;
24
+ }): number;
25
+ export declare function calculateAprTimesMaxLeverage(strategy: Strategy, borosMargin: number, fees?: {
26
+ exchangeFee1?: number;
27
+ exchangeFee2?: number;
28
+ borosTradeFee?: number;
29
+ borosSettlementFee?: number;
30
+ }): number;
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateStrategyFixedApr = calculateStrategyFixedApr;
4
+ exports.calculateStrategyFixedAprFixedX18 = calculateStrategyFixedAprFixedX18;
5
+ exports.calculateStrategy = calculateStrategy;
6
+ exports.calculateStrategyAprFromStrategy = calculateStrategyAprFromStrategy;
7
+ exports.calculateAprTimesMaxLeverage = calculateAprTimesMaxLeverage;
8
+ const boros_offchain_math_1 = require("@pendle/boros-offchain-math");
9
+ const strategyUtils_1 = require("./strategyUtils");
10
+ function calculateStrategyFixedApr(params) {
11
+ const { perpLeverage, daysToMaturity, borosMargin, impliedApr1, impliedApr2, exchangeFee1, exchangeFee2, borosTradeFee, borosSettlementFee, } = params;
12
+ if (daysToMaturity <= 0) {
13
+ return 0;
14
+ }
15
+ const impliedAprDiff = Math.abs(impliedApr1 - impliedApr2);
16
+ const annualizationFactor = 365 / daysToMaturity;
17
+ const annualizedExchangeFees = annualizationFactor * (exchangeFee1 + exchangeFee2);
18
+ const borosFees = 2 * (borosSettlementFee + borosTradeFee);
19
+ const totalFees = annualizedExchangeFees + borosFees;
20
+ const leverageFactor = 1 / (2 / perpLeverage + borosMargin);
21
+ const fixedApr = leverageFactor * (impliedAprDiff - totalFees);
22
+ return fixedApr;
23
+ }
24
+ function calculateStrategyFixedAprFixedX18(params) {
25
+ const { perpLeverage, daysToMaturity, borosMargin, impliedApr1, impliedApr2, exchangeFee1, exchangeFee2, borosTradeFee, borosSettlementFee, } = params;
26
+ if (daysToMaturity <= 0) {
27
+ return boros_offchain_math_1.FixedX18.ZERO;
28
+ }
29
+ const impliedAprDiff = impliedApr1.sub(impliedApr2).abs();
30
+ const annualizationFactor = boros_offchain_math_1.FixedX18.fromNumber(365 / daysToMaturity);
31
+ const two = boros_offchain_math_1.FixedX18.fromNumber(2);
32
+ const annualizedExchangeFees = exchangeFee1.add(exchangeFee2).mulDown(annualizationFactor);
33
+ const borosFees = borosSettlementFee.add(borosTradeFee).mulDown(two);
34
+ const totalFees = annualizedExchangeFees.add(borosFees);
35
+ const netReturn = impliedAprDiff.sub(totalFees);
36
+ const twoOverPerpLev = boros_offchain_math_1.FixedX18.fromNumber(2 / perpLeverage);
37
+ const denominator = twoOverPerpLev.add(borosMargin);
38
+ const leverageFactor = boros_offchain_math_1.FixedX18.ONE.divDown(denominator);
39
+ const fixedApr = leverageFactor.mulDown(netReturn);
40
+ return fixedApr;
41
+ }
42
+ function calculateStrategy(input) {
43
+ const { totalCapital, daysToMaturity, perpLeverage, borosMargin, impliedApr1, impliedApr2, exchangeFee1, exchangeFee2, borosTradeFee, borosSettlementFee, } = input;
44
+ const params = {
45
+ perpLeverage,
46
+ daysToMaturity,
47
+ borosMargin: borosMargin / 100,
48
+ impliedApr1: impliedApr1 / 100,
49
+ impliedApr2: impliedApr2 / 100,
50
+ exchangeFee1: exchangeFee1 / 100,
51
+ exchangeFee2: exchangeFee2 / 100,
52
+ borosTradeFee: borosTradeFee / 100,
53
+ borosSettlementFee: borosSettlementFee / 100,
54
+ };
55
+ const fixedApr = calculateStrategyFixedApr(params);
56
+ const roi = fixedApr * (daysToMaturity / 365);
57
+ const estimatedEarnings = totalCapital * roi;
58
+ const estimatedEarningsPerYear = totalCapital * fixedApr;
59
+ return {
60
+ fixedApr,
61
+ fixedAprPercentage: fixedApr * 100,
62
+ estimatedEarnings,
63
+ estimatedEarningsPerYear,
64
+ };
65
+ }
66
+ function calculateStrategyAprFromStrategy(params) {
67
+ const { strategy, perpLeverage, borosMargin, exchangeFee1 = 0.0005, exchangeFee2 = 0.0005, borosTradeFee = 0.0005, borosSettlementFee = 0.002, } = params;
68
+ const daysToMaturity = (0, strategyUtils_1.calculateDaysToMaturity)((0, strategyUtils_1.getMaturity)(strategy.longMarket.market));
69
+ return calculateStrategyFixedApr({
70
+ perpLeverage,
71
+ daysToMaturity,
72
+ borosMargin,
73
+ impliedApr1: (0, strategyUtils_1.getImpliedApr)(strategy.longMarket.market),
74
+ impliedApr2: (0, strategyUtils_1.getImpliedApr)(strategy.shortMarket.market),
75
+ exchangeFee1,
76
+ exchangeFee2,
77
+ borosTradeFee,
78
+ borosSettlementFee,
79
+ });
80
+ }
81
+ function calculateAprTimesMaxLeverage(strategy, borosMargin, fees) {
82
+ const { exchangeFee1 = 0.0005, exchangeFee2 = 0.0005, borosTradeFee = 0.0005, borosSettlementFee = 0.002, } = fees ?? {};
83
+ const daysToMaturity = (0, strategyUtils_1.calculateDaysToMaturity)((0, strategyUtils_1.getMaturity)(strategy.longMarket.market));
84
+ const maxPerpLeverage = Math.min((0, strategyUtils_1.getMaxLeverage)(strategy.longMarket.market), (0, strategyUtils_1.getMaxLeverage)(strategy.shortMarket.market));
85
+ return calculateStrategyFixedApr({
86
+ perpLeverage: maxPerpLeverage,
87
+ daysToMaturity,
88
+ borosMargin,
89
+ impliedApr1: (0, strategyUtils_1.getImpliedApr)(strategy.longMarket.market),
90
+ impliedApr2: (0, strategyUtils_1.getImpliedApr)(strategy.shortMarket.market),
91
+ exchangeFee1,
92
+ exchangeFee2,
93
+ borosTradeFee,
94
+ borosSettlementFee,
95
+ });
96
+ }
97
+ //# sourceMappingURL=strategyApr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyApr.js","sourceRoot":"","sources":["../../../src/entities/Calculator/strategyApr.ts"],"names":[],"mappings":";;AAcA,8DA+BC;AAKD,8EA+CC;AAWD,8CAwCC;AAKD,4EAgCC;AAWD,oEAkCC;AAtOD,qEAAuD;AAEvD,mDAAsG;AAYtG,SAAgB,yBAAyB,CAAC,MAA8B;IACtE,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,GAAG,MAAM,CAAC;IAEX,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,CAAC,CAAC;IACX,CAAC;IAED,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;IAC3D,MAAM,mBAAmB,GAAG,GAAG,GAAG,cAAc,CAAC;IAGjD,MAAM,sBAAsB,GAAG,mBAAmB,GAAG,CAAC,YAAY,GAAG,YAAY,CAAC,CAAC;IACnF,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,kBAAkB,GAAG,aAAa,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,sBAAsB,GAAG,SAAS,CAAC;IAGrD,MAAM,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,YAAY,GAAG,WAAW,CAAC,CAAC;IAE5D,MAAM,QAAQ,GAAG,cAAc,GAAG,CAAC,cAAc,GAAG,SAAS,CAAC,CAAC;IAE/D,OAAO,QAAQ,CAAC;AAClB,CAAC;AAKD,SAAgB,iCAAiC,CAAC,MAUjD;IACC,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,GAAG,MAAM,CAAC;IAEX,IAAI,cAAc,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,8BAAQ,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,GAAG,EAAE,CAAC;IAC1D,MAAM,mBAAmB,GAAG,8BAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,cAAc,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,8BAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAGnC,MAAM,sBAAsB,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACrE,MAAM,SAAS,GAAG,sBAAsB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAGxD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAGhD,MAAM,cAAc,GAAG,8BAAQ,CAAC,UAAU,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC;IAC7D,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,cAAc,GAAG,8BAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAEzD,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAEnD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAWD,SAAgB,iBAAiB,CAAC,KAA8B;IAC9D,MAAM,EACJ,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,kBAAkB,GACnB,GAAG,KAAK,CAAC;IAGV,MAAM,MAAM,GAA2B;QACrC,YAAY;QACZ,cAAc;QACd,WAAW,EAAE,WAAW,GAAG,GAAG;QAC9B,WAAW,EAAE,WAAW,GAAG,GAAG;QAC9B,WAAW,EAAE,WAAW,GAAG,GAAG;QAC9B,YAAY,EAAE,YAAY,GAAG,GAAG;QAChC,YAAY,EAAE,YAAY,GAAG,GAAG;QAChC,aAAa,EAAE,aAAa,GAAG,GAAG;QAClC,kBAAkB,EAAE,kBAAkB,GAAG,GAAG;KAC7C,CAAC;IAEF,MAAM,QAAQ,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IAGnD,MAAM,GAAG,GAAG,QAAQ,GAAG,CAAC,cAAc,GAAG,GAAG,CAAC,CAAC;IAC9C,MAAM,iBAAiB,GAAG,YAAY,GAAG,GAAG,CAAC;IAC7C,MAAM,wBAAwB,GAAG,YAAY,GAAG,QAAQ,CAAC;IAEzD,OAAO;QACL,QAAQ;QACR,kBAAkB,EAAE,QAAQ,GAAG,GAAG;QAClC,iBAAiB;QACjB,wBAAwB;KACzB,CAAC;AACJ,CAAC;AAKD,SAAgB,gCAAgC,CAAC,MAQhD;IACC,MAAM,EACJ,QAAQ,EACR,YAAY,EACZ,WAAW,EACX,YAAY,GAAG,MAAM,EACrB,YAAY,GAAG,MAAM,EACrB,aAAa,GAAG,MAAM,EACtB,kBAAkB,GAAG,KAAK,GAC3B,GAAG,MAAM,CAAC;IAEX,MAAM,cAAc,GAAG,IAAA,uCAAuB,EAAC,IAAA,2BAAW,EAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IAExF,OAAO,yBAAyB,CAAC;QAC/B,YAAY;QACZ,cAAc;QACd,WAAW;QACX,WAAW,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QACtD,WAAW,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;QACvD,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC;AAWD,SAAgB,4BAA4B,CAC1C,QAAkB,EAClB,WAAmB,EACnB,IAKC;IAED,MAAM,EACJ,YAAY,GAAG,MAAM,EACrB,YAAY,GAAG,MAAM,EACrB,aAAa,GAAG,MAAM,EACtB,kBAAkB,GAAG,KAAK,GAC3B,GAAG,IAAI,IAAI,EAAE,CAAC;IAEf,MAAM,cAAc,GAAG,IAAA,uCAAuB,EAAC,IAAA,2BAAW,EAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC;IACxF,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAC9B,IAAA,8BAAc,EAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC,EAC1C,IAAA,8BAAc,EAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,CAC5C,CAAC;IAEF,OAAO,yBAAyB,CAAC;QAC/B,YAAY,EAAE,eAAe;QAC7B,cAAc;QACd,WAAW;QACX,WAAW,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;QACtD,WAAW,EAAE,IAAA,6BAAa,EAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC;QACvD,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,kBAAkB;KACnB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,28 @@
1
+ import type { Strategy, StrategyExecutionPlan } from './types';
2
+ export type GenerateExecutionPlanParams = {
3
+ strategy: Strategy;
4
+ totalCapital: number;
5
+ perpLeverage: number;
6
+ borosMargin: number;
7
+ };
8
+ export declare function generateExecutionPlan(params: GenerateExecutionPlanParams): StrategyExecutionPlan;
9
+ export declare function getExecutionStepsSummary(plan: StrategyExecutionPlan): string[];
10
+ export declare function formatExecutionStepsForUI(plan: StrategyExecutionPlan): Array<{
11
+ action: 'Long' | 'Short';
12
+ size: string;
13
+ description: string;
14
+ platform: 'perp' | 'boros';
15
+ exchange: string;
16
+ clickable: boolean;
17
+ }>;
18
+ export declare function calculateCapitalAllocation(params: {
19
+ totalCapital: number;
20
+ perpLeverage: number;
21
+ liquidationThreshold?: number;
22
+ }): {
23
+ capitalPerPerpLeg: number;
24
+ capitalPerBorosLeg: number;
25
+ totalPerpCapital: number;
26
+ totalBorosCapital: number;
27
+ notionalExposurePerLeg: number;
28
+ };
@@ -0,0 +1,137 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.generateExecutionPlan = generateExecutionPlan;
4
+ exports.getExecutionStepsSummary = getExecutionStepsSummary;
5
+ exports.formatExecutionStepsForUI = formatExecutionStepsForUI;
6
+ exports.calculateCapitalAllocation = calculateCapitalAllocation;
7
+ const strategyUtils_1 = require("./strategyUtils");
8
+ function generateExecutionPlan(params) {
9
+ const { strategy, totalCapital, perpLeverage, borosMargin } = params;
10
+ const positionSizePerLeg = totalCapital / (2 / perpLeverage + borosMargin);
11
+ const yuSize = positionSizePerLeg;
12
+ const asset = (0, strategyUtils_1.getAssetSymbol)(strategy.longMarket.market);
13
+ const longExchange = (0, strategyUtils_1.getPlatformName)(strategy.longMarket.market);
14
+ const shortExchange = (0, strategyUtils_1.getPlatformName)(strategy.shortMarket.market);
15
+ const steps = [
16
+ {
17
+ stepNumber: 1,
18
+ action: 'long',
19
+ platform: 'perp',
20
+ exchange: longExchange,
21
+ description: `Long ${asset} on ${longExchange} perpetual`,
22
+ details: {
23
+ asset,
24
+ size: `${positionSizePerLeg} ${asset}`,
25
+ marketType: 'perpetual',
26
+ },
27
+ },
28
+ {
29
+ stepNumber: 2,
30
+ action: 'short',
31
+ platform: 'perp',
32
+ exchange: shortExchange,
33
+ description: `Short ${asset} on ${shortExchange} perpetual`,
34
+ details: {
35
+ asset,
36
+ size: `${positionSizePerLeg} ${asset}`,
37
+ marketType: 'perpetual',
38
+ },
39
+ },
40
+ {
41
+ stepNumber: 3,
42
+ action: 'long',
43
+ platform: 'boros',
44
+ exchange: longExchange,
45
+ description: `Long ${asset} YU on Boros ${longExchange} market`,
46
+ marketId: (0, strategyUtils_1.getMarketId)(strategy.longMarket.market),
47
+ ammId: (0, strategyUtils_1.getAmmId)(strategy.longMarket.market),
48
+ details: {
49
+ asset,
50
+ size: `${yuSize} YU ${asset}`,
51
+ marketType: `Boros ${longExchange} market`,
52
+ },
53
+ },
54
+ {
55
+ stepNumber: 4,
56
+ action: 'short',
57
+ platform: 'boros',
58
+ exchange: shortExchange,
59
+ description: `Short ${asset} YU on Boros ${shortExchange} market`,
60
+ marketId: (0, strategyUtils_1.getMarketId)(strategy.shortMarket.market),
61
+ ammId: (0, strategyUtils_1.getAmmId)(strategy.shortMarket.market),
62
+ details: {
63
+ asset,
64
+ size: `${yuSize} YU ${asset}`,
65
+ marketType: `Boros ${shortExchange} market`,
66
+ },
67
+ },
68
+ ];
69
+ return {
70
+ strategy,
71
+ steps,
72
+ totalCapitalRequired: totalCapital,
73
+ perpLeverage,
74
+ borosMargin,
75
+ };
76
+ }
77
+ function getExecutionStepsSummary(plan) {
78
+ return plan.steps.map((step) => {
79
+ const actionText = step.action === 'long' ? 'Long' : 'Short';
80
+ return `${actionText} ${step.details.size} on ${step.details.marketType}`;
81
+ });
82
+ }
83
+ function formatExecutionStepsForUI(plan) {
84
+ const { strategy, totalCapitalRequired, perpLeverage, borosMargin } = plan;
85
+ const positionSize = totalCapitalRequired / (2 / perpLeverage + borosMargin);
86
+ const asset = (0, strategyUtils_1.getAssetSymbol)(strategy.longMarket.market);
87
+ const longExchange = (0, strategyUtils_1.getPlatformName)(strategy.longMarket.market);
88
+ const shortExchange = (0, strategyUtils_1.getPlatformName)(strategy.shortMarket.market);
89
+ return [
90
+ {
91
+ action: 'Long',
92
+ size: `${positionSize} ${asset}`,
93
+ description: `on ${longExchange} ${asset} perpetual`,
94
+ platform: 'perp',
95
+ exchange: longExchange,
96
+ clickable: true,
97
+ },
98
+ {
99
+ action: 'Short',
100
+ size: `${positionSize} ${asset}`,
101
+ description: `on ${shortExchange} ${asset} perpetual`,
102
+ platform: 'perp',
103
+ exchange: shortExchange,
104
+ clickable: true,
105
+ },
106
+ {
107
+ action: 'Long',
108
+ size: `${positionSize} YU ${asset}`,
109
+ description: `on Boros ${longExchange} ${asset} market`,
110
+ platform: 'boros',
111
+ exchange: longExchange,
112
+ clickable: true,
113
+ },
114
+ {
115
+ action: 'Short',
116
+ size: `${positionSize} YU ${asset}`,
117
+ description: `on Boros ${shortExchange} ${asset} market`,
118
+ platform: 'boros',
119
+ exchange: shortExchange,
120
+ clickable: true,
121
+ },
122
+ ];
123
+ }
124
+ function calculateCapitalAllocation(params) {
125
+ const { totalCapital, perpLeverage, liquidationThreshold } = params;
126
+ const capitalPerPerpLeg = totalCapital / 2;
127
+ const notionalExposurePerLeg = capitalPerPerpLeg * perpLeverage;
128
+ const capitalPerBorosLeg = 0;
129
+ return {
130
+ capitalPerPerpLeg,
131
+ capitalPerBorosLeg,
132
+ totalPerpCapital: totalCapital,
133
+ totalBorosCapital: 0,
134
+ notionalExposurePerLeg,
135
+ };
136
+ }
137
+ //# sourceMappingURL=strategyExecution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyExecution.js","sourceRoot":"","sources":["../../../src/entities/Calculator/strategyExecution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
2
+ import type { GetStrategiesParams, GetStrategiesResult, Strategy } from './types';
3
+ export declare function findStrategies(params?: GetStrategiesParams): Promise<GetStrategiesResult>;
4
+ export declare function findStrategiesByAsset(params: GetStrategiesParams & {
5
+ asset: string;
6
+ }): Promise<GetStrategiesResult>;
7
+ export declare function findStrategiesByMaturity(params: GetStrategiesParams & {
8
+ maturity: number;
9
+ }): Promise<GetStrategiesResult>;
10
+ export declare function findStrategiesByExchanges(params: GetStrategiesParams & {
11
+ exchanges: [string, string];
12
+ }): Promise<GetStrategiesResult>;
13
+ export declare function getStrategyByMarketIds(marketId1: number, marketId2: number, markets?: MarketResponse[]): Promise<Strategy | null>;
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.findStrategies = findStrategies;
4
+ exports.findStrategiesByAsset = findStrategiesByAsset;
5
+ exports.findStrategiesByMaturity = findStrategiesByMaturity;
6
+ exports.findStrategiesByExchanges = findStrategiesByExchanges;
7
+ exports.getStrategyByMarketIds = getStrategyByMarketIds;
8
+ const module_1 = require("../../backend/secrettune/module");
9
+ const strategyUtils_1 = require("./strategyUtils");
10
+ async function fetchMarkets() {
11
+ const sdk = (0, module_1.getCoreSdk)();
12
+ const { data } = await sdk.markets.marketsControllerGetMarkets({});
13
+ return data.results;
14
+ }
15
+ function toStrategyMarket(market) {
16
+ if (!market.metadata) {
17
+ return null;
18
+ }
19
+ return { market };
20
+ }
21
+ function createMarketGroupKey(market) {
22
+ if (!market.metadata?.assetSymbol) {
23
+ return null;
24
+ }
25
+ return `${market.metadata.assetSymbol}-${market.tokenId}-${market.imData.maturity}`;
26
+ }
27
+ function createStrategyId(asset, collateralTokenId, maturity, longExchange, shortExchange) {
28
+ return `${asset}-${collateralTokenId}-${maturity}-${longExchange}-${shortExchange}`;
29
+ }
30
+ async function findStrategies(params) {
31
+ const { markets: providedMarkets, minImpliedAprSpread = 0, excludeDevTest = true } = params ?? {};
32
+ const markets = providedMarkets ?? (await fetchMarkets());
33
+ const validMarkets = markets.filter((market) => {
34
+ if (!market.metadata?.assetSymbol)
35
+ return false;
36
+ if (!market.metadata?.platformName)
37
+ return false;
38
+ if (market.state === 'Paused' || market.state === 'Halted')
39
+ return false;
40
+ if (excludeDevTest && market.metadata.isDevTest)
41
+ return false;
42
+ return true;
43
+ });
44
+ const marketGroups = new Map();
45
+ for (const market of validMarkets) {
46
+ const key = createMarketGroupKey(market);
47
+ if (!key)
48
+ continue;
49
+ const group = marketGroups.get(key) ?? [];
50
+ group.push(market);
51
+ marketGroups.set(key, group);
52
+ }
53
+ const strategies = [];
54
+ for (const [, groupMarkets] of marketGroups) {
55
+ if (groupMarkets.length < 2)
56
+ continue;
57
+ const byExchange = new Map();
58
+ for (const market of groupMarkets) {
59
+ const exchange = market.metadata.platformName;
60
+ const exchangeMarkets = byExchange.get(exchange) ?? [];
61
+ exchangeMarkets.push(market);
62
+ byExchange.set(exchange, exchangeMarkets);
63
+ }
64
+ const exchanges = Array.from(byExchange.keys());
65
+ if (exchanges.length < 2)
66
+ continue;
67
+ for (let i = 0; i < exchanges.length; i++) {
68
+ for (let j = i + 1; j < exchanges.length; j++) {
69
+ const exchange1Markets = byExchange.get(exchanges[i]);
70
+ const exchange2Markets = byExchange.get(exchanges[j]);
71
+ for (const market1 of exchange1Markets) {
72
+ for (const market2 of exchange2Markets) {
73
+ const strategyMarket1 = toStrategyMarket(market1);
74
+ const strategyMarket2 = toStrategyMarket(market2);
75
+ if (!strategyMarket1 || !strategyMarket2)
76
+ continue;
77
+ const impliedApr1 = (0, strategyUtils_1.getImpliedApr)(strategyMarket1.market);
78
+ const impliedApr2 = (0, strategyUtils_1.getImpliedApr)(strategyMarket2.market);
79
+ const impliedAprSpread = Math.abs(impliedApr1 - impliedApr2);
80
+ if (impliedAprSpread < minImpliedAprSpread)
81
+ continue;
82
+ let longMarket;
83
+ let shortMarket;
84
+ if (impliedApr1 >= impliedApr2) {
85
+ longMarket = strategyMarket1;
86
+ shortMarket = strategyMarket2;
87
+ }
88
+ else {
89
+ longMarket = strategyMarket2;
90
+ shortMarket = strategyMarket1;
91
+ }
92
+ const asset = (0, strategyUtils_1.getAssetSymbol)(longMarket.market);
93
+ const collateralTokenId = (0, strategyUtils_1.getCollateralTokenId)(longMarket.market);
94
+ const maturity = (0, strategyUtils_1.getMaturity)(longMarket.market);
95
+ const longExchange = (0, strategyUtils_1.getPlatformName)(longMarket.market);
96
+ const shortExchange = (0, strategyUtils_1.getPlatformName)(shortMarket.market);
97
+ const strategy = {
98
+ id: createStrategyId(asset, collateralTokenId, maturity, longExchange, shortExchange),
99
+ longMarket,
100
+ shortMarket,
101
+ };
102
+ strategies.push(strategy);
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }
108
+ strategies.sort((a, b) => {
109
+ const spreadA = Math.abs((0, strategyUtils_1.getImpliedApr)(a.longMarket.market) - (0, strategyUtils_1.getImpliedApr)(a.shortMarket.market));
110
+ const spreadB = Math.abs((0, strategyUtils_1.getImpliedApr)(b.longMarket.market) - (0, strategyUtils_1.getImpliedApr)(b.shortMarket.market));
111
+ return spreadB - spreadA;
112
+ });
113
+ return {
114
+ strategies,
115
+ totalCount: strategies.length,
116
+ };
117
+ }
118
+ async function findStrategiesByAsset(params) {
119
+ const { asset, ...rest } = params;
120
+ const result = await findStrategies(rest);
121
+ const filtered = result.strategies.filter((s) => (0, strategyUtils_1.getAssetSymbol)(s.longMarket.market).toUpperCase() === asset.toUpperCase());
122
+ return {
123
+ strategies: filtered,
124
+ totalCount: filtered.length,
125
+ };
126
+ }
127
+ async function findStrategiesByMaturity(params) {
128
+ const { maturity, ...rest } = params;
129
+ const result = await findStrategies(rest);
130
+ const filtered = result.strategies.filter((s) => (0, strategyUtils_1.getMaturity)(s.longMarket.market) === maturity);
131
+ return {
132
+ strategies: filtered,
133
+ totalCount: filtered.length,
134
+ };
135
+ }
136
+ async function findStrategiesByExchanges(params) {
137
+ const { exchanges, ...rest } = params;
138
+ const [exchange1, exchange2] = exchanges.map((e) => e.toLowerCase());
139
+ const result = await findStrategies(rest);
140
+ const filtered = result.strategies.filter((s) => {
141
+ const longExchange = (0, strategyUtils_1.getPlatformName)(s.longMarket.market).toLowerCase();
142
+ const shortExchange = (0, strategyUtils_1.getPlatformName)(s.shortMarket.market).toLowerCase();
143
+ return ((longExchange === exchange1 && shortExchange === exchange2) ||
144
+ (longExchange === exchange2 && shortExchange === exchange1));
145
+ });
146
+ return {
147
+ strategies: filtered,
148
+ totalCount: filtered.length,
149
+ };
150
+ }
151
+ async function getStrategyByMarketIds(marketId1, marketId2, markets) {
152
+ const allMarkets = markets ?? (await fetchMarkets());
153
+ const market1 = allMarkets.find((m) => m.marketId === marketId1);
154
+ const market2 = allMarkets.find((m) => m.marketId === marketId2);
155
+ if (!market1 || !market2) {
156
+ return null;
157
+ }
158
+ if (!market1.metadata?.assetSymbol || !market2.metadata?.assetSymbol) {
159
+ return null;
160
+ }
161
+ if (!market1.metadata?.platformName || !market2.metadata?.platformName) {
162
+ return null;
163
+ }
164
+ if (market1.metadata.assetSymbol !== market2.metadata.assetSymbol) {
165
+ return null;
166
+ }
167
+ if (market1.tokenId !== market2.tokenId) {
168
+ return null;
169
+ }
170
+ if (market1.imData.maturity !== market2.imData.maturity) {
171
+ return null;
172
+ }
173
+ const strategyMarket1 = toStrategyMarket(market1);
174
+ const strategyMarket2 = toStrategyMarket(market2);
175
+ if (!strategyMarket1 || !strategyMarket2) {
176
+ return null;
177
+ }
178
+ let longMarket;
179
+ let shortMarket;
180
+ const impliedApr1 = (0, strategyUtils_1.getImpliedApr)(strategyMarket1.market);
181
+ const impliedApr2 = (0, strategyUtils_1.getImpliedApr)(strategyMarket2.market);
182
+ if (impliedApr1 >= impliedApr2) {
183
+ longMarket = strategyMarket1;
184
+ shortMarket = strategyMarket2;
185
+ }
186
+ else {
187
+ longMarket = strategyMarket2;
188
+ shortMarket = strategyMarket1;
189
+ }
190
+ const asset = (0, strategyUtils_1.getAssetSymbol)(longMarket.market);
191
+ const collateralTokenId = (0, strategyUtils_1.getCollateralTokenId)(longMarket.market);
192
+ const maturity = (0, strategyUtils_1.getMaturity)(longMarket.market);
193
+ const longExchange = (0, strategyUtils_1.getPlatformName)(longMarket.market);
194
+ const shortExchange = (0, strategyUtils_1.getPlatformName)(shortMarket.market);
195
+ return {
196
+ id: createStrategyId(asset, collateralTokenId, maturity, longExchange, shortExchange),
197
+ longMarket,
198
+ shortMarket,
199
+ };
200
+ }
201
+ //# sourceMappingURL=strategyFinder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyFinder.js","sourceRoot":"","sources":["../../../src/entities/Calculator/strategyFinder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
2
+ export declare function getMarketId(market: MarketResponse): number;
3
+ export declare function getImpliedApr(market: MarketResponse): number;
4
+ export declare function getMaxLeverage(market: MarketResponse): number;
5
+ export declare function getPlatformName(market: MarketResponse): string;
6
+ export declare function getAssetSymbol(market: MarketResponse): string;
7
+ export declare function getMaturity(market: MarketResponse): number;
8
+ export declare function getCollateralTokenId(market: MarketResponse): number;
9
+ export declare function getAmmId(market: MarketResponse): number | undefined;
10
+ export declare function calculateTimeToMaturity(maturityTime: number, currentTime?: number): number;
11
+ export declare function calculateDaysToMaturity(maturityTime: number, currentTime?: number): number;
12
+ export declare function calculateMaturityInfo(maturityTime: number, currentTime?: number): {
13
+ timeToMaturity: number;
14
+ daysToMaturity: number;
15
+ };
16
+ export declare function calculateImpliedAprSpread(impliedApr1: number, impliedApr2: number): number;
17
+ export declare function calculateMaxPerpLeverage(maxLeverage1: number, maxLeverage2: number): number;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getMarketId = getMarketId;
4
+ exports.getImpliedApr = getImpliedApr;
5
+ exports.getMaxLeverage = getMaxLeverage;
6
+ exports.getPlatformName = getPlatformName;
7
+ exports.getAssetSymbol = getAssetSymbol;
8
+ exports.getMaturity = getMaturity;
9
+ exports.getCollateralTokenId = getCollateralTokenId;
10
+ exports.getAmmId = getAmmId;
11
+ exports.calculateTimeToMaturity = calculateTimeToMaturity;
12
+ exports.calculateDaysToMaturity = calculateDaysToMaturity;
13
+ exports.calculateMaturityInfo = calculateMaturityInfo;
14
+ exports.calculateImpliedAprSpread = calculateImpliedAprSpread;
15
+ exports.calculateMaxPerpLeverage = calculateMaxPerpLeverage;
16
+ const SECONDS_PER_DAY = 86400;
17
+ function getMarketId(market) {
18
+ return market.marketId;
19
+ }
20
+ function getImpliedApr(market) {
21
+ return market.data?.ammImpliedApr ?? market.data?.midApr ?? 0;
22
+ }
23
+ function getMaxLeverage(market) {
24
+ return market.metadata?.maxLeverage ?? 0;
25
+ }
26
+ function getPlatformName(market) {
27
+ return market.metadata?.platformName ?? '';
28
+ }
29
+ function getAssetSymbol(market) {
30
+ return market.metadata?.assetSymbol ?? '';
31
+ }
32
+ function getMaturity(market) {
33
+ return market.imData.maturity;
34
+ }
35
+ function getCollateralTokenId(market) {
36
+ return market.tokenId;
37
+ }
38
+ function getAmmId(market) {
39
+ return market.metadata?.ammId;
40
+ }
41
+ function calculateTimeToMaturity(maturityTime, currentTime = Math.floor(Date.now() / 1000)) {
42
+ return Math.max(0, maturityTime - currentTime);
43
+ }
44
+ function calculateDaysToMaturity(maturityTime, currentTime = Math.floor(Date.now() / 1000)) {
45
+ const timeToMaturity = calculateTimeToMaturity(maturityTime, currentTime);
46
+ return Math.max(0, Math.ceil(timeToMaturity / SECONDS_PER_DAY));
47
+ }
48
+ function calculateMaturityInfo(maturityTime, currentTime = Math.floor(Date.now() / 1000)) {
49
+ const timeToMaturity = calculateTimeToMaturity(maturityTime, currentTime);
50
+ const daysToMaturity = Math.max(0, Math.ceil(timeToMaturity / SECONDS_PER_DAY));
51
+ return { timeToMaturity, daysToMaturity };
52
+ }
53
+ function calculateImpliedAprSpread(impliedApr1, impliedApr2) {
54
+ return Math.abs(impliedApr1 - impliedApr2);
55
+ }
56
+ function calculateMaxPerpLeverage(maxLeverage1, maxLeverage2) {
57
+ return Math.min(maxLeverage1, maxLeverage2);
58
+ }
59
+ //# sourceMappingURL=strategyUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategyUtils.js","sourceRoot":"","sources":["../../../src/entities/Calculator/strategyUtils.ts"],"names":[],"mappings":";;AAWA,kCAEC;AAMD,sCAEC;AAKD,wCAEC;AAKD,0CAEC;AAKD,wCAEC;AAKD,kCAEC;AAKD,oDAEC;AAKD,4BAEC;AAaD,0DAKC;AASD,0DAMC;AASD,sDAUC;AASD,8DAKC;AASD,4DAKC;AA7ID,MAAM,eAAe,GAAG,KAAK,CAAC;AAS9B,SAAgB,WAAW,CAAC,MAAsB;IAChD,OAAO,MAAM,CAAC,QAAQ,CAAC;AACzB,CAAC;AAMD,SAAgB,aAAa,CAAC,MAAsB;IAClD,OAAO,MAAM,CAAC,IAAI,EAAE,aAAa,IAAI,MAAM,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,CAAC;AAChE,CAAC;AAKD,SAAgB,cAAc,CAAC,MAAsB;IACnD,OAAO,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,CAAC,CAAC;AAC3C,CAAC;AAKD,SAAgB,eAAe,CAAC,MAAsB;IACpD,OAAO,MAAM,CAAC,QAAQ,EAAE,YAAY,IAAI,EAAE,CAAC;AAC7C,CAAC;AAKD,SAAgB,cAAc,CAAC,MAAsB;IACnD,OAAO,MAAM,CAAC,QAAQ,EAAE,WAAW,IAAI,EAAE,CAAC;AAC5C,CAAC;AAKD,SAAgB,WAAW,CAAC,MAAsB;IAChD,OAAO,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAChC,CAAC;AAKD,SAAgB,oBAAoB,CAAC,MAAsB;IACzD,OAAO,MAAM,CAAC,OAAO,CAAC;AACxB,CAAC;AAKD,SAAgB,QAAQ,CAAC,MAAsB;IAC7C,OAAO,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC;AAChC,CAAC;AAaD,SAAgB,uBAAuB,CACrC,YAAoB,EACpB,cAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAEnD,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,CAAC;AACjD,CAAC;AASD,SAAgB,uBAAuB,CACrC,YAAoB,EACpB,cAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAEnD,MAAM,cAAc,GAAG,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1E,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;AAClE,CAAC;AASD,SAAgB,qBAAqB,CACnC,YAAoB,EACpB,cAAsB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;IAKnD,MAAM,cAAc,GAAG,uBAAuB,CAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,CAAC,CAAC;IAChF,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC;AAC5C,CAAC;AASD,SAAgB,yBAAyB,CACvC,WAAmB,EACnB,WAAmB;IAEnB,OAAO,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC;AAC7C,CAAC;AASD,SAAgB,wBAAwB,CACtC,YAAoB,EACpB,YAAoB;IAEpB,OAAO,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,69 @@
1
+ import type { MarketResponse } from '../../backend/secrettune/BorosCoreSDK';
2
+ export type StrategyMarket = {
3
+ market: MarketResponse;
4
+ };
5
+ export type Strategy = {
6
+ id: string;
7
+ longMarket: StrategyMarket;
8
+ shortMarket: StrategyMarket;
9
+ };
10
+ export type StrategyExecutionStep = {
11
+ stepNumber: number;
12
+ action: 'long' | 'short';
13
+ platform: 'boros' | 'perp';
14
+ exchange: string;
15
+ description: string;
16
+ marketId?: number;
17
+ ammId?: number;
18
+ details: {
19
+ asset: string;
20
+ size: string;
21
+ marketType: string;
22
+ };
23
+ };
24
+ export type StrategyExecutionPlan = {
25
+ strategy: Strategy;
26
+ steps: StrategyExecutionStep[];
27
+ totalCapitalRequired: number;
28
+ perpLeverage: number;
29
+ borosMargin: number;
30
+ };
31
+ export type StrategyFixedAprParams = {
32
+ perpLeverage: number;
33
+ daysToMaturity: number;
34
+ borosMargin: number;
35
+ impliedApr1: number;
36
+ impliedApr2: number;
37
+ exchangeFee1: number;
38
+ exchangeFee2: number;
39
+ borosTradeFee: number;
40
+ borosSettlementFee: number;
41
+ };
42
+ export type StrategyCalculatorInput = {
43
+ totalCapital: number;
44
+ liquidationThreshold?: number;
45
+ daysToMaturity: number;
46
+ perpLeverage: number;
47
+ borosMargin: number;
48
+ impliedApr1: number;
49
+ impliedApr2: number;
50
+ exchangeFee1: number;
51
+ exchangeFee2: number;
52
+ borosTradeFee: number;
53
+ borosSettlementFee: number;
54
+ };
55
+ export type StrategyCalculatorResult = {
56
+ fixedApr: number;
57
+ fixedAprPercentage: number;
58
+ estimatedEarnings: number;
59
+ estimatedEarningsPerYear: number;
60
+ };
61
+ export type GetStrategiesParams = {
62
+ markets?: MarketResponse[];
63
+ minImpliedAprSpread?: number;
64
+ excludeDevTest?: boolean;
65
+ };
66
+ export type GetStrategiesResult = {
67
+ strategies: Strategy[];
68
+ totalCount: number;
69
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/entities/Calculator/types.ts"],"names":[],"mappings":""}
@@ -10,3 +10,4 @@ export * from './subaccount';
10
10
  export * from './vePendle';
11
11
  export * from './crossChainDeposit';
12
12
  export * from './token';
13
+ export * from './Calculator';
@@ -26,4 +26,5 @@ __exportStar(require("./subaccount"), exports);
26
26
  __exportStar(require("./vePendle"), exports);
27
27
  __exportStar(require("./crossChainDeposit"), exports);
28
28
  __exportStar(require("./token"), exports);
29
+ __exportStar(require("./Calculator"), exports);
29
30
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,wCAAsB;AACtB,+CAA6B;AAC7B,gDAA8B;AAC9B,gEAA8C;AAC9C,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,sDAAoC;AACpC,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB;AACxB,2CAAyB;AACzB,6CAA2B;AAC3B,wCAAsB;AACtB,+CAA6B;AAC7B,gDAA8B;AAC9B,gEAA8C;AAC9C,+CAA6B;AAC7B,+CAA6B;AAC7B,6CAA2B;AAC3B,sDAAoC;AACpC,0CAAwB;AACxB,+CAA6B"}
@@ -22,6 +22,10 @@ export interface VaultTransferReq {
22
22
  amount: bigint;
23
23
  isDeposit: boolean;
24
24
  }
25
+ export interface TryAggregateReq {
26
+ calls: Hex[];
27
+ requireSuccess: boolean;
28
+ }
25
29
  export interface SubaccountTransferReq {
26
30
  accountId: number;
27
31
  tokenId: TokenId;
@@ -167,6 +171,7 @@ export declare const functionEncoder: {
167
171
  requestVaultWithdrawal(params: RequestVaultWithdrawalReq): `0x${string}`;
168
172
  cancelVaultWithdrawal(params: CancelVaultWithdrawalReq): `0x${string}`;
169
173
  payTreasury(params: PayTreasuryReq): `0x${string}`;
174
+ tryAggregate(params: TryAggregateReq): `0x${string}`;
170
175
  subaccountTransfer(params: SubaccountTransferReq): `0x${string}`;
171
176
  ammCashTransfer(req: AmmCashTransferReq): `0x${string}`;
172
177
  cashTransfer(req: CashTransferReq): `0x${string}`;
@@ -39,6 +39,13 @@ exports.functionEncoder = {
39
39
  args: [params],
40
40
  });
41
41
  },
42
+ tryAggregate(params) {
43
+ return (0, viem_1.encodeFunctionData)({
44
+ abi: viemAbis_1.iRouterAbi,
45
+ functionName: 'tryAggregate',
46
+ args: [params.requireSuccess, params.calls],
47
+ });
48
+ },
42
49
  subaccountTransfer(params) {
43
50
  return (0, viem_1.encodeFunctionData)({
44
51
  abi: viemAbis_1.iRouterAbi,
@@ -1 +1 @@
1
- {"version":3,"file":"encoders.js","sourceRoot":"","sources":["../../src/types/encoders.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoders.js","sourceRoot":"","sources":["../../src/types/encoders.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/sdk-boros",
3
3
  "description": "Pendle SDK for Boros",
4
4
  "license": "MIT",
5
- "version": "1.1.18",
5
+ "version": "1.1.19-strategies-1",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "files": [