@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.
Files changed (87) hide show
  1. package/lib/package.json +1 -1
  2. package/lib/src/api/types/LaunchpadDtos.d.ts +3 -1
  3. package/lib/src/api/types/LaunchpadDtos.d.ts.map +1 -1
  4. package/lib/src/api/types/LaunchpadDtos.js +14 -1
  5. package/lib/src/api/types/LaunchpadDtos.js.map +1 -1
  6. package/lib/src/api/types/LaunchpadSale.d.ts +5 -2
  7. package/lib/src/api/types/LaunchpadSale.d.ts.map +1 -1
  8. package/lib/src/api/types/LaunchpadSale.js +35 -9
  9. package/lib/src/api/types/LaunchpadSale.js.map +1 -1
  10. package/lib/src/chaincode/LaunchpadContract.js +6 -6
  11. package/lib/src/chaincode/LaunchpadContract.js.map +1 -1
  12. package/lib/src/chaincode/launchpad/buyExactToken.d.ts.map +1 -1
  13. package/lib/src/chaincode/launchpad/buyExactToken.js +18 -42
  14. package/lib/src/chaincode/launchpad/buyExactToken.js.map +1 -1
  15. package/lib/src/chaincode/launchpad/buyWithNative.d.ts.map +1 -1
  16. package/lib/src/chaincode/launchpad/buyWithNative.js +12 -43
  17. package/lib/src/chaincode/launchpad/buyWithNative.js.map +1 -1
  18. package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts +4 -10
  19. package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts.map +1 -1
  20. package/lib/src/chaincode/launchpad/callMemeTokenIn.js +13 -9
  21. package/lib/src/chaincode/launchpad/callMemeTokenIn.js.map +1 -1
  22. package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts +4 -10
  23. package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts.map +1 -1
  24. package/lib/src/chaincode/launchpad/callMemeTokenOut.js +46 -22
  25. package/lib/src/chaincode/launchpad/callMemeTokenOut.js.map +1 -1
  26. package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts +4 -10
  27. package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts.map +1 -1
  28. package/lib/src/chaincode/launchpad/callNativeTokenIn.js +35 -14
  29. package/lib/src/chaincode/launchpad/callNativeTokenIn.js.map +1 -1
  30. package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts +4 -10
  31. package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts.map +1 -1
  32. package/lib/src/chaincode/launchpad/callNativeTokenOut.js +17 -12
  33. package/lib/src/chaincode/launchpad/callNativeTokenOut.js.map +1 -1
  34. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js +1 -1
  35. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js.map +1 -1
  36. package/lib/src/chaincode/launchpad/createSale.d.ts.map +1 -1
  37. package/lib/src/chaincode/launchpad/createSale.js +15 -1
  38. package/lib/src/chaincode/launchpad/createSale.js.map +1 -1
  39. package/lib/src/chaincode/launchpad/fees.d.ts +11 -0
  40. package/lib/src/chaincode/launchpad/fees.d.ts.map +1 -1
  41. package/lib/src/chaincode/launchpad/fees.js +42 -3
  42. package/lib/src/chaincode/launchpad/fees.js.map +1 -1
  43. package/lib/src/chaincode/launchpad/finaliseSale.d.ts.map +1 -1
  44. package/lib/src/chaincode/launchpad/finaliseSale.js +7 -4
  45. package/lib/src/chaincode/launchpad/finaliseSale.js.map +1 -1
  46. package/lib/src/chaincode/launchpad/sellExactToken.d.ts.map +1 -1
  47. package/lib/src/chaincode/launchpad/sellExactToken.js +14 -23
  48. package/lib/src/chaincode/launchpad/sellExactToken.js.map +1 -1
  49. package/lib/src/chaincode/launchpad/sellWithNative.d.ts.map +1 -1
  50. package/lib/src/chaincode/launchpad/sellWithNative.js +10 -19
  51. package/lib/src/chaincode/launchpad/sellWithNative.js.map +1 -1
  52. package/lib/src/chaincode/test/launchpadgala.d.ts.map +1 -1
  53. package/lib/src/chaincode/test/launchpadgala.js +2 -1
  54. package/lib/src/chaincode/test/launchpadgala.js.map +1 -1
  55. package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts +4 -0
  56. package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts.map +1 -1
  57. package/lib/src/chaincode/utils/launchpadSaleUtils.js +19 -1
  58. package/lib/src/chaincode/utils/launchpadSaleUtils.js.map +1 -1
  59. package/lib/src/cli.js +3 -1
  60. package/lib/src/cli.js.map +1 -1
  61. package/lib/tsconfig.tsbuildinfo +1 -1
  62. package/package.json +1 -1
  63. package/src/api/types/LaunchpadDtos.ts +15 -1
  64. package/src/api/types/LaunchpadSale.ts +32 -10
  65. package/src/chaincode/LaunchpadContract.ts +3 -3
  66. package/src/chaincode/launchpad/buyExactToken.spec.ts +3 -38
  67. package/src/chaincode/launchpad/buyExactToken.ts +22 -56
  68. package/src/chaincode/launchpad/buyWithNative.spec.ts +105 -45
  69. package/src/chaincode/launchpad/buyWithNative.ts +15 -65
  70. package/src/chaincode/launchpad/callMemeTokenIn.ts +36 -12
  71. package/src/chaincode/launchpad/callMemeTokenOut.spec.ts +2 -2
  72. package/src/chaincode/launchpad/callMemeTokenOut.ts +72 -26
  73. package/src/chaincode/launchpad/callNativeTokenIn.ts +62 -19
  74. package/src/chaincode/launchpad/callNativeTokenOut.ts +38 -15
  75. package/src/chaincode/launchpad/configureLaunchpadFeeConfig.spec.ts +0 -1
  76. package/src/chaincode/launchpad/configureLaunchpadFeeConfig.ts +1 -1
  77. package/src/chaincode/launchpad/createSale.ts +26 -3
  78. package/src/chaincode/launchpad/fees.ts +55 -3
  79. package/src/chaincode/launchpad/finaliseSale.ts +7 -4
  80. package/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.spec.ts +150 -68
  81. package/src/chaincode/launchpad/sellExactToken.spec.ts +4 -81
  82. package/src/chaincode/launchpad/sellExactToken.ts +16 -25
  83. package/src/chaincode/launchpad/sellWithNative.spec.ts +2 -42
  84. package/src/chaincode/launchpad/sellWithNative.ts +14 -23
  85. package/src/chaincode/test/launchpadgala.ts +3 -1
  86. package/src/chaincode/utils/launchpadSaleUtils.ts +25 -1
  87. 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(sale.fetchBasePrice());
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.comparedTo(0) < 0) {
16
+ if (newTotalTokensSold.lessThan(0)) {
16
17
  tokensToSell = totalTokensSold;
17
18
  newTotalTokensSold = new decimal_js_1.default(0);
18
19
  }
19
- const exponent1 = exponentFactor.mul(newTotalTokensSold.add(tokensToSell)).div(decimals);
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(8, decimal_js_1.default.ROUND_DOWN);
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 string representing the calculated amount of
41
- * native tokens to be received, rounded down to 8 decimal places.
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 nativeTokensReceived = calculateNativeTokensReceived(sale, sellTokenDTO.tokenQuantity);
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
- calculatedQuantity: nativeTokensReceived,
55
+ originalQuantity: originalQuantity,
56
+ calculatedQuantity: calculatedQuantity,
52
57
  extraFees: {
53
- reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, (0, bignumber_js_1.default)(nativeTokensReceived)).toString(),
54
- transactionFees: (0, fees_1.calculateTransactionFee)((0, bignumber_js_1.default)(nativeTokensReceived), launchpadFeeAddressConfiguration === null || launchpadFeeAddressConfiguration === void 0 ? void 0 : launchpadFeeAddressConfiguration.feeAmount)
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;AAGjC,oCAA+F;AAC/F,iCAAkF;AAElF,SAAS,6BAA6B,CAAC,IAAmB,EAAE,cAAyB;IACnF,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAE5D,IAAI,YAAY,GAAG,IAAI,oBAAO,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC1D,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACrD,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,IAAI,kBAAkB,GAAG,eAAe,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAE7D,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;QACxC,YAAY,GAAG,eAAe,CAAC;QAC/B,kBAAkB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;KACrC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzF,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEvE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IACtC,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,cAAc,GAAG,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IACrD,MAAM,wBAAwB,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAC3D,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,oBAAO,CAAC,UAAU,CAAC,CAAC;IAElE,OAAO,YAAY,CAAC,OAAO,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,UAAU,kBAAkB,CAAC,GAAqB,EAAE,YAAmC;IACjG,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxE,MAAM,oBAAoB,GAAG,6BAA6B,CAAC,IAAI,EAAE,YAAY,CAAC,aAAa,CAAC,CAAC;IAC7F,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAE7E,OAAO;QACL,kBAAkB,EAAE,oBAAoB;QACxC,SAAS,EAAE;YACT,mBAAmB,EAAE,IAAA,sCAA+B,EAAC,IAAI,EAAE,IAAA,sBAAS,EAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE;YACtG,eAAe,EAAE,IAAA,8BAAuB,EACtC,IAAA,sBAAS,EAAC,oBAAoB,CAAC,EAC/B,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,SAAS,CAC5C;SACF;KACF,CAAC;AACJ,CAAC;AAfD,gDAeC"}
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) && !dto.newFeeAmount) {
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,CAAC,GAAG,CAAC,YAAY,EAAE;QAClF,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
+ {"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,EAAE,gBAAgB,EAAE,kBAAkB,EAAyC,MAAM,iBAAiB,CAAC;AAI9G;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,UAAU,CAC9B,GAAG,EAAE,gBAAgB,EACrB,gBAAgB,EAAE,kBAAkB,GACnC,OAAO,CAAC,gBAAgB,CAAC,CAoG3B"}
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: 18,
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":"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"}
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,EAKjB,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"}
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 = 8;
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(8, bignumber_js_1.default.ROUND_UP);
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":"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"}
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,CAuJ5F"}
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(8, bignumber_js_1.default.ROUND_DOWN),
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(8, bignumber_js_1.default.ROUND_DOWN),
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.minus(poolInfo.sqrtPrice).abs().lte(sqrtPrice.multipliedBy(0.05));
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(sale.fetchBasePrice());
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":"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"}
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,qBAAa,CAAC,qBAAqB,EAAE,sBAAS,CAAC,UAAU,CAAC;QAC3E,eAAe,EAAE,EAAE;QACnB,kBAAkB,EAAE;YAClB,eAAe,EAAE,iBAAiB;YAClC,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;KACF,CAAC,CAAC;IAEH,MAAM,IAAA,yBAAa,EAAC,GAAG,EAAE;QACvB,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,gCAAgC,CAAC,UAAU;QAC/C,gBAAgB,EAAE,WAAW;QAC7B,QAAQ,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC9C,KAAK,CAAC,qBAAqB,CAAC;aAC5B,aAAa,CAAC,qBAAa,CAAC,qBAAqB,EAAE,sBAAS,CAAC,UAAU,CAAC;QAC3E,eAAe,EAAE,EAAE;QACnB,kBAAkB,EAAE;YAClB,eAAe,EAAE,iBAAiB;YAClC,WAAW,EAAE,GAAG,CAAC,WAAW;SAC7B;KACF,CAAC,CAAC;IAEH,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC,gBAAgB,EAAE,CAAC;IACpF,MAAM,mBAAmB,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC,gBAAgB,EAAE,CAAC;IAElF,MAAM,EAAE,SAAS,EAAE,eAAe,EAAE,GAAG,IAAA,gBAAU,EAC/C,CAAC,oBAAoB,EAAE,mBAAmB,CAAC,CAAC,GAAG,CAAC,6BAAuB,CAAC,CACzE,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,4BAA4B,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;IACtF,MAAM,OAAO,GAAG,IAAI,mBAAa,CAC/B,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,EAC5D,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,EAC5D,KAAK,EAAE,+BAA+B;IACtC,SAAS,CACV,CAAC;IAEF,gDAAgD;IAChD,MAAM,IAAI,GAAG,MAAM,IAAA,iBAAW,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAC7C,IAAI,CAAC,IAAI,EAAE;QACT,MAAM,IAAA,gBAAU,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;KAChC;IACD,MAAM,QAAQ,GAAG,MAAM,IAAA,cAAQ,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC;IAE9C,sEAAsE;IACtE,MAAM,gBAAgB,GAAG,SAAS;SAC/B,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;SACzB,GAAG,EAAE;SACL,mBAAmB,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;IACrD,MAAM,2BAA2B,GAAG,IAAI,sBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,KAAK,CAC/E,6BAA6B,CAC9B,CAAC;IACF,MAAM,0BAA0B,GAAG,QAAQ,CAAC,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IAC/E,MAAM,yBAAyB,GAAG,2BAA2B,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEhF,6CAA6C;IAC7C,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,oBAAoB,CAAC;IAC5E,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,mBAAmB,CAAC;IAE5E,MAAM,eAAe,GAAG,gBAAgB;QACtC,CAAC,CAAC,2BAA2B;QAC7B,CAAC,CAAC,0BAA0B;YAC1B,CAAC,CAAC,yBAAyB;YAC3B,CAAC,CAAC,2BAA2B,CAAC;IAElC,MAAM,UAAU,GAAG,gBAAgB;QACjC,CAAC,CAAC,eAAe;QACjB,CAAC,CAAC,0BAA0B;YAC1B,CAAC,CAAC,CAAC,eAAe;YAClB,CAAC,CAAC,eAAe,CAAC;IAEtB,MAAM,gBAAgB,GAAG,IAAI,kCAA4B,CACvD,MAAM,EACN,MAAM,EACN,KAAK,EAAE,+BAA+B;IACtC,eAAe,EACf,CAAC,MAAM,EACP,MAAM,EACN,UAAU,CACX,CAAC;IAEF,MAAM,oBAAoB,GAAG,MAAM,IAAA,+BAAyB,EAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC;IAEpF,MAAM,OAAO,GAAG,IAAI,sBAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IACvE,MAAM,OAAO,GAAG,IAAI,sBAAS,CAAC,oBAAoB,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAEvE,MAAM,WAAW,GAAG,IAAI,qBAAe,CACrC,MAAM,EACN,MAAM,EACN,KAAK,EAAE,+BAA+B;IACtC,CAAC,MAAM,EACP,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EACxB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,EACxB,SAAS,CACV,CAAC;IACF,WAAW,CAAC,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;IAErD,MAAM,IAAA,kBAAY,EAAC,GAAG,EAAE,WAAW,EAAE,iBAAiB,CAAC,CAAC;IAExD,6BAA6B;IAC7B,MAAM,kBAAkB,GAAG,MAAM,IAAA,gCAAoB,EAAC,GAAG,EAAE,iBAAiB,EAAE,SAAS,CAAC,CAAC;IACzF,MAAM,wBAAwB,GAAG,IAAI,uBAAiB,EAAE,CAAC;IACzD,wBAAwB,CAAC,gBAAgB,GAAG,SAAS,CAAC;IACtD,wBAAwB,CAAC,QAAQ,GAAG,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;IAE1E,MAAM,IAAA,sBAAU,EAAC,GAAG,EAAE;QACpB,KAAK,EAAE,iBAAiB;QACxB,MAAM,EAAE,CAAC,wBAAwB,CAAC;QAClC,YAAY,EAAE,IAAI;KACnB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,iBAAiB,GAAG,MAAM,IAAA,gCAAoB,EAAC,GAAG,EAAE,iBAAiB,EAAE,WAAW,CAAC,CAAC;IAC1F,MAAM,uBAAuB,GAAG,IAAI,uBAAiB,EAAE,CAAC;IACxD,uBAAuB,CAAC,gBAAgB,GAAG,WAAW,CAAC;IACvD,uBAAuB,CAAC,QAAQ,GAAG,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;IAExE,IAAI,uBAAuB,CAAC,QAAQ,EAAE;QACpC,MAAM,IAAA,sBAAU,EAAC,GAAG,EAAE;YACpB,KAAK,EAAE,iBAAiB;YACxB,MAAM,EAAE,CAAC,uBAAuB,CAAC;YACjC,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;KACJ;IAED,qBAAqB;IACrB,IAAI,CAAC,YAAY,EAAE,CAAC;IACpB,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAClC,CAAC;AA1JD,oCA0JC;AAED,SAAS,4BAA4B,CACnC,IAAmB,EACnB,eAAwB;IAExB,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAC5D,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,qBAAa,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,YAAY,GAAG,eAAe,CAAC,CAAC,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC;IACvG,MAAM,gBAAgB,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEjD,OAAO;QACL,UAAU,EAAE,IAAI,sBAAS,CAAC,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC;QACjF,SAAS,EAAE,IAAI,sBAAS,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC;KACtD,CAAC;AACJ,CAAC"}
@@ -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,CA6FtB"}
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 nativeTokensToProvide = new bignumber_js_1.BigNumber(callNativeTokenOutResult.calculatedQuantity);
50
- const transactionFees = callNativeTokenOutResult.extraFees.transactionFees;
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 (nativeTokensLeftInVault.comparedTo(nativeTokensToProvide) < 0) {
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.comparedTo(nativeTokensToProvide) > 0) {
61
- throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedNativeToken.toString()}, but only ${nativeTokensToProvide.toString()} tokens can be provided. Reduce the expected amount or adjust your slippage tolerance.`);
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, nativeTokensToProvide, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
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
- const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
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: sellTokenDTO.tokenQuantity,
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: nativeTokensToProvide,
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(sellTokenDTO.tokenQuantity, nativeTokensToProvide);
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: sellTokenDTO.tokenQuantity.toFixed(),
105
- totalFees: new bignumber_js_1.BigNumber(transactionFees)
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: nativeTokensToProvide.toFixed(),
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":"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"}
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,EAAiB,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMrF;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,sBAAsB,GACnC,OAAO,CAAC,WAAW,CAAC,CAsGtB"}
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.comparedTo(sellTokenDTO.nativeTokenQuantity) < 0) {
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 tokensToSell = new bignumber_js_1.default(callMemeTokenInResult.calculatedQuantity).decimalPlaces(sellingToken.decimals);
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.comparedTo(tokensToSell) < 0) {
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, sellTokenDTO.nativeTokenQuantity, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
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
- const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
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: sellTokenDTO.nativeTokenQuantity,
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, sellTokenDTO.nativeTokenQuantity);
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: sellTokenDTO.nativeTokenQuantity.toFixed(),
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":"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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6HrC,wBAsBE"}
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: 8,
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":"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"}
1
+ {"version":3,"file":"launchpadgala.js","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"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"}