@heliofi/launchpad-common 1.1.7 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/src/domain/constants/ProtocolVersion.d.ts +1 -2
- package/dist/src/domain/constants/ProtocolVersion.js +0 -1
- package/dist/src/domain/constants/ProtocolVersion.js.map +1 -1
- package/dist/src/domain/constants/blockchain.d.ts +2 -1
- package/dist/src/domain/constants/blockchain.js +2 -0
- package/dist/src/domain/constants/blockchain.js.map +1 -1
- package/dist/src/domain/constants/chainId.d.ts +5 -1
- package/dist/src/domain/constants/chainId.js +4 -0
- package/dist/src/domain/constants/chainId.js.map +1 -1
- package/dist/src/domain/constants/curveType.d.ts +1 -3
- package/dist/src/domain/constants/curveType.js +1 -3
- package/dist/src/domain/constants/curveType.js.map +1 -1
- package/dist/src/domain/constants/migrationDex.js +2 -0
- package/dist/src/domain/constants/migrationDex.js.map +1 -1
- package/dist/src/domain/curves/AbstractCurve.d.ts +1 -2
- package/dist/src/domain/curves/AbstractCurve.js.map +1 -1
- package/dist/src/domain/curves/BaseConstantProductCurveV1.d.ts +18 -4
- package/dist/src/domain/curves/BaseConstantProductCurveV1.js +101 -12
- package/dist/src/domain/curves/BaseConstantProductCurveV1.js.map +1 -1
- package/dist/src/domain/curves/ConstantProductCurveV1.d.ts +20 -3
- package/dist/src/domain/curves/ConstantProductCurveV1.js +122 -11
- package/dist/src/domain/curves/ConstantProductCurveV1.js.map +1 -1
- package/dist/src/domain/curves/EvmConstantProductCurveV1.d.ts +23 -0
- package/dist/src/domain/curves/EvmConstantProductCurveV1.js +141 -0
- package/dist/src/domain/curves/EvmConstantProductCurveV1.js.map +1 -0
- package/dist/src/domain/curves/getCurve.js +3 -3
- package/dist/src/domain/curves/getCurve.js.map +1 -1
- package/dist/src/domain/curves/index.d.ts +1 -6
- package/dist/src/domain/curves/index.js +1 -6
- package/dist/src/domain/curves/index.js.map +1 -1
- package/dist/src/domain/curves/tests/BaseConstantProductCurveV1.spec.js +0 -29
- package/dist/src/domain/curves/tests/BaseConstantProductCurveV1.spec.js.map +1 -1
- package/dist/src/domain/curves/tests/EvmConstantProductCurveV1.spec.d.ts +1 -0
- package/dist/src/domain/curves/tests/EvmConstantProductCurveV1.spec.js +56 -0
- package/dist/src/domain/curves/tests/EvmConstantProductCurveV1.spec.js.map +1 -0
- package/dist/src/domain/curves/types.d.ts +1 -3
- package/dist/src/domain/curves/types.js +0 -6
- package/dist/src/domain/curves/types.js.map +1 -1
- package/dist/src/domain/model/curve/dtos/CreateCurve.dto.d.ts +0 -2
- package/dist/src/domain/model/curve/dtos/CreateCurve.dto.js +0 -9
- package/dist/src/domain/model/curve/dtos/CreateCurve.dto.js.map +1 -1
- package/dist/src/domain/model/curve/entities/Curve.entity.d.ts +0 -2
- package/dist/src/domain/model/curve/entities/Curve.entity.js.map +1 -1
- package/dist/src/domain/model/index.d.ts +1 -0
- package/dist/src/domain/model/index.js +1 -0
- package/dist/src/domain/model/index.js.map +1 -1
- package/dist/src/domain/model/mint/create/dtos/CreateMint.dto.d.ts +1 -4
- package/dist/src/domain/model/mint/create/dtos/CreateMint.dto.js +0 -15
- package/dist/src/domain/model/mint/create/dtos/CreateMint.dto.js.map +1 -1
- package/dist/src/domain/model/mint-addresses/dtos/AddMintAddresses.dto.d.ts +5 -0
- package/dist/src/domain/model/mint-addresses/dtos/AddMintAddresses.dto.js +29 -0
- package/dist/src/domain/model/mint-addresses/dtos/AddMintAddresses.dto.js.map +1 -0
- package/dist/src/domain/model/mint-addresses/dtos/index.d.ts +1 -0
- package/dist/src/domain/model/mint-addresses/dtos/index.js +18 -0
- package/dist/src/domain/model/mint-addresses/dtos/index.js.map +1 -0
- package/dist/src/domain/model/mint-addresses/entities/AddMintAddressesResponse.entity.d.ts +3 -0
- package/dist/src/domain/model/mint-addresses/entities/AddMintAddressesResponse.entity.js +7 -0
- package/dist/src/domain/model/mint-addresses/entities/AddMintAddressesResponse.entity.js.map +1 -0
- package/dist/src/domain/model/mint-addresses/entities/index.d.ts +1 -0
- package/dist/src/domain/model/mint-addresses/entities/index.js +18 -0
- package/dist/src/domain/model/mint-addresses/entities/index.js.map +1 -0
- package/dist/src/domain/model/mint-addresses/index.d.ts +2 -0
- package/dist/src/domain/model/mint-addresses/index.js +19 -0
- package/dist/src/domain/model/mint-addresses/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.EvmConstantProductCurveV1 = void 0;
|
|
7
|
+
const bigNumber_1 = __importDefault(require("../../config/bigNumber"));
|
|
8
|
+
const AbstractCurve_1 = require("./AbstractCurve");
|
|
9
|
+
const constants_1 = require("../constants");
|
|
10
|
+
const services_1 = require("../services");
|
|
11
|
+
class EvmConstantProductCurveV1 extends AbstractCurve_1.AbstractCurve {
|
|
12
|
+
constructor() {
|
|
13
|
+
super(...arguments);
|
|
14
|
+
this.initialVirtualTokenReserves = BigInt(1.06 * 1e27);
|
|
15
|
+
this.initialVirtualCollateralReserves = BigInt(1.6 * 1e18);
|
|
16
|
+
this.collateralDecimals = 18;
|
|
17
|
+
this.constantProduct = this.initialVirtualTokenReserves * this.initialVirtualCollateralReserves;
|
|
18
|
+
this.dynamicThreshold = 80;
|
|
19
|
+
this.maxThreshold = 82;
|
|
20
|
+
this.marketCapToMinimalTokens = new Map([
|
|
21
|
+
[BigInt(30 * 1e18), BigInt(80 * 1e18)],
|
|
22
|
+
]);
|
|
23
|
+
this.curveDefaults = {
|
|
24
|
+
type: constants_1.CurveType.EVM_CONSTANT_PRODUCT_V1,
|
|
25
|
+
totalSupply: BigInt(1e27),
|
|
26
|
+
tokenDecimals: 18,
|
|
27
|
+
minAllocationTokenAmount: (BigInt(1e27) * BigInt(this.dynamicThreshold)) / 100n,
|
|
28
|
+
maxAllocationTokenAmount: (BigInt(1e27) * BigInt(this.maxThreshold)) / 100n,
|
|
29
|
+
address: '0x0000000000000000000000000000000000000000',
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
getTokensAmountFromCollateral(options) {
|
|
33
|
+
const { amount, curvePosition, tradeDirection, platformFeeBps } = options;
|
|
34
|
+
if (tradeDirection === 'BUY') {
|
|
35
|
+
const collateralAmount = amount - (amount * BigInt(platformFeeBps)) / 10000n;
|
|
36
|
+
return this.buyInCollateral(collateralAmount, curvePosition);
|
|
37
|
+
}
|
|
38
|
+
const collateralAmount = amount + (amount * BigInt(platformFeeBps)) / 10000n;
|
|
39
|
+
return this.sellInCollateral(collateralAmount, curvePosition);
|
|
40
|
+
}
|
|
41
|
+
getCollateralAmountFromTokens(options) {
|
|
42
|
+
const { amount, curvePosition, tradeDirection, platformFeeBps } = options;
|
|
43
|
+
if (tradeDirection === 'BUY') {
|
|
44
|
+
const collateralAmount = this.buyInToken(amount, curvePosition);
|
|
45
|
+
return (collateralAmount + (collateralAmount * BigInt(platformFeeBps)) / 10000n);
|
|
46
|
+
}
|
|
47
|
+
const collateralAmount = this.sellInToken(amount, curvePosition);
|
|
48
|
+
return (collateralAmount - (collateralAmount * BigInt(platformFeeBps)) / 10000n);
|
|
49
|
+
}
|
|
50
|
+
getCollateralPrice(options) {
|
|
51
|
+
const { curvePosition, collateralDecimals } = options;
|
|
52
|
+
const finalCollateralDecimals = collateralDecimals ?? this.collateralDecimals;
|
|
53
|
+
const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
|
|
54
|
+
const baseCollateral = BigInt(10 ** finalCollateralDecimals);
|
|
55
|
+
const price = new bigNumber_1.default(currentVirtualCollateralReserves.toString()).div(new bigNumber_1.default(currentVirtualTokenReserves.toString()));
|
|
56
|
+
const inBaseUnits = price.multipliedBy(new bigNumber_1.default(baseCollateral.toString()));
|
|
57
|
+
return inBaseUnits;
|
|
58
|
+
}
|
|
59
|
+
getMarketCap(options) {
|
|
60
|
+
try {
|
|
61
|
+
const { curvePosition, tokenDecimals, collateralDecimals } = options;
|
|
62
|
+
const base = new bigNumber_1.default(10);
|
|
63
|
+
const baseTokens = base.pow(tokenDecimals ?? this.curveDefaults.tokenDecimals);
|
|
64
|
+
const curvePositionDecimal = new bigNumber_1.default(curvePosition.toString());
|
|
65
|
+
const price = this.getCollateralPrice({
|
|
66
|
+
curvePosition,
|
|
67
|
+
collateralDecimals,
|
|
68
|
+
});
|
|
69
|
+
const cap = price
|
|
70
|
+
.multipliedBy(curvePositionDecimal)
|
|
71
|
+
.dividedBy(baseTokens);
|
|
72
|
+
return BigInt(cap.integerValue(bigNumber_1.default.ROUND_FLOOR).toString());
|
|
73
|
+
}
|
|
74
|
+
catch (error) {
|
|
75
|
+
throw new Error(`Calculation error: ${error}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
getDynamicThresholdFromMarketCap(marketCapThreshold) {
|
|
79
|
+
const baseTokens = BigInt(10 ** this.curveDefaults.tokenDecimals);
|
|
80
|
+
let low = 300000000n * baseTokens;
|
|
81
|
+
let high = 1000000000n * baseTokens;
|
|
82
|
+
let mid;
|
|
83
|
+
while (low < high) {
|
|
84
|
+
mid = (low + high + 1n) / 2n;
|
|
85
|
+
const marketCap = this.getMarketCap({ curvePosition: mid });
|
|
86
|
+
if (marketCap === marketCapThreshold) {
|
|
87
|
+
low = mid;
|
|
88
|
+
break;
|
|
89
|
+
}
|
|
90
|
+
else if (marketCap < marketCapThreshold) {
|
|
91
|
+
low = mid;
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
high = mid - 1n;
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
while (this.getMarketCap({ curvePosition: low }) >= marketCapThreshold &&
|
|
98
|
+
low > 0n) {
|
|
99
|
+
low -= 1n;
|
|
100
|
+
}
|
|
101
|
+
return low + 1n;
|
|
102
|
+
}
|
|
103
|
+
buyInToken(tokenAmount, curvePosition) {
|
|
104
|
+
const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
|
|
105
|
+
const newTokenReserves = currentVirtualTokenReserves - tokenAmount;
|
|
106
|
+
const ratio = this.constantProduct / newTokenReserves;
|
|
107
|
+
const lamportsToSpend = ratio - currentVirtualCollateralReserves;
|
|
108
|
+
return lamportsToSpend;
|
|
109
|
+
}
|
|
110
|
+
buyInCollateral(collateralAmount, curvePosition) {
|
|
111
|
+
const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
|
|
112
|
+
const newCollateralReserves = currentVirtualCollateralReserves + collateralAmount;
|
|
113
|
+
const ratio = this.constantProduct / newCollateralReserves;
|
|
114
|
+
const tokensToBuy = currentVirtualTokenReserves - ratio;
|
|
115
|
+
return tokensToBuy;
|
|
116
|
+
}
|
|
117
|
+
sellInToken(tokenAmount, curvePosition) {
|
|
118
|
+
const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
|
|
119
|
+
const newTokenReserves = currentVirtualTokenReserves + tokenAmount;
|
|
120
|
+
const ratio = this.constantProduct / newTokenReserves;
|
|
121
|
+
const lamportsToReceive = currentVirtualCollateralReserves - ratio;
|
|
122
|
+
return lamportsToReceive;
|
|
123
|
+
}
|
|
124
|
+
sellInCollateral(collateralAmount, curvePosition) {
|
|
125
|
+
const [currentVirtualTokenReserves, currentVirtualCollateralReserves] = this.getCurrentReserves(curvePosition);
|
|
126
|
+
const newCollateralReserves = currentVirtualCollateralReserves - collateralAmount;
|
|
127
|
+
const ratio = this.constantProduct / newCollateralReserves;
|
|
128
|
+
const tokensToSell = ratio - currentVirtualTokenReserves;
|
|
129
|
+
return tokensToSell;
|
|
130
|
+
}
|
|
131
|
+
getCurrentReserves(curvePosition) {
|
|
132
|
+
const currentVirtualTokenReserves = this.initialVirtualTokenReserves - curvePosition;
|
|
133
|
+
const currentVirtualCollateralReserves = (0, bigNumber_1.default)(this.constantProduct.toString()).div((0, bigNumber_1.default)(currentVirtualTokenReserves.toString()));
|
|
134
|
+
return [
|
|
135
|
+
currentVirtualTokenReserves,
|
|
136
|
+
services_1.AmountService.decimalToBigInt(currentVirtualCollateralReserves),
|
|
137
|
+
];
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
exports.EvmConstantProductCurveV1 = EvmConstantProductCurveV1;
|
|
141
|
+
//# sourceMappingURL=EvmConstantProductCurveV1.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmConstantProductCurveV1.js","sourceRoot":"","sources":["../../../../src/domain/curves/EvmConstantProductCurveV1.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ exports.getCurve = void 0;
|
|
|
4
4
|
const constants_1 = require("../constants");
|
|
5
5
|
const ConstantProductCurveV1_1 = require("./ConstantProductCurveV1");
|
|
6
6
|
const LinearCurveV1_1 = require("./LinearCurveV1");
|
|
7
|
-
const
|
|
7
|
+
const EvmConstantProductCurveV1_1 = require("./EvmConstantProductCurveV1");
|
|
8
8
|
const getCurve = (curveType) => {
|
|
9
9
|
if (curveType === constants_1.CurveType.LINEAR_V1) {
|
|
10
10
|
return new LinearCurveV1_1.LinearCurveV1();
|
|
@@ -12,8 +12,8 @@ const getCurve = (curveType) => {
|
|
|
12
12
|
if (curveType === constants_1.CurveType.CONSTANT_PRODUCT_V1) {
|
|
13
13
|
return new ConstantProductCurveV1_1.ConstantProductCurveV1();
|
|
14
14
|
}
|
|
15
|
-
if (curveType === constants_1.CurveType.
|
|
16
|
-
return new
|
|
15
|
+
if (curveType === constants_1.CurveType.EVM_CONSTANT_PRODUCT_V1) {
|
|
16
|
+
return new EvmConstantProductCurveV1_1.EvmConstantProductCurveV1();
|
|
17
17
|
}
|
|
18
18
|
throw new Error('Curve type not supported');
|
|
19
19
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/getCurve.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAEzC,qEAAkE;AAElE,mDAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"getCurve.js","sourceRoot":"","sources":["../../../../src/domain/curves/getCurve.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AAEzC,qEAAkE;AAElE,mDAAgD;AAChD,2EAAwE;AAEjE,MAAM,QAAQ,GAAG,CAAC,SAAoB,EAA6B,EAAE;IAC1E,IAAI,SAAS,KAAK,qBAAS,CAAC,SAAS,EAAE;QACrC,OAAO,IAAI,6BAAa,EAAE,CAAC;KAC5B;IAED,IAAI,SAAS,KAAK,qBAAS,CAAC,mBAAmB,EAAE;QAC/C,OAAO,IAAI,+CAAsB,EAAE,CAAC;KACrC;IAED,IAAI,SAAS,KAAK,qBAAS,CAAC,uBAAuB,EAAE;QACnD,OAAO,IAAI,qDAAyB,EAAE,CAAC;KACxC;IAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;AAC9C,CAAC,CAAC;AAdW,QAAA,QAAQ,YAcnB"}
|
|
@@ -3,10 +3,5 @@ export * from './LinearCurveV1';
|
|
|
3
3
|
export * from './types';
|
|
4
4
|
export * from './getCurve';
|
|
5
5
|
export * from './AbstractCurve';
|
|
6
|
-
export * from './ConstantProductCurve';
|
|
7
6
|
export * from './ConstantProductCurveV1';
|
|
8
|
-
export * from './
|
|
9
|
-
export * from './ConstantProductCurveV2';
|
|
10
|
-
export * from './utils';
|
|
11
|
-
export * from './typeUtils';
|
|
12
|
-
export * from './FlatCurveV1';
|
|
7
|
+
export * from './EvmConstantProductCurveV1';
|
|
@@ -19,11 +19,6 @@ __exportStar(require("./LinearCurveV1"), exports);
|
|
|
19
19
|
__exportStar(require("./types"), exports);
|
|
20
20
|
__exportStar(require("./getCurve"), exports);
|
|
21
21
|
__exportStar(require("./AbstractCurve"), exports);
|
|
22
|
-
__exportStar(require("./ConstantProductCurve"), exports);
|
|
23
22
|
__exportStar(require("./ConstantProductCurveV1"), exports);
|
|
24
|
-
__exportStar(require("./
|
|
25
|
-
__exportStar(require("./ConstantProductCurveV2"), exports);
|
|
26
|
-
__exportStar(require("./utils"), exports);
|
|
27
|
-
__exportStar(require("./typeUtils"), exports);
|
|
28
|
-
__exportStar(require("./FlatCurveV1"), exports);
|
|
23
|
+
__exportStar(require("./EvmConstantProductCurveV1"), exports);
|
|
29
24
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/curves/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,kDAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/domain/curves/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,kDAAgC;AAChC,0CAAwB;AACxB,6CAA2B;AAC3B,kDAAgC;AAChC,2DAAyC;AACzC,8DAA4C"}
|
|
@@ -1,12 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const bigNumber_1 = __importDefault(require("../../../config/bigNumber"));
|
|
7
3
|
const tradeDirection_1 = require("../../constants/tradeDirection");
|
|
8
4
|
const BaseConstantProductCurveV1_1 = require("../BaseConstantProductCurveV1");
|
|
9
|
-
const utils_1 = require("../utils");
|
|
10
5
|
describe('ConstantProductCurveV1', () => {
|
|
11
6
|
let curve;
|
|
12
7
|
const expectedTokensForOneEth = 407692307692307720983826117n;
|
|
@@ -57,29 +52,5 @@ describe('ConstantProductCurveV1', () => {
|
|
|
57
52
|
expect(result).toBe(BigInt(1e18));
|
|
58
53
|
});
|
|
59
54
|
});
|
|
60
|
-
describe('getMarketCap', () => {
|
|
61
|
-
it('should calculate market cap at zero position', () => {
|
|
62
|
-
const params = {
|
|
63
|
-
curvePosition: 0n,
|
|
64
|
-
};
|
|
65
|
-
const result = curve.getMarketCap(params);
|
|
66
|
-
const price = curve.getCollateralPrice({
|
|
67
|
-
curvePosition: 0n,
|
|
68
|
-
collateralDecimals: 18,
|
|
69
|
-
});
|
|
70
|
-
expect(result).toBeGreaterThan(((0, utils_1.bigNumberToBigInt)(price.multipliedBy((0, bigNumber_1.default)(1e9))) * 9999n) /
|
|
71
|
-
10000n);
|
|
72
|
-
expect(result).toBeLessThan(((0, utils_1.bigNumberToBigInt)(price.multipliedBy((0, bigNumber_1.default)(1e27))) * 10001n) /
|
|
73
|
-
10000n);
|
|
74
|
-
});
|
|
75
|
-
it('should calculate market cap at the end of the curve', () => {
|
|
76
|
-
const params = {
|
|
77
|
-
curvePosition: 799538870462404697804703491n,
|
|
78
|
-
};
|
|
79
|
-
const result = curve.getMarketCap(params);
|
|
80
|
-
expect(result).toBeGreaterThan(BigInt(25 * 1e18) * (9999n / 10000n));
|
|
81
|
-
expect(result).toBeLessThan(BigInt(25 * 1e18) * (10001n / 10000n));
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
55
|
});
|
|
85
56
|
//# sourceMappingURL=BaseConstantProductCurveV1.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseConstantProductCurveV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/BaseConstantProductCurveV1.spec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BaseConstantProductCurveV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/BaseConstantProductCurveV1.spec.ts"],"names":[],"mappings":";;AACA,mEAAgE;AAEhE,8EAA2E;AAE3E,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACtC,IAAI,KAAoB,CAAC;IACzB,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,GAAG,IAAI,uDAA0B,EAAE,CAAC;IAC3C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,GAAG;aACnC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,aAAa,EAAE,uBAAuB;gBACtC,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,IAAI;aACpC,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,GAAG;aACnC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,aAAa,EAAE,uBAAuB;gBACtC,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,IAAI;aACpC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tradeDirection_1 = require("../../constants/tradeDirection");
|
|
4
|
+
const EvmConstantProductCurveV1_1 = require("../EvmConstantProductCurveV1");
|
|
5
|
+
describe('EvmConstantProductCurveV1', () => {
|
|
6
|
+
let curve;
|
|
7
|
+
const expectedTokensForOneEth = 407692307692307720983826117n;
|
|
8
|
+
beforeAll(() => {
|
|
9
|
+
curve = new EvmConstantProductCurveV1_1.EvmConstantProductCurveV1();
|
|
10
|
+
});
|
|
11
|
+
describe('getTokensAmountFromCollateral', () => {
|
|
12
|
+
it('should calculate nr of tokens for 1 ETH for buy without tax', () => {
|
|
13
|
+
const params = {
|
|
14
|
+
amount: BigInt(1e18),
|
|
15
|
+
curvePosition: 0n,
|
|
16
|
+
platformFeeBps: 0,
|
|
17
|
+
tradeDirection: tradeDirection_1.TradeDirection.BUY,
|
|
18
|
+
};
|
|
19
|
+
const result = curve.getTokensAmountFromCollateral(params);
|
|
20
|
+
expect(result).toBe(expectedTokensForOneEth);
|
|
21
|
+
});
|
|
22
|
+
it('should calculate tokens for selling 1 ETH of supply', () => {
|
|
23
|
+
const params = {
|
|
24
|
+
amount: BigInt(1e18),
|
|
25
|
+
curvePosition: expectedTokensForOneEth,
|
|
26
|
+
platformFeeBps: 0,
|
|
27
|
+
tradeDirection: tradeDirection_1.TradeDirection.SELL,
|
|
28
|
+
};
|
|
29
|
+
const result = curve.getTokensAmountFromCollateral(params);
|
|
30
|
+
expect(result).toBe(expectedTokensForOneEth);
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
describe('getCollateralAmountFromTokens', () => {
|
|
34
|
+
it('should calculate amount of collateral to buy tokens worth 1 ETH', () => {
|
|
35
|
+
const params = {
|
|
36
|
+
amount: expectedTokensForOneEth,
|
|
37
|
+
curvePosition: 0n,
|
|
38
|
+
platformFeeBps: 0,
|
|
39
|
+
tradeDirection: tradeDirection_1.TradeDirection.BUY,
|
|
40
|
+
};
|
|
41
|
+
const result = curve.getCollateralAmountFromTokens(params);
|
|
42
|
+
expect(result).toBe(BigInt(1e18));
|
|
43
|
+
});
|
|
44
|
+
it('should calculate collateral for selling tokens worth 1 ETH', () => {
|
|
45
|
+
const params = {
|
|
46
|
+
amount: expectedTokensForOneEth,
|
|
47
|
+
curvePosition: expectedTokensForOneEth,
|
|
48
|
+
platformFeeBps: 0,
|
|
49
|
+
tradeDirection: tradeDirection_1.TradeDirection.SELL,
|
|
50
|
+
};
|
|
51
|
+
const result = curve.getCollateralAmountFromTokens(params);
|
|
52
|
+
expect(result).toBe(BigInt(1e18));
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
//# sourceMappingURL=EvmConstantProductCurveV1.spec.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EvmConstantProductCurveV1.spec.js","sourceRoot":"","sources":["../../../../../src/domain/curves/tests/EvmConstantProductCurveV1.spec.ts"],"names":[],"mappings":";;AACA,mEAAgE;AAEhE,4EAAyE;AAEzE,QAAQ,CAAC,2BAA2B,EAAE,GAAG,EAAE;IACzC,IAAI,KAAoB,CAAC;IACzB,MAAM,uBAAuB,GAAG,4BAA4B,CAAC;IAE7D,SAAS,CAAC,GAAG,EAAE;QACb,KAAK,GAAG,IAAI,qDAAyB,EAAE,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;YACrE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,GAAG;aACnC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qDAAqD,EAAE,GAAG,EAAE;YAC7D,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC;gBACpB,aAAa,EAAE,uBAAuB;gBACtC,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,IAAI;aACpC,CAAC;YAEF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,+BAA+B,EAAE,GAAG,EAAE;QAC7C,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;YACzE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,aAAa,EAAE,EAAE;gBACjB,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,GAAG;aACnC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;YACpE,MAAM,MAAM,GAAG;gBACb,MAAM,EAAE,uBAAuB;gBAC/B,aAAa,EAAE,uBAAuB;gBACtC,cAAc,EAAE,CAAC;gBACjB,cAAc,EAAE,+BAAc,CAAC,IAAI;aACpC,CAAC;YACF,MAAM,MAAM,GAAG,KAAK,CAAC,6BAA6B,CAAC,MAAM,CAAC,CAAC;YAC3D,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
|
|
@@ -18,9 +18,7 @@ export declare enum ContractCurrency {
|
|
|
18
18
|
}
|
|
19
19
|
export declare enum ContractCurveType {
|
|
20
20
|
LINEAR_V1 = 0,
|
|
21
|
-
CONSTANT_PRODUCT_V1 = 1
|
|
22
|
-
CONSTANT_PRODUCT_V2 = 2,
|
|
23
|
-
FLAT_V1 = 3
|
|
21
|
+
CONSTANT_PRODUCT_V1 = 1
|
|
24
22
|
}
|
|
25
23
|
export declare const toContractCurrency: (currency: DefaultCurrencies) => ContractCurrency;
|
|
26
24
|
export declare const toContractCurveType: (curveType: CurveType) => ContractCurveType;
|
|
@@ -10,8 +10,6 @@ var ContractCurveType;
|
|
|
10
10
|
(function (ContractCurveType) {
|
|
11
11
|
ContractCurveType[ContractCurveType["LINEAR_V1"] = 0] = "LINEAR_V1";
|
|
12
12
|
ContractCurveType[ContractCurveType["CONSTANT_PRODUCT_V1"] = 1] = "CONSTANT_PRODUCT_V1";
|
|
13
|
-
ContractCurveType[ContractCurveType["CONSTANT_PRODUCT_V2"] = 2] = "CONSTANT_PRODUCT_V2";
|
|
14
|
-
ContractCurveType[ContractCurveType["FLAT_V1"] = 3] = "FLAT_V1";
|
|
15
13
|
})(ContractCurveType = exports.ContractCurveType || (exports.ContractCurveType = {}));
|
|
16
14
|
const toContractCurrency = (currency) => {
|
|
17
15
|
switch (currency) {
|
|
@@ -28,10 +26,6 @@ const toContractCurveType = (curveType) => {
|
|
|
28
26
|
return ContractCurveType.LINEAR_V1;
|
|
29
27
|
case constants_1.CurveType.CONSTANT_PRODUCT_V1:
|
|
30
28
|
return ContractCurveType.CONSTANT_PRODUCT_V1;
|
|
31
|
-
case constants_1.CurveType.CONSTANT_PRODUCT_V2:
|
|
32
|
-
return ContractCurveType.CONSTANT_PRODUCT_V2;
|
|
33
|
-
case constants_1.CurveType.FLAT_V1:
|
|
34
|
-
return ContractCurveType.FLAT_V1;
|
|
35
29
|
default:
|
|
36
30
|
throw new Error(`Unknown curve type: ${curveType}`);
|
|
37
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domain/curves/types.ts"],"names":[],"mappings":";;;AACA,4CAA4E;AAiB5E,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,qDAAO,CAAA;AACT,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B;AAED,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/domain/curves/types.ts"],"names":[],"mappings":";;;AACA,4CAA4E;AAiB5E,IAAY,gBAEX;AAFD,WAAY,gBAAgB;IAC1B,qDAAO,CAAA;AACT,CAAC,EAFW,gBAAgB,GAAhB,wBAAgB,KAAhB,wBAAgB,QAE3B;AAED,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,mEAAa,CAAA;IACb,uFAAuB,CAAA;AACzB,CAAC,EAHW,iBAAiB,GAAjB,yBAAiB,KAAjB,yBAAiB,QAG5B;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,KAAK,qBAAS,CAAC,mBAAmB;YAChC,OAAO,iBAAiB,CAAC,mBAAmB,CAAC;QAC/C;YACE,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;KACvD;AACH,CAAC,CAAC;AAXW,QAAA,mBAAmB,uBAW9B"}
|
|
@@ -65,14 +65,5 @@ __decorate([
|
|
|
65
65
|
(0, class_validator_1.IsNotEmpty)(),
|
|
66
66
|
__metadata("design:type", BigInt)
|
|
67
67
|
], CreateCurveDto.prototype, "coefB", void 0);
|
|
68
|
-
__decorate([
|
|
69
|
-
(0, class_validator_1.IsNumber)(),
|
|
70
|
-
(0, class_validator_1.IsOptional)(),
|
|
71
|
-
__metadata("design:type", Number)
|
|
72
|
-
], CreateCurveDto.prototype, "priceIncrease", void 0);
|
|
73
|
-
__decorate([
|
|
74
|
-
(0, class_validator_1.IsOptional)(),
|
|
75
|
-
__metadata("design:type", BigInt)
|
|
76
|
-
], CreateCurveDto.prototype, "collateralCollected", void 0);
|
|
77
68
|
exports.CreateCurveDto = CreateCurveDto;
|
|
78
69
|
//# sourceMappingURL=CreateCurve.dto.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateCurve.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/curve/dtos/CreateCurve.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CreateCurve.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/curve/dtos/CreateCurve.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyE;AACzE,kDAA+C;AAE/C,MAAa,cAAc;CAwC1B;AAvCC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,qBAAS,CAAC;IACjB,IAAA,4BAAU,GAAE;;4CACG;AAEhB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;8CACE;AAEf;IAAC,IAAA,4BAAU,GAAE;;mDACO;AAEpB;IAAC,IAAA,4BAAU,GAAE;;gEACoB;AAEjC;IAAC,IAAA,4BAAU,GAAE;;gEACoB;AAEjC;IAAC,IAAA,4BAAU,GAAE;;0DACc;AAE3B;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2DACe;AAE5B;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;4DACgB;AAE7B;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;+CACG;AAEhB;IAAC,IAAA,4BAAU,GAAE;;6CACC;AAvChB,wCAwCC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Curve.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/curve/entities/Curve.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,yCAAsC;AAItC,MAAa,KAAM,SAAQ,eAAM;
|
|
1
|
+
{"version":3,"file":"Curve.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/curve/entities/Curve.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAA8C;AAC9C,yCAAsC;AAItC,MAAa,KAAM,SAAQ,eAAM;CA0BhC;AAzBC;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;0CACpB;AAEpB;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;uDACP;AAEjC;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;uDACP;AAEjC;IAAC,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;oCAC1B;AAXhB,sBA0BC"}
|
|
@@ -38,4 +38,5 @@ __exportStar(require("./airlock"), exports);
|
|
|
38
38
|
__exportStar(require("./error"), exports);
|
|
39
39
|
__exportStar(require("./uniswap"), exports);
|
|
40
40
|
__exportStar(require("./prioirty-router"), exports);
|
|
41
|
+
__exportStar(require("./mint-addresses"), exports);
|
|
41
42
|
//# 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;AACpC,0DAAwC;AACxC,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,oDAAkC"}
|
|
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;AACxC,iDAA+B;AAC/B,+CAA6B;AAC7B,4CAA0B;AAC1B,6CAA2B;AAC3B,4CAA0B;AAC1B,4CAA0B;AAC1B,0CAAwB;AACxB,4CAA0B;AAC1B,oDAAkC;AAClC,mDAAiC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { MigrationDex
|
|
1
|
+
import { MigrationDex } from '../../../../constants';
|
|
2
2
|
import { AffiliateDto } from './Affiliate.dto';
|
|
3
3
|
export declare class CreateMintDto {
|
|
4
4
|
symbol: string;
|
|
@@ -7,8 +7,5 @@ export declare class CreateMintDto {
|
|
|
7
7
|
description?: string;
|
|
8
8
|
migrationDex?: MigrationDex;
|
|
9
9
|
isAirlock?: boolean;
|
|
10
|
-
curveType?: CurveType;
|
|
11
|
-
priceIncrease?: number;
|
|
12
|
-
collateralCollected?: string;
|
|
13
10
|
affiliate?: AffiliateDto;
|
|
14
11
|
}
|
|
@@ -47,21 +47,6 @@ __decorate([
|
|
|
47
47
|
(0, class_validator_1.IsOptional)(),
|
|
48
48
|
__metadata("design:type", Boolean)
|
|
49
49
|
], CreateMintDto.prototype, "isAirlock", void 0);
|
|
50
|
-
__decorate([
|
|
51
|
-
(0, class_validator_1.IsEnum)(constants_1.CurveType),
|
|
52
|
-
(0, class_validator_1.IsOptional)(),
|
|
53
|
-
__metadata("design:type", String)
|
|
54
|
-
], CreateMintDto.prototype, "curveType", void 0);
|
|
55
|
-
__decorate([
|
|
56
|
-
(0, class_validator_1.IsNumber)(),
|
|
57
|
-
(0, class_validator_1.IsOptional)(),
|
|
58
|
-
__metadata("design:type", Number)
|
|
59
|
-
], CreateMintDto.prototype, "priceIncrease", void 0);
|
|
60
|
-
__decorate([
|
|
61
|
-
(0, class_transformer_1.Transform)(({ value }) => BigInt(value)),
|
|
62
|
-
(0, class_validator_1.IsOptional)(),
|
|
63
|
-
__metadata("design:type", String)
|
|
64
|
-
], CreateMintDto.prototype, "collateralCollected", void 0);
|
|
65
50
|
__decorate([
|
|
66
51
|
(0, class_transformer_1.Type)(() => Affiliate_dto_1.AffiliateDto),
|
|
67
52
|
(0, class_validator_1.ValidateNested)(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateMint.dto.js","sourceRoot":"","sources":["../../../../../../../src/domain/model/mint/create/dtos/CreateMint.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CreateMint.dto.js","sourceRoot":"","sources":["../../../../../../../src/domain/model/mint/create/dtos/CreateMint.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAOyB;AACzB,yDAAyC;AACzC,qDAAqD;AACrD,mDAA+C;AAE/C,MAAa,aAAa;CA8BzB;AA7BC;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;6CACE;AAEf;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;2CACA;AAEb;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;0CACD;AAEZ;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;kDACQ;AAErB;IAAC,IAAA,0BAAQ,GAAE;IACV,IAAA,wBAAM,EAAC,wBAAY,CAAC;IACpB,IAAA,4BAAU,GAAE;;mDACe;AAE5B;IAAC,IAAA,2BAAS,GAAE;IACX,IAAA,4BAAU,GAAE;;gDACO;AAEpB;IAAC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,4BAAY,CAAC;IACxB,IAAA,gCAAc,GAAE;IAChB,IAAA,4BAAU,GAAE;8BACD,4BAAY;gDAAC;AA7B3B,sCA8BC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
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.AddMintAddressesDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
const constants_1 = require("../../../constants");
|
|
15
|
+
class AddMintAddressesDto {
|
|
16
|
+
}
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsArray)(),
|
|
19
|
+
(0, class_validator_1.IsString)({ each: true }),
|
|
20
|
+
(0, class_validator_1.IsNotEmpty)({ each: true }),
|
|
21
|
+
__metadata("design:type", Array)
|
|
22
|
+
], AddMintAddressesDto.prototype, "mintAddresses", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, class_validator_1.IsEnum)(constants_1.BlockchainSymbol),
|
|
25
|
+
(0, class_validator_1.IsNotEmpty)(),
|
|
26
|
+
__metadata("design:type", String)
|
|
27
|
+
], AddMintAddressesDto.prototype, "blockchainSymbol", void 0);
|
|
28
|
+
exports.AddMintAddressesDto = AddMintAddressesDto;
|
|
29
|
+
//# sourceMappingURL=AddMintAddresses.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddMintAddresses.dto.js","sourceRoot":"","sources":["../../../../../../src/domain/model/mint-addresses/dtos/AddMintAddresses.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAwE;AACxE,kDAAsD;AAEtD,MAAa,mBAAmB;CAS/B;AARC;IAAC,IAAA,yBAAO,GAAE;IACT,IAAA,0BAAQ,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,IAAA,4BAAU,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;0DACH;AAExB;IAAC,IAAA,wBAAM,EAAC,4BAAgB,CAAC;IACxB,IAAA,4BAAU,GAAE;;6DACsB;AARrC,kDASC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AddMintAddresses.dto';
|
|
@@ -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("./AddMintAddresses.dto"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/mint-addresses/dtos/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yDAAuC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AddMintAddressesResponse = void 0;
|
|
4
|
+
class AddMintAddressesResponse {
|
|
5
|
+
}
|
|
6
|
+
exports.AddMintAddressesResponse = AddMintAddressesResponse;
|
|
7
|
+
//# sourceMappingURL=AddMintAddressesResponse.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AddMintAddressesResponse.entity.js","sourceRoot":"","sources":["../../../../../../src/domain/model/mint-addresses/entities/AddMintAddressesResponse.entity.ts"],"names":[],"mappings":";;;AAAA,MAAa,wBAAwB;CAEpC;AAFD,4DAEC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './AddMintAddressesResponse.entity';
|
|
@@ -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("./AddMintAddressesResponse.entity"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/domain/model/mint-addresses/entities/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oEAAkD"}
|