@gainsnetwork/sdk 1.0.3 → 1.0.5-rc1

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 (85) hide show
  1. package/lib/constants.d.ts +1 -0
  2. package/lib/constants.js +2 -1
  3. package/lib/contracts/addresses.json +1 -1
  4. package/lib/contracts/types/generated/GNSMultiCollatDiamond.d.ts +20 -7
  5. package/lib/contracts/types/generated/factories/GNSMultiCollatDiamond__factory.js +16 -7
  6. package/lib/contracts/types/generated/factories/GToken__factory.d.ts +0 -7
  7. package/lib/contracts/types/generated/factories/GToken__factory.js +0 -4
  8. package/lib/contracts/utils/pairs.js +1 -0
  9. package/lib/trade/liquidation.d.ts +12 -0
  10. package/lib/trade/liquidation.js +55 -0
  11. package/lib/trade/pnl.d.ts +10 -0
  12. package/lib/trade/pnl.js +33 -0
  13. package/lib/trade/types.d.ts +2 -1
  14. package/lib/trade/types.js +1 -0
  15. package/package.json +1 -1
  16. package/lib/contracts/types/generated/GFarmTradingStorageV5.d.ts +0 -1911
  17. package/lib/contracts/types/generated/GFarmTradingStorageV5.js +0 -2
  18. package/lib/contracts/types/generated/GNSBorrowingFees.d.ts +0 -1067
  19. package/lib/contracts/types/generated/GNSBorrowingFees.js +0 -2
  20. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.d.ts +0 -979
  21. package/lib/contracts/types/generated/GNSBorrowingFeesV6_3_2.js +0 -2
  22. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.d.ts +0 -1058
  23. package/lib/contracts/types/generated/GNSBorrowingFeesV6_4.js +0 -2
  24. package/lib/contracts/types/generated/GNSNftRewardsV6.d.ts +0 -533
  25. package/lib/contracts/types/generated/GNSNftRewardsV6.js +0 -2
  26. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.d.ts +0 -613
  27. package/lib/contracts/types/generated/GNSNftRewardsV6_3_1.js +0 -2
  28. package/lib/contracts/types/generated/GNSPairInfosV6_1.d.ts +0 -911
  29. package/lib/contracts/types/generated/GNSPairInfosV6_1.js +0 -2
  30. package/lib/contracts/types/generated/GNSPairsStorageV6.d.ts +0 -660
  31. package/lib/contracts/types/generated/GNSPairsStorageV6.js +0 -2
  32. package/lib/contracts/types/generated/GNSTrading.d.ts +0 -758
  33. package/lib/contracts/types/generated/GNSTrading.js +0 -2
  34. package/lib/contracts/types/generated/GNSTradingCallbacks.d.ts +0 -875
  35. package/lib/contracts/types/generated/GNSTradingCallbacks.js +0 -2
  36. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.d.ts +0 -806
  37. package/lib/contracts/types/generated/GNSTradingCallbacksV6_3_2.js +0 -2
  38. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.d.ts +0 -821
  39. package/lib/contracts/types/generated/GNSTradingCallbacksV6_4.js +0 -2
  40. package/lib/contracts/types/generated/GNSTradingStorage.d.ts +0 -1387
  41. package/lib/contracts/types/generated/GNSTradingStorage.js +0 -2
  42. package/lib/contracts/types/generated/GTokenV6_3_2.d.ts +0 -1838
  43. package/lib/contracts/types/generated/GTokenV6_3_2.js +0 -2
  44. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.d.ts +0 -83
  45. package/lib/contracts/types/generated/factories/GFarmTradingStorageV5__factory.js +0 -2691
  46. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.d.ts +0 -88
  47. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_3_2__factory.js +0 -1654
  48. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.d.ts +0 -113
  49. package/lib/contracts/types/generated/factories/GNSBorrowingFeesV6_4__factory.js +0 -1742
  50. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.d.ts +0 -124
  51. package/lib/contracts/types/generated/factories/GNSBorrowingFees__factory.js +0 -1784
  52. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.d.ts +0 -100
  53. package/lib/contracts/types/generated/factories/GNSNftRewardsV6_3_1__factory.js +0 -1116
  54. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.d.ts +0 -100
  55. package/lib/contracts/types/generated/factories/GNSNftRewardsV6__factory.js +0 -1003
  56. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.d.ts +0 -98
  57. package/lib/contracts/types/generated/factories/GNSPairInfosV6_1__factory.js +0 -1485
  58. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.d.ts +0 -117
  59. package/lib/contracts/types/generated/factories/GNSPairsStorageV6__factory.js +0 -1265
  60. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.d.ts +0 -82
  61. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_3_2__factory.js +0 -1273
  62. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.d.ts +0 -82
  63. package/lib/contracts/types/generated/factories/GNSTradingCallbacksV6_4__factory.js +0 -1326
  64. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.d.ts +0 -113
  65. package/lib/contracts/types/generated/factories/GNSTradingCallbacks__factory.js +0 -1428
  66. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.d.ts +0 -96
  67. package/lib/contracts/types/generated/factories/GNSTradingStorage__factory.js +0 -2241
  68. package/lib/contracts/types/generated/factories/GNSTrading__factory.d.ts +0 -95
  69. package/lib/contracts/types/generated/factories/GNSTrading__factory.js +0 -1071
  70. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.d.ts +0 -110
  71. package/lib/contracts/types/generated/factories/GTokenV6_3_2__factory.js +0 -2682
  72. package/lib/markets/oi/fetcher.d.ts +0 -58
  73. package/lib/markets/oi/fetcher.js +0 -181
  74. package/lib/markets/oi/validation.d.ts +0 -80
  75. package/lib/markets/oi/validation.js +0 -172
  76. package/lib/trade/effectiveLeverage/builder.d.ts +0 -23
  77. package/lib/trade/effectiveLeverage/builder.js +0 -30
  78. package/lib/trade/fees/holdingFees/index.d.ts +0 -46
  79. package/lib/trade/fees/holdingFees/index.js +0 -105
  80. package/lib/trade/fees/holdingFees/types.d.ts +0 -23
  81. package/lib/trade/fees/holdingFees/types.js +0 -5
  82. package/lib/trade/fees/trading/holdingFees.d.ts +0 -28
  83. package/lib/trade/fees/trading/holdingFees.js +0 -66
  84. package/lib/trade/fees/trading/holdingFeesStructured.d.ts +0 -28
  85. package/lib/trade/fees/trading/holdingFeesStructured.js +0 -66
@@ -1,105 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Holding fees calculation utilities for v10+ markets
4
- * @dev Combines funding fees and borrowing v2 fees
5
- */
6
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
7
- if (k2 === undefined) k2 = k;
8
- var desc = Object.getOwnPropertyDescriptor(m, k);
9
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
10
- desc = { enumerable: true, get: function() { return m[k]; } };
11
- }
12
- Object.defineProperty(o, k2, desc);
13
- }) : (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- o[k2] = m[k];
16
- }));
17
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
18
- Object.defineProperty(o, "default", { enumerable: true, value: v });
19
- }) : function(o, v) {
20
- o["default"] = v;
21
- });
22
- var __importStar = (this && this.__importStar) || function (mod) {
23
- if (mod && mod.__esModule) return mod;
24
- var result = {};
25
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
26
- __setModuleDefault(result, mod);
27
- return result;
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- exports.HoldingFees = exports.formatHoldingFeeRate = exports.convertRatePerSecondToAPR = exports.getPairHoldingFeeRates = void 0;
31
- const fundingFees_1 = require("../fundingFees");
32
- const SECONDS_PER_HOUR = 3600;
33
- const SECONDS_PER_YEAR = 365 * 24 * 60 * 60;
34
- const PERCENTAGE_PRECISION = 100;
35
- /**
36
- * @dev Calculates current holding fee rates per hour for display
37
- * @param input Input parameters for calculation
38
- * @returns Holding fee rates per hour with breakdown
39
- */
40
- const getPairHoldingFeeRates = (input) => {
41
- const { fundingParams, fundingData, pairOiToken, netExposureToken, netExposureUsd, borrowingParams, borrowingData, currentPairPrice, currentTimestamp, } = input;
42
- // Calculate funding fee rates
43
- let fundingFeeLongHourlyRate = 0;
44
- let fundingFeeShortHourlyRate = 0;
45
- let currentFundingRatePerSecondP = 0;
46
- if (fundingParams.fundingFeesEnabled) {
47
- // Get current funding rate
48
- const pendingFunding = (0, fundingFees_1.getPairPendingAccFundingFees)(fundingParams, fundingData, currentPairPrice, pairOiToken, netExposureToken, netExposureUsd, currentTimestamp);
49
- currentFundingRatePerSecondP = pendingFunding.currentFundingRatePerSecondP;
50
- // Get APR multipliers
51
- const { longAprMultiplier, shortAprMultiplier } = (0, fundingFees_1.getLongShortAprMultiplier)(currentFundingRatePerSecondP, pairOiToken.oiLongToken, pairOiToken.oiShortToken, fundingParams.aprMultiplierEnabled);
52
- // Calculate hourly rates
53
- // Funding rate * seconds per hour * current price * APR multiplier / 100
54
- const baseHourlyRate = (currentFundingRatePerSecondP * SECONDS_PER_HOUR * currentPairPrice) /
55
- PERCENTAGE_PRECISION;
56
- // Long side pays when rate is positive, earns when negative
57
- fundingFeeLongHourlyRate = baseHourlyRate * longAprMultiplier;
58
- // Short side is opposite
59
- fundingFeeShortHourlyRate = -baseHourlyRate * shortAprMultiplier;
60
- }
61
- // Calculate borrowing v2 rates
62
- let borrowingFeeHourlyRate = 0;
63
- let currentBorrowingRatePerSecondP = 0;
64
- if (borrowingParams && borrowingData) {
65
- currentBorrowingRatePerSecondP = borrowingParams.borrowingRatePerSecondP;
66
- // Borrowing rate * seconds per hour * current price / 100
67
- borrowingFeeHourlyRate =
68
- (currentBorrowingRatePerSecondP * SECONDS_PER_HOUR * currentPairPrice) /
69
- PERCENTAGE_PRECISION;
70
- }
71
- // Total holding fees (funding can be negative/positive, borrowing always positive cost)
72
- const longHourlyRate = fundingFeeLongHourlyRate + borrowingFeeHourlyRate;
73
- const shortHourlyRate = fundingFeeShortHourlyRate + borrowingFeeHourlyRate;
74
- return {
75
- longHourlyRate,
76
- shortHourlyRate,
77
- fundingFeeLongHourlyRate,
78
- fundingFeeShortHourlyRate,
79
- borrowingFeeHourlyRate,
80
- currentFundingRatePerSecondP,
81
- currentBorrowingRatePerSecondP,
82
- };
83
- };
84
- exports.getPairHoldingFeeRates = getPairHoldingFeeRates;
85
- /**
86
- * @dev Converts a per-second rate to annual percentage rate (APR)
87
- * @param ratePerSecond Rate per second
88
- * @returns Annual percentage rate
89
- */
90
- const convertRatePerSecondToAPR = (ratePerSecond) => {
91
- return ratePerSecond * SECONDS_PER_YEAR * PERCENTAGE_PRECISION;
92
- };
93
- exports.convertRatePerSecondToAPR = convertRatePerSecondToAPR;
94
- /**
95
- * @dev Formats a holding fee rate for display
96
- * @param rate Hourly rate (can be negative)
97
- * @param decimals Number of decimal places
98
- * @returns Formatted string with sign
99
- */
100
- const formatHoldingFeeRate = (rate, decimals = 4) => {
101
- const sign = rate > 0 ? "+" : "";
102
- return `${sign}${rate.toFixed(decimals)}%`;
103
- };
104
- exports.formatHoldingFeeRate = formatHoldingFeeRate;
105
- exports.HoldingFees = __importStar(require("./types"));
@@ -1,23 +0,0 @@
1
- /**
2
- * @dev Type definitions for holding fees (funding + borrowing v2)
3
- */
4
- export interface HoldingFeeRates {
5
- longHourlyRate: number;
6
- shortHourlyRate: number;
7
- fundingFeeLongHourlyRate: number;
8
- fundingFeeShortHourlyRate: number;
9
- borrowingFeeHourlyRate: number;
10
- currentFundingRatePerSecondP: number;
11
- currentBorrowingRatePerSecondP: number;
12
- }
13
- export interface GetPairHoldingFeeRatesInput {
14
- fundingParams: import("../fundingFees/types").FundingFeeParams;
15
- fundingData: import("../fundingFees/types").PairFundingFeeData;
16
- pairOiToken: import("../fundingFees/types").PairOiAfterV10;
17
- netExposureToken: number;
18
- netExposureUsd: number;
19
- borrowingParams: import("../borrowingV2/types").BorrowingFeeParams | null;
20
- borrowingData: import("../borrowingV2/types").PairBorrowingFeeData | null;
21
- currentPairPrice: number;
22
- currentTimestamp: number;
23
- }
@@ -1,5 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Type definitions for holding fees (funding + borrowing v2)
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,28 +0,0 @@
1
- /**
2
- * @dev Holding fees calculation for structured contexts
3
- */
4
- import { Trade, TradeInfo, TradeFeesData } from "../../types";
5
- import { TradeHoldingFees } from "./types";
6
- import { ContractsVersion } from "../../../contracts/types";
7
- import type { BorrowingV1SubContext, BorrowingV2SubContext, FundingFeesSubContext } from "../../pnl";
8
- /**
9
- * @dev Context for holding fees calculation with structured sub-contexts
10
- */
11
- export type GetStructuredHoldingFeesContext = {
12
- contractsVersion: ContractsVersion;
13
- currentTimestamp: number;
14
- collateralPriceUsd: number;
15
- borrowingV1?: BorrowingV1SubContext;
16
- borrowingV2?: BorrowingV2SubContext;
17
- funding?: FundingFeesSubContext;
18
- };
19
- /**
20
- * @dev Calculates total holding fees using structured context
21
- * @param trade The trade to calculate fees for
22
- * @param tradeInfo Trade info containing contracts version
23
- * @param tradeFeesData Trade fees data containing initial acc fees
24
- * @param currentPairPrice Current pair price
25
- * @param context Structured context with sub-contexts for each fee type
26
- * @returns Object containing all holding fee components
27
- */
28
- export declare const getTradePendingHoldingFeesCollateralStructured: (trade: Trade, tradeInfo: TradeInfo, tradeFeesData: TradeFeesData, currentPairPrice: number, context: GetStructuredHoldingFeesContext) => TradeHoldingFees;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Holding fees calculation for structured contexts
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTradePendingHoldingFeesCollateralStructured = void 0;
7
- const types_1 = require("../../../contracts/types");
8
- const borrowing_1 = require("../borrowing");
9
- const borrowingV2_1 = require("../borrowingV2");
10
- const pairContext_1 = require("../fundingFees/pairContext");
11
- /**
12
- * @dev Calculates total holding fees using structured context
13
- * @param trade The trade to calculate fees for
14
- * @param tradeInfo Trade info containing contracts version
15
- * @param tradeFeesData Trade fees data containing initial acc fees
16
- * @param currentPairPrice Current pair price
17
- * @param context Structured context with sub-contexts for each fee type
18
- * @returns Object containing all holding fee components
19
- */
20
- const getTradePendingHoldingFeesCollateralStructured = (trade, tradeInfo, tradeFeesData, currentPairPrice, context) => {
21
- const positionSizeCollateral = trade.collateralAmount * trade.leverage;
22
- // Calculate funding fees (v10+ only)
23
- let fundingFeeCollateral = 0;
24
- if (context.contractsVersion >= types_1.ContractsVersion.V10 &&
25
- context.funding &&
26
- tradeFeesData.initialAccFundingFeeP !== undefined) {
27
- fundingFeeCollateral = (0, pairContext_1.getPairTradeFundingFeesCollateral)({
28
- positionSizeCollateral,
29
- openPrice: trade.openPrice,
30
- long: trade.long,
31
- currentPairPrice,
32
- initialAccFundingFeeP: tradeFeesData.initialAccFundingFeeP,
33
- }, context.funding // TODO: Fix types once funding types are properly imported
34
- );
35
- }
36
- // Calculate borrowing fees v2
37
- let borrowingFeeCollateral = 0;
38
- if (context.borrowingV2 && tradeFeesData.initialAccBorrowingFeeP !== undefined) {
39
- borrowingFeeCollateral = (0, borrowingV2_1.getPairTradeBorrowingFeesCollateral)({
40
- positionSizeCollateral,
41
- openPrice: trade.openPrice,
42
- currentPairPrice,
43
- initialAccBorrowingFeeP: tradeFeesData.initialAccBorrowingFeeP,
44
- currentTimestamp: context.currentTimestamp,
45
- }, context.borrowingV2);
46
- }
47
- // Calculate v1 borrowing fees (some markets use v1 indefinitely)
48
- let borrowingFeeCollateral_old = 0;
49
- if (context.borrowingV1) {
50
- borrowingFeeCollateral_old = (0, borrowing_1.getPairBorrowingFee)(positionSizeCollateral, trade.long, context.borrowingV1.initialAccFees || { accPairFee: 0, accGroupFee: 0, block: 0 }, {
51
- currentBlock: context.borrowingV1.currentBlock,
52
- group: context.borrowingV1.group,
53
- pair: context.borrowingV1.pair,
54
- collateralPriceUsd: context.collateralPriceUsd,
55
- });
56
- }
57
- return {
58
- fundingFeeCollateral,
59
- borrowingFeeCollateral,
60
- borrowingFeeCollateral_old,
61
- totalFeeCollateral: fundingFeeCollateral +
62
- borrowingFeeCollateral +
63
- borrowingFeeCollateral_old,
64
- };
65
- };
66
- exports.getTradePendingHoldingFeesCollateralStructured = getTradePendingHoldingFeesCollateralStructured;
@@ -1,28 +0,0 @@
1
- /**
2
- * @dev Holding fees calculation for structured contexts
3
- */
4
- import { Trade, TradeInfo, TradeFeesData } from "../../types";
5
- import { TradeHoldingFees } from "./types";
6
- import { ContractsVersion } from "../../../contracts/types";
7
- import type { BorrowingV1SubContext, BorrowingV2SubContext, FundingFeesSubContext } from "../../pnl";
8
- /**
9
- * @dev Context for holding fees calculation with structured sub-contexts
10
- */
11
- export type GetStructuredHoldingFeesContext = {
12
- contractsVersion: ContractsVersion;
13
- currentTimestamp: number;
14
- collateralPriceUsd: number;
15
- borrowingV1?: BorrowingV1SubContext;
16
- borrowingV2?: BorrowingV2SubContext;
17
- funding?: FundingFeesSubContext;
18
- };
19
- /**
20
- * @dev Calculates total holding fees using structured context
21
- * @param trade The trade to calculate fees for
22
- * @param tradeInfo Trade info containing contracts version
23
- * @param tradeFeesData Trade fees data containing initial acc fees
24
- * @param currentPairPrice Current pair price
25
- * @param context Structured context with sub-contexts for each fee type
26
- * @returns Object containing all holding fee components
27
- */
28
- export declare const getTradePendingHoldingFeesCollateralStructured: (trade: Trade, tradeInfo: TradeInfo, tradeFeesData: TradeFeesData, currentPairPrice: number, context: GetStructuredHoldingFeesContext) => TradeHoldingFees;
@@ -1,66 +0,0 @@
1
- "use strict";
2
- /**
3
- * @dev Holding fees calculation for structured contexts
4
- */
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.getTradePendingHoldingFeesCollateralStructured = void 0;
7
- const types_1 = require("../../../contracts/types");
8
- const borrowing_1 = require("../borrowing");
9
- const borrowingV2_1 = require("../borrowingV2");
10
- const fundingFees_1 = require("../fundingFees");
11
- /**
12
- * @dev Calculates total holding fees using structured context
13
- * @param trade The trade to calculate fees for
14
- * @param tradeInfo Trade info containing contracts version
15
- * @param tradeFeesData Trade fees data containing initial acc fees
16
- * @param currentPairPrice Current pair price
17
- * @param context Structured context with sub-contexts for each fee type
18
- * @returns Object containing all holding fee components
19
- */
20
- const getTradePendingHoldingFeesCollateralStructured = (trade, tradeInfo, tradeFeesData, currentPairPrice, context) => {
21
- const positionSizeCollateral = trade.collateralAmount * trade.leverage;
22
- // Calculate funding fees (v10+ only)
23
- let fundingFeeCollateral = 0;
24
- if (context.contractsVersion >= types_1.ContractsVersion.V10 &&
25
- context.funding &&
26
- tradeFeesData.initialAccFundingFeeP !== undefined) {
27
- fundingFeeCollateral = (0, fundingFees_1.getTradeFundingFeesCollateral)(trade, tradeInfo, tradeFeesData, currentPairPrice, Object.assign(Object.assign({}, context.funding), { currentTimestamp: context.currentTimestamp }) // TODO: Fix types once funding types are properly imported
28
- );
29
- }
30
- // Calculate borrowing fees v2
31
- let borrowingFeeCollateral = 0;
32
- if (context.borrowingV2 &&
33
- tradeFeesData.initialAccBorrowingFeeP !== undefined) {
34
- borrowingFeeCollateral = (0, borrowingV2_1.getTradeBorrowingFeesCollateral)({
35
- positionSizeCollateral,
36
- openPrice: trade.openPrice,
37
- currentPairPrice,
38
- initialAccBorrowingFeeP: tradeFeesData.initialAccBorrowingFeeP,
39
- currentTimestamp: context.currentTimestamp,
40
- }, context.borrowingV2);
41
- }
42
- // Calculate v1 borrowing fees (some markets use v1 indefinitely)
43
- let borrowingFeeCollateral_old = 0;
44
- if (context.borrowingV1) {
45
- borrowingFeeCollateral_old = (0, borrowing_1.getBorrowingFee)(positionSizeCollateral, undefined, // pairIndex not needed for pair-specific context
46
- trade.long, context.borrowingV1.initialAccFees || {
47
- accPairFee: 0,
48
- accGroupFee: 0,
49
- block: 0,
50
- }, {
51
- currentBlock: context.borrowingV1.currentBlock,
52
- group: context.borrowingV1.group,
53
- pair: context.borrowingV1.pair,
54
- collateralPriceUsd: context.collateralPriceUsd,
55
- });
56
- }
57
- return {
58
- fundingFeeCollateral,
59
- borrowingFeeCollateral,
60
- borrowingFeeCollateral_old,
61
- totalFeeCollateral: fundingFeeCollateral +
62
- borrowingFeeCollateral +
63
- borrowingFeeCollateral_old,
64
- };
65
- };
66
- exports.getTradePendingHoldingFeesCollateralStructured = getTradePendingHoldingFeesCollateralStructured;