@heliofi/launchpad-common 0.0.7 → 0.0.9

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 (117) hide show
  1. package/dist/src/domain/constants/blockchain.d.ts +0 -1
  2. package/dist/src/domain/constants/blockchain.js +1 -2
  3. package/dist/src/domain/constants/blockchain.js.map +1 -1
  4. package/dist/src/domain/curves/BaseCurve.d.ts +4 -1
  5. package/dist/src/domain/curves/BaseCurve.js +32 -0
  6. package/dist/src/domain/curves/BaseCurve.js.map +1 -1
  7. package/dist/src/domain/curves/LinearCurveV1.d.ts +2 -1
  8. package/dist/src/domain/curves/LinearCurveV1.js +30 -0
  9. package/dist/src/domain/curves/LinearCurveV1.js.map +1 -1
  10. package/dist/src/domain/curves/tests/LinearCurveV1.spec.js +76 -3
  11. package/dist/src/domain/curves/tests/LinearCurveV1.spec.js.map +1 -1
  12. package/dist/src/domain/curves/types.d.ts +28 -1
  13. package/dist/src/domain/curves/types.js.map +1 -1
  14. package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.d.ts +5 -0
  15. package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.js +8 -0
  16. package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.js.map +1 -0
  17. package/dist/src/domain/model/base-tx/entities/BaseTx.entity.d.ts +18 -0
  18. package/dist/src/domain/model/base-tx/entities/BaseTx.entity.js +8 -0
  19. package/dist/src/domain/model/base-tx/entities/BaseTx.entity.js.map +1 -0
  20. package/dist/src/domain/model/base-tx/entities/Block.entity.d.ts +5 -0
  21. package/dist/src/domain/model/base-tx/entities/Block.entity.js +7 -0
  22. package/dist/src/domain/model/base-tx/entities/Block.entity.js.map +1 -0
  23. package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.d.ts +4 -0
  24. package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.js +8 -0
  25. package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.js.map +1 -0
  26. package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.d.ts +5 -0
  27. package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.js +7 -0
  28. package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.js.map +1 -0
  29. package/dist/src/domain/model/base-tx/entities/Trade.entity.d.ts +11 -0
  30. package/dist/src/domain/model/base-tx/entities/Trade.entity.js +7 -0
  31. package/dist/src/domain/model/base-tx/entities/Trade.entity.js.map +1 -0
  32. package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.d.ts +5 -0
  33. package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.js +7 -0
  34. package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.js.map +1 -0
  35. package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.d.ts +4 -0
  36. package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.js +7 -0
  37. package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.js.map +1 -0
  38. package/dist/src/domain/model/base-tx/entities/index.d.ts +8 -0
  39. package/dist/src/domain/model/base-tx/entities/index.js +25 -0
  40. package/dist/src/domain/model/base-tx/entities/index.js.map +1 -0
  41. package/dist/src/domain/model/base-tx/index.d.ts +1 -0
  42. package/dist/src/domain/model/base-tx/index.js +18 -0
  43. package/dist/src/domain/model/base-tx/index.js.map +1 -0
  44. package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.d.ts +2 -4
  45. package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.js +2 -27
  46. package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.js.map +1 -1
  47. package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.d.ts +2 -4
  48. package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.js +2 -2
  49. package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.js.map +1 -1
  50. package/dist/src/domain/model/buy/submit/entities/BuyTxSubmitResponse.entity.js.map +1 -1
  51. package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.d.ts +4 -0
  52. package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.js +8 -0
  53. package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.js.map +1 -0
  54. package/dist/src/domain/model/curve/entities/index.d.ts +1 -0
  55. package/dist/src/domain/model/curve/entities/index.js +1 -0
  56. package/dist/src/domain/model/curve/entities/index.js.map +1 -1
  57. package/dist/src/domain/model/index.d.ts +4 -2
  58. package/dist/src/domain/model/index.js +4 -2
  59. package/dist/src/domain/model/index.js.map +1 -1
  60. package/dist/src/domain/model/mint/submit/entities/MintTxSubmitResponse.entity.d.ts +1 -0
  61. package/dist/src/domain/model/mint/submit/entities/MintTxSubmitResponse.entity.js.map +1 -1
  62. package/dist/src/domain/model/sell/index.d.ts +2 -0
  63. package/dist/src/domain/model/sell/index.js +19 -0
  64. package/dist/src/domain/model/sell/index.js.map +1 -0
  65. package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.d.ts +3 -0
  66. package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.js +8 -0
  67. package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.js.map +1 -0
  68. package/dist/src/domain/model/sell/prepare/dtos/index.d.ts +1 -0
  69. package/dist/src/domain/model/sell/prepare/dtos/index.js +18 -0
  70. package/dist/src/domain/model/sell/prepare/dtos/index.js.map +1 -0
  71. package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.d.ts +5 -0
  72. package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.js +8 -0
  73. package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.js.map +1 -0
  74. package/dist/src/domain/model/sell/prepare/entities/index.d.ts +1 -0
  75. package/dist/src/domain/model/sell/prepare/entities/index.js +18 -0
  76. package/dist/src/domain/model/sell/prepare/entities/index.js.map +1 -0
  77. package/dist/src/domain/model/sell/prepare/index.d.ts +2 -0
  78. package/dist/src/domain/model/sell/prepare/index.js +19 -0
  79. package/dist/src/domain/model/sell/prepare/index.js.map +1 -0
  80. package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.d.ts +3 -0
  81. package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.js +8 -0
  82. package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.js.map +1 -0
  83. package/dist/src/domain/model/sell/submit/dtos/index.d.ts +1 -0
  84. package/dist/src/domain/model/sell/submit/dtos/index.js +18 -0
  85. package/dist/src/domain/model/sell/submit/dtos/index.js.map +1 -0
  86. package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.d.ts +3 -0
  87. package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.js +8 -0
  88. package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.js.map +1 -0
  89. package/dist/src/domain/model/sell/submit/entities/index.d.ts +1 -0
  90. package/dist/src/domain/model/sell/submit/entities/index.js +18 -0
  91. package/dist/src/domain/model/sell/submit/entities/index.js.map +1 -0
  92. package/dist/src/domain/model/sell/submit/index.d.ts +2 -0
  93. package/dist/src/domain/model/sell/submit/index.js +19 -0
  94. package/dist/src/domain/model/sell/submit/index.js.map +1 -0
  95. package/dist/src/domain/model/token-pair/constants.d.ts +2 -1
  96. package/dist/src/domain/model/token-pair/constants.js +1 -0
  97. package/dist/src/domain/model/token-pair/constants.js.map +1 -1
  98. package/dist/src/domain/model/tx/index.d.ts +1 -0
  99. package/dist/src/domain/model/tx/index.js +1 -0
  100. package/dist/src/domain/model/tx/index.js.map +1 -1
  101. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.d.ts +5 -0
  102. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js +33 -0
  103. package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js.map +1 -0
  104. package/dist/src/domain/model/tx/prepare/dtos/index.d.ts +1 -0
  105. package/dist/src/domain/model/tx/prepare/dtos/index.js +18 -0
  106. package/dist/src/domain/model/tx/prepare/dtos/index.js.map +1 -0
  107. package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.d.ts +5 -0
  108. package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.js +8 -0
  109. package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.js.map +1 -0
  110. package/dist/src/domain/model/tx/prepare/entities/index.d.ts +1 -0
  111. package/dist/src/domain/model/tx/prepare/entities/index.js +18 -0
  112. package/dist/src/domain/model/tx/prepare/entities/index.js.map +1 -0
  113. package/dist/src/domain/model/tx/prepare/index.d.ts +2 -0
  114. package/dist/src/domain/model/tx/prepare/index.js +19 -0
  115. package/dist/src/domain/model/tx/prepare/index.js.map +1 -0
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/package.json +2 -2
@@ -11,4 +11,3 @@ export declare enum BlockchainEngineType {
11
11
  }
12
12
  export declare const blockchainEngineMap: Map<BlockchainSymbol, BlockchainEngineType>;
13
13
  export declare function getDefaultBlockChainName(): BlockchainSymbol;
14
- export declare const triggerBuild = 0;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.triggerBuild = exports.getDefaultBlockChainName = exports.blockchainEngineMap = exports.BlockchainEngineType = exports.BlockchainSymbol = void 0;
3
+ exports.getDefaultBlockChainName = exports.blockchainEngineMap = exports.BlockchainEngineType = exports.BlockchainSymbol = void 0;
4
4
  var BlockchainSymbol;
5
5
  (function (BlockchainSymbol) {
6
6
  BlockchainSymbol["SOL"] = "SOL";
@@ -24,5 +24,4 @@ function getDefaultBlockChainName() {
24
24
  return BlockchainSymbol.SOL;
25
25
  }
26
26
  exports.getDefaultBlockChainName = getDefaultBlockChainName;
27
- exports.triggerBuild = 0;
28
27
  //# sourceMappingURL=blockchain.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../../../src/domain/constants/blockchain.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,+BAAW,CAAA;IACX,uCAAmB,CAAA;IACnB,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,mCAAW,CAAA;IACX,mCAAW,CAAA;IACX,mCAAW,CAAA;AACb,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAEY,QAAA,mBAAmB,GAAG,IAAI,GAAG,CAGxC;IACA,CAAC,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAChD,CAAC,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAChD,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC;IACpD,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC;CACrD,CAAC,CAAC;AAEH,SAAgB,wBAAwB;IACtC,OAAO,gBAAgB,CAAC,GAAG,CAAC;AAC9B,CAAC;AAFD,4DAEC;AAEY,QAAA,YAAY,GAAG,CAAC,CAAC"}
1
+ {"version":3,"file":"blockchain.js","sourceRoot":"","sources":["../../../../src/domain/constants/blockchain.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAKX;AALD,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,+BAAW,CAAA;IACX,uCAAmB,CAAA;IACnB,uCAAmB,CAAA;AACrB,CAAC,EALW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAK3B;AAED,IAAY,oBAIX;AAJD,WAAY,oBAAoB;IAC9B,mCAAW,CAAA;IACX,mCAAW,CAAA;IACX,mCAAW,CAAA;AACb,CAAC,EAJW,oBAAoB,GAApB,4BAAoB,KAApB,4BAAoB,QAI/B;AAEY,QAAA,mBAAmB,GAAG,IAAI,GAAG,CAGxC;IACA,CAAC,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAChD,CAAC,gBAAgB,CAAC,GAAG,EAAE,oBAAoB,CAAC,GAAG,CAAC;IAChD,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC;IACpD,CAAC,gBAAgB,CAAC,OAAO,EAAE,oBAAoB,CAAC,GAAG,CAAC;CACrD,CAAC,CAAC;AAEH,SAAgB,wBAAwB;IACtC,OAAO,gBAAgB,CAAC,GAAG,CAAC;AAC9B,CAAC;AAFD,4DAEC"}
@@ -1,11 +1,14 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { CurveType } from '../constants';
3
- import { CalculatePriceOptions } from './types';
3
+ import { CalculatePriceOptions, CalculateTokensOptions, GetCollateralPriceOptions, GetTokensNrFromCollateralOptions } from './types';
4
4
  export declare abstract class BaseCurve {
5
5
  dynamicThreshold: number;
6
6
  curveLimit: number;
7
7
  curveType: CurveType;
8
+ getCollateralPrice(options: GetCollateralPriceOptions): bigint;
9
+ getTokensNrFromCollateral(options: GetTokensNrFromCollateralOptions): bigint;
8
10
  abstract calculateCostForNTokens(options: CalculatePriceOptions): bigint | undefined;
11
+ abstract calculateTokensNrFromCollateral(options: CalculateTokensOptions): bigint | undefined;
9
12
  abstract tokensToMigrate(coefA: BigNumber, coefB: BigNumber, allocation: bigint, decimalsNr: number, migrationFee: number): bigint | undefined;
10
13
  abstract tokensToBurn(totalSupply: bigint, allocation: bigint, tokensToMigrate: bigint): bigint | undefined;
11
14
  abstract migrationFee(): bigint;
@@ -2,6 +2,38 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BaseCurve = void 0;
4
4
  class BaseCurve {
5
+ getCollateralPrice(options) {
6
+ const coefB = this.getCoefB(options.collateralDecimalsNr);
7
+ const coefA = this.getCoefA(coefB, options.totalSupply, options.tokenDecimalsNr, options.marketCapThreshold, options.marketCapDecimalsNr);
8
+ const collateralPrice = this.calculateCostForNTokens({
9
+ coefA,
10
+ coefB,
11
+ nAmount: options.tokensAmount,
12
+ curvePosition: options.curvePosition,
13
+ decimalsNr: options.tokenDecimalsNr,
14
+ collateralDecimalsNr: options.collateralDecimalsNr,
15
+ });
16
+ if (!collateralPrice) {
17
+ throw new Error('Expected collateral amount is 0 or undefined!');
18
+ }
19
+ return collateralPrice;
20
+ }
21
+ getTokensNrFromCollateral(options) {
22
+ const coefB = this.getCoefB(options.collateralDecimalsNr);
23
+ const coefA = this.getCoefA(coefB, options.totalSupply, options.tokenDecimalsNr, options.marketCapThreshold, options.marketCapDecimalsNr);
24
+ const tokensNr = this.calculateTokensNrFromCollateral({
25
+ coefA,
26
+ coefB,
27
+ collateralAmount: options.collateralAmount,
28
+ curvePosition: options.curvePosition,
29
+ decimalsNr: options.tokenDecimalsNr,
30
+ collateralDecimalsNr: options.collateralDecimalsNr,
31
+ });
32
+ if (!tokensNr) {
33
+ throw new Error('Expected collateral amount is 0 or undefined!');
34
+ }
35
+ return tokensNr;
36
+ }
5
37
  }
6
38
  exports.BaseCurve = BaseCurve;
7
39
  //# sourceMappingURL=BaseCurve.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BaseCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/BaseCurve.ts"],"names":[],"mappings":";;;AAIA,MAAsB,SAAS;CA2C9B;AA3CD,8BA2CC"}
1
+ {"version":3,"file":"BaseCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/BaseCurve.ts"],"names":[],"mappings":";;;AASA,MAAsB,SAAS;IAO7B,kBAAkB,CAAC,OAAkC;QACnD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CACzB,KAAK,EACL,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,mBAAmB,CAC5B,CAAC;QAEF,MAAM,eAAe,GAAG,IAAI,CAAC,uBAAuB,CAAC;YACnD,KAAK;YACL,KAAK;YACL,OAAO,EAAE,OAAO,CAAC,YAAY;YAC7B,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,OAAO,CAAC,eAAe;YACnC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,eAAe,EAAE;YACpB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QACD,OAAO,eAAe,CAAC;IACzB,CAAC;IAED,yBAAyB,CAAC,OAAyC;QACjE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CACzB,KAAK,EACL,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,eAAe,EACvB,OAAO,CAAC,kBAAkB,EAC1B,OAAO,CAAC,mBAAmB,CAC5B,CAAC;QAEF,MAAM,QAAQ,GAAG,IAAI,CAAC,+BAA+B,CAAC;YACpD,KAAK;YACL,KAAK;YACL,gBAAgB,EAAE,OAAO,CAAC,gBAAgB;YAC1C,aAAa,EAAE,OAAO,CAAC,aAAa;YACpC,UAAU,EAAE,OAAO,CAAC,eAAe;YACnC,oBAAoB,EAAE,OAAO,CAAC,oBAAoB;SACnD,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;SAClE;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;CA0CF;AAjGD,8BAiGC"}
@@ -1,6 +1,6 @@
1
1
  import BigNumber from 'bignumber.js';
2
2
  import { BaseCurve } from './BaseCurve';
3
- import { CalculatePriceOptions, CurveDefaults } from './types';
3
+ import { CalculatePriceOptions, CalculateTokensOptions, CurveDefaults } from './types';
4
4
  export declare class LinearCurveV1 extends BaseCurve {
5
5
  dynamicThreshold: number;
6
6
  maxThreshold: number;
@@ -8,6 +8,7 @@ export declare class LinearCurveV1 extends BaseCurve {
8
8
  readonly curveDefaults: CurveDefaults;
9
9
  constructor();
10
10
  calculateCostForNTokens(options: CalculatePriceOptions): bigint | undefined;
11
+ calculateTokensNrFromCollateral(options: CalculateTokensOptions): bigint | undefined;
11
12
  tokensToMigrate(coefA: BigNumber, coefB: BigNumber, allocation: bigint, decimalsNr: number, migrationFee: number): bigint | undefined;
12
13
  tokensToBurn(totalSupply: bigint, allocation: bigint, tokensToMigrate: bigint): bigint | undefined;
13
14
  migrationFee(): bigint;
@@ -7,6 +7,7 @@ exports.LinearCurveV1 = void 0;
7
7
  const bignumber_js_1 = __importDefault(require("bignumber.js"));
8
8
  const constants_1 = require("../constants");
9
9
  const BaseCurve_1 = require("./BaseCurve");
10
+ bignumber_js_1.default.config({ DECIMAL_PLACES: 28 });
10
11
  class LinearCurveV1 extends BaseCurve_1.BaseCurve {
11
12
  constructor() {
12
13
  super();
@@ -46,6 +47,35 @@ class LinearCurveV1 extends BaseCurve_1.BaseCurve {
46
47
  return undefined;
47
48
  }
48
49
  }
50
+ calculateTokensNrFromCollateral(options) {
51
+ const { coefA, coefB, collateralAmount, curvePosition, decimalsNr, collateralDecimalsNr, } = options;
52
+ try {
53
+ const tokenDecimals = new bignumber_js_1.default(10).pow(decimalsNr);
54
+ const collateralDecimals = new bignumber_js_1.default(10).pow(collateralDecimalsNr);
55
+ const y = new bignumber_js_1.default(collateralAmount.toString()).dividedBy(collateralDecimals);
56
+ const m = new bignumber_js_1.default(curvePosition.toString()).dividedBy(tokenDecimals);
57
+ const a = coefA;
58
+ let b = a.multipliedBy(m).plus(coefB).multipliedBy(2);
59
+ let c = y.multipliedBy(-2);
60
+ if (options.tradeDirection === constants_1.TradeDirection.SELL) {
61
+ b = b.negated();
62
+ c = c.negated();
63
+ }
64
+ const discriminant = b.pow(2).minus(a.multipliedBy(c).multipliedBy(4));
65
+ if (discriminant.isNegative()) {
66
+ throw new Error('Negative discriminant, no real roots for tokensNr from collateral calculation');
67
+ }
68
+ const sqrtDiscriminant = discriminant.sqrt();
69
+ const twoA = a.multipliedBy(2);
70
+ const x1 = b.negated().plus(sqrtDiscriminant).dividedBy(twoA);
71
+ const x2 = b.negated().minus(sqrtDiscriminant).dividedBy(twoA);
72
+ const x = options.tradeDirection === constants_1.TradeDirection.SELL ? x2 : x1;
73
+ return BigInt(x.toFixed(0)) * BigInt(tokenDecimals.toNumber());
74
+ }
75
+ catch (e) {
76
+ return undefined;
77
+ }
78
+ }
49
79
  tokensToMigrate(coefA, coefB, allocation, decimalsNr, migrationFee) {
50
80
  const decimalsPow = new bignumber_js_1.default(10).pow(decimalsNr);
51
81
  const curveAllocationNormalized = new bignumber_js_1.default(allocation.toString()).dividedBy(decimalsPow);
@@ -1 +1 @@
1
- {"version":3,"file":"LinearCurveV1.js","sourceRoot":"","sources":["../../../../src/domain/curves/LinearCurveV1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinearCurveV1.js","sourceRoot":"","sources":["../../../../src/domain/curves/LinearCurveV1.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const LinearCurveV1_1 = require("../LinearCurveV1");
4
+ const tradeDirection_1 = require("../../constants/tradeDirection");
4
5
  describe('LinearCurveV1', () => {
5
6
  let curve;
6
7
  const totalSupply = BigInt((1e18).toString());
7
8
  const decimalsNr = 9;
8
- const marketcapThreshold = BigInt(500e9);
9
- const marketcapDecimalsNr = 9;
9
+ const marketCapThreshold = BigInt(500e9);
10
+ const marketCapDecimalsNr = 9;
10
11
  const collateralDecimalsNr = 9;
11
12
  const migrationFee = 2;
12
13
  let coefA;
@@ -18,7 +19,7 @@ describe('LinearCurveV1', () => {
18
19
  it('should get coefficient a and b value', () => {
19
20
  coefB = curve.getCoefB(collateralDecimalsNr);
20
21
  expect(coefB.toNumber()).toBe(1e-9);
21
- coefA = curve.getCoefA(coefB, totalSupply, decimalsNr, marketcapThreshold, marketcapDecimalsNr);
22
+ coefA = curve.getCoefA(coefB, totalSupply, decimalsNr, marketCapThreshold, marketCapDecimalsNr);
22
23
  expect(coefA.toNumber()).toBeGreaterThan(1e-15);
23
24
  expect(coefA.toNumber()).toBeLessThan(2e-15);
24
25
  });
@@ -38,6 +39,62 @@ describe('LinearCurveV1', () => {
38
39
  expect(expectedCost).toBe(BigInt(1001));
39
40
  });
40
41
  });
42
+ describe('calculateNrOfTokensPerCollateral', () => {
43
+ it('should calculate the correct nr of tokens for buy with 1001 collateral', () => {
44
+ const collateralAmount = BigInt(1001);
45
+ const curvePosition = BigInt(0);
46
+ const expectedNrOfTokens = curve.calculateTokensNrFromCollateral({
47
+ coefA,
48
+ coefB,
49
+ collateralAmount,
50
+ curvePosition,
51
+ decimalsNr,
52
+ collateralDecimalsNr,
53
+ });
54
+ expect(expectedNrOfTokens).toBe(BigInt(1e12));
55
+ });
56
+ it('should calculate the correct nr of tokens for sell with 1001 collateral when curve position is 1e6', () => {
57
+ const collateralAmount = BigInt(1001);
58
+ const curvePosition = BigInt(1e12);
59
+ const expectedNrOfTokens = curve.calculateTokensNrFromCollateral({
60
+ tradeDirection: tradeDirection_1.TradeDirection.SELL,
61
+ coefA,
62
+ coefB,
63
+ collateralAmount,
64
+ curvePosition,
65
+ decimalsNr,
66
+ collateralDecimalsNr,
67
+ });
68
+ expect(expectedNrOfTokens).toBe(BigInt(1e12));
69
+ });
70
+ it('should calculate the correct nr of tokens for buy with 0.001 collateral for curve position 20M', () => {
71
+ const collateralAmount = BigInt(1e6);
72
+ const curvePosition = BigInt(20 * 1e15);
73
+ const expectedNrOfTokens = curve.calculateTokensNrFromCollateral({
74
+ coefA,
75
+ coefB,
76
+ collateralAmount,
77
+ curvePosition,
78
+ decimalsNr,
79
+ collateralDecimalsNr,
80
+ });
81
+ expect(expectedNrOfTokens).toBe(BigInt(2.9372e13));
82
+ });
83
+ it('should calculate the correct nr of tokens to sell with 0.001 collateral for curve position 20M+', () => {
84
+ const collateralAmount = BigInt(1e6);
85
+ const curvePosition = BigInt(20.029372 * 1e15);
86
+ const expectedNrOfTokens = curve.calculateTokensNrFromCollateral({
87
+ tradeDirection: tradeDirection_1.TradeDirection.SELL,
88
+ coefA,
89
+ coefB,
90
+ collateralAmount,
91
+ curvePosition,
92
+ decimalsNr,
93
+ collateralDecimalsNr,
94
+ });
95
+ expect(expectedNrOfTokens).toBe(BigInt(2.9372e13));
96
+ });
97
+ });
41
98
  describe('tokensToMigrate', () => {
42
99
  it('should calculate the correct tokens to migrate based on allocation', () => {
43
100
  const curveAllocation = BigInt(5.5e17);
@@ -53,5 +110,21 @@ describe('LinearCurveV1', () => {
53
110
  expect(expectedBurn).toBeDefined();
54
111
  });
55
112
  });
113
+ describe('calculateCostForNTokens using getCollateralPrice', () => {
114
+ it('should calculate the correct cost for 1e6 tokens', () => {
115
+ const nAmount = BigInt(1e12);
116
+ const curvePosition = BigInt(0);
117
+ const expectedCost = curve.getCollateralPrice({
118
+ curvePosition,
119
+ tokenDecimalsNr: decimalsNr,
120
+ collateralDecimalsNr,
121
+ marketCapDecimalsNr,
122
+ marketCapThreshold,
123
+ tokensAmount: nAmount,
124
+ totalSupply,
125
+ });
126
+ expect(expectedCost).toBe(BigInt(1001));
127
+ });
128
+ });
56
129
  });
57
130
  //# sourceMappingURL=LinearCurveV1.spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinearCurveV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/LinearCurveV1.spec.ts"],"names":[],"mappings":";;AACA,oDAAiD;AAEjD,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,IAAI,KAAoB,CAAC;IACzB,MAAM,WAAW,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,CAAC,CAAC;IACrB,MAAM,kBAAkB,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IACzC,MAAM,mBAAmB,GAAG,CAAC,CAAC;IAC9B,MAAM,oBAAoB,GAAG,CAAC,CAAC;IAC/B,MAAM,YAAY,GAAG,CAAC,CAAC;IAEvB,IAAI,KAAgB,CAAC;IACrB,IAAI,KAAgB,CAAC;IAErB,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,GAAG,IAAI,6BAAa,EAAE,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;YAC9C,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;YAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEpC,KAAK,GAAG,KAAK,CAAC,QAAQ,CACpB,KAAK,EACL,WAAW,EACX,UAAU,EACV,kBAAkB,EAClB,mBAAmB,CACpB,CAAC;YACF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;YAChD,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;QACvC,EAAE,CAAC,kDAAkD,EAAE,GAAG,EAAE;YAC1D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;YAC7B,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YAChC,MAAM,YAAY,GAAG,KAAK,CAAC,uBAAuB,CAAC;gBACjD,KAAK;gBACL,KAAK;gBACL,OAAO;gBACP,aAAa;gBACb,UAAU;gBACV,oBAAoB;aACrB,CAAC,CAAC;YACH,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,EAAE,CAAC,oEAAoE,EAAE,GAAG,EAAE;YAC5E,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAC3C,KAAK,EACL,KAAK,EACL,eAAe,EACf,UAAU,EACV,YAAY,CACb,CAAC;YACF,MAAM,CAAC,eAAe,CAAC,CAAC,WAAW,EAAE,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,cAAc,EAAE,GAAG,EAAE;QAC5B,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YACvC,MAAM,YAAY,GAAG,KAAK,CAAC,YAAY,CACrC,WAAW,EACX,UAAU,EACV,eAAe,CAChB,CAAC;YACF,MAAM,CAAC,YAAY,CAAC,CAAC,WAAW,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"LinearCurveV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/LinearCurveV1.spec.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import BigNumber from 'bignumber.js';
2
- import { CurveType, DefaultCurrencies } from '../constants';
2
+ import { CurveType, DefaultCurrencies, TradeDirection } from '../constants';
3
3
  export declare type CurveDefaults = {
4
4
  tokenDecimals: number;
5
5
  type: CurveType;
@@ -26,3 +26,30 @@ export interface CalculatePriceOptions {
26
26
  decimalsNr: number;
27
27
  collateralDecimalsNr: number;
28
28
  }
29
+ export interface CalculateTokensOptions {
30
+ coefA: BigNumber;
31
+ coefB: BigNumber;
32
+ collateralAmount: bigint;
33
+ curvePosition: bigint;
34
+ decimalsNr: number;
35
+ collateralDecimalsNr: number;
36
+ tradeDirection?: TradeDirection;
37
+ }
38
+ export interface GetCollateralPriceOptions {
39
+ collateralDecimalsNr: number;
40
+ tokenDecimalsNr: number;
41
+ marketCapDecimalsNr: number;
42
+ totalSupply: bigint;
43
+ marketCapThreshold: bigint;
44
+ tokensAmount: bigint;
45
+ curvePosition: bigint;
46
+ }
47
+ export interface GetTokensNrFromCollateralOptions {
48
+ collateralAmount: bigint;
49
+ collateralDecimalsNr: number;
50
+ tokenDecimalsNr: number;
51
+ marketCapDecimalsNr: number;
52
+ totalSupply: bigint;
53
+ marketCapThreshold: bigint;
54
+ curvePosition: bigint;
55
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domain/curves/types.ts"],"names":[],"mappings":";;;AACA,4CAA4D;AAa5D,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,qDAAO,CAAA;AACT,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B;AAED,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;AACf,CAAC,EAFW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAE5B;AAEM,MAAM,kBAAkB,GAAG,CAChC,QAA2B,EACT,EAAE;IACpB,QAAQ,QAAQ,EAAE;QAChB,KAAK,6BAAiB,CAAC,GAAG;YACxB,OAAO,gBAAgB,CAAC,GAAG,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;KACtD;AACH,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,MAAM,mBAAmB,GAAG,CACjC,SAAoB,EACD,EAAE;IACrB,QAAQ,SAAS,EAAE;QACjB,KAAK,qBAAS,CAAC,SAAS;YACtB,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;KACvD;AACH,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domain/curves/types.ts"],"names":[],"mappings":";;;AACA,4CAA4E;AAa5E,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,qDAAO,CAAA;AACT,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B;AAED,IAAY,iBAEX;AAFD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;AACf,CAAC,EAFW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAE5B;AAEM,MAAM,kBAAkB,GAAG,CAChC,QAA2B,EACT,EAAE;IACpB,QAAQ,QAAQ,EAAE;QAChB,KAAK,6BAAiB,CAAC,GAAG;YACxB,OAAO,gBAAgB,CAAC,GAAG,CAAC;QAC9B;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,QAAQ,EAAE,CAAC,CAAC;KACtD;AACH,CAAC,CAAC;AATW,QAAA,kBAAkB,sBAS7B;AAEK,MAAM,mBAAmB,GAAG,CACjC,SAAoB,EACD,EAAE;IACrB,QAAQ,SAAS,EAAE;QACjB,KAAK,qBAAS,CAAC,SAAS;YACtB,OAAO,iBAAiB,CAAC,SAAS,CAAC;QACrC;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;KACvD;AACH,CAAC,CAAC;AATW,QAAA,mBAAmB,uBAS9B"}
@@ -0,0 +1,5 @@
1
+ import { BaseTx } from './BaseTx.entity';
2
+ import { Trade } from './Trade.entity';
3
+ export declare class BaseTradeTx extends BaseTx {
4
+ trade: Trade;
5
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseTradeTx = void 0;
4
+ const BaseTx_entity_1 = require("./BaseTx.entity");
5
+ class BaseTradeTx extends BaseTx_entity_1.BaseTx {
6
+ }
7
+ exports.BaseTradeTx = BaseTradeTx;
8
+ //# sourceMappingURL=BaseTradeTx.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTradeTx.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/BaseTradeTx.entity.ts"],"names":[],"mappings":";;;AAAA,mDAAyC;AAGzC,MAAa,WAAY,SAAQ,sBAAM;CAEtC;AAFD,kCAEC"}
@@ -0,0 +1,18 @@
1
+ import { Entity } from '../../entity';
2
+ import { TxStatus, TxType } from '../../../constants';
3
+ import { StatusAudit } from './StatusAudit.entity';
4
+ import { Trade } from './Trade.entity';
5
+ import { Block } from './Block.entity';
6
+ export declare class BaseTx extends Entity {
7
+ txType: TxType;
8
+ signature: string;
9
+ creatorPK: string;
10
+ blockchain: string;
11
+ token: string;
12
+ status: TxStatus;
13
+ statusAudits: StatusAudit[];
14
+ trade: Trade | null;
15
+ block: Block | null;
16
+ error?: string;
17
+ sessionHash?: string;
18
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BaseTx = void 0;
4
+ const entity_1 = require("../../entity");
5
+ class BaseTx extends entity_1.Entity {
6
+ }
7
+ exports.BaseTx = BaseTx;
8
+ //# sourceMappingURL=BaseTx.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTx.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/BaseTx.entity.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAOtC,MAAa,MAAO,SAAQ,eAAM;CAsBjC;AAtBD,wBAsBC"}
@@ -0,0 +1,5 @@
1
+ export declare class Block {
2
+ number: number;
3
+ slot?: number;
4
+ timestamp?: number;
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Block = void 0;
4
+ class Block {
5
+ }
6
+ exports.Block = Block;
7
+ //# sourceMappingURL=Block.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Block.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/Block.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,KAAK;CAMjB;AAND,sBAMC"}
@@ -0,0 +1,4 @@
1
+ import { Entity } from '../../entity';
2
+ export declare class BlockResponse extends Entity {
3
+ blockNumber: number;
4
+ }
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BlockResponse = void 0;
4
+ const entity_1 = require("../../entity");
5
+ class BlockResponse extends entity_1.Entity {
6
+ }
7
+ exports.BlockResponse = BlockResponse;
8
+ //# sourceMappingURL=BlockResponse.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BlockResponse.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/BlockResponse.entity.ts"],"names":[],"mappings":";;;AAAA,yCAAsC;AAEtC,MAAa,aAAc,SAAQ,eAAM;CAExC;AAFD,sCAEC"}
@@ -0,0 +1,5 @@
1
+ import { TxStatus } from '../../../constants';
2
+ export declare class StatusAudit {
3
+ status: TxStatus;
4
+ createdAt: string;
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusAudit = void 0;
4
+ class StatusAudit {
5
+ }
6
+ exports.StatusAudit = StatusAudit;
7
+ //# sourceMappingURL=StatusAudit.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusAudit.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/StatusAudit.entity.ts"],"names":[],"mappings":";;;AAEA,MAAa,WAAW;CAIvB;AAJD,kCAIC"}
@@ -0,0 +1,11 @@
1
+ import { TradeDirection } from '../../../constants';
2
+ export declare class Trade {
3
+ expectedTokenAmount: string;
4
+ expectedCollateralAmount: string;
5
+ tokenAmount: string;
6
+ baseAmount: string;
7
+ slippageBps: number;
8
+ feeCollateralTotalAmount: string;
9
+ baseCurrency: string;
10
+ direction: TradeDirection;
11
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Trade = void 0;
4
+ class Trade {
5
+ }
6
+ exports.Trade = Trade;
7
+ //# sourceMappingURL=Trade.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Trade.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/Trade.entity.ts"],"names":[],"mappings":";;;AAEA,MAAa,KAAK;CAgBjB;AAhBD,sBAgBC"}
@@ -0,0 +1,5 @@
1
+ import { TxStatus } from '../../../constants';
2
+ export declare class TxStatusResponse {
3
+ status: TxStatus;
4
+ statusToken: string;
5
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TxStatusResponse = void 0;
4
+ class TxStatusResponse {
5
+ }
6
+ exports.TxStatusResponse = TxStatusResponse;
7
+ //# sourceMappingURL=TxStatusResponse.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxStatusResponse.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/TxStatusResponse.entity.ts"],"names":[],"mappings":";;;AAEA,MAAa,gBAAgB;CAI5B;AAJD,4CAIC"}
@@ -0,0 +1,4 @@
1
+ export declare class TxStatusToken {
2
+ txId: string;
3
+ transactionSignature: string;
4
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TxStatusToken = void 0;
4
+ class TxStatusToken {
5
+ }
6
+ exports.TxStatusToken = TxStatusToken;
7
+ //# sourceMappingURL=TxStatusToken.entity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TxStatusToken.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/TxStatusToken.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,aAAa;CAIzB;AAJD,sCAIC"}
@@ -0,0 +1,8 @@
1
+ export * from './BaseTradeTx.entity';
2
+ export * from './BaseTx.entity';
3
+ export * from './Block.entity';
4
+ export * from './StatusAudit.entity';
5
+ export * from './Trade.entity';
6
+ export * from './TxStatusResponse.entity';
7
+ export * from './TxStatusToken.entity';
8
+ export * from './BlockResponse.entity';
@@ -0,0 +1,25 @@
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("./BaseTradeTx.entity"), exports);
18
+ __exportStar(require("./BaseTx.entity"), exports);
19
+ __exportStar(require("./Block.entity"), exports);
20
+ __exportStar(require("./StatusAudit.entity"), exports);
21
+ __exportStar(require("./Trade.entity"), exports);
22
+ __exportStar(require("./TxStatusResponse.entity"), exports);
23
+ __exportStar(require("./TxStatusToken.entity"), exports);
24
+ __exportStar(require("./BlockResponse.entity"), exports);
25
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/base-tx/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,kDAAgC;AAChC,iDAA+B;AAC/B,uDAAqC;AACrC,iDAA+B;AAC/B,4DAA0C;AAC1C,yDAAuC;AACvC,yDAAuC"}
@@ -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/base-tx/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,6CAA2B"}
@@ -1,5 +1,3 @@
1
- export declare class BuyTxPrepareDto {
2
- creatorPK: string;
3
- amount: string;
4
- slippageBps: number;
1
+ import { BaseTxPrepareDto } from '../../../tx/prepare';
2
+ export declare class BuyTxPrepareDto extends BaseTxPrepareDto {
5
3
  }