@gala-chain/launchpad 1.0.14 → 1.0.16
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/lib/package.json +1 -1
- package/lib/src/api/types/LaunchpadDtos.d.ts +3 -1
- package/lib/src/api/types/LaunchpadDtos.d.ts.map +1 -1
- package/lib/src/api/types/LaunchpadDtos.js +19 -1
- package/lib/src/api/types/LaunchpadDtos.js.map +1 -1
- package/lib/src/api/types/LaunchpadSale.d.ts +8 -1
- package/lib/src/api/types/LaunchpadSale.d.ts.map +1 -1
- package/lib/src/api/types/LaunchpadSale.js +37 -8
- package/lib/src/api/types/LaunchpadSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.js +4 -1
- package/lib/src/chaincode/launchpad/buyWithNative.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js +6 -4
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js +19 -8
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js +13 -6
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js +6 -4
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/createSale.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/createSale.js +22 -6
- package/lib/src/chaincode/launchpad/createSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/finaliseSale.js +2 -2
- package/lib/src/chaincode/launchpad/finaliseSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.js +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.js.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.js +14 -2
- package/lib/src/chaincode/utils/launchpadSaleUtils.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/api/types/LaunchpadDtos.ts +22 -1
- package/src/api/types/LaunchpadSale.ts +51 -8
- package/src/chaincode/launchpad/buyExactToken.spec.ts +234 -1
- package/src/chaincode/launchpad/buyWithNative.spec.ts +163 -8
- package/src/chaincode/launchpad/buyWithNative.ts +5 -1
- package/src/chaincode/launchpad/callMemeTokenIn.ts +11 -4
- package/src/chaincode/launchpad/callMemeTokenOut.spec.ts +1 -1
- package/src/chaincode/launchpad/callMemeTokenOut.ts +24 -8
- package/src/chaincode/launchpad/callNativeTokenIn.ts +18 -7
- package/src/chaincode/launchpad/callNativeTokenOut.ts +10 -4
- package/src/chaincode/launchpad/createSale.ts +35 -7
- package/src/chaincode/launchpad/finaliseSale.ts +2 -2
- package/src/chaincode/launchpad/sellExactToken.spec.ts +139 -2
- package/src/chaincode/launchpad/sellExactToken.ts +1 -1
- package/src/chaincode/launchpad/sellWithNative.spec.ts +157 -1
- package/src/chaincode/utils/launchpadSaleUtils.ts +18 -2
package/lib/package.json
CHANGED
|
@@ -21,8 +21,10 @@ export declare class CreateTokenSaleDTO extends SubmitCallDTO {
|
|
|
21
21
|
websiteUrl?: string;
|
|
22
22
|
telegramUrl?: string;
|
|
23
23
|
twitterUrl?: string;
|
|
24
|
+
saleStartTime?: number;
|
|
24
25
|
reverseBondingCurveConfiguration?: ReverseBondingCurveConfigurationDto;
|
|
25
|
-
|
|
26
|
+
adjustableSupplyMultiplier?: number;
|
|
27
|
+
constructor(tokenName: string, tokenSymbol: string, tokenDescription: string, tokenImage: string, preBuyQuantity: BigNumber, tokenCollection: string, tokenCategory: string, reverseBondingCurveConfiguration?: ReverseBondingCurveConfigurationDto, saleStartTime?: number, adjustableSupplyMultiplier?: number);
|
|
26
28
|
}
|
|
27
29
|
export declare class CreateSaleResDto {
|
|
28
30
|
image: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadDtos.d.ts","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadDtos.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,YAAY,EACZ,WAAW,EAEX,aAAa,EACb,YAAY,EACZ,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"LaunchpadDtos.d.ts","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadDtos.ts"],"names":[],"mappings":"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"}
|
|
@@ -63,7 +63,7 @@ tslib_1.__decorate([
|
|
|
63
63
|
tslib_1.__metadata("design:type", bignumber_js_1.default)
|
|
64
64
|
], ReverseBondingCurveConfigurationDto.prototype, "maxFeePortion", void 0);
|
|
65
65
|
class CreateTokenSaleDTO extends api_1.SubmitCallDTO {
|
|
66
|
-
constructor(tokenName, tokenSymbol, tokenDescription, tokenImage, preBuyQuantity, tokenCollection, tokenCategory, reverseBondingCurveConfiguration) {
|
|
66
|
+
constructor(tokenName, tokenSymbol, tokenDescription, tokenImage, preBuyQuantity, tokenCollection, tokenCategory, reverseBondingCurveConfiguration, saleStartTime, adjustableSupplyMultiplier) {
|
|
67
67
|
super();
|
|
68
68
|
this.tokenName = tokenName;
|
|
69
69
|
this.tokenSymbol = tokenSymbol;
|
|
@@ -73,6 +73,12 @@ class CreateTokenSaleDTO extends api_1.SubmitCallDTO {
|
|
|
73
73
|
this.tokenCollection = tokenCollection;
|
|
74
74
|
this.tokenCategory = tokenCategory;
|
|
75
75
|
this.reverseBondingCurveConfiguration = reverseBondingCurveConfiguration;
|
|
76
|
+
if (saleStartTime !== undefined) {
|
|
77
|
+
this.saleStartTime = saleStartTime;
|
|
78
|
+
}
|
|
79
|
+
if (adjustableSupplyMultiplier !== undefined) {
|
|
80
|
+
this.adjustableSupplyMultiplier = adjustableSupplyMultiplier;
|
|
81
|
+
}
|
|
76
82
|
}
|
|
77
83
|
}
|
|
78
84
|
exports.CreateTokenSaleDTO = CreateTokenSaleDTO;
|
|
@@ -125,12 +131,24 @@ tslib_1.__decorate([
|
|
|
125
131
|
(0, class_validator_1.IsOptional)(),
|
|
126
132
|
tslib_1.__metadata("design:type", String)
|
|
127
133
|
], CreateTokenSaleDTO.prototype, "twitterUrl", void 0);
|
|
134
|
+
tslib_1.__decorate([
|
|
135
|
+
(0, class_validator_1.IsOptional)(),
|
|
136
|
+
(0, class_validator_1.IsInt)(),
|
|
137
|
+
tslib_1.__metadata("design:type", Number)
|
|
138
|
+
], CreateTokenSaleDTO.prototype, "saleStartTime", void 0);
|
|
128
139
|
tslib_1.__decorate([
|
|
129
140
|
(0, class_validator_1.IsOptional)(),
|
|
130
141
|
(0, class_validator_1.ValidateNested)(),
|
|
131
142
|
(0, class_transformer_1.Type)(() => ReverseBondingCurveConfigurationDto),
|
|
132
143
|
tslib_1.__metadata("design:type", ReverseBondingCurveConfigurationDto)
|
|
133
144
|
], CreateTokenSaleDTO.prototype, "reverseBondingCurveConfiguration", void 0);
|
|
145
|
+
tslib_1.__decorate([
|
|
146
|
+
(0, class_validator_1.IsOptional)(),
|
|
147
|
+
(0, class_validator_1.IsNumber)(),
|
|
148
|
+
(0, class_validator_1.Min)(100),
|
|
149
|
+
(0, class_validator_1.Max)(100),
|
|
150
|
+
tslib_1.__metadata("design:type", Number)
|
|
151
|
+
], CreateTokenSaleDTO.prototype, "adjustableSupplyMultiplier", void 0);
|
|
134
152
|
class CreateSaleResDto {
|
|
135
153
|
}
|
|
136
154
|
exports.CreateSaleResDto = CreateSaleResDto;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadDtos.js","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadDtos.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAQyB;AACzB,wEAAqC;AACrC,yDAAyC;AACzC,
|
|
1
|
+
{"version":3,"file":"LaunchpadDtos.js","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadDtos.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { ChainObject, TokenInstanceKey, UserAlias } from "@gala-chain/api";
|
|
|
2
2
|
import BigNumber from "bignumber.js";
|
|
3
3
|
import { ReverseBondingCurveConfigurationChainObject } from "./LaunchpadDtos";
|
|
4
4
|
export declare enum SaleStatus {
|
|
5
|
+
UPCOMING = "Upcoming",
|
|
5
6
|
ONGOING = "Ongoing",
|
|
6
7
|
END = "Finished"
|
|
7
8
|
}
|
|
@@ -9,6 +10,7 @@ export declare class LaunchpadSale extends ChainObject {
|
|
|
9
10
|
static INDEX_KEY: string;
|
|
10
11
|
vaultAddress: UserAlias;
|
|
11
12
|
saleStatus: SaleStatus;
|
|
13
|
+
saleStartTime?: number;
|
|
12
14
|
sellingToken: TokenInstanceKey;
|
|
13
15
|
nativeToken: TokenInstanceKey;
|
|
14
16
|
sellingTokenQuantity: string;
|
|
@@ -19,11 +21,16 @@ export declare class LaunchpadSale extends ChainObject {
|
|
|
19
21
|
maxSupply: BigNumber;
|
|
20
22
|
euler: BigNumber;
|
|
21
23
|
reverseBondingCurveConfiguration?: ReverseBondingCurveConfigurationChainObject;
|
|
24
|
+
/**
|
|
25
|
+
* Optional multiplier used to scale token output (both in bonding curve calculations and initial
|
|
26
|
+
* minting) while preserving the same economics and curve shape.
|
|
27
|
+
*/
|
|
28
|
+
adjustableSupplyMultiplier?: number;
|
|
22
29
|
static MARKET_CAP: string;
|
|
23
30
|
static BASE_PRICE: string;
|
|
24
31
|
static SELLING_TOKEN_DECIMALS: number;
|
|
25
32
|
static NATIVE_TOKEN_DECIMALS: number;
|
|
26
|
-
constructor(vaultAddress: UserAlias, sellingToken: TokenInstanceKey, reverseBondingCurveConfiguration: ReverseBondingCurveConfigurationChainObject | undefined, saleOwner: UserAlias);
|
|
33
|
+
constructor(vaultAddress: UserAlias, sellingToken: TokenInstanceKey, reverseBondingCurveConfiguration: ReverseBondingCurveConfigurationChainObject | undefined, saleOwner: UserAlias, saleStartTime?: number | undefined, adjustableSupplyMultiplier?: number);
|
|
27
34
|
buyToken(sellingTokenAmount: BigNumber, nativeTokenAmount: BigNumber): void;
|
|
28
35
|
sellToken(sellingTokenAmount: BigNumber, nativeTokenAmount: BigNumber): void;
|
|
29
36
|
fetchTokensSold(): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadSale.d.ts","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadSale.ts"],"names":[],"mappings":"AAcA,OAAO,EAGL,WAAW,EAGX,gBAAgB,EAChB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,SAAS,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"LaunchpadSale.d.ts","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadSale.ts"],"names":[],"mappings":"AAcA,OAAO,EAGL,WAAW,EAGX,gBAAgB,EAChB,SAAS,EACV,MAAM,iBAAiB,CAAC;AACzB,OAAO,SAAS,MAAM,cAAc,CAAC;AAcrC,OAAO,EAAE,2CAA2C,EAAE,MAAM,iBAAiB,CAAC;AAE9E,oBAAY,UAAU;IACpB,QAAQ,aAAa;IACrB,OAAO,YAAY;IACnB,GAAG,aAAa;CACjB;AAED,qBAGa,aAAc,SAAQ,WAAW;IAE5C,MAAM,CAAC,SAAS,SAAW;IAKpB,YAAY,EAAE,SAAS,CAAC;IAIxB,UAAU,EAAE,UAAU,CAAC;IAIvB,aAAa,CAAC,EAAE,MAAM,CAAC;IAKvB,YAAY,EAAE,gBAAgB,CAAC;IAK/B,WAAW,EAAE,gBAAgB,CAAC;IAI9B,oBAAoB,EAAE,MAAM,CAAC;IAI7B,mBAAmB,EAAE,MAAM,CAAC;IAI5B,SAAS,EAAE,SAAS,CAAC;IAGrB,SAAS,EAAE,SAAS,CAAC;IAGrB,cAAc,EAAE,SAAS,CAAC;IAG1B,SAAS,EAAE,SAAS,CAAC;IAGrB,KAAK,EAAE,SAAS,CAAC;IAKjB,gCAAgC,CAAC,EAAE,2CAA2C,CAAC;IAEtF;;;OAGG;IAII,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAE3C,OAIc,UAAU,SAAqB;IAE7C,OAKc,UAAU,SAAoB;IAE5C,OAGc,sBAAsB,SAAK;IAEzC,OAGc,qBAAqB,SAAK;gBAGtC,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,gBAAgB,EAC9B,gCAAgC,EAAE,2CAA2C,GAAG,SAAS,EACzF,SAAS,EAAE,SAAS,EACpB,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,EAClC,0BAA0B,CAAC,EAAE,MAAM;IA8C9B,QAAQ,CAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS;IAOpE,SAAS,CAAC,kBAAkB,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS;IAOrE,eAAe;IASf,kCAAkC;IAMlC,wBAAwB;IAKxB,YAAY;IAMZ,4BAA4B;IAW5B,2BAA2B;CAUnC"}
|
|
@@ -25,21 +25,39 @@ const class_validator_jsonschema_1 = require("class-validator-jsonschema");
|
|
|
25
25
|
const LaunchpadDtos_1 = require("./LaunchpadDtos");
|
|
26
26
|
var SaleStatus;
|
|
27
27
|
(function (SaleStatus) {
|
|
28
|
+
SaleStatus["UPCOMING"] = "Upcoming";
|
|
28
29
|
SaleStatus["ONGOING"] = "Ongoing";
|
|
29
30
|
SaleStatus["END"] = "Finished";
|
|
30
31
|
})(SaleStatus || (exports.SaleStatus = SaleStatus = {}));
|
|
31
32
|
let LaunchpadSale = exports.LaunchpadSale = LaunchpadSale_1 = class LaunchpadSale extends api_1.ChainObject {
|
|
32
|
-
constructor(vaultAddress, sellingToken, reverseBondingCurveConfiguration, saleOwner) {
|
|
33
|
+
constructor(vaultAddress, sellingToken, reverseBondingCurveConfiguration, saleOwner, saleStartTime, adjustableSupplyMultiplier) {
|
|
33
34
|
super();
|
|
34
35
|
this.vaultAddress = vaultAddress;
|
|
35
36
|
this.saleOwner = saleOwner;
|
|
36
37
|
this.sellingToken = sellingToken;
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
this.
|
|
38
|
+
if (saleStartTime) {
|
|
39
|
+
this.saleStartTime = saleStartTime;
|
|
40
|
+
}
|
|
41
|
+
if (this.saleStartTime !== undefined && this.saleStartTime > 0) {
|
|
42
|
+
this.saleStatus = SaleStatus.UPCOMING;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
this.saleStatus = SaleStatus.ONGOING;
|
|
46
|
+
}
|
|
47
|
+
if (adjustableSupplyMultiplier !== undefined) {
|
|
48
|
+
this.adjustableSupplyMultiplier = adjustableSupplyMultiplier;
|
|
49
|
+
this.basePrice = new bignumber_js_1.default(LaunchpadSale_1.BASE_PRICE).dividedBy(adjustableSupplyMultiplier);
|
|
50
|
+
this.exponentFactor = new bignumber_js_1.default("1166069000000");
|
|
51
|
+
this.maxSupply = new bignumber_js_1.default("1e+7").times(adjustableSupplyMultiplier);
|
|
52
|
+
this.sellingTokenQuantity = new bignumber_js_1.default("1e+7").times(adjustableSupplyMultiplier).toString();
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
this.basePrice = new bignumber_js_1.default(LaunchpadSale_1.BASE_PRICE);
|
|
56
|
+
this.exponentFactor = new bignumber_js_1.default("1166069000000");
|
|
57
|
+
this.maxSupply = new bignumber_js_1.default("1e+7");
|
|
58
|
+
this.sellingTokenQuantity = "1e+7";
|
|
59
|
+
}
|
|
41
60
|
this.euler = new bignumber_js_1.default("2.7182818284590452353602874713527");
|
|
42
|
-
this.saleStatus = SaleStatus.ONGOING;
|
|
43
61
|
const nativeTokenInstance = new api_1.TokenInstanceKey();
|
|
44
62
|
nativeTokenInstance.collection = "GALA";
|
|
45
63
|
nativeTokenInstance.category = "Unit";
|
|
@@ -106,7 +124,7 @@ let LaunchpadSale = exports.LaunchpadSale = LaunchpadSale_1 = class LaunchpadSal
|
|
|
106
124
|
LaunchpadSale.INDEX_KEY = "GCLPS"; //GalaChain LaunchPad Sale
|
|
107
125
|
LaunchpadSale.MARKET_CAP = "1640985.8441726";
|
|
108
126
|
LaunchpadSale.BASE_PRICE = "16506671506650";
|
|
109
|
-
LaunchpadSale.SELLING_TOKEN_DECIMALS =
|
|
127
|
+
LaunchpadSale.SELLING_TOKEN_DECIMALS = 9;
|
|
110
128
|
LaunchpadSale.NATIVE_TOKEN_DECIMALS = 8;
|
|
111
129
|
tslib_1.__decorate([
|
|
112
130
|
(0, api_1.ChainKey)({ position: 0 }),
|
|
@@ -119,6 +137,11 @@ tslib_1.__decorate([
|
|
|
119
137
|
(0, class_validator_1.IsNotEmpty)(),
|
|
120
138
|
tslib_1.__metadata("design:type", String)
|
|
121
139
|
], LaunchpadSale.prototype, "saleStatus", void 0);
|
|
140
|
+
tslib_1.__decorate([
|
|
141
|
+
(0, class_validator_1.IsOptional)(),
|
|
142
|
+
(0, class_validator_1.IsInt)(),
|
|
143
|
+
tslib_1.__metadata("design:type", Number)
|
|
144
|
+
], LaunchpadSale.prototype, "saleStartTime", void 0);
|
|
122
145
|
tslib_1.__decorate([
|
|
123
146
|
(0, class_validator_1.IsNotEmpty)(),
|
|
124
147
|
(0, class_validator_1.ValidateNested)(),
|
|
@@ -168,6 +191,12 @@ tslib_1.__decorate([
|
|
|
168
191
|
(0, class_transformer_1.Type)(() => LaunchpadDtos_1.ReverseBondingCurveConfigurationChainObject),
|
|
169
192
|
tslib_1.__metadata("design:type", LaunchpadDtos_1.ReverseBondingCurveConfigurationChainObject)
|
|
170
193
|
], LaunchpadSale.prototype, "reverseBondingCurveConfiguration", void 0);
|
|
194
|
+
tslib_1.__decorate([
|
|
195
|
+
(0, class_validator_1.IsOptional)(),
|
|
196
|
+
(0, class_validator_1.IsNumber)(),
|
|
197
|
+
(0, class_validator_1.Min)(0),
|
|
198
|
+
tslib_1.__metadata("design:type", Number)
|
|
199
|
+
], LaunchpadSale.prototype, "adjustableSupplyMultiplier", void 0);
|
|
171
200
|
tslib_1.__decorate([
|
|
172
201
|
(0, class_transformer_1.Exclude)(),
|
|
173
202
|
tslib_1.__metadata("design:type", Object)
|
|
@@ -201,6 +230,6 @@ exports.LaunchpadSale = LaunchpadSale = LaunchpadSale_1 = tslib_1.__decorate([
|
|
|
201
230
|
(0, class_validator_jsonschema_1.JSONSchema)({
|
|
202
231
|
description: "Represents a launchpad sale, defining token quantities, pricing, and sale operations."
|
|
203
232
|
}),
|
|
204
|
-
tslib_1.__metadata("design:paramtypes", [String, api_1.TokenInstanceKey, Object, String])
|
|
233
|
+
tslib_1.__metadata("design:paramtypes", [String, api_1.TokenInstanceKey, Object, String, Object, Number])
|
|
205
234
|
], LaunchpadSale);
|
|
206
235
|
//# sourceMappingURL=LaunchpadSale.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadSale.js","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadSale.ts"],"names":[],"mappings":";;;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAQyB;AACzB,wEAAqC;AACrC,yDAAkD;AAClD,
|
|
1
|
+
{"version":3,"file":"LaunchpadSale.js","sourceRoot":"","sources":["../../../../src/api/types/LaunchpadSale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAiB,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOrF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"buyWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAiB,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAOrF;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,CAoFtB"}
|
|
@@ -54,9 +54,12 @@ async function buyWithNative(ctx, buyTokenDTO) {
|
|
|
54
54
|
const nativeToken = sale.fetchNativeTokenInstanceKey();
|
|
55
55
|
const memeToken = sale.fetchSellingTokenInstanceKey();
|
|
56
56
|
// If native tokens required exceeds the market cap, the sale can be finalized
|
|
57
|
+
const supplyCap = sale.adjustableSupplyMultiplier !== undefined
|
|
58
|
+
? new bignumber_js_1.default(types_1.LaunchpadSale.MARKET_CAP).times(sale.adjustableSupplyMultiplier).toString()
|
|
59
|
+
: types_1.LaunchpadSale.MARKET_CAP;
|
|
57
60
|
if (buyTokenDTO.nativeTokenQuantity
|
|
58
61
|
.plus(new bignumber_js_1.default(sale.nativeTokenQuantity))
|
|
59
|
-
.isGreaterThanOrEqualTo(new bignumber_js_1.default(
|
|
62
|
+
.isGreaterThanOrEqualTo(new bignumber_js_1.default(supplyCap))) {
|
|
60
63
|
isSaleFinalized = true;
|
|
61
64
|
}
|
|
62
65
|
// Check for slippage condition
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buyWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,qDAAyG;AACzG,wEAAqC;AAErC,2CAAqF;AACrF,iDAAuE;AACvE,oCAAgD;AAChD,yDAAsD;AACtD,iCAAiD;AACjD,iDAA8C;AAE9C;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,aAAa,CACjC,GAAqB,EACrB,WAAmC;IAEnC,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,gCAAgC;IAChC,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IAEvE,0DAA0D;IAC1D,MAAM,sBAAsB,GAAG,MAAM,IAAA,mCAAgB,EAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IACxE,MAAM,eAAe,GAAG,IAAI,sBAAS,CAAC,sBAAsB,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAAC,mBAAmB;IAC5G,MAAM,oBAAoB,GAAG,IAAI,sBAAS,CAAC,sBAAsB,CAAC,gBAAgB,CAAC,CAAC,CAAC,8CAA8C;IACnI,MAAM,WAAW,GAAG,IAAI,sBAAS,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC,CAAC,uCAAuC;IAErH,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;IAEtD,8EAA8E;IAC9E,IACE,WAAW,CAAC,mBAAmB;SAC5B,IAAI,CAAC,IAAI,sBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;SAC7C,sBAAsB,CAAC,IAAI,sBAAS,CAAC,
|
|
1
|
+
{"version":3,"file":"buyWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMemeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"callMemeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAkDhG;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,sBAAsB,GACnC,OAAO,CAAC,sBAAsB,CAAC,CAuBjC"}
|
|
@@ -21,11 +21,13 @@ const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
|
|
|
21
21
|
const types_1 = require("../../api/types");
|
|
22
22
|
const utils_1 = require("../utils");
|
|
23
23
|
const fees_1 = require("./fees");
|
|
24
|
-
function calculateMemeTokensRequired(sale, requestedNativeTokenQuantity, nativeTokenDecimals, sellingTokenDecimals) {
|
|
24
|
+
function calculateMemeTokensRequired(sale, requestedNativeTokenQuantity, nativeTokenDecimals, sellingTokenDecimals, adjustableSupplyMultiplier) {
|
|
25
25
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold()); // current tokens sold / x
|
|
26
26
|
let nativeTokens = new decimal_js_1.default(requestedNativeTokenQuantity.toString()).toDecimalPlaces(nativeTokenDecimals, decimal_js_1.default.ROUND_DOWN);
|
|
27
|
-
const basePrice =
|
|
28
|
-
|
|
27
|
+
const basePrice = adjustableSupplyMultiplier && adjustableSupplyMultiplier > 0
|
|
28
|
+
? new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE).dividedBy(adjustableSupplyMultiplier)
|
|
29
|
+
: new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
30
|
+
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)(adjustableSupplyMultiplier);
|
|
29
31
|
const nativeTokenInVault = new decimal_js_1.default(sale.nativeTokenQuantity);
|
|
30
32
|
if (nativeTokens.greaterThan(nativeTokenInVault)) {
|
|
31
33
|
nativeTokens = nativeTokenInVault;
|
|
@@ -64,7 +66,7 @@ async function callMemeTokenIn(ctx, sellTokenDTO) {
|
|
|
64
66
|
const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
|
|
65
67
|
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
66
68
|
const { nativeTokenDecimals, sellingTokenDecimals } = await (0, utils_1.fetchTokenDecimals)(ctx, sale);
|
|
67
|
-
const [originalQuantity, calculatedQuantity] = calculateMemeTokensRequired(sale, sellTokenDTO.nativeTokenQuantity, nativeTokenDecimals, sellingTokenDecimals);
|
|
69
|
+
const [originalQuantity, calculatedQuantity] = calculateMemeTokensRequired(sale, sellTokenDTO.nativeTokenQuantity, nativeTokenDecimals, sellingTokenDecimals, sale.adjustableSupplyMultiplier);
|
|
68
70
|
return {
|
|
69
71
|
originalQuantity: originalQuantity,
|
|
70
72
|
calculatedQuantity: calculatedQuantity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMemeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAwD;AAGxD,oEAAiC;AAEjC,2CAAgG;AAChG,oCAKkB;AAClB,iCAAkF;AAElF,SAAS,2BAA2B,CAClC,IAAmB,EACnB,4BAAuC,EACvC,mBAA2B,EAC3B,oBAA4B;
|
|
1
|
+
{"version":3,"file":"callMemeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMemeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"callMemeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AA8DhG;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAuDjC"}
|
|
@@ -7,12 +7,20 @@ const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
|
|
|
7
7
|
const types_1 = require("../../api/types");
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
9
|
const fees_1 = require("./fees");
|
|
10
|
-
function calculateTokensPurchasable(nativeTokens, totalTokensSold, nativeTokenDecimals, sellingTokenDecimals) {
|
|
11
|
-
const basePrice =
|
|
12
|
-
|
|
10
|
+
function calculateTokensPurchasable(nativeTokens, totalTokensSold, nativeTokenDecimals, sellingTokenDecimals, adjustableSupplyMultiplier) {
|
|
11
|
+
const basePrice = adjustableSupplyMultiplier && adjustableSupplyMultiplier > 0
|
|
12
|
+
? new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE).dividedBy(adjustableSupplyMultiplier)
|
|
13
|
+
: new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
14
|
+
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)(adjustableSupplyMultiplier);
|
|
13
15
|
// Round native tokens, then calculate tokens based on that rounded amount
|
|
14
16
|
const roundedNativeTokens = nativeTokens.toDecimalPlaces(nativeTokenDecimals, decimal_js_1.default.ROUND_UP);
|
|
15
|
-
// Calculate tokens purchasable:
|
|
17
|
+
// Calculate tokens purchasable:
|
|
18
|
+
// newTokens = (decimals / exponentFactor) *
|
|
19
|
+
// ln(
|
|
20
|
+
// (nativeTokens * exponentFactor / basePrice) +
|
|
21
|
+
// e^(exponentFactor * totalTokensSold / decimals)
|
|
22
|
+
// ) -
|
|
23
|
+
// totalTokensSold
|
|
16
24
|
// Where:
|
|
17
25
|
// constant = nativeTokens * exponentFactor / basePrice
|
|
18
26
|
// exponent1 = exponentFactor * totalTokensSold / decimals
|
|
@@ -29,9 +37,12 @@ function calculateTokensPurchasable(nativeTokens, totalTokensSold, nativeTokenDe
|
|
|
29
37
|
const lnEthScaledBase = lnEthScaled.div(exponentFactor);
|
|
30
38
|
const result = lnEthScaledBase.minus(totalTokensSold);
|
|
31
39
|
let roundedResult = result.toDecimalPlaces(sellingTokenDecimals, decimal_js_1.default.ROUND_DOWN);
|
|
32
|
-
// Cap total supply
|
|
33
|
-
|
|
34
|
-
|
|
40
|
+
// Cap total supply
|
|
41
|
+
const supplyCap = adjustableSupplyMultiplier
|
|
42
|
+
? new bignumber_js_1.default(1e7).times(adjustableSupplyMultiplier).toString()
|
|
43
|
+
: "1e+7";
|
|
44
|
+
if (roundedResult.add(totalTokensSold).greaterThan(new decimal_js_1.default(supplyCap))) {
|
|
45
|
+
roundedResult = new decimal_js_1.default(supplyCap).minus(new decimal_js_1.default(totalTokensSold));
|
|
35
46
|
}
|
|
36
47
|
return [roundedNativeTokens.toFixed(), roundedResult.toFixed()];
|
|
37
48
|
}
|
|
@@ -77,7 +88,7 @@ async function callMemeTokenOut(ctx, buyTokenDTO) {
|
|
|
77
88
|
sellingTokenDecimals: types_1.LaunchpadSale.SELLING_TOKEN_DECIMALS
|
|
78
89
|
};
|
|
79
90
|
// Calculate tokens purchasable using bonding curve math
|
|
80
|
-
const [originalQuantity, calculatedQuantity] = calculateTokensPurchasable(nativeTokens, totalTokensSold, nativeTokenDecimals, sellingTokenDecimals);
|
|
91
|
+
const [originalQuantity, calculatedQuantity] = calculateTokensPurchasable(nativeTokens, totalTokensSold, nativeTokenDecimals, sellingTokenDecimals, sale === null || sale === void 0 ? void 0 : sale.adjustableSupplyMultiplier);
|
|
81
92
|
// Fetch fee configuration and return result
|
|
82
93
|
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
83
94
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callMemeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;AAEjC,2CAAgG;AAChG,oCAKkB;AAClB,iCAAiD;AAEjD,SAAS,0BAA0B,CACjC,YAAqB,EACrB,eAAwB,EACxB,mBAA2B,EAC3B,oBAA4B;
|
|
1
|
+
{"version":3,"file":"callMemeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callNativeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"callNativeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAuD/F;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CACrC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAAC,sBAAsB,CAAC,CAoCjC"}
|
|
@@ -7,12 +7,19 @@ const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
|
|
|
7
7
|
const types_1 = require("../../api/types");
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
9
|
const fees_1 = require("./fees");
|
|
10
|
-
function calculateNativeTokensRequired(tokensToBuy, totalTokensSold, sellingTokenDecimals, nativeTokenDecimals) {
|
|
11
|
-
const basePrice =
|
|
12
|
-
|
|
10
|
+
function calculateNativeTokensRequired(tokensToBuy, totalTokensSold, sellingTokenDecimals, nativeTokenDecimals, adjustableSupplyMultiplier) {
|
|
11
|
+
const basePrice = adjustableSupplyMultiplier && adjustableSupplyMultiplier > 0
|
|
12
|
+
? new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE).dividedBy(adjustableSupplyMultiplier)
|
|
13
|
+
: new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
14
|
+
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)(adjustableSupplyMultiplier);
|
|
13
15
|
// Round tokens first, then calculate native tokens based on that rounded amount
|
|
14
16
|
const roundedTokensToBuy = tokensToBuy.toDecimalPlaces(sellingTokenDecimals, decimal_js_1.default.ROUND_DOWN);
|
|
15
|
-
// Calculate native tokens required:
|
|
17
|
+
// Calculate native tokens required:
|
|
18
|
+
// price = (basePrice / exponentFactor) *
|
|
19
|
+
// (
|
|
20
|
+
// e^(exponentFactor * (totalTokensSold + tokensToBuy) / decimals) -
|
|
21
|
+
// e^(exponentFactor * totalTokensSold / decimals)
|
|
22
|
+
// )
|
|
16
23
|
// Where:
|
|
17
24
|
// exponent1 = exponentFactor * (totalTokensSold + tokensToBuy) / decimals
|
|
18
25
|
// exponent2 = exponentFactor * totalTokensSold / decimals
|
|
@@ -52,13 +59,13 @@ async function callNativeTokenIn(ctx, buyTokenDTO) {
|
|
|
52
59
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
|
|
53
60
|
let tokensToBuy = new decimal_js_1.default(buyTokenDTO.tokenQuantity.toString());
|
|
54
61
|
// Adjust tokensToBuy if user is trying to buy more tokens than the total supply
|
|
55
|
-
if (tokensToBuy.add(totalTokensSold).greaterThan(new decimal_js_1.default(
|
|
62
|
+
if (tokensToBuy.add(totalTokensSold).greaterThan(new decimal_js_1.default(sale.maxSupply.toString()))) {
|
|
56
63
|
tokensToBuy = new decimal_js_1.default(sale.sellingTokenQuantity);
|
|
57
64
|
}
|
|
58
65
|
// Get token decimals for rounding
|
|
59
66
|
const { nativeTokenDecimals, sellingTokenDecimals } = await (0, utils_1.fetchTokenDecimals)(ctx, sale);
|
|
60
67
|
// Calculate native tokens required using bonding curve math
|
|
61
|
-
const [originalQuantity, calculatedQuantity] = calculateNativeTokensRequired(tokensToBuy, totalTokensSold, sellingTokenDecimals, nativeTokenDecimals);
|
|
68
|
+
const [originalQuantity, calculatedQuantity] = calculateNativeTokensRequired(tokensToBuy, totalTokensSold, sellingTokenDecimals, nativeTokenDecimals, sale.adjustableSupplyMultiplier);
|
|
62
69
|
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
63
70
|
return {
|
|
64
71
|
originalQuantity: originalQuantity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callNativeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;AAEjC,2CAA+F;AAC/F,oCAKkB;AAClB,iCAAiD;AAEjD,SAAS,6BAA6B,CACpC,WAAoB,EACpB,eAAwB,EACxB,oBAA4B,EAC5B,mBAA2B;
|
|
1
|
+
{"version":3,"file":"callNativeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callNativeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"callNativeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAkD/F;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,sBAAsB,CAAC,CAuBjC"}
|
|
@@ -7,11 +7,13 @@ const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
|
|
|
7
7
|
const types_1 = require("../../api/types");
|
|
8
8
|
const utils_1 = require("../utils");
|
|
9
9
|
const fees_1 = require("./fees");
|
|
10
|
-
function calculateNativeTokensReceived(sale, tokensToSellBn, sellingTokenDecimals, nativeTokenDecimals) {
|
|
10
|
+
function calculateNativeTokensReceived(sale, tokensToSellBn, sellingTokenDecimals, nativeTokenDecimals, adjustableSupplyMultiplier) {
|
|
11
11
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
|
|
12
12
|
let tokensToSell = new decimal_js_1.default(tokensToSellBn.toString());
|
|
13
|
-
const basePrice =
|
|
14
|
-
|
|
13
|
+
const basePrice = adjustableSupplyMultiplier && adjustableSupplyMultiplier > 0
|
|
14
|
+
? new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE).dividedBy(adjustableSupplyMultiplier)
|
|
15
|
+
: new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
16
|
+
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)(adjustableSupplyMultiplier);
|
|
15
17
|
let newTotalTokensSold = totalTokensSold.minus(tokensToSell);
|
|
16
18
|
if (newTotalTokensSold.lessThan(0)) {
|
|
17
19
|
tokensToSell = totalTokensSold;
|
|
@@ -49,7 +51,7 @@ function calculateNativeTokensReceived(sale, tokensToSellBn, sellingTokenDecimal
|
|
|
49
51
|
async function callNativeTokenOut(ctx, sellTokenDTO) {
|
|
50
52
|
const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
|
|
51
53
|
const { nativeTokenDecimals, sellingTokenDecimals } = await (0, utils_1.fetchTokenDecimals)(ctx, sale);
|
|
52
|
-
const [originalQuantity, calculatedQuantity] = calculateNativeTokensReceived(sale, sellTokenDTO.tokenQuantity, sellingTokenDecimals, nativeTokenDecimals);
|
|
54
|
+
const [originalQuantity, calculatedQuantity] = calculateNativeTokensReceived(sale, sellTokenDTO.tokenQuantity, sellingTokenDecimals, nativeTokenDecimals, sale.adjustableSupplyMultiplier);
|
|
53
55
|
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
54
56
|
return {
|
|
55
57
|
originalQuantity: originalQuantity,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callNativeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;AAEjC,2CAA+F;AAC/F,oCAKkB;AAClB,iCAAkF;AAElF,SAAS,6BAA6B,CACpC,IAAmB,EACnB,cAAyB,EACzB,oBAA4B,EAC5B,mBAA2B;
|
|
1
|
+
{"version":3,"file":"callNativeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/createSale.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAMjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,
|
|
1
|
+
{"version":3,"file":"createSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/createSale.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAMjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,kBAAkB,EAInB,MAAM,iBAAiB,CAAC;AAIzB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,gBAAgB,EAAE,kBAAkB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CA0H3B"}
|