@gala-chain/launchpad 1.0.13 → 1.0.15
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 +14 -1
- package/lib/src/api/types/LaunchpadDtos.js.map +1 -1
- package/lib/src/api/types/LaunchpadSale.d.ts +5 -2
- package/lib/src/api/types/LaunchpadSale.d.ts.map +1 -1
- package/lib/src/api/types/LaunchpadSale.js +35 -9
- package/lib/src/api/types/LaunchpadSale.js.map +1 -1
- package/lib/src/chaincode/LaunchpadContract.js +6 -6
- package/lib/src/chaincode/LaunchpadContract.js.map +1 -1
- package/lib/src/chaincode/launchpad/buyExactToken.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/buyExactToken.js +18 -42
- package/lib/src/chaincode/launchpad/buyExactToken.js.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.js +12 -43
- package/lib/src/chaincode/launchpad/buyWithNative.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js +13 -9
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js +46 -22
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js +35 -14
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js +17 -12
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js +1 -1
- package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js.map +1 -1
- package/lib/src/chaincode/launchpad/createSale.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/createSale.js +15 -1
- package/lib/src/chaincode/launchpad/createSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/fees.d.ts +11 -0
- package/lib/src/chaincode/launchpad/fees.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/fees.js +42 -3
- package/lib/src/chaincode/launchpad/fees.js.map +1 -1
- package/lib/src/chaincode/launchpad/finaliseSale.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/finaliseSale.js +7 -4
- package/lib/src/chaincode/launchpad/finaliseSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.js +14 -23
- package/lib/src/chaincode/launchpad/sellExactToken.js.map +1 -1
- package/lib/src/chaincode/launchpad/sellWithNative.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/sellWithNative.js +10 -19
- package/lib/src/chaincode/launchpad/sellWithNative.js.map +1 -1
- package/lib/src/chaincode/test/launchpadgala.d.ts.map +1 -1
- package/lib/src/chaincode/test/launchpadgala.js +2 -1
- package/lib/src/chaincode/test/launchpadgala.js.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts +4 -0
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.js +19 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.js.map +1 -1
- package/lib/src/cli.js +3 -1
- package/lib/src/cli.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/api/types/LaunchpadDtos.ts +15 -1
- package/src/api/types/LaunchpadSale.ts +32 -10
- package/src/chaincode/LaunchpadContract.ts +3 -3
- package/src/chaincode/launchpad/buyExactToken.spec.ts +3 -38
- package/src/chaincode/launchpad/buyExactToken.ts +22 -56
- package/src/chaincode/launchpad/buyWithNative.spec.ts +105 -45
- package/src/chaincode/launchpad/buyWithNative.ts +15 -65
- package/src/chaincode/launchpad/callMemeTokenIn.ts +36 -12
- package/src/chaincode/launchpad/callMemeTokenOut.spec.ts +2 -2
- package/src/chaincode/launchpad/callMemeTokenOut.ts +72 -26
- package/src/chaincode/launchpad/callNativeTokenIn.ts +62 -19
- package/src/chaincode/launchpad/callNativeTokenOut.ts +38 -15
- package/src/chaincode/launchpad/configureLaunchpadFeeConfig.spec.ts +0 -1
- package/src/chaincode/launchpad/configureLaunchpadFeeConfig.ts +1 -1
- package/src/chaincode/launchpad/createSale.ts +26 -3
- package/src/chaincode/launchpad/fees.ts +55 -3
- package/src/chaincode/launchpad/finaliseSale.ts +7 -4
- package/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.spec.ts +150 -68
- package/src/chaincode/launchpad/sellExactToken.spec.ts +4 -81
- package/src/chaincode/launchpad/sellExactToken.ts +16 -25
- package/src/chaincode/launchpad/sellWithNative.spec.ts +2 -42
- package/src/chaincode/launchpad/sellWithNative.ts +14 -23
- package/src/chaincode/test/launchpadgala.ts +3 -1
- package/src/chaincode/utils/launchpadSaleUtils.ts +25 -1
- package/src/cli.ts +3 -1
|
@@ -4,27 +4,30 @@ exports.callNativeTokenOut = void 0;
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
6
6
|
const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
|
|
7
|
+
const types_1 = require("../../api/types");
|
|
7
8
|
const utils_1 = require("../utils");
|
|
8
9
|
const fees_1 = require("./fees");
|
|
9
|
-
function calculateNativeTokensReceived(sale, tokensToSellBn) {
|
|
10
|
+
function calculateNativeTokensReceived(sale, tokensToSellBn, sellingTokenDecimals, nativeTokenDecimals) {
|
|
10
11
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
|
|
11
12
|
let tokensToSell = new decimal_js_1.default(tokensToSellBn.toString());
|
|
12
|
-
const basePrice = new decimal_js_1.default(
|
|
13
|
+
const basePrice = new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
13
14
|
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)();
|
|
14
15
|
let newTotalTokensSold = totalTokensSold.minus(tokensToSell);
|
|
15
|
-
if (newTotalTokensSold.
|
|
16
|
+
if (newTotalTokensSold.lessThan(0)) {
|
|
16
17
|
tokensToSell = totalTokensSold;
|
|
17
18
|
newTotalTokensSold = new decimal_js_1.default(0);
|
|
18
19
|
}
|
|
19
|
-
|
|
20
|
+
// Round tokens first, then calculate native tokens based on that rounded amount
|
|
21
|
+
const roundedTokensToSell = tokensToSell.toDecimalPlaces(sellingTokenDecimals, decimal_js_1.default.ROUND_UP);
|
|
22
|
+
const exponent1 = exponentFactor.mul(newTotalTokensSold.add(roundedTokensToSell)).div(decimals);
|
|
20
23
|
const exponent2 = exponentFactor.mul(newTotalTokensSold).div(decimals);
|
|
21
24
|
const eResult1 = euler.pow(exponent1);
|
|
22
25
|
const eResult2 = euler.pow(exponent2);
|
|
23
26
|
const constantFactor = basePrice.div(exponentFactor);
|
|
24
27
|
const differenceOfExponentials = eResult1.minus(eResult2);
|
|
25
28
|
const price = constantFactor.mul(differenceOfExponentials);
|
|
26
|
-
const roundedPrice = price.toDecimalPlaces(
|
|
27
|
-
return roundedPrice.toFixed();
|
|
29
|
+
const roundedPrice = price.toDecimalPlaces(nativeTokenDecimals, decimal_js_1.default.ROUND_DOWN);
|
|
30
|
+
return [roundedTokensToSell.toFixed(), roundedPrice.toFixed()];
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
33
|
* Calculates the amount of native tokens a user would receive when selling
|
|
@@ -37,21 +40,23 @@ function calculateNativeTokensReceived(sale, tokensToSellBn) {
|
|
|
37
40
|
* @param sellTokenDTO - The data transfer object containing the sale address
|
|
38
41
|
* and the exact amount of tokens to be sold.
|
|
39
42
|
*
|
|
40
|
-
* @returns A promise that resolves to a
|
|
41
|
-
*
|
|
43
|
+
* @returns A promise that resolves to a TradeCalculationResDto object containing the calculated
|
|
44
|
+
* quantity of native tokens received, the quantity of tokens required, and extra fees.
|
|
42
45
|
*
|
|
43
46
|
* @throws DefaultError if the calculated new total tokens sold is less than zero
|
|
44
47
|
* or if the input amount is invalid.
|
|
45
48
|
*/
|
|
46
49
|
async function callNativeTokenOut(ctx, sellTokenDTO) {
|
|
47
50
|
const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
|
|
48
|
-
const
|
|
51
|
+
const { nativeTokenDecimals, sellingTokenDecimals } = await (0, utils_1.fetchTokenDecimals)(ctx, sale);
|
|
52
|
+
const [originalQuantity, calculatedQuantity] = calculateNativeTokensReceived(sale, sellTokenDTO.tokenQuantity, sellingTokenDecimals, nativeTokenDecimals);
|
|
49
53
|
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
50
54
|
return {
|
|
51
|
-
|
|
55
|
+
originalQuantity: originalQuantity,
|
|
56
|
+
calculatedQuantity: calculatedQuantity,
|
|
52
57
|
extraFees: {
|
|
53
|
-
reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, (0, bignumber_js_1.default)(
|
|
54
|
-
transactionFees: (0, fees_1.calculateTransactionFee)((0, bignumber_js_1.default)(
|
|
58
|
+
reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, (0, bignumber_js_1.default)(calculatedQuantity)).toString(),
|
|
59
|
+
transactionFees: (0, fees_1.calculateTransactionFee)((0, bignumber_js_1.default)(calculatedQuantity), launchpadFeeAddressConfiguration === null || launchpadFeeAddressConfiguration === void 0 ? void 0 : launchpadFeeAddressConfiguration.feeAmount)
|
|
55
60
|
}
|
|
56
61
|
};
|
|
57
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"callNativeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;
|
|
1
|
+
{"version":3,"file":"callNativeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,7 +33,7 @@ const types_1 = require("../../api/types");
|
|
|
33
33
|
async function configureLaunchpadFeeAddress(ctx, dto) {
|
|
34
34
|
var _a, _b, _c, _d, _e, _f;
|
|
35
35
|
// Validate input: at least one field must be present
|
|
36
|
-
if (!dto.newPlatformFeeAddress && !((_a = dto.newAuthorities) === null || _a === void 0 ? void 0 : _a.length) &&
|
|
36
|
+
if (!dto.newPlatformFeeAddress && !((_a = dto.newAuthorities) === null || _a === void 0 ? void 0 : _a.length) && dto.newFeeAmount === undefined) {
|
|
37
37
|
throw new api_1.ValidationFailedError("None of the input fields are present.");
|
|
38
38
|
}
|
|
39
39
|
const curatorOrgMsp = (_b = process.env.CURATOR_ORG_MSP) !== null && _b !== void 0 ? _b : "CuratorOrg";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"configureLaunchpadFeeConfig.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/configureLaunchpadFeeConfig.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAkG;AAElG,qDAAuE;AAEvE,2CAAsF;AAEtF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,4BAA4B,CAChD,GAAqB,EACrB,GAAoC;;IAEpC,qDAAqD;IACrD,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,cAAc,0CAAE,MAAM,CAAA,IAAI,
|
|
1
|
+
{"version":3,"file":"configureLaunchpadFeeConfig.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/configureLaunchpadFeeConfig.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAkG;AAElG,qDAAuE;AAEvE,2CAAsF;AAEtF;;;;;;;;;;;GAWG;AACI,KAAK,UAAU,4BAA4B,CAChD,GAAqB,EACrB,GAAoC;;IAEpC,qDAAqD;IACrD,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,CAAA,MAAA,GAAG,CAAC,cAAc,0CAAE,MAAM,CAAA,IAAI,GAAG,CAAC,YAAY,KAAK,SAAS,EAAE;QAC/F,MAAM,IAAI,2BAAqB,CAAC,uCAAuC,CAAC,CAAC;KAC1E;IAED,MAAM,aAAa,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,eAAe,mCAAI,YAAY,CAAC;IAElE,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,0BAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1E,kDAAkD;IAClD,IAAI,kBAAkB,GAAG,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,0BAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACtF,MAAM,UAAU,GAAG,gBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,6CAA6C;QAC7C,IAAI,UAAU,CAAC,OAAO,CAAC,eAAS,CAAC,SAAS,CAAC,EAAE;YAC3C,OAAO,SAAS,CAAC;SAClB;aAAM;YACL,MAAM,UAAU,CAAC;SAClB;IACH,CAAC,CAAC,CAAC;IAEH,sBAAsB;IACtB,IAAI,GAAG,CAAC,cAAc,CAAC,QAAQ,EAAE,KAAK,aAAa,EAAE;QACnD,IAAI,CAAC,kBAAkB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;YACpF,MAAM,IAAI,uBAAiB,CAAC,eAAe,GAAG,CAAC,WAAW,wCAAwC,CAAC,CAAC;SACrG;KACF;IAED,mDAAmD;IACnD,IAAI,CAAC,kBAAkB,EAAE;QACvB,uDAAuD;QACvD,IAAI,CAAC,GAAG,CAAC,qBAAqB,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;YACnD,MAAM,IAAI,2BAAqB,CAC7B,yGAAyG,CAC1G,CAAC;SACH;QACD,2BAA2B;QAC3B,kBAAkB,GAAG,IAAI,0BAAkB,CACzC,GAAG,CAAC,qBAAqB,EACzB,GAAG,CAAC,YAAY,EAChB,MAAA,GAAG,CAAC,cAAc,mCAAI,CAAC,GAAG,CAAC,WAAW,CAAC,CACxC,CAAC;KACH;SAAM,IAAI,kBAAkB,IAAI,kBAAkB,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE;QACzF,wDAAwD;QACxD,kBAAkB,CAAC,eAAe,CAChC,MAAA,GAAG,CAAC,qBAAqB,mCAAI,kBAAkB,CAAC,UAAU,EAC1D,MAAA,GAAG,CAAC,YAAY,mCAAI,kBAAkB,CAAC,SAAS,EAChD,MAAA,GAAG,CAAC,cAAc,mCAAI,kBAAkB,CAAC,WAAW,CACrD,CAAC;KACH;SAAM;QACL,MAAM,IAAI,uBAAiB,CAAC,eAAe,GAAG,CAAC,WAAW,wCAAwC,CAAC,CAAC;KACrG;IAED,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC;IAE9C,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AA3DD,oEA2DC"}
|
|
@@ -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,CAqH3B"}
|
|
@@ -71,7 +71,7 @@ async function createSale(ctx, launchpadDetails) {
|
|
|
71
71
|
network: "GC",
|
|
72
72
|
tokenClass: tokenInstanceKey.getTokenClassKey(),
|
|
73
73
|
isNonFungible: false,
|
|
74
|
-
decimals:
|
|
74
|
+
decimals: types_1.LaunchpadSale.SELLING_TOKEN_DECIMALS,
|
|
75
75
|
name: launchpadDetails.tokenName,
|
|
76
76
|
symbol: launchpadDetails.tokenSymbol,
|
|
77
77
|
description: launchpadDetails.tokenDescription,
|
|
@@ -103,6 +103,20 @@ async function createSale(ctx, launchpadDetails) {
|
|
|
103
103
|
const tradeStatus = await (0, buyWithNative_1.buyWithNative)(ctx, nativeTokenDto);
|
|
104
104
|
isSaleFinalized = tradeStatus.isFinalized;
|
|
105
105
|
}
|
|
106
|
+
// handling the optional saleStartTime after the preBuyQuantity allows
|
|
107
|
+
// creators to still optionally specify a pre-buy even when a
|
|
108
|
+
// sale is marked Upcoming / Coming Soon.
|
|
109
|
+
// Otherwise `buyWithNative` would throw an error when validating the sale is active.
|
|
110
|
+
if (launchpadDetails.saleStartTime !== undefined) {
|
|
111
|
+
launchpad.saleStartTime = launchpadDetails.saleStartTime;
|
|
112
|
+
// handle edge case
|
|
113
|
+
// if a sale was immediately sold out with a pre-buy on creation,
|
|
114
|
+
// do not set the ended sale back to UPCOMING
|
|
115
|
+
if (launchpad.saleStatus !== types_1.SaleStatus.END) {
|
|
116
|
+
launchpad.saleStatus = types_1.SaleStatus.UPCOMING;
|
|
117
|
+
}
|
|
118
|
+
await (0, chaincode_1.putChainObject)(ctx, launchpad);
|
|
119
|
+
}
|
|
106
120
|
// Return the response object
|
|
107
121
|
return {
|
|
108
122
|
image: launchpadDetails.tokenImage,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/createSale.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,
|
|
1
|
+
{"version":3,"file":"createSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/createSale.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,15 @@ import { LaunchpadSale } from "../../api/types";
|
|
|
4
4
|
export declare function calculateReverseBondingCurveFee(sale: LaunchpadSale, nativeTokensToReceive: BigNumber): BigNumber;
|
|
5
5
|
export declare function payReverseBondingCurveFee(ctx: GalaChainContext, sale: LaunchpadSale, nativeTokensToReceive: BigNumber, maxAcceptableFee?: BigNumber): Promise<void>;
|
|
6
6
|
export declare function calculateTransactionFee(tokensBeingTraded: BigNumber, feeAmount?: number): string;
|
|
7
|
+
/**
|
|
8
|
+
* Transfers transaction fees to the launchpad fee address if applicable.
|
|
9
|
+
* Optionally validates that the user has sufficient balance when nativeTokensRequired is provided.
|
|
10
|
+
*
|
|
11
|
+
* @param ctx - The context object providing access to the GalaChain environment.
|
|
12
|
+
* @param sale - The launchpad sale object.
|
|
13
|
+
* @param transactionFees - The transaction fees amount (as BigNumber or string).
|
|
14
|
+
* @param nativeToken - The native token instance key (returned from sale.fetchNativeTokenInstanceKey()).
|
|
15
|
+
* @param nativeTokensRequired - Optional. If provided, validates user has sufficient balance for fees + required tokens.
|
|
16
|
+
*/
|
|
17
|
+
export declare function transferTransactionFees(ctx: GalaChainContext, sale: LaunchpadSale, transactionFees: BigNumber | string, nativeToken: ReturnType<LaunchpadSale["fetchNativeTokenInstanceKey"]>, nativeTokensRequired?: BigNumber): Promise<void>;
|
|
7
18
|
//# sourceMappingURL=fees.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,
|
|
1
|
+
{"version":3,"file":"fees.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAMjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAOhD,wBAAgB,+BAA+B,CAAC,IAAI,EAAE,aAAa,EAAE,qBAAqB,EAAE,SAAS,aAmBpG;AAED,wBAAsB,yBAAyB,CAC7C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,aAAa,EACnB,qBAAqB,EAAE,SAAS,EAChC,gBAAgB,CAAC,EAAE,SAAS,iBA+C7B;AAED,wBAAgB,uBAAuB,CAAC,iBAAiB,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,MAAM,UAEvF;AAED;;;;;;;;;GASG;AACH,wBAAsB,uBAAuB,CAC3C,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,aAAa,EACnB,eAAe,EAAE,SAAS,GAAG,MAAM,EACnC,WAAW,EAAE,UAAU,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,EACrE,oBAAoB,CAAC,EAAE,SAAS,GAC/B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateTransactionFee = exports.payReverseBondingCurveFee = exports.calculateReverseBondingCurveFee = void 0;
|
|
3
|
+
exports.transferTransactionFees = exports.calculateTransactionFee = exports.payReverseBondingCurveFee = exports.calculateReverseBondingCurveFee = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/*
|
|
6
6
|
* Copyright (c) Gala Games Inc. All rights reserved.
|
|
@@ -19,10 +19,11 @@ const tslib_1 = require("tslib");
|
|
|
19
19
|
const api_1 = require("@gala-chain/api");
|
|
20
20
|
const chaincode_1 = require("@gala-chain/chaincode");
|
|
21
21
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
22
|
+
const types_1 = require("../../api/types");
|
|
22
23
|
const error_1 = require("../../api/utils/error");
|
|
23
24
|
const utils_1 = require("../utils");
|
|
24
25
|
const REVERSE_BONDING_CURVE_FEE_CODE = "LaunchpadReverseBondingCurveFee";
|
|
25
|
-
const NATIVE_TOKEN_DECIMALS =
|
|
26
|
+
const NATIVE_TOKEN_DECIMALS = types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS;
|
|
26
27
|
function calculateReverseBondingCurveFee(sale, nativeTokensToReceive) {
|
|
27
28
|
if (!sale.reverseBondingCurveConfiguration ||
|
|
28
29
|
sale.reverseBondingCurveConfiguration.maxFeePortion.isZero()) {
|
|
@@ -82,7 +83,45 @@ async function payReverseBondingCurveFee(ctx, sale, nativeTokensToReceive, maxAc
|
|
|
82
83
|
}
|
|
83
84
|
exports.payReverseBondingCurveFee = payReverseBondingCurveFee;
|
|
84
85
|
function calculateTransactionFee(tokensBeingTraded, feeAmount) {
|
|
85
|
-
return tokensBeingTraded.multipliedBy(feeAmount !== null && feeAmount !== void 0 ? feeAmount : 0).toFixed(
|
|
86
|
+
return tokensBeingTraded.multipliedBy(feeAmount !== null && feeAmount !== void 0 ? feeAmount : 0).toFixed(NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_UP);
|
|
86
87
|
}
|
|
87
88
|
exports.calculateTransactionFee = calculateTransactionFee;
|
|
89
|
+
/**
|
|
90
|
+
* Transfers transaction fees to the launchpad fee address if applicable.
|
|
91
|
+
* Optionally validates that the user has sufficient balance when nativeTokensRequired is provided.
|
|
92
|
+
*
|
|
93
|
+
* @param ctx - The context object providing access to the GalaChain environment.
|
|
94
|
+
* @param sale - The launchpad sale object.
|
|
95
|
+
* @param transactionFees - The transaction fees amount (as BigNumber or string).
|
|
96
|
+
* @param nativeToken - The native token instance key (returned from sale.fetchNativeTokenInstanceKey()).
|
|
97
|
+
* @param nativeTokensRequired - Optional. If provided, validates user has sufficient balance for fees + required tokens.
|
|
98
|
+
*/
|
|
99
|
+
async function transferTransactionFees(ctx, sale, transactionFees, nativeToken, nativeTokensRequired) {
|
|
100
|
+
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
101
|
+
const transactionFeesBn = typeof transactionFees === "string" ? new bignumber_js_1.default(transactionFees) : transactionFees;
|
|
102
|
+
// Check if transaction fees is greater than 0 and if the launchpad fee address configuration where
|
|
103
|
+
// the fees are sent to is defined
|
|
104
|
+
if (!launchpadFeeAddressConfiguration || !transactionFeesBn.isGreaterThan(0)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// If nativeTokensRequired is provided, validate user has sufficient balance
|
|
108
|
+
if (nativeTokensRequired) {
|
|
109
|
+
const totalRequired = nativeTokensRequired.plus(transactionFeesBn);
|
|
110
|
+
const buyerBalance = await (0, chaincode_1.fetchOrCreateBalance)(ctx, ctx.callingUser, sale.nativeToken);
|
|
111
|
+
// Check if the buyer has sufficient balance to pay the transaction fees
|
|
112
|
+
if (buyerBalance.getQuantityTotal().isLessThan(totalRequired)) {
|
|
113
|
+
throw new api_1.ValidationFailedError(`Insufficient balance: Total amount required including fee is ${totalRequired}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Transfer transaction fees to the launchpad fee address
|
|
117
|
+
await (0, chaincode_1.transferToken)(ctx, {
|
|
118
|
+
from: ctx.callingUser,
|
|
119
|
+
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
120
|
+
tokenInstanceKey: nativeToken,
|
|
121
|
+
quantity: transactionFeesBn,
|
|
122
|
+
allowancesToUse: [],
|
|
123
|
+
authorizedOnBehalf: undefined
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
exports.transferTransactionFees = transferTransactionFees;
|
|
88
127
|
//# sourceMappingURL=fees.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finaliseSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,gBAAgB,EAOjB,MAAM,uBAAuB,CAAC;AAgB/B,OAAO,EAAkC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhF,wBAAsB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"finaliseSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,gBAAgB,EAOjB,MAAM,uBAAuB,CAAC;AAgB/B,OAAO,EAAkC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhF,wBAAsB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J5F"}
|
|
@@ -44,7 +44,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
44
44
|
tokenInstanceKey: nativeToken,
|
|
45
45
|
quantity: new bignumber_js_1.default(sale.nativeTokenQuantity)
|
|
46
46
|
.times(ownerAllocationPercentage)
|
|
47
|
-
.decimalPlaces(
|
|
47
|
+
.decimalPlaces(types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_DOWN),
|
|
48
48
|
allowancesToUse: [],
|
|
49
49
|
authorizedOnBehalf: {
|
|
50
50
|
callingOnBehalf: vaultAddressAlias,
|
|
@@ -57,7 +57,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
57
57
|
tokenInstanceKey: nativeToken,
|
|
58
58
|
quantity: new bignumber_js_1.default(sale.nativeTokenQuantity)
|
|
59
59
|
.times(platformFeePercentage)
|
|
60
|
-
.decimalPlaces(
|
|
60
|
+
.decimalPlaces(types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_DOWN),
|
|
61
61
|
allowancesToUse: [],
|
|
62
62
|
authorizedOnBehalf: {
|
|
63
63
|
callingOnBehalf: vaultAddressAlias,
|
|
@@ -77,7 +77,10 @@ async function finalizeSale(ctx, sale) {
|
|
|
77
77
|
}
|
|
78
78
|
const poolInfo = await (0, dex_1.getSlot0)(ctx, poolDTO);
|
|
79
79
|
// Proceed normally if price in the pool is within an acceptable range
|
|
80
|
-
const priceCloseEnough = sqrtPrice
|
|
80
|
+
const priceCloseEnough = sqrtPrice
|
|
81
|
+
.minus(poolInfo.sqrtPrice)
|
|
82
|
+
.abs()
|
|
83
|
+
.isLessThanOrEqualTo(sqrtPrice.multipliedBy(0.05));
|
|
81
84
|
const expectedNativeTokenRequired = new bignumber_js_1.default(sale.nativeTokenQuantity).times(liquidityAllocationPercentage);
|
|
82
85
|
const isPriceGreaterThanExpected = poolInfo.sqrtPrice.isGreaterThan(sqrtPrice);
|
|
83
86
|
const expectedSaleTokenRequired = expectedNativeTokenRequired.times(finalPrice);
|
|
@@ -132,7 +135,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
132
135
|
exports.finalizeSale = finalizeSale;
|
|
133
136
|
function calculateFinalLaunchpadPrice(sale, areTokensSorted) {
|
|
134
137
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
|
|
135
|
-
const basePrice = new decimal_js_1.default(
|
|
138
|
+
const basePrice = new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
136
139
|
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)();
|
|
137
140
|
const exponent = exponentFactor.mul(totalTokensSold).div(decimals);
|
|
138
141
|
const multiplicand = euler.pow(exponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finaliseSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,4BAA4B;AAC5B,yCAAoD;AACpD,qDAQ+B;AAC/B,yCAWyB;AACzB,wEAAqC;AACrC,oEAAiC;AAEjC,2CAAgF;AAChF,iDAAgE;AAChE,oCAAyE;AAElE,KAAK,UAAU,YAAY,CAAC,GAAqB,EAAE,IAAmB;IAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,sCAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,sCAA8B,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE5G,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,IAAI,+BAAuB,CAAC,kDAAkD,CAAC,CAAC;KACvF;IAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,yBAAyB,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,MAAM,6BAA6B,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzG,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtD,MAAM,iBAAiB,GAAG,MAAM,IAAA,4BAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzE,MAAM,IAAA,yBAAa,EAAC,GAAG,EAAE;QACvB,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,IAAI,CAAC,SAAS;QAClB,gBAAgB,EAAE,WAAW;QAC7B,QAAQ,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC9C,KAAK,CAAC,yBAAyB,CAAC;aAChC,aAAa,CAAC,CAAC,EAAE,sBAAS,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"finaliseSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"sellExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,WAAW,CAAC,CAoFtB"}
|
|
@@ -46,41 +46,32 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
46
46
|
const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
|
|
47
47
|
// Determine how much native token (e.g., GALA) the user will receive for the exact token quantity
|
|
48
48
|
const callNativeTokenOutResult = await (0, callNativeTokenOut_1.callNativeTokenOut)(ctx, sellTokenDTO);
|
|
49
|
-
const
|
|
50
|
-
const
|
|
49
|
+
const tokensBeingSold = new bignumber_js_1.BigNumber(callNativeTokenOutResult.originalQuantity); // number of tokens user wants to sell
|
|
50
|
+
const nativeTokensPayout = new bignumber_js_1.BigNumber(callNativeTokenOutResult.calculatedQuantity); // number of native tokens user will receive
|
|
51
|
+
const transactionFees = new bignumber_js_1.BigNumber(callNativeTokenOutResult.extraFees.transactionFees); // transaction fees
|
|
51
52
|
const nativeTokensLeftInVault = new bignumber_js_1.BigNumber(sale.nativeTokenQuantity);
|
|
52
53
|
const nativeToken = sale.fetchNativeTokenInstanceKey();
|
|
53
54
|
const memeToken = sale.fetchSellingTokenInstanceKey();
|
|
54
55
|
// Abort if the vault doesn't have enough native tokens to pay the user
|
|
55
|
-
if (
|
|
56
|
+
if (nativeTokensPayout.isGreaterThan(nativeTokensLeftInVault)) {
|
|
56
57
|
throw new api_1.ValidationFailedError("Not enough GALA in sale contract to carry out this operation.");
|
|
57
58
|
}
|
|
58
59
|
// Enforce slippage tolerance: expected amount must not be greater than what will actually be received
|
|
59
60
|
if (sellTokenDTO.expectedNativeToken &&
|
|
60
|
-
sellTokenDTO.expectedNativeToken.
|
|
61
|
-
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedNativeToken.toString()}, but only ${
|
|
61
|
+
sellTokenDTO.expectedNativeToken.isGreaterThan(nativeTokensPayout)) {
|
|
62
|
+
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedNativeToken.toString()}, but only ${nativeTokensPayout.toString()} tokens can be provided. Reduce the expected amount or adjust your slippage tolerance.`);
|
|
62
63
|
}
|
|
63
64
|
// The fee must be paid BEFORE the sale can happen.
|
|
64
65
|
// That means you cannot pay the fee using proceeds from the sale.
|
|
65
|
-
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale,
|
|
66
|
+
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale, nativeTokensPayout, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
|
|
66
67
|
// Transfer launchpad transaction fee if applicable
|
|
67
|
-
|
|
68
|
-
if (launchpadFeeAddressConfiguration && transactionFees) {
|
|
69
|
-
await (0, chaincode_1.transferToken)(ctx, {
|
|
70
|
-
from: ctx.callingUser,
|
|
71
|
-
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
72
|
-
tokenInstanceKey: nativeToken,
|
|
73
|
-
quantity: new bignumber_js_1.BigNumber(transactionFees),
|
|
74
|
-
allowancesToUse: [],
|
|
75
|
-
authorizedOnBehalf: undefined
|
|
76
|
-
});
|
|
77
|
-
}
|
|
68
|
+
await (0, fees_1.transferTransactionFees)(ctx, sale, transactionFees, nativeToken);
|
|
78
69
|
// Transfer meme tokens from user to vault
|
|
79
70
|
await (0, chaincode_1.transferToken)(ctx, {
|
|
80
71
|
from: ctx.callingUser,
|
|
81
72
|
to: sellTokenDTO.vaultAddress,
|
|
82
73
|
tokenInstanceKey: memeToken,
|
|
83
|
-
quantity:
|
|
74
|
+
quantity: tokensBeingSold,
|
|
84
75
|
allowancesToUse: [],
|
|
85
76
|
authorizedOnBehalf: undefined
|
|
86
77
|
});
|
|
@@ -89,7 +80,7 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
89
80
|
from: sellTokenDTO.vaultAddress,
|
|
90
81
|
to: ctx.callingUser,
|
|
91
82
|
tokenInstanceKey: nativeToken,
|
|
92
|
-
quantity:
|
|
83
|
+
quantity: nativeTokensPayout,
|
|
93
84
|
allowancesToUse: [],
|
|
94
85
|
authorizedOnBehalf: {
|
|
95
86
|
callingOnBehalf: sellTokenDTO.vaultAddress,
|
|
@@ -97,15 +88,15 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
97
88
|
}
|
|
98
89
|
});
|
|
99
90
|
// Update sale state with this transaction
|
|
100
|
-
sale.sellToken(
|
|
91
|
+
sale.sellToken(tokensBeingSold, nativeTokensPayout);
|
|
101
92
|
await (0, chaincode_1.putChainObject)(ctx, sale);
|
|
102
93
|
const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
|
|
103
94
|
return {
|
|
104
|
-
inputQuantity:
|
|
105
|
-
totalFees:
|
|
95
|
+
inputQuantity: tokensBeingSold.toFixed(),
|
|
96
|
+
totalFees: transactionFees
|
|
106
97
|
.plus((_c = (_b = sellTokenDTO.extraFees) === null || _b === void 0 ? void 0 : _b.maxAcceptableReverseBondingCurveFee) !== null && _c !== void 0 ? _c : 0)
|
|
107
98
|
.toFixed(),
|
|
108
|
-
outputQuantity:
|
|
99
|
+
outputQuantity: nativeTokensPayout.toFixed(),
|
|
109
100
|
tokenName: token.name,
|
|
110
101
|
tradeType: "Sell",
|
|
111
102
|
vaultAddress: sellTokenDTO.vaultAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAwD;AACxD,qDAAyG;AACzG,+CAAyC;AAGzC,iDAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"sellExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAKjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,
|
|
1
|
+
{"version":3,"file":"sellWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAKjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,sBAAsB,GACnC,OAAO,CAAC,WAAW,CAAC,CA6FtB"}
|
|
@@ -56,34 +56,25 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
56
56
|
const sellingToken = await (0, chaincode_1.getObjectByKey)(ctx, api_1.TokenClass, sellingTokenCompositeKey);
|
|
57
57
|
const nativeTokensLeftInVault = new bignumber_js_1.default(sale.nativeTokenQuantity);
|
|
58
58
|
// Cap nativeTokenQuantity to the vault balance if the requested amount exceeds it
|
|
59
|
-
if (nativeTokensLeftInVault.
|
|
59
|
+
if (nativeTokensLeftInVault.isLessThan(sellTokenDTO.nativeTokenQuantity)) {
|
|
60
60
|
throw new api_1.ValidationFailedError("Not enough GALA in sale contract to carry out this operation.");
|
|
61
61
|
}
|
|
62
62
|
// Calculate how many tokens need to be sold to get the requested native amount
|
|
63
63
|
const callMemeTokenInResult = await (0, callMemeTokenIn_1.callMemeTokenIn)(ctx, sellTokenDTO);
|
|
64
|
-
const transactionFees = callMemeTokenInResult.extraFees.transactionFees;
|
|
65
|
-
const
|
|
64
|
+
const transactionFees = callMemeTokenInResult.extraFees.transactionFees; // transaction fees
|
|
65
|
+
const nativeTokensPayout = new bignumber_js_1.default(callMemeTokenInResult.originalQuantity); // number of native tokens user wants to receive
|
|
66
|
+
const tokensToSell = new bignumber_js_1.default(callMemeTokenInResult.calculatedQuantity).decimalPlaces(sellingToken.decimals); // number of tokens user needs to sell
|
|
66
67
|
const nativeToken = sale.fetchNativeTokenInstanceKey();
|
|
67
68
|
const memeToken = sale.fetchSellingTokenInstanceKey();
|
|
68
69
|
// Enforce slippage tolerance
|
|
69
|
-
if (sellTokenDTO.expectedToken && sellTokenDTO.expectedToken.
|
|
70
|
+
if (sellTokenDTO.expectedToken && sellTokenDTO.expectedToken.isLessThan(tokensToSell)) {
|
|
70
71
|
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedToken.toString()}, but at least ${tokensToSell.toString()} tokens are required. Increase the expected amount or adjust your slippage tolerance.`);
|
|
71
72
|
}
|
|
72
73
|
// The fee must be paid BEFORE the sale can happen.
|
|
73
74
|
// That means you cannot pay the fee using proceeds from the sale.
|
|
74
|
-
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale,
|
|
75
|
+
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale, nativeTokensPayout, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
|
|
75
76
|
// Transfer launchpad transaction fees if applicable
|
|
76
|
-
|
|
77
|
-
if (launchpadFeeAddressConfiguration && transactionFees) {
|
|
78
|
-
await (0, chaincode_1.transferToken)(ctx, {
|
|
79
|
-
from: ctx.callingUser,
|
|
80
|
-
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
81
|
-
tokenInstanceKey: nativeToken,
|
|
82
|
-
quantity: new bignumber_js_1.default(transactionFees),
|
|
83
|
-
allowancesToUse: [],
|
|
84
|
-
authorizedOnBehalf: undefined
|
|
85
|
-
});
|
|
86
|
-
}
|
|
77
|
+
await (0, fees_1.transferTransactionFees)(ctx, sale, transactionFees, nativeToken);
|
|
87
78
|
// Send meme tokens from user to vault
|
|
88
79
|
await (0, chaincode_1.transferToken)(ctx, {
|
|
89
80
|
from: ctx.callingUser,
|
|
@@ -98,7 +89,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
98
89
|
from: sellTokenDTO.vaultAddress,
|
|
99
90
|
to: ctx.callingUser,
|
|
100
91
|
tokenInstanceKey: nativeToken,
|
|
101
|
-
quantity:
|
|
92
|
+
quantity: nativeTokensPayout,
|
|
102
93
|
allowancesToUse: [],
|
|
103
94
|
authorizedOnBehalf: {
|
|
104
95
|
callingOnBehalf: sellTokenDTO.vaultAddress,
|
|
@@ -106,7 +97,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
106
97
|
}
|
|
107
98
|
});
|
|
108
99
|
// Update internal sale tracking
|
|
109
|
-
sale.sellToken(tokensToSell,
|
|
100
|
+
sale.sellToken(tokensToSell, nativeTokensPayout);
|
|
110
101
|
await (0, chaincode_1.putChainObject)(ctx, sale);
|
|
111
102
|
const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
|
|
112
103
|
return {
|
|
@@ -114,7 +105,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
114
105
|
totalFees: new bignumber_js_1.default(transactionFees)
|
|
115
106
|
.plus((_c = (_b = sellTokenDTO.extraFees) === null || _b === void 0 ? void 0 : _b.maxAcceptableReverseBondingCurveFee) !== null && _c !== void 0 ? _c : 0)
|
|
116
107
|
.toFixed(),
|
|
117
|
-
outputQuantity:
|
|
108
|
+
outputQuantity: nativeTokensPayout.toFixed(),
|
|
118
109
|
tokenName: token.name,
|
|
119
110
|
tradeType: "Sell",
|
|
120
111
|
vaultAddress: sellTokenDTO.vaultAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAoE;AACpE,qDAM+B;AAC/B,wEAAqC;AAGrC,iDAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"sellWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadgala.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,SAAS,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"launchpadgala.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,SAAS,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HrC,wBAsBE"}
|
|
@@ -20,6 +20,7 @@ const api_1 = require("@gala-chain/api");
|
|
|
20
20
|
const test_1 = require("@gala-chain/test");
|
|
21
21
|
const utils_1 = require("@gala-chain/test/lib/src/data/utils");
|
|
22
22
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
23
|
+
const types_1 = require("../../api/types");
|
|
23
24
|
process.env.LAUNCHPAD_GALA_CLASS_COLLECTION = (_a = process.env.LAUNCHPAD_GALA_CLASS_COLLECTION) !== null && _a !== void 0 ? _a : "GALA";
|
|
24
25
|
process.env.LAUNCHPAD_GALA_CLASS_CATEGORY = (_b = process.env.LAUNCHPAD_GALA_CLASS_CATEGORY) !== null && _b !== void 0 ? _b : "Unit";
|
|
25
26
|
process.env.LAUNCHPAD_GALA_CLASS_TYPE = (_c = process.env.LAUNCHPAD_GALA_CLASS_TYPE) !== null && _c !== void 0 ? _c : "none";
|
|
@@ -33,7 +34,7 @@ const tokenClassKeyPlain = (0, utils_1.createPlainFn)({
|
|
|
33
34
|
const tokenClassPlain = (0, utils_1.createPlainFn)({
|
|
34
35
|
...tokenClassKeyPlain(),
|
|
35
36
|
description: "Generated via automated test suite.",
|
|
36
|
-
decimals:
|
|
37
|
+
decimals: types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS,
|
|
37
38
|
image: "https://app.gala.games/test-image-placeholder-url.png",
|
|
38
39
|
isNonFungible: false,
|
|
39
40
|
maxCapacity: new bignumber_js_1.default(100000000000000),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadgala.js","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCASyB;AACzB,2CAAyC;AACzC,+DAAsF;AACtF,wEAAqC;AAErC,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,mCAAI,MAAM,CAAC;AACpG,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,MAAM,CAAC;AAChG,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,MAAM,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,mCAAI,MAAM,CAAC;AAE5G,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAC;IACvC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;IACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;IACnD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;IAC3C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC;CAC/D,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAA,qBAAa,EAAC;IACpC,GAAG,kBAAkB,EAAE;IACvB,WAAW,EAAE,qCAAqC;IAClD,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"launchpadgala.js","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"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"}
|