@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.
- package/dist/src/domain/constants/blockchain.d.ts +0 -1
- package/dist/src/domain/constants/blockchain.js +1 -2
- package/dist/src/domain/constants/blockchain.js.map +1 -1
- package/dist/src/domain/curves/BaseCurve.d.ts +4 -1
- package/dist/src/domain/curves/BaseCurve.js +32 -0
- package/dist/src/domain/curves/BaseCurve.js.map +1 -1
- package/dist/src/domain/curves/LinearCurveV1.d.ts +2 -1
- package/dist/src/domain/curves/LinearCurveV1.js +30 -0
- package/dist/src/domain/curves/LinearCurveV1.js.map +1 -1
- package/dist/src/domain/curves/tests/LinearCurveV1.spec.js +76 -3
- package/dist/src/domain/curves/tests/LinearCurveV1.spec.js.map +1 -1
- package/dist/src/domain/curves/types.d.ts +28 -1
- package/dist/src/domain/curves/types.js.map +1 -1
- package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.d.ts +5 -0
- package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.js +8 -0
- package/dist/src/domain/model/base-tx/entities/BaseTradeTx.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/BaseTx.entity.d.ts +18 -0
- package/dist/src/domain/model/base-tx/entities/BaseTx.entity.js +8 -0
- package/dist/src/domain/model/base-tx/entities/BaseTx.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/Block.entity.d.ts +5 -0
- package/dist/src/domain/model/base-tx/entities/Block.entity.js +7 -0
- package/dist/src/domain/model/base-tx/entities/Block.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.d.ts +4 -0
- package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.js +8 -0
- package/dist/src/domain/model/base-tx/entities/BlockResponse.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.d.ts +5 -0
- package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.js +7 -0
- package/dist/src/domain/model/base-tx/entities/StatusAudit.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/Trade.entity.d.ts +11 -0
- package/dist/src/domain/model/base-tx/entities/Trade.entity.js +7 -0
- package/dist/src/domain/model/base-tx/entities/Trade.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.d.ts +5 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.js +7 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusResponse.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.d.ts +4 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.js +7 -0
- package/dist/src/domain/model/base-tx/entities/TxStatusToken.entity.js.map +1 -0
- package/dist/src/domain/model/base-tx/entities/index.d.ts +8 -0
- package/dist/src/domain/model/base-tx/entities/index.js +25 -0
- package/dist/src/domain/model/base-tx/entities/index.js.map +1 -0
- package/dist/src/domain/model/base-tx/index.d.ts +1 -0
- package/dist/src/domain/model/base-tx/index.js +18 -0
- package/dist/src/domain/model/base-tx/index.js.map +1 -0
- package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.d.ts +2 -4
- package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.js +2 -27
- package/dist/src/domain/model/buy/prepare/dtos/BuyTxPrepare.dto.js.map +1 -1
- package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.d.ts +2 -4
- package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.js +2 -2
- package/dist/src/domain/model/buy/prepare/entities/BuyTxPrepareResponse.entity.js.map +1 -1
- package/dist/src/domain/model/buy/submit/entities/BuyTxSubmitResponse.entity.js.map +1 -1
- package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.d.ts +4 -0
- package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.js +8 -0
- package/dist/src/domain/model/curve/entities/CurvePositionResponse.entity.js.map +1 -0
- package/dist/src/domain/model/curve/entities/index.d.ts +1 -0
- package/dist/src/domain/model/curve/entities/index.js +1 -0
- package/dist/src/domain/model/curve/entities/index.js.map +1 -1
- package/dist/src/domain/model/index.d.ts +4 -2
- package/dist/src/domain/model/index.js +4 -2
- package/dist/src/domain/model/index.js.map +1 -1
- package/dist/src/domain/model/mint/submit/entities/MintTxSubmitResponse.entity.d.ts +1 -0
- package/dist/src/domain/model/mint/submit/entities/MintTxSubmitResponse.entity.js.map +1 -1
- package/dist/src/domain/model/sell/index.d.ts +2 -0
- package/dist/src/domain/model/sell/index.js +19 -0
- package/dist/src/domain/model/sell/index.js.map +1 -0
- package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.d.ts +3 -0
- package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.js +8 -0
- package/dist/src/domain/model/sell/prepare/dtos/SellTxPrepare.dto.js.map +1 -0
- package/dist/src/domain/model/sell/prepare/dtos/index.d.ts +1 -0
- package/dist/src/domain/model/sell/prepare/dtos/index.js +18 -0
- package/dist/src/domain/model/sell/prepare/dtos/index.js.map +1 -0
- package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.d.ts +5 -0
- package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.js +8 -0
- package/dist/src/domain/model/sell/prepare/entities/SellTxPrepareResponse.entity.js.map +1 -0
- package/dist/src/domain/model/sell/prepare/entities/index.d.ts +1 -0
- package/dist/src/domain/model/sell/prepare/entities/index.js +18 -0
- package/dist/src/domain/model/sell/prepare/entities/index.js.map +1 -0
- package/dist/src/domain/model/sell/prepare/index.d.ts +2 -0
- package/dist/src/domain/model/sell/prepare/index.js +19 -0
- package/dist/src/domain/model/sell/prepare/index.js.map +1 -0
- package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.d.ts +3 -0
- package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.js +8 -0
- package/dist/src/domain/model/sell/submit/dtos/SellTxSubmit.dto.js.map +1 -0
- package/dist/src/domain/model/sell/submit/dtos/index.d.ts +1 -0
- package/dist/src/domain/model/sell/submit/dtos/index.js +18 -0
- package/dist/src/domain/model/sell/submit/dtos/index.js.map +1 -0
- package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.d.ts +3 -0
- package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.js +8 -0
- package/dist/src/domain/model/sell/submit/entities/SellTxSubmitResponse.entity.js.map +1 -0
- package/dist/src/domain/model/sell/submit/entities/index.d.ts +1 -0
- package/dist/src/domain/model/sell/submit/entities/index.js +18 -0
- package/dist/src/domain/model/sell/submit/entities/index.js.map +1 -0
- package/dist/src/domain/model/sell/submit/index.d.ts +2 -0
- package/dist/src/domain/model/sell/submit/index.js +19 -0
- package/dist/src/domain/model/sell/submit/index.js.map +1 -0
- package/dist/src/domain/model/token-pair/constants.d.ts +2 -1
- package/dist/src/domain/model/token-pair/constants.js +1 -0
- package/dist/src/domain/model/token-pair/constants.js.map +1 -1
- package/dist/src/domain/model/tx/index.d.ts +1 -0
- package/dist/src/domain/model/tx/index.js +1 -0
- package/dist/src/domain/model/tx/index.js.map +1 -1
- package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.d.ts +5 -0
- package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js +33 -0
- package/dist/src/domain/model/tx/prepare/dtos/BaseTxPrepare.dto.js.map +1 -0
- package/dist/src/domain/model/tx/prepare/dtos/index.d.ts +1 -0
- package/dist/src/domain/model/tx/prepare/dtos/index.js +18 -0
- package/dist/src/domain/model/tx/prepare/dtos/index.js.map +1 -0
- package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.d.ts +5 -0
- package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.js +8 -0
- package/dist/src/domain/model/tx/prepare/entities/BaseTxPrepareResponse.entity.js.map +1 -0
- package/dist/src/domain/model/tx/prepare/entities/index.d.ts +1 -0
- package/dist/src/domain/model/tx/prepare/entities/index.js +18 -0
- package/dist/src/domain/model/tx/prepare/entities/index.js.map +1 -0
- package/dist/src/domain/model/tx/prepare/index.d.ts +2 -0
- package/dist/src/domain/model/tx/prepare/index.js +19 -0
- package/dist/src/domain/model/tx/prepare/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
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
|
|
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":";;;
|
|
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":";;;;;;AAAA,gEAAqC;AACrC,
|
|
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
|
|
9
|
-
const
|
|
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,
|
|
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;
|
|
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,
|
|
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,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 @@
|
|
|
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 @@
|
|
|
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,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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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"}
|