@heliofi/launchpad-common 1.0.3 → 1.0.5

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 (57) hide show
  1. package/dist/src/domain/constants/index.d.ts +1 -0
  2. package/dist/src/domain/constants/index.js +1 -0
  3. package/dist/src/domain/constants/index.js.map +1 -1
  4. package/dist/src/domain/constants/meteoraFees.d.ts +2 -0
  5. package/dist/src/domain/constants/meteoraFees.js +6 -0
  6. package/dist/src/domain/constants/meteoraFees.js.map +1 -0
  7. package/dist/src/domain/curves/AbstractCurve.d.ts +3 -2
  8. package/dist/src/domain/curves/AbstractCurve.js.map +1 -1
  9. package/dist/src/domain/curves/ConstantProductCurveV1.d.ts +4 -3
  10. package/dist/src/domain/curves/ConstantProductCurveV1.js +49 -20
  11. package/dist/src/domain/curves/ConstantProductCurveV1.js.map +1 -1
  12. package/dist/src/domain/curves/tests/ConstantProductV1.spec.js +45 -12
  13. package/dist/src/domain/curves/tests/ConstantProductV1.spec.js.map +1 -1
  14. package/dist/src/domain/curves/types.d.ts +9 -0
  15. package/dist/src/domain/model/index.d.ts +1 -0
  16. package/dist/src/domain/model/index.js +1 -0
  17. package/dist/src/domain/model/index.js.map +1 -1
  18. package/dist/src/domain/model/lp-token-lock-details/entities/FeeReceiver.entity.d.ts +10 -0
  19. package/dist/src/domain/model/lp-token-lock-details/entities/FeeReceiver.entity.js +8 -0
  20. package/dist/src/domain/model/lp-token-lock-details/entities/FeeReceiver.entity.js.map +1 -0
  21. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenLockDetails.entity.d.ts +8 -0
  22. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenLockDetails.entity.js +8 -0
  23. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenLockDetails.entity.js.map +1 -0
  24. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenTransaction.entity.d.ts +7 -0
  25. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenTransaction.entity.js +8 -0
  26. package/dist/src/domain/model/lp-token-lock-details/entities/LPTokenTransaction.entity.js.map +1 -0
  27. package/dist/src/domain/model/lp-token-lock-details/entities/index.d.ts +2 -0
  28. package/dist/src/domain/model/lp-token-lock-details/entities/index.js +19 -0
  29. package/dist/src/domain/model/lp-token-lock-details/entities/index.js.map +1 -0
  30. package/dist/src/domain/model/lp-token-lock-details/index.d.ts +1 -0
  31. package/dist/src/domain/model/lp-token-lock-details/index.js +18 -0
  32. package/dist/src/domain/model/lp-token-lock-details/index.js.map +1 -0
  33. package/dist/src/domain/model/raydium-swap/dtos/RaydiumSwapPrepare.dto.d.ts +2 -0
  34. package/dist/src/domain/model/raydium-swap/dtos/RaydiumSwapPrepare.dto.js +7 -1
  35. package/dist/src/domain/model/raydium-swap/dtos/RaydiumSwapPrepare.dto.js.map +1 -1
  36. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.d.ts +2 -0
  37. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js +7 -0
  38. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js.map +1 -1
  39. package/dist/src/domain/model/tx/prepare/dtos/TxPriority.dto.d.ts +6 -0
  40. package/dist/src/domain/model/tx/prepare/dtos/TxPriority.dto.js +40 -0
  41. package/dist/src/domain/model/tx/prepare/dtos/TxPriority.dto.js.map +1 -0
  42. package/dist/src/domain/model/tx/prepare/dtos/index.d.ts +1 -0
  43. package/dist/src/domain/model/tx/prepare/dtos/index.js +1 -0
  44. package/dist/src/domain/model/tx/prepare/dtos/index.js.map +1 -1
  45. package/dist/src/domain/model/tx-token-payload/SwapTxTokenPayload.d.ts +2 -0
  46. package/dist/src/domain/model/tx-token-payload/TxSubmitPriority.d.ts +6 -0
  47. package/dist/src/domain/model/tx-token-payload/TxSubmitPriority.js +3 -0
  48. package/dist/src/domain/model/tx-token-payload/TxSubmitPriority.js.map +1 -0
  49. package/dist/src/domain/model/tx-token-payload/TxTokenPayload.d.ts +2 -0
  50. package/dist/src/domain/model/tx-token-payload/index.d.ts +1 -0
  51. package/dist/src/domain/model/tx-token-payload/index.js +1 -0
  52. package/dist/src/domain/model/tx-token-payload/index.js.map +1 -1
  53. package/dist/src/domain/services/AmountService.d.ts +1 -0
  54. package/dist/src/domain/services/AmountService.js +4 -0
  55. package/dist/src/domain/services/AmountService.js.map +1 -1
  56. package/dist/tsconfig.tsbuildinfo +1 -1
  57. package/package.json +2 -2
@@ -18,3 +18,4 @@ export * from './migrationDex';
18
18
  export * from './fixedSide';
19
19
  export * from './migrationTarget';
20
20
  export * from './feeReceiverType';
21
+ export * from './meteoraFees';
@@ -34,4 +34,5 @@ __exportStar(require("./migrationDex"), exports);
34
34
  __exportStar(require("./fixedSide"), exports);
35
35
  __exportStar(require("./migrationTarget"), exports);
36
36
  __exportStar(require("./feeReceiverType"), exports);
37
+ __exportStar(require("./meteoraFees"), exports);
37
38
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2DAAyC;AACzC,6CAA2B;AAC3B,8CAA4B;AAC5B,mDAAiC;AACjC,8CAA4B;AAC5B,mDAAiC;AACjC,6CAA2B;AAC3B,2CAAyB;AACzB,4DAA0C;AAC1C,0CAAwB;AACxB,oDAAkC;AAClC,6CAA2B;AAC3B,wCAAsB;AACtB,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B;AAC/B,8CAA4B;AAC5B,oDAAkC;AAClC,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/constants/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,2DAAyC;AACzC,6CAA2B;AAC3B,8CAA4B;AAC5B,mDAAiC;AACjC,8CAA4B;AAC5B,mDAAiC;AACjC,6CAA2B;AAC3B,2CAAyB;AACzB,4DAA0C;AAC1C,0CAAwB;AACxB,oDAAkC;AAClC,6CAA2B;AAC3B,wCAAsB;AACtB,4CAA0B;AAC1B,mDAAiC;AACjC,iDAA+B;AAC/B,8CAA4B;AAC5B,oDAAkC;AAClC,oDAAkC;AAClC,gDAA8B"}
@@ -0,0 +1,2 @@
1
+ export declare const PARTNER_FEE_PERCENTAGE = 80;
2
+ export declare const HELIO_FEE_PERCENTAGE = 20;
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HELIO_FEE_PERCENTAGE = exports.PARTNER_FEE_PERCENTAGE = void 0;
4
+ exports.PARTNER_FEE_PERCENTAGE = 80;
5
+ exports.HELIO_FEE_PERCENTAGE = 20;
6
+ //# sourceMappingURL=meteoraFees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meteoraFees.js","sourceRoot":"","sources":["../../../../src/domain/constants/meteoraFees.ts"],"names":[],"mappings":";;;AAAa,QAAA,sBAAsB,GAAG,EAAE,CAAC;AAE5B,QAAA,oBAAoB,GAAG,EAAE,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { CalculationOptions } from './types';
2
+ import { CalculationOptions, GetMarketCapOptions, GetPriceOptions } from './types';
3
3
  export declare abstract class AbstractCurve {
4
4
  abstract getTokensAmountFromCollateral(options: CalculationOptions): bigint;
5
5
  abstract getCollateralAmountFromTokens(options: CalculationOptions): bigint;
6
- abstract getCollateralPrice(curvePosition: bigint): BigNumber;
6
+ abstract getCollateralPrice(options: GetPriceOptions): BigNumber;
7
+ abstract getMarketCap(options: GetMarketCapOptions): bigint;
7
8
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/AbstractCurve.ts"],"names":[],"mappings":";;;AAGA,MAAsB,aAAa;CAMlC;AAND,sCAMC"}
1
+ {"version":3,"file":"AbstractCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/AbstractCurve.ts"],"names":[],"mappings":";;;AAOA,MAAsB,aAAa;CAQlC;AARD,sCAQC"}
@@ -1,6 +1,6 @@
1
1
  import BigNumber from '../../config/bigNumber';
2
2
  import { AbstractCurve } from './AbstractCurve';
3
- import { CalculationOptions, CurveDefaults } from './types';
3
+ import { CalculationOptions, CurveDefaults, GetMarketCapOptions, GetPriceOptions } from './types';
4
4
  export declare class ConstantProductCurveV1 extends AbstractCurve {
5
5
  initialVirtualTokenReserves: bigint;
6
6
  initialVirtualCollateralReserves: bigint;
@@ -8,15 +8,16 @@ export declare class ConstantProductCurveV1 extends AbstractCurve {
8
8
  constantProduct: bigint;
9
9
  dynamicThreshold: number;
10
10
  maxThreshold: number;
11
+ marketCapToMinimalTokens: Map<bigint, bigint>;
11
12
  readonly curveDefaults: CurveDefaults;
12
13
  getTokensAmountFromCollateral(options: CalculationOptions): bigint;
13
14
  getCollateralAmountFromTokens(options: CalculationOptions): bigint;
14
- getCollateralPrice(curvePosition: bigint): BigNumber;
15
+ getCollateralPrice(options: GetPriceOptions): BigNumber;
16
+ getMarketCap(options: GetMarketCapOptions): bigint;
15
17
  getDynamicThresholdFromMarketCap(marketCapThreshold: bigint): bigint;
16
18
  private buyInToken;
17
19
  private buyInCollateral;
18
20
  private sellInToken;
19
21
  private sellInCollateral;
20
22
  private getCurrentReserves;
21
- private bigNumberToBigInt;
22
23
  }
@@ -7,6 +7,7 @@ exports.ConstantProductCurveV1 = void 0;
7
7
  const bigNumber_1 = __importDefault(require("../../config/bigNumber"));
8
8
  const AbstractCurve_1 = require("./AbstractCurve");
9
9
  const constants_1 = require("../constants");
10
+ const services_1 = require("../services");
10
11
  class ConstantProductCurveV1 extends AbstractCurve_1.AbstractCurve {
11
12
  constructor() {
12
13
  super(...arguments);
@@ -16,6 +17,10 @@ class ConstantProductCurveV1 extends AbstractCurve_1.AbstractCurve {
16
17
  this.constantProduct = this.initialVirtualTokenReserves * this.initialVirtualCollateralReserves;
17
18
  this.dynamicThreshold = 80;
18
19
  this.maxThreshold = 82;
20
+ this.marketCapToMinimalTokens = new Map([
21
+ [345000000000n, 799820983207404442n],
22
+ [20000000000n, 336771070069821177n],
23
+ ]);
19
24
  this.curveDefaults = {
20
25
  type: constants_1.CurveType.CONSTANT_PRODUCT_V1,
21
26
  totalSupply: BigInt(1e18),
@@ -43,34 +48,58 @@ class ConstantProductCurveV1 extends AbstractCurve_1.AbstractCurve {
43
48
  const collateralAmount = this.sellInToken(amount, curvePosition);
44
49
  return (collateralAmount - (collateralAmount * BigInt(platformFeeBps)) / 10000n);
45
50
  }
46
- getCollateralPrice(curvePosition) {
51
+ getCollateralPrice(options) {
52
+ const { curvePosition, collateralDecimals } = options;
53
+ const finalCollateralDecimals = collateralDecimals ?? this.collateralDecimals;
47
54
  const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
48
- const baseCollateral = BigInt(10 ** this.collateralDecimals);
55
+ const baseCollateral = BigInt(10 ** finalCollateralDecimals);
49
56
  const price = new bigNumber_1.default(currentVirtualCollateralReserves.toString()).div(new bigNumber_1.default(currentVirtualTokenReserves.toString()));
50
57
  const inBaseUnits = price.multipliedBy(new bigNumber_1.default(baseCollateral.toString()));
51
58
  return inBaseUnits;
52
59
  }
60
+ getMarketCap(options) {
61
+ try {
62
+ const { curvePosition, tokenDecimals, collateralDecimals } = options;
63
+ const base = new bigNumber_1.default(10);
64
+ const baseTokens = base.pow(tokenDecimals ?? this.curveDefaults.tokenDecimals);
65
+ const curvePositionDecimal = new bigNumber_1.default(curvePosition.toString());
66
+ const price = this.getCollateralPrice({
67
+ curvePosition,
68
+ collateralDecimals,
69
+ });
70
+ const cap = price
71
+ .multipliedBy(curvePositionDecimal)
72
+ .dividedBy(baseTokens);
73
+ return BigInt(cap.integerValue(bigNumber_1.default.ROUND_FLOOR).toString());
74
+ }
75
+ catch (error) {
76
+ throw new Error(`Calculation error: ${error}`);
77
+ }
78
+ }
53
79
  getDynamicThresholdFromMarketCap(marketCapThreshold) {
54
80
  const baseTokens = BigInt(10 ** this.curveDefaults.tokenDecimals);
55
- let low = 300000000n;
56
- let high = 100n * 10000000n;
81
+ let low = 300000000n * baseTokens;
82
+ let high = 1000000000n * baseTokens;
83
+ let mid;
57
84
  while (low < high) {
58
- const mid = (low + high) / 2n;
59
- const priceAtPosition = this.bigNumberToBigInt(this.getCollateralPrice(mid * baseTokens));
60
- const marketCap = mid * priceAtPosition;
61
- if (marketCap >= marketCapThreshold) {
62
- high = mid;
85
+ mid = (low + high + 1n) / 2n;
86
+ const marketCap = this.getMarketCap({ curvePosition: mid });
87
+ if (marketCap === marketCapThreshold) {
88
+ low = mid;
89
+ break;
90
+ }
91
+ else if (marketCap < marketCapThreshold) {
92
+ low = mid;
63
93
  }
64
94
  else {
65
- low = mid + 1n;
95
+ high = mid - 1n;
66
96
  }
67
97
  }
68
- const finalPrice = this.bigNumberToBigInt(this.getCollateralPrice(low * baseTokens));
69
- const finalMarketCap = low * finalPrice;
70
- if (finalMarketCap >= marketCapThreshold) {
71
- return low * baseTokens;
98
+ while (this.getMarketCap({ curvePosition: low }) >= marketCapThreshold &&
99
+ low > 0n) {
100
+ low -= 1n;
72
101
  }
73
- throw new Error(`The resulting dynamic threshold is higher than max threshold 100%`);
102
+ return low + 1n;
74
103
  }
75
104
  buyInToken(tokenAmount, curvePosition) {
76
105
  const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
@@ -102,11 +131,11 @@ class ConstantProductCurveV1 extends AbstractCurve_1.AbstractCurve {
102
131
  }
103
132
  getCurrentReserves(curvePosition) {
104
133
  const currentVirtualTokenReserves = this.initialVirtualTokenReserves - curvePosition;
105
- const currentVirtualCollateralReserves = this.constantProduct / currentVirtualTokenReserves;
106
- return [currentVirtualTokenReserves, currentVirtualCollateralReserves];
107
- }
108
- bigNumberToBigInt(nr) {
109
- return BigInt(nr.integerValue(bigNumber_1.default.ROUND_FLOOR).toString());
134
+ const currentVirtualCollateralReserves = (0, bigNumber_1.default)(this.constantProduct.toString()).div((0, bigNumber_1.default)(currentVirtualTokenReserves.toString()));
135
+ return [
136
+ currentVirtualTokenReserves,
137
+ services_1.AmountService.decimalToBigInt(currentVirtualCollateralReserves),
138
+ ];
110
139
  }
111
140
  }
112
141
  exports.ConstantProductCurveV1 = ConstantProductCurveV1;
@@ -1 +1 @@
1
- {"version":3,"file":"ConstantProductCurveV1.js","sourceRoot":"","sources":["../../../../src/domain/curves/ConstantProductCurveV1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConstantProductCurveV1.js","sourceRoot":"","sources":["../../../../src/domain/curves/ConstantProductCurveV1.ts"],"names":[],"mappings":"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"}
@@ -78,21 +78,54 @@ describe('ConstantProductCurveV1', () => {
78
78
  expect(result).toBe(expectedCollateralWithoutTax);
79
79
  });
80
80
  });
81
- describe('getDynamicThresholdFromMarketCap', () => {
82
- it('should calculate dynamic threshold around 80%', () => {
83
- const result = curve.getDynamicThresholdFromMarketCap(345000000000n);
84
- expect(result).toBe(800027678000000000n);
81
+ describe('getMarketCap', () => {
82
+ it('should calculate marketcap for 340M', () => {
83
+ const curvePosition = BigInt(340e15);
84
+ const result = curve.getMarketCap({ curvePosition });
85
+ const mcapInWholeUnits = result / BigInt(1e9);
86
+ expect(mcapInWholeUnits).toBe(20n);
85
87
  });
86
- it('should calculate dynamic threshold around 34%', () => {
87
- const result = curve.getDynamicThresholdFromMarketCap(20000000000n);
88
- expect(result).toBe(338983051000000000n);
88
+ it('should calculate marketcap for 700M', () => {
89
+ const curvePosition = BigInt(700e15);
90
+ const result = curve.getMarketCap({ curvePosition });
91
+ const mcapInWholeUnits = result / BigInt(1e9);
92
+ expect(mcapInWholeUnits).toBe(161n);
89
93
  });
90
- it('should calculate dynamic threshold around 81%', () => {
91
- const result = curve.getDynamicThresholdFromMarketCap(376000000000n);
92
- expect(result).toBe(809892026000000000n);
94
+ it('should calculate marketcap for 800M', () => {
95
+ const curvePosition = BigInt(800e15);
96
+ const result = curve.getMarketCap({ curvePosition });
97
+ const mcapInWholeUnits = result / BigInt(1e9);
98
+ expect(mcapInWholeUnits).toBe(345n);
93
99
  });
94
- it('should fail at threshold at 101%', () => {
95
- expect(() => curve.getDynamicThresholdFromMarketCap(9000000000000n)).toThrowError(new Error(`The resulting dynamic threshold is higher than max threshold 100%`));
100
+ it('should calculate marketcap for 820M', () => {
101
+ const curvePosition = BigInt(820e15);
102
+ const result = curve.getMarketCap({ curvePosition });
103
+ const mcapInWholeUnits = result / BigInt(1e9);
104
+ expect(mcapInWholeUnits).toBe(412n);
105
+ });
106
+ });
107
+ describe('getMinimalTokensFromMarketCap', () => {
108
+ it('should get correct nr of minimal tokens for 345 SOL mcap', () => {
109
+ const mcap = 345000000000n;
110
+ const minimalTokenAmount = curve.marketCapToMinimalTokens.get(mcap) || 0n;
111
+ expect(minimalTokenAmount).toBeGreaterThan(0n);
112
+ const result = curve.getMarketCap({ curvePosition: minimalTokenAmount });
113
+ expect(result).toBe(mcap);
114
+ const previousMUnitTokenMcap = curve.getMarketCap({
115
+ curvePosition: minimalTokenAmount - 1n,
116
+ });
117
+ expect(curve.getMarketCap({ curvePosition: previousMUnitTokenMcap })).toBeLessThan(mcap);
118
+ });
119
+ it('should get correct nr of minimal tokens for 20 SOL mcap', () => {
120
+ const mcap = 20000000000n;
121
+ const minimalTokenAmount = curve.marketCapToMinimalTokens.get(mcap) || 0n;
122
+ expect(minimalTokenAmount).toBeGreaterThan(0n);
123
+ const result = curve.getMarketCap({ curvePosition: minimalTokenAmount });
124
+ expect(result).toBe(mcap);
125
+ const previousMUnitTokenMcap = curve.getMarketCap({
126
+ curvePosition: minimalTokenAmount - 1n,
127
+ });
128
+ expect(curve.getMarketCap({ curvePosition: previousMUnitTokenMcap })).toBeLessThan(mcap);
96
129
  });
97
130
  });
98
131
  });
@@ -1 +1 @@
1
- {"version":3,"file":"ConstantProductV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/ConstantProductV1.spec.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConstantProductV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/ConstantProductV1.spec.ts"],"names":[],"mappings":"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"}
@@ -75,3 +75,12 @@ export interface CalculationOptions {
75
75
  platformFeeBps: number;
76
76
  tradeDirection: 'BUY' | 'SELL';
77
77
  }
78
+ export interface GetPriceOptions {
79
+ curvePosition: bigint;
80
+ collateralDecimals?: number;
81
+ }
82
+ export interface GetMarketCapOptions {
83
+ curvePosition: bigint;
84
+ tokenDecimals?: number;
85
+ collateralDecimals?: number;
86
+ }
@@ -12,3 +12,4 @@ export * from './tx';
12
12
  export * from './tx-token-payload';
13
13
  export * from './raydium-swap';
14
14
  export * from './top-token-holders';
15
+ export * from './lp-token-lock-details';
@@ -28,4 +28,5 @@ __exportStar(require("./tx"), exports);
28
28
  __exportStar(require("./tx-token-payload"), exports);
29
29
  __exportStar(require("./raydium-swap"), exports);
30
30
  __exportStar(require("./top-token-holders"), exports);
31
+ __exportStar(require("./lp-token-lock-details"), exports);
31
32
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,sDAAoC;AACpC,wCAAsB;AACtB,6CAA2B;AAC3B,0CAAwB;AACxB,4CAA0B;AAC1B,yCAAuB;AACvB,yCAAuB;AACvB,+CAA6B;AAC7B,uCAAqB;AACrB,qDAAmC;AACnC,iDAA+B;AAC/B,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/model/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,+CAA6B;AAC7B,sDAAoC;AACpC,wCAAsB;AACtB,6CAA2B;AAC3B,0CAAwB;AACxB,4CAA0B;AAC1B,yCAAuB;AACvB,yCAAuB;AACvB,+CAA6B;AAC7B,uCAAqB;AACrB,qDAAmC;AACnC,iDAA+B;AAC/B,sDAAoC;AACpC,0DAAwC"}
@@ -0,0 +1,10 @@
1
+ import { FeeReceiverType } from '../../../constants';
2
+ import { Entity } from '../../entity';
3
+ import { LPTokenTransaction } from './LPTokenTransaction.entity';
4
+ export declare class FeeReceiver extends Entity {
5
+ type: FeeReceiverType;
6
+ lpTokensAllocated?: string;
7
+ moonshotTokensHeld?: string;
8
+ walletAddress: string;
9
+ transactions: LPTokenTransaction[];
10
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FeeReceiver = void 0;
4
+ const entity_1 = require("../../entity");
5
+ class FeeReceiver extends entity_1.Entity {
6
+ }
7
+ exports.FeeReceiver = FeeReceiver;
8
+ //# sourceMappingURL=FeeReceiver.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeeReceiver.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/lp-token-lock-details/entities/FeeReceiver.entity.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AAGtC,MAAa,WAAY,SAAQ,eAAM;CAUtC;AAVD,kCAUC"}
@@ -0,0 +1,8 @@
1
+ import { Entity } from '../../entity';
2
+ import { FeeReceiver } from './FeeReceiver.entity';
3
+ export declare class LPTokenLockDetails extends Entity {
4
+ id: string;
5
+ migrationDetailsId: string;
6
+ tokenPairId: string;
7
+ feeReciever: FeeReceiver[];
8
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LPTokenLockDetails = void 0;
4
+ const entity_1 = require("../../entity");
5
+ class LPTokenLockDetails extends entity_1.Entity {
6
+ }
7
+ exports.LPTokenLockDetails = LPTokenLockDetails;
8
+ //# sourceMappingURL=LPTokenLockDetails.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LPTokenLockDetails.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/lp-token-lock-details/entities/LPTokenLockDetails.entity.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAGtC,MAAa,kBAAmB,SAAQ,eAAM;CAQ7C;AARD,gDAQC"}
@@ -0,0 +1,7 @@
1
+ import { BlockchainSymbol, TxStatus } from '../../../constants';
2
+ import { Entity } from '../../entity';
3
+ export declare class LPTokenTransaction extends Entity {
4
+ blockchainSymbol: BlockchainSymbol;
5
+ transactionSignature: string;
6
+ status: TxStatus;
7
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LPTokenTransaction = void 0;
4
+ const entity_1 = require("../../entity");
5
+ class LPTokenTransaction extends entity_1.Entity {
6
+ }
7
+ exports.LPTokenTransaction = LPTokenTransaction;
8
+ //# sourceMappingURL=LPTokenTransaction.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LPTokenTransaction.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/lp-token-lock-details/entities/LPTokenTransaction.entity.ts"],"names":[],"mappings":";;;AACA,yCAAsC;AAEtC,MAAa,kBAAmB,SAAQ,eAAM;CAM7C;AAND,gDAMC"}
@@ -0,0 +1,2 @@
1
+ export * from './FeeReceiver.entity';
2
+ export * from './LPTokenLockDetails.entity';
@@ -0,0 +1,19 @@
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("./FeeReceiver.entity"), exports);
18
+ __exportStar(require("./LPTokenLockDetails.entity"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/lp-token-lock-details/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,8DAA4C"}
@@ -0,0 +1 @@
1
+ export * from './entities';
@@ -0,0 +1,18 @@
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("./entities"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/domain/model/lp-token-lock-details/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -1,4 +1,5 @@
1
1
  import { SwapType } from '../../../constants';
2
+ import { TxPriorityDto } from '../../tx';
2
3
  export declare class RaydiumSwapPrepareDto {
3
4
  sender: string;
4
5
  poolId: string;
@@ -10,4 +11,5 @@ export declare class RaydiumSwapPrepareDto {
10
11
  feeMintAddress: string;
11
12
  swapType?: SwapType;
12
13
  priorityFee?: number;
14
+ priority?: TxPriorityDto;
13
15
  }
@@ -14,6 +14,7 @@ const class_transformer_1 = require("class-transformer");
14
14
  const class_validator_1 = require("class-validator");
15
15
  const constants_1 = require("../../../constants");
16
16
  const validations_1 = require("../../../validations");
17
+ const tx_1 = require("../../tx");
17
18
  class RaydiumSwapPrepareDto {
18
19
  }
19
20
  __decorate([
@@ -51,7 +52,6 @@ __decorate([
51
52
  __decorate([
52
53
  (0, class_transformer_1.Transform)(({ value }) => BigInt(value)),
53
54
  (0, class_validator_1.IsNotEmpty)(),
54
- (0, class_validator_1.Validate)(validations_1.MinBigInt),
55
55
  __metadata("design:type", String)
56
56
  ], RaydiumSwapPrepareDto.prototype, "feeAmount", void 0);
57
57
  __decorate([
@@ -70,5 +70,11 @@ __decorate([
70
70
  (0, class_validator_1.IsOptional)(),
71
71
  __metadata("design:type", Number)
72
72
  ], RaydiumSwapPrepareDto.prototype, "priorityFee", void 0);
73
+ __decorate([
74
+ (0, class_transformer_1.Type)(() => tx_1.TxPriorityDto),
75
+ (0, class_validator_1.ValidateNested)(),
76
+ (0, class_validator_1.IsOptional)(),
77
+ __metadata("design:type", tx_1.TxPriorityDto)
78
+ ], RaydiumSwapPrepareDto.prototype, "priority", void 0);
73
79
  exports.RaydiumSwapPrepareDto = RaydiumSwapPrepareDto;
74
80
  //# sourceMappingURL=RaydiumSwapPrepare.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RaydiumSwapPrepare.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/raydium-swap/dtos/RaydiumSwapPrepare.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,qDAOyB;AACzB,kDAA8C;AAC9C,sDAAiD;AAEjD,MAAa,qBAAqB;CA4CjC;AA3CC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACI;AAEjB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;uDACH;AAEjB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;wDACF;AAElB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;wDACF;AAElB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6DACU;AAEvB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,oBAAQ,CAAC;IAChB,IAAA,4BAAU,GAAE;;uDACO;AAEpB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACQ;AA3CvB,sDA4CC"}
1
+ {"version":3,"file":"RaydiumSwapPrepare.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/raydium-swap/dtos/RaydiumSwapPrepare.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAoD;AACpD,qDAQyB;AACzB,kDAA8C;AAC9C,sDAAiD;AACjD,iCAAyC;AAEzC,MAAa,qBAAqB;CAgDjC;AA/CC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;uDACI;AAEjB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACE;AAEf;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;uDACH;AAEjB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;wDACF;AAElB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;;wDACK;AAElB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6DACU;AAEvB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,oBAAQ,CAAC;IAChB,IAAA,4BAAU,GAAE;;uDACO;AAEpB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0DACQ;AAErB;IAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,kBAAa,CAAC;IACzB,IAAA,gCAAc,GAAE;IAChB,IAAA,4BAAU,GAAE;8BACF,kBAAa;uDAAC;AA/C3B,sDAgDC"}
@@ -1,8 +1,10 @@
1
1
  import { FixedSide } from '../../../../constants';
2
+ import { TxPriorityDto } from './TxPriority.dto';
2
3
  export declare class BaseTxPrepareDto {
3
4
  creatorPK: string;
4
5
  amount: string;
5
6
  slippageBps: number;
6
7
  collateralAmount?: string;
7
8
  fixedSide?: FixedSide;
9
+ priority?: TxPriorityDto;
8
10
  }
@@ -14,6 +14,7 @@ const class_validator_1 = require("class-validator");
14
14
  const class_transformer_1 = require("class-transformer");
15
15
  const validations_1 = require("../../../../validations");
16
16
  const constants_1 = require("../../../../constants");
17
+ const TxPriority_dto_1 = require("./TxPriority.dto");
17
18
  class BaseTxPrepareDto {
18
19
  }
19
20
  __decorate([
@@ -45,5 +46,11 @@ __decorate([
45
46
  (0, class_validator_1.IsOptional)(),
46
47
  __metadata("design:type", Number)
47
48
  ], BaseTxPrepareDto.prototype, "fixedSide", void 0);
49
+ __decorate([
50
+ (0, class_transformer_1.Type)(() => TxPriority_dto_1.TxPriorityDto),
51
+ (0, class_validator_1.ValidateNested)(),
52
+ (0, class_validator_1.IsOptional)(),
53
+ __metadata("design:type", TxPriority_dto_1.TxPriorityDto)
54
+ ], BaseTxPrepareDto.prototype, "priority", void 0);
48
55
  exports.BaseTxPrepareDto = BaseTxPrepareDto;
49
56
  //# sourceMappingURL=BaseTxPrepare.dto.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseTxPrepare.dto.js","sourceRoot":"","sources":["../../../../../../../src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDASyB;AACzB,yDAA8C;AAC9C,yDAAoD;AACpD,qDAAkD;AAElD,MAAa,gBAAgB;CAwB5B;AAvBC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACK;AAElB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;gDACL;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,KAAK,CAAC;;qDACS;AAEpB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;;0DACa;AAE1B;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,qBAAS,CAAC;IACjB,IAAA,4BAAU,GAAE;;mDACS;AAvBxB,4CAwBC"}
1
+ {"version":3,"file":"BaseTxPrepare.dto.js","sourceRoot":"","sources":["../../../../../../../src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAUyB;AACzB,yDAAoD;AACpD,yDAAoD;AACpD,qDAAkD;AAClD,qDAAiD;AAEjD,MAAa,gBAAgB;CA6B5B;AA5BC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;mDACK;AAElB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;gDACL;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;IACZ,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,KAAK,CAAC;;qDACS;AAEpB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;;0DACa;AAE1B;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,qBAAS,CAAC;IACjB,IAAA,4BAAU,GAAE;;mDACS;AAEtB;IAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,8BAAa,CAAC;IACzB,IAAA,gCAAc,GAAE;IAChB,IAAA,4BAAU,GAAE;8BACF,8BAAa;kDAAC;AA5B3B,4CA6BC"}
@@ -0,0 +1,6 @@
1
+ export declare class TxPriorityDto {
2
+ priorityTipAmount: string;
3
+ frontRunningProtection?: boolean;
4
+ fastBestEffort?: boolean;
5
+ useStakedRPCs?: boolean;
6
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.TxPriorityDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const validations_1 = require("../../../../validations");
16
+ class TxPriorityDto {
17
+ }
18
+ __decorate([
19
+ (0, class_transformer_1.Transform)(({ value }) => BigInt(value)),
20
+ (0, class_validator_1.IsNotEmpty)(),
21
+ (0, class_validator_1.Validate)(validations_1.MinBigInt),
22
+ __metadata("design:type", String)
23
+ ], TxPriorityDto.prototype, "priorityTipAmount", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsBoolean)(),
26
+ (0, class_validator_1.IsOptional)(),
27
+ __metadata("design:type", Boolean)
28
+ ], TxPriorityDto.prototype, "frontRunningProtection", void 0);
29
+ __decorate([
30
+ (0, class_validator_1.IsBoolean)(),
31
+ (0, class_validator_1.IsOptional)(),
32
+ __metadata("design:type", Boolean)
33
+ ], TxPriorityDto.prototype, "fastBestEffort", void 0);
34
+ __decorate([
35
+ (0, class_validator_1.IsBoolean)(),
36
+ (0, class_validator_1.IsOptional)(),
37
+ __metadata("design:type", Boolean)
38
+ ], TxPriorityDto.prototype, "useStakedRPCs", void 0);
39
+ exports.TxPriorityDto = TxPriorityDto;
40
+ //# sourceMappingURL=TxPriority.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxPriority.dto.js","sourceRoot":"","sources":["../../../../../../../src/domain/model/tx/prepare/dtos/TxPriority.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,qDAA8E;AAC9E,yDAAoD;AAEpD,MAAa,aAAa;CA6BzB;AA5BC;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACvC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,EAAC,uBAAS,CAAC;;wDACM;AAO1B;IAAC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;6DACoB;AAKjC;IAAC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;qDACY;AAMzB;IAAC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;oDACW;AA5B1B,sCA6BC"}