@reyaxyz/api-sdk 0.63.8 → 0.64.0

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.
@@ -77,31 +77,32 @@ var DepthChartSimulationClient = /** @class */ (function () {
77
77
  if (!this.loadedData) {
78
78
  throw new Error('Data not loaded. Call arm() first.');
79
79
  }
80
- var step = (params === null || params === void 0 ? void 0 : params.step) || 10; // Initial step size
81
- var percentageChange = (params === null || params === void 0 ? void 0 : params.percentageChange) || 30;
82
- var maxPoints = (params === null || params === void 0 ? void 0 : params.maxPoints) || 100; // Maximum points on each side
83
- var dynamicStepIncreaseFactor = (params === null || params === void 0 ? void 0 : params.dynamicStepIncreaseFactor) || 2; // Factor to increase step size dynamically
80
+ // Adjust initial step size based on max exposures
81
+ var maxExposure = Math.max(this.loadedData.maxLongExposure, Math.abs(this.loadedData.maxShortExposure));
82
+ var initialStepSize = maxExposure / ((params === null || params === void 0 ? void 0 : params.initialSteps) || 100) || 10; // Customize this based on your needs
83
+ var step = (params === null || params === void 0 ? void 0 : params.step) || initialStepSize;
84
+ var percentageChange = (params === null || params === void 0 ? void 0 : params.percentageChange) || 50;
85
+ var currentStep = step;
84
86
  var leftResults = [];
85
87
  var rightResults = [];
86
- var currentStep = step;
87
- // Collect points for the left side
88
- for (var i = 0, delta = 0; i < maxPoints; delta -= currentStep, i++) {
88
+ // Simplified loop conditions to focus on reaching maxExposure limits efficiently
89
+ var delta = 0;
90
+ while (Math.abs(delta) < maxExposure) {
91
+ delta -= currentStep;
89
92
  var result = this.calculate(delta);
90
93
  if (result.priceImpact >= percentageChange)
91
94
  break;
92
95
  leftResults.push(result);
93
- if (i % (maxPoints / 10) === 0)
94
- currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically
96
+ // Adjust currentStep based on your liquidity model or other factors
95
97
  }
96
- currentStep = step; // Reset step size for the right side
97
- // Collect points for the right side
98
- for (var i = 0, delta = 0; i < maxPoints; delta += currentStep, i++) {
98
+ delta = 0; // Reset for the right side
99
+ while (Math.abs(delta) < maxExposure) {
100
+ delta += currentStep;
99
101
  var result = this.calculate(delta);
100
102
  if (result.priceImpact >= percentageChange)
101
103
  break;
102
104
  rightResults.push(result);
103
- if (i % (maxPoints / 10) === 0)
104
- currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically
105
+ // Adjust currentStep similarly
105
106
  }
106
107
  return {
107
108
  leftChart: leftResults.reverse(),
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetDepthChartParams,\n GetDepthChartResult,\n DepthSimulationLoadDataParams,\n SimulateDepthEntity,\n} from './types';\n\nimport LpClient from '../lp';\nimport { DepthSimulationState } from '@reyaxyz/common';\nimport BigNumber from 'bignumber.js';\n\nexport default class DepthChartSimulationClient {\n private marketId: number | null = null;\n private loadedData: DepthSimulationState | null = null;\n private lpClient: LpClient;\n constructor(lpClient: LpClient) {\n // Constructor added\n this.lpClient = lpClient;\n }\n\n // Method to asynchronously load data based on marketId\n async arm(params: DepthSimulationLoadDataParams): Promise<void> {\n this.marketId = params.marketId;\n\n this.loadedData = await this.fetchPoolData(this.marketId);\n }\n\n private async fetchPoolData(marketId: number): Promise<DepthSimulationState> {\n return this.lpClient.getLpPoolDepthChartSimulationData({\n marketId: marketId,\n });\n }\n\n getDepthChart(params?: GetDepthChartParams): GetDepthChartResult {\n if (!this.loadedData) {\n throw new Error('Data not loaded. Call arm() first.');\n }\n\n const step = params?.step || 10; // Initial step size\n const percentageChange = params?.percentageChange || 30;\n const maxPoints = params?.maxPoints || 100; // Maximum points on each side\n const dynamicStepIncreaseFactor = params?.dynamicStepIncreaseFactor || 2; // Factor to increase step size dynamically\n\n const leftResults: SimulateDepthEntity[] = [];\n const rightResults: SimulateDepthEntity[] = [];\n let currentStep = step;\n\n // Collect points for the left side\n for (let i = 0, delta = 0; i < maxPoints; delta -= currentStep, i++) {\n const result = this.calculate(delta);\n if (result.priceImpact >= percentageChange) break;\n leftResults.push(result);\n if (i % (maxPoints / 10) === 0) currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically\n }\n\n currentStep = step; // Reset step size for the right side\n\n // Collect points for the right side\n for (let i = 0, delta = 0; i < maxPoints; delta += currentStep, i++) {\n const result = this.calculate(delta);\n if (result.priceImpact >= percentageChange) break;\n rightResults.push(result);\n if (i % (maxPoints / 10) === 0) currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically\n }\n\n return {\n leftChart: leftResults.reverse(),\n rightChart: rightResults,\n };\n }\n\n private calculate(delta: number): SimulateDepthEntity {\n if (!this.loadedData) {\n throw new Error('Data not loaded. Call arm() first.');\n }\n\n const n0Delta = BigNumber(this.loadedData.netExposure).plus(delta);\n const maxExposure = n0Delta.gt(0)\n ? BigNumber(this.loadedData.maxLongExposure)\n : BigNumber(this.loadedData.maxShortExposure);\n\n const currentPrice = BigNumber(this.loadedData.spotPrice).times(\n BigNumber(1).minus(n0Delta.div(BigNumber(n0Delta).plus(maxExposure))),\n );\n\n const size = BigNumber(delta).div(this.loadedData.spotPrice).abs();\n\n return {\n price: currentPrice.toNumber(),\n totalSize: size.toNumber(),\n totalCost: size.times(currentPrice).toNumber(),\n priceImpact: DepthChartSimulationClient.calculatePriceChangePercentage(\n this.loadedData.spotPrice,\n currentPrice.toNumber(),\n ),\n };\n }\n\n static calculatePriceChangePercentage(\n price: number,\n estimatedPrice: number,\n ): number {\n // Calculate the price difference\n const priceDifference = estimatedPrice - price;\n\n const absPriceDifference = Math.abs(priceDifference);\n // Calculate the percentage change\n return (absPriceDifference / Math.abs(price)) * 100;\n }\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/index.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n GetDepthChartParams,\n GetDepthChartResult,\n DepthSimulationLoadDataParams,\n SimulateDepthEntity,\n} from './types';\n\nimport LpClient from '../lp';\nimport { DepthSimulationState } from '@reyaxyz/common';\nimport BigNumber from 'bignumber.js';\n\nexport default class DepthChartSimulationClient {\n private marketId: number | null = null;\n private loadedData: DepthSimulationState | null = null;\n private lpClient: LpClient;\n constructor(lpClient: LpClient) {\n // Constructor added\n this.lpClient = lpClient;\n }\n\n // Method to asynchronously load data based on marketId\n async arm(params: DepthSimulationLoadDataParams): Promise<void> {\n this.marketId = params.marketId;\n\n this.loadedData = await this.fetchPoolData(this.marketId);\n }\n\n private async fetchPoolData(marketId: number): Promise<DepthSimulationState> {\n return this.lpClient.getLpPoolDepthChartSimulationData({\n marketId: marketId,\n });\n }\n\n getDepthChart(params?: GetDepthChartParams): GetDepthChartResult {\n if (!this.loadedData) {\n throw new Error('Data not loaded. Call arm() first.');\n }\n\n // Adjust initial step size based on max exposures\n const maxExposure = Math.max(\n this.loadedData.maxLongExposure,\n Math.abs(this.loadedData.maxShortExposure),\n );\n const initialStepSize = maxExposure / (params?.initialSteps || 100) || 10; // Customize this based on your needs\n\n const step = params?.step || initialStepSize;\n const percentageChange = params?.percentageChange || 50;\n\n const currentStep = step;\n\n const leftResults: SimulateDepthEntity[] = [];\n const rightResults: SimulateDepthEntity[] = [];\n\n // Simplified loop conditions to focus on reaching maxExposure limits efficiently\n let delta = 0;\n while (Math.abs(delta) < maxExposure) {\n delta -= currentStep;\n const result = this.calculate(delta);\n if (result.priceImpact >= percentageChange) break;\n leftResults.push(result);\n // Adjust currentStep based on your liquidity model or other factors\n }\n\n delta = 0; // Reset for the right side\n while (Math.abs(delta) < maxExposure) {\n delta += currentStep;\n const result = this.calculate(delta);\n if (result.priceImpact >= percentageChange) break;\n rightResults.push(result);\n // Adjust currentStep similarly\n }\n\n return {\n leftChart: leftResults.reverse(),\n rightChart: rightResults,\n };\n }\n\n private calculate(delta: number): SimulateDepthEntity {\n if (!this.loadedData) {\n throw new Error('Data not loaded. Call arm() first.');\n }\n\n const n0Delta = BigNumber(this.loadedData.netExposure).plus(delta);\n const maxExposure = n0Delta.gt(0)\n ? BigNumber(this.loadedData.maxLongExposure)\n : BigNumber(this.loadedData.maxShortExposure);\n\n const currentPrice = BigNumber(this.loadedData.spotPrice).times(\n BigNumber(1).minus(n0Delta.div(BigNumber(n0Delta).plus(maxExposure))),\n );\n\n const size = BigNumber(delta).div(this.loadedData.spotPrice).abs();\n\n return {\n price: currentPrice.toNumber(),\n totalSize: size.toNumber(),\n totalCost: size.times(currentPrice).toNumber(),\n priceImpact: DepthChartSimulationClient.calculatePriceChangePercentage(\n this.loadedData.spotPrice,\n currentPrice.toNumber(),\n ),\n };\n }\n\n static calculatePriceChangePercentage(\n price: number,\n estimatedPrice: number,\n ): number {\n // Calculate the price difference\n const priceDifference = estimatedPrice - price;\n\n const absPriceDifference = Math.abs(priceDifference);\n // Calculate the percentage change\n return (absPriceDifference / Math.abs(price)) * 100;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/types.ts"],"names":[],"mappings":"","sourcesContent":["import { MarketEntity } from '@reyaxyz/common';\n\nexport type DepthSimulationLoadDataParams = {\n marketId: MarketEntity['id'];\n};\n\nexport type SimulateDepthEntity = {\n price: number;\n totalSize: number;\n totalCost: number;\n priceImpact: number;\n};\n\nexport type GetDepthChartResult = {\n leftChart: SimulateDepthEntity[];\n rightChart: SimulateDepthEntity[];\n};\n\nexport type GetDepthChartParams = {\n step?: number;\n percentageChange?: number;\n maxPoints?: number;\n dynamicStepIncreaseFactor?: number;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/types.ts"],"names":[],"mappings":"","sourcesContent":["import { MarketEntity } from '@reyaxyz/common';\n\nexport type DepthSimulationLoadDataParams = {\n marketId: MarketEntity['id'];\n};\n\nexport type SimulateDepthEntity = {\n price: number;\n totalSize: number;\n totalCost: number;\n priceImpact: number;\n};\n\nexport type GetDepthChartResult = {\n leftChart: SimulateDepthEntity[];\n rightChart: SimulateDepthEntity[];\n};\n\nexport type GetDepthChartParams = {\n step?: number;\n percentageChange?: number;\n maxPoints?: number;\n dynamicStepIncreaseFactor?: number;\n initialSteps?: number;\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAE9B,MAAM,SAAS,CAAC;AAEjB,OAAO,QAAQ,MAAM,OAAO,CAAC;AAI7B,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAAW;gBACf,QAAQ,EAAE,QAAQ;IAMxB,GAAG,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;YAMjD,aAAa;IAM3B,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IAsChE,OAAO,CAAC,SAAS;IA2BjB,MAAM,CAAC,8BAA8B,CACnC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,MAAM;CAQV"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,6BAA6B,EAE9B,MAAM,SAAS,CAAC;AAEjB,OAAO,QAAQ,MAAM,OAAO,CAAC;AAI7B,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC7C,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,UAAU,CAAqC;IACvD,OAAO,CAAC,QAAQ,CAAW;gBACf,QAAQ,EAAE,QAAQ;IAMxB,GAAG,CAAC,MAAM,EAAE,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC;YAMjD,aAAa;IAM3B,aAAa,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,mBAAmB;IA6ChE,OAAO,CAAC,SAAS;IA2BjB,MAAM,CAAC,8BAA8B,CACnC,KAAK,EAAE,MAAM,EACb,cAAc,EAAE,MAAM,GACrB,MAAM;CAQV"}
@@ -17,5 +17,6 @@ export type GetDepthChartParams = {
17
17
  percentageChange?: number;
18
18
  maxPoints?: number;
19
19
  dynamicStepIncreaseFactor?: number;
20
+ initialSteps?: number;
20
21
  };
21
22
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB,CAAC,EAAE,MAAM,CAAC;CACpC,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"/","sources":["clients/modules/depth-chart.simulation/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,MAAM,MAAM,6BAA6B,GAAG;IAC1C,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,UAAU,EAAE,mBAAmB,EAAE,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/api-sdk",
3
- "version": "0.63.8",
3
+ "version": "0.64.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -37,5 +37,5 @@
37
37
  "bignumber.js": "^9.1.2"
38
38
  },
39
39
  "packageManager": "pnpm@8.10.4",
40
- "gitHead": "83fdfcc82356b70b8320588815afd8bedb8289d7"
40
+ "gitHead": "c201d1997207a394664a2b125ab8878171d155d9"
41
41
  }
@@ -36,31 +36,38 @@ export default class DepthChartSimulationClient {
36
36
  throw new Error('Data not loaded. Call arm() first.');
37
37
  }
38
38
 
39
- const step = params?.step || 10; // Initial step size
40
- const percentageChange = params?.percentageChange || 30;
41
- const maxPoints = params?.maxPoints || 100; // Maximum points on each side
42
- const dynamicStepIncreaseFactor = params?.dynamicStepIncreaseFactor || 2; // Factor to increase step size dynamically
39
+ // Adjust initial step size based on max exposures
40
+ const maxExposure = Math.max(
41
+ this.loadedData.maxLongExposure,
42
+ Math.abs(this.loadedData.maxShortExposure),
43
+ );
44
+ const initialStepSize = maxExposure / (params?.initialSteps || 100) || 10; // Customize this based on your needs
45
+
46
+ const step = params?.step || initialStepSize;
47
+ const percentageChange = params?.percentageChange || 50;
48
+
49
+ const currentStep = step;
43
50
 
44
51
  const leftResults: SimulateDepthEntity[] = [];
45
52
  const rightResults: SimulateDepthEntity[] = [];
46
- let currentStep = step;
47
53
 
48
- // Collect points for the left side
49
- for (let i = 0, delta = 0; i < maxPoints; delta -= currentStep, i++) {
54
+ // Simplified loop conditions to focus on reaching maxExposure limits efficiently
55
+ let delta = 0;
56
+ while (Math.abs(delta) < maxExposure) {
57
+ delta -= currentStep;
50
58
  const result = this.calculate(delta);
51
59
  if (result.priceImpact >= percentageChange) break;
52
60
  leftResults.push(result);
53
- if (i % (maxPoints / 10) === 0) currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically
61
+ // Adjust currentStep based on your liquidity model or other factors
54
62
  }
55
63
 
56
- currentStep = step; // Reset step size for the right side
57
-
58
- // Collect points for the right side
59
- for (let i = 0, delta = 0; i < maxPoints; delta += currentStep, i++) {
64
+ delta = 0; // Reset for the right side
65
+ while (Math.abs(delta) < maxExposure) {
66
+ delta += currentStep;
60
67
  const result = this.calculate(delta);
61
68
  if (result.priceImpact >= percentageChange) break;
62
69
  rightResults.push(result);
63
- if (i % (maxPoints / 10) === 0) currentStep *= dynamicStepIncreaseFactor; // Increase step size dynamically
70
+ // Adjust currentStep similarly
64
71
  }
65
72
 
66
73
  return {
@@ -21,4 +21,5 @@ export type GetDepthChartParams = {
21
21
  percentageChange?: number;
22
22
  maxPoints?: number;
23
23
  dynamicStepIncreaseFactor?: number;
24
+ initialSteps?: number;
24
25
  };