@gala-chain/launchpad 1.0.1 → 1.0.3

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 (110) hide show
  1. package/lib/package.json +2 -2
  2. package/lib/src/api/types/LaunchpadBatchSubmitAuthorities.d.ts +12 -0
  3. package/lib/src/api/types/LaunchpadBatchSubmitAuthorities.d.ts.map +1 -0
  4. package/lib/src/api/types/LaunchpadBatchSubmitAuthorities.js +56 -0
  5. package/lib/src/api/types/LaunchpadBatchSubmitAuthorities.js.map +1 -0
  6. package/lib/src/api/types/LaunchpadDtos.d.ts +14 -0
  7. package/lib/src/api/types/LaunchpadDtos.d.ts.map +1 -1
  8. package/lib/src/api/types/LaunchpadDtos.js +45 -1
  9. package/lib/src/api/types/LaunchpadDtos.js.map +1 -1
  10. package/lib/src/api/types/LaunchpadFeeConfig.d.ts +3 -2
  11. package/lib/src/api/types/LaunchpadFeeConfig.d.ts.map +1 -1
  12. package/lib/src/api/types/LaunchpadFeeConfig.js +15 -6
  13. package/lib/src/api/types/LaunchpadFeeConfig.js.map +1 -1
  14. package/lib/src/api/types/LaunchpadFinalizeAllocation.js +1 -2
  15. package/lib/src/api/types/LaunchpadFinalizeAllocation.js.map +1 -1
  16. package/lib/src/api/types/LaunchpadSale.js +1 -2
  17. package/lib/src/api/types/LaunchpadSale.js.map +1 -1
  18. package/lib/src/api/types/index.d.ts +1 -0
  19. package/lib/src/api/types/index.d.ts.map +1 -1
  20. package/lib/src/api/types/index.js +1 -0
  21. package/lib/src/api/types/index.js.map +1 -1
  22. package/lib/src/api/validators/decorators.js.map +1 -1
  23. package/lib/src/chaincode/LaunchpadContract.d.ts +6 -1
  24. package/lib/src/chaincode/LaunchpadContract.d.ts.map +1 -1
  25. package/lib/src/chaincode/LaunchpadContract.js +97 -0
  26. package/lib/src/chaincode/LaunchpadContract.js.map +1 -1
  27. package/lib/src/chaincode/launchpad/buyExactToken.d.ts.map +1 -1
  28. package/lib/src/chaincode/launchpad/buyExactToken.js +22 -9
  29. package/lib/src/chaincode/launchpad/buyExactToken.js.map +1 -1
  30. package/lib/src/chaincode/launchpad/buyWithNative.d.ts.map +1 -1
  31. package/lib/src/chaincode/launchpad/buyWithNative.js +31 -9
  32. package/lib/src/chaincode/launchpad/buyWithNative.js.map +1 -1
  33. package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts +1 -0
  34. package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts.map +1 -1
  35. package/lib/src/chaincode/launchpad/callMemeTokenIn.js +3 -5
  36. package/lib/src/chaincode/launchpad/callMemeTokenIn.js.map +1 -1
  37. package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts +1 -0
  38. package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts.map +1 -1
  39. package/lib/src/chaincode/launchpad/callMemeTokenOut.js +5 -5
  40. package/lib/src/chaincode/launchpad/callMemeTokenOut.js.map +1 -1
  41. package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts +1 -0
  42. package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts.map +1 -1
  43. package/lib/src/chaincode/launchpad/callNativeTokenIn.js +7 -6
  44. package/lib/src/chaincode/launchpad/callNativeTokenIn.js.map +1 -1
  45. package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts +1 -0
  46. package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts.map +1 -1
  47. package/lib/src/chaincode/launchpad/callNativeTokenOut.js +4 -5
  48. package/lib/src/chaincode/launchpad/callNativeTokenOut.js.map +1 -1
  49. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.d.ts +12 -0
  50. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.d.ts.map +1 -1
  51. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js +26 -6
  52. package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js.map +1 -1
  53. package/lib/src/chaincode/launchpad/createSale.d.ts.map +1 -1
  54. package/lib/src/chaincode/launchpad/createSale.js +10 -12
  55. package/lib/src/chaincode/launchpad/createSale.js.map +1 -1
  56. package/lib/src/chaincode/launchpad/fees.d.ts +1 -0
  57. package/lib/src/chaincode/launchpad/fees.d.ts.map +1 -1
  58. package/lib/src/chaincode/launchpad/fees.js +6 -2
  59. package/lib/src/chaincode/launchpad/fees.js.map +1 -1
  60. package/lib/src/chaincode/launchpad/fetchLaunchpadAdressConfig.js.map +1 -1
  61. package/lib/src/chaincode/launchpad/fetchSaleDetails.d.ts.map +1 -1
  62. package/lib/src/chaincode/launchpad/fetchSaleDetails.js +0 -4
  63. package/lib/src/chaincode/launchpad/fetchSaleDetails.js.map +1 -1
  64. package/lib/src/chaincode/launchpad/finaliseSale.js +3 -3
  65. package/lib/src/chaincode/launchpad/finaliseSale.js.map +1 -1
  66. package/lib/src/chaincode/launchpad/finalizeTokenAllocation.js.map +1 -1
  67. package/lib/src/chaincode/launchpad/index.d.ts +1 -0
  68. package/lib/src/chaincode/launchpad/index.d.ts.map +1 -1
  69. package/lib/src/chaincode/launchpad/index.js +1 -0
  70. package/lib/src/chaincode/launchpad/index.js.map +1 -1
  71. package/lib/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.d.ts +24 -0
  72. package/lib/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.d.ts.map +1 -0
  73. package/lib/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.js +84 -0
  74. package/lib/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.js.map +1 -0
  75. package/lib/src/chaincode/launchpad/preMintCalculation.d.ts.map +1 -1
  76. package/lib/src/chaincode/launchpad/preMintCalculation.js +0 -4
  77. package/lib/src/chaincode/launchpad/preMintCalculation.js.map +1 -1
  78. package/lib/src/chaincode/launchpad/sellExactToken.d.ts.map +1 -1
  79. package/lib/src/chaincode/launchpad/sellExactToken.js +27 -11
  80. package/lib/src/chaincode/launchpad/sellExactToken.js.map +1 -1
  81. package/lib/src/chaincode/launchpad/sellWithNative.d.ts.map +1 -1
  82. package/lib/src/chaincode/launchpad/sellWithNative.js +30 -8
  83. package/lib/src/chaincode/launchpad/sellWithNative.js.map +1 -1
  84. package/lib/src/chaincode/utils/launchpadSaleUtils.js +2 -2
  85. package/lib/src/chaincode/utils/launchpadSaleUtils.js.map +1 -1
  86. package/lib/src/cli.js.map +1 -1
  87. package/lib/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +3 -3
  89. package/src/api/types/LaunchpadBatchSubmitAuthorities.ts +53 -0
  90. package/src/api/types/LaunchpadDtos.ts +38 -0
  91. package/src/api/types/LaunchpadFeeConfig.ts +13 -4
  92. package/src/api/types/index.ts +1 -0
  93. package/src/chaincode/LaunchpadContract.ts +104 -1
  94. package/src/chaincode/launchpad/buyExactToken.ts +18 -6
  95. package/src/chaincode/launchpad/buyWithNative.ts +29 -6
  96. package/src/chaincode/launchpad/callMemeTokenIn.ts +9 -8
  97. package/src/chaincode/launchpad/callMemeTokenOut.ts +9 -7
  98. package/src/chaincode/launchpad/callNativeTokenIn.ts +11 -8
  99. package/src/chaincode/launchpad/callNativeTokenOut.ts +9 -8
  100. package/src/chaincode/launchpad/configureLaunchpadFeeConfig.ts +27 -4
  101. package/src/chaincode/launchpad/createSale.ts +1 -5
  102. package/src/chaincode/launchpad/fees.ts +5 -1
  103. package/src/chaincode/launchpad/fetchSaleDetails.ts +0 -5
  104. package/src/chaincode/launchpad/finaliseSale.ts +3 -3
  105. package/src/chaincode/launchpad/index.ts +1 -0
  106. package/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.spec.ts +185 -0
  107. package/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.ts +105 -0
  108. package/src/chaincode/launchpad/preMintCalculation.ts +0 -5
  109. package/src/chaincode/launchpad/sellExactToken.ts +30 -15
  110. package/src/chaincode/launchpad/sellWithNative.ts +31 -7
@@ -1,4 +1,5 @@
1
1
  "use strict";
2
+ var _a, _b;
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
4
  exports.LaunchpadContract = void 0;
4
5
  const tslib_1 = require("tslib");
@@ -16,6 +17,7 @@ const tslib_1 = require("tslib");
16
17
  * See the License for the specific language governing permissions and
17
18
  * limitations under the License.
18
19
  */
20
+ const api_1 = require("@gala-chain/api");
19
21
  const chaincode_1 = require("@gala-chain/chaincode");
20
22
  const package_json_1 = require("../../package.json");
21
23
  const types_1 = require("../api/types");
@@ -67,6 +69,56 @@ class LaunchpadContract extends chaincode_1.GalaContract {
67
69
  async FetchLaunchpadFeeConfig(ctx) {
68
70
  return (0, launchpad_1.fetchLaunchpadFeeConfig)(ctx);
69
71
  }
72
+ async BatchSubmit(ctx, batchDto) {
73
+ var _a;
74
+ // Check if the calling user is authorized to submit batches
75
+ const batchAuthorities = await (0, launchpad_1.fetchLaunchpadBatchSubmitAuthorities)(ctx);
76
+ if (!batchAuthorities.isAuthorized(ctx.callingUser)) {
77
+ throw new api_1.UnauthorizedError(`CallingUser ${ctx.callingUser} is not authorized to submit batches. ` +
78
+ `Authorized users: ${batchAuthorities.getAuthorities().join(", ")}`);
79
+ }
80
+ const responses = [];
81
+ const softWritesLimit = (_a = batchDto.writesLimit) !== null && _a !== void 0 ? _a : api_1.BatchDto.WRITES_DEFAULT_LIMIT;
82
+ const writesLimit = Math.min(softWritesLimit, api_1.BatchDto.WRITES_HARD_LIMIT);
83
+ let writesCount = ctx.stub.getWritesCount();
84
+ for (const [index, op] of batchDto.operations.entries()) {
85
+ // Use sandboxed context to avoid flushes of writes and deletes, and populate
86
+ // the stub with current writes and deletes.
87
+ const sandboxCtx = ctx.createReadOnlyContext(index);
88
+ sandboxCtx.stub.setWrites(ctx.stub.getWrites());
89
+ sandboxCtx.stub.setDeletes(ctx.stub.getDeletes());
90
+ // Execute the operation. Collect both successful and failed responses.
91
+ let response;
92
+ try {
93
+ if (writesCount >= writesLimit) {
94
+ throw new chaincode_1.BatchWriteLimitExceededError(writesLimit);
95
+ }
96
+ const method = (0, chaincode_1.getApiMethod)(this, op.method, (m) => m.isWrite && m.methodName !== "BatchSubmit");
97
+ response = await this[method.methodName](sandboxCtx, op.dto);
98
+ }
99
+ catch (error) {
100
+ response = api_1.GalaChainResponse.Error(error);
101
+ }
102
+ responses.push(response);
103
+ // Update the current context with the writes and deletes if the operation
104
+ // is successful.
105
+ if (api_1.GalaChainResponse.isSuccess(response)) {
106
+ ctx.stub.setWrites(sandboxCtx.stub.getWrites());
107
+ ctx.stub.setDeletes(sandboxCtx.stub.getDeletes());
108
+ writesCount = ctx.stub.getWritesCount();
109
+ }
110
+ }
111
+ return responses;
112
+ }
113
+ async AuthorizeBatchSubmitter(ctx, dto) {
114
+ return await (0, launchpad_1.authorizeLaunchpadBatchSubmitter)(ctx, dto);
115
+ }
116
+ async DeauthorizeBatchSubmitter(ctx, dto) {
117
+ return await (0, launchpad_1.deauthorizeLaunchpadBatchSubmitter)(ctx, dto);
118
+ }
119
+ async GetBatchSubmitAuthorities(ctx, dto) {
120
+ return await (0, launchpad_1.getLaunchpadBatchSubmitAuthorities)(ctx, dto);
121
+ }
70
122
  }
71
123
  exports.LaunchpadContract = LaunchpadContract;
72
124
  tslib_1.__decorate([
@@ -214,4 +266,49 @@ tslib_1.__decorate([
214
266
  tslib_1.__metadata("design:paramtypes", [chaincode_1.GalaChainContext]),
215
267
  tslib_1.__metadata("design:returntype", Promise)
216
268
  ], LaunchpadContract.prototype, "FetchLaunchpadFeeConfig", null);
269
+ tslib_1.__decorate([
270
+ (0, chaincode_1.GalaTransaction)({
271
+ type: chaincode_1.SUBMIT,
272
+ in: api_1.BatchDto,
273
+ out: "object",
274
+ description: "Submit a batch of transactions",
275
+ verifySignature: true
276
+ }),
277
+ tslib_1.__metadata("design:type", Function),
278
+ tslib_1.__metadata("design:paramtypes", [chaincode_1.GalaChainContext, api_1.BatchDto]),
279
+ tslib_1.__metadata("design:returntype", Promise)
280
+ ], LaunchpadContract.prototype, "BatchSubmit", null);
281
+ tslib_1.__decorate([
282
+ (0, chaincode_1.Submit)({
283
+ in: types_1.AuthorizeBatchSubmitterDto,
284
+ out: types_1.BatchSubmitAuthoritiesResDto,
285
+ allowedOrgs: [(_a = process.env.CURATOR_ORG_MSP) !== null && _a !== void 0 ? _a : "CuratorOrg"]
286
+ }),
287
+ tslib_1.__metadata("design:type", Function),
288
+ tslib_1.__metadata("design:paramtypes", [chaincode_1.GalaChainContext,
289
+ types_1.AuthorizeBatchSubmitterDto]),
290
+ tslib_1.__metadata("design:returntype", Promise)
291
+ ], LaunchpadContract.prototype, "AuthorizeBatchSubmitter", null);
292
+ tslib_1.__decorate([
293
+ (0, chaincode_1.Submit)({
294
+ in: types_1.DeauthorizeBatchSubmitterDto,
295
+ out: types_1.BatchSubmitAuthoritiesResDto,
296
+ allowedOrgs: [(_b = process.env.CURATOR_ORG_MSP) !== null && _b !== void 0 ? _b : "CuratorOrg"]
297
+ }),
298
+ tslib_1.__metadata("design:type", Function),
299
+ tslib_1.__metadata("design:paramtypes", [chaincode_1.GalaChainContext,
300
+ types_1.DeauthorizeBatchSubmitterDto]),
301
+ tslib_1.__metadata("design:returntype", Promise)
302
+ ], LaunchpadContract.prototype, "DeauthorizeBatchSubmitter", null);
303
+ tslib_1.__decorate([
304
+ (0, chaincode_1.GalaTransaction)({
305
+ type: chaincode_1.EVALUATE,
306
+ in: types_1.FetchBatchSubmitAuthoritiesDto,
307
+ out: types_1.BatchSubmitAuthoritiesResDto
308
+ }),
309
+ tslib_1.__metadata("design:type", Function),
310
+ tslib_1.__metadata("design:paramtypes", [chaincode_1.GalaChainContext,
311
+ types_1.FetchBatchSubmitAuthoritiesDto]),
312
+ tslib_1.__metadata("design:returntype", Promise)
313
+ ], LaunchpadContract.prototype, "GetBatchSubmitAuthorities", null);
217
314
  //# sourceMappingURL=LaunchpadContract.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LaunchpadContract.js","sourceRoot":"","sources":["../../../src/chaincode/LaunchpadContract.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LaunchpadContract.js","sourceRoot":"","sources":["../../../src/chaincode/LaunchpadContract.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buyExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyExactToken.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAUpF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAAC,WAAW,CAAC,CAiFtB"}
1
+ {"version":3,"file":"buyExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyExactToken.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAiB,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMpF;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,qBAAqB,GACjC,OAAO,CAAC,WAAW,CAAC,CAiGtB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buyExactToken = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  /*
5
6
  * Copyright (c) Gala Games Inc. All rights reserved.
6
7
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,15 +17,12 @@ exports.buyExactToken = void 0;
16
17
  * limitations under the License.
17
18
  */
18
19
  const chaincode_1 = require("@gala-chain/chaincode");
19
- const bignumber_js_1 = require("bignumber.js");
20
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
20
21
  const types_1 = require("../../api/types");
21
22
  const error_1 = require("../../api/utils/error");
22
23
  const utils_1 = require("../utils");
23
24
  const callNativeTokenIn_1 = require("./callNativeTokenIn");
24
25
  const finaliseSale_1 = require("./finaliseSale");
25
- bignumber_js_1.BigNumber.config({
26
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
27
- });
28
26
  /**
29
27
  * Executes the purchase of an exact amount of tokens in a token sale.
30
28
  *
@@ -45,29 +43,43 @@ async function buyExactToken(ctx, buyTokenDTO) {
45
43
  let isSaleFinalized = false;
46
44
  // Fetch and validate the sale based on the provided vault address
47
45
  const sale = await (0, utils_1.fetchAndValidateSale)(ctx, buyTokenDTO.vaultAddress);
48
- const tokenLeftInVault = new bignumber_js_1.BigNumber(sale.sellingTokenQuantity);
46
+ const tokenLeftInVault = new bignumber_js_1.default(sale.sellingTokenQuantity);
49
47
  // Calculate the required amount of native tokens to buy the specified token amount
50
48
  const callNativeTokenInResult1 = await (0, callNativeTokenIn_1.callNativeTokenIn)(ctx, buyTokenDTO);
51
- let nativeTokensToBuy = new bignumber_js_1.BigNumber(callNativeTokenInResult1.calculatedQuantity);
49
+ let transactionFees = callNativeTokenInResult1.extraFees.transactionFees;
50
+ let nativeTokensToBuy = new bignumber_js_1.default(callNativeTokenInResult1.calculatedQuantity);
52
51
  const nativeToken = sale.fetchNativeTokenInstanceKey();
53
52
  const memeToken = sale.fetchSellingTokenInstanceKey();
54
53
  // If the requested token amount exceeds what's available, adjust it and recalculate native tokens needed
55
54
  if (tokenLeftInVault.lte(buyTokenDTO.tokenQuantity)) {
56
55
  buyTokenDTO.tokenQuantity = tokenLeftInVault;
57
56
  const callNativeTokenInResult2 = await (0, callNativeTokenIn_1.callNativeTokenIn)(ctx, buyTokenDTO);
58
- nativeTokensToBuy = new bignumber_js_1.BigNumber(callNativeTokenInResult2.calculatedQuantity);
57
+ nativeTokensToBuy = new bignumber_js_1.default(callNativeTokenInResult2.calculatedQuantity);
58
+ transactionFees = callNativeTokenInResult2.extraFees.transactionFees;
59
59
  isSaleFinalized = true;
60
60
  }
61
61
  // Check if the native tokens used exceed the market cap, finalizing the sale if true
62
62
  if (nativeTokensToBuy
63
- .plus(new bignumber_js_1.BigNumber(sale.nativeTokenQuantity))
64
- .gte(new bignumber_js_1.BigNumber(types_1.LaunchpadSale.MARKET_CAP))) {
63
+ .plus(new bignumber_js_1.default(sale.nativeTokenQuantity))
64
+ .gte(new bignumber_js_1.default(types_1.LaunchpadSale.MARKET_CAP))) {
65
65
  isSaleFinalized = true;
66
66
  }
67
67
  // Ensure the expected native token amount is not less than the actual amount required
68
68
  if (buyTokenDTO.expectedNativeToken && buyTokenDTO.expectedNativeToken.comparedTo(nativeTokensToBuy) < 0) {
69
69
  throw new error_1.SlippageToleranceExceededError("Gala tokens expected to perform this operation are less than the actual amount required.");
70
70
  }
71
+ // Transfer transaction fees
72
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
73
+ if (launchpadFeeAddressConfiguration && transactionFees) {
74
+ await (0, chaincode_1.transferToken)(ctx, {
75
+ from: ctx.callingUser,
76
+ to: launchpadFeeAddressConfiguration.feeAddress,
77
+ tokenInstanceKey: nativeToken,
78
+ quantity: new bignumber_js_1.default(transactionFees),
79
+ allowancesToUse: [],
80
+ authorizedOnBehalf: undefined
81
+ });
82
+ }
71
83
  // Transfer native tokens from the buyer to the vault
72
84
  await (0, chaincode_1.transferToken)(ctx, {
73
85
  from: ctx.callingUser,
@@ -100,6 +112,7 @@ async function buyExactToken(ctx, buyTokenDTO) {
100
112
  const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
101
113
  return {
102
114
  inputQuantity: nativeTokensToBuy.toFixed(),
115
+ totalFees: transactionFees,
103
116
  outputQuantity: buyTokenDTO.tokenQuantity.toFixed(),
104
117
  tokenName: token.name,
105
118
  tradeType: "Buy",
@@ -1 +1 @@
1
- {"version":3,"file":"buyExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyExactToken.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buyExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyExactToken.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"buyWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAwC,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAW5G;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,CAsEtB"}
1
+ {"version":3,"file":"buyWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAwC,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAO5G;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,aAAa,CACjC,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,sBAAsB,GAClC,OAAO,CAAC,WAAW,CAAC,CAiGtB"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.buyWithNative = void 0;
4
+ const tslib_1 = require("tslib");
4
5
  /*
5
6
  * Copyright (c) Gala Games Inc. All rights reserved.
6
7
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,16 +17,13 @@ exports.buyWithNative = void 0;
16
17
  * limitations under the License.
17
18
  */
18
19
  const chaincode_1 = require("@gala-chain/chaincode");
19
- const bignumber_js_1 = require("bignumber.js");
20
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
20
21
  const types_1 = require("../../api/types");
21
22
  const error_1 = require("../../api/utils/error");
22
23
  const utils_1 = require("../utils");
23
24
  const callMemeTokenOut_1 = require("./callMemeTokenOut");
24
25
  const callNativeTokenIn_1 = require("./callNativeTokenIn");
25
26
  const finaliseSale_1 = require("./finaliseSale");
26
- bignumber_js_1.BigNumber.config({
27
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
28
- });
29
27
  /**
30
28
  * Executes the purchase of tokens using a specified amount of native tokens.
31
29
  *
@@ -46,26 +44,46 @@ bignumber_js_1.BigNumber.config({
46
44
  */
47
45
  async function buyWithNative(ctx, buyTokenDTO) {
48
46
  let isSaleFinalized = false;
47
+ // Fetch and validate sale state
49
48
  const sale = await (0, utils_1.fetchAndValidateSale)(ctx, buyTokenDTO.vaultAddress);
50
- const tokensLeftInVault = new bignumber_js_1.BigNumber(sale.sellingTokenQuantity);
49
+ const tokensLeftInVault = new bignumber_js_1.default(sale.sellingTokenQuantity);
50
+ // Calculate how many tokens the user can buy and fee info
51
51
  const callMemeTokenOutResult = await (0, callMemeTokenOut_1.callMemeTokenOut)(ctx, buyTokenDTO);
52
- let tokensToBuy = new bignumber_js_1.BigNumber(callMemeTokenOutResult.calculatedQuantity);
52
+ let transactionFees = callMemeTokenOutResult.extraFees.transactionFees;
53
+ let tokensToBuy = new bignumber_js_1.default(callMemeTokenOutResult.calculatedQuantity);
53
54
  const nativeToken = sale.fetchNativeTokenInstanceKey();
54
55
  const memeToken = sale.fetchSellingTokenInstanceKey();
56
+ // If vault has fewer tokens than what user wants to buy, cap the purchase
55
57
  if (tokensLeftInVault.comparedTo(tokensToBuy) <= 0) {
56
58
  tokensToBuy = tokensLeftInVault;
57
59
  const nativeTokensrequiredToBuyDto = new types_1.ExactTokenQuantityDto(buyTokenDTO.vaultAddress, tokensToBuy);
58
60
  const callNativeTokenInResult = await (0, callNativeTokenIn_1.callNativeTokenIn)(ctx, nativeTokensrequiredToBuyDto);
59
- buyTokenDTO.nativeTokenQuantity = new bignumber_js_1.BigNumber(callNativeTokenInResult.calculatedQuantity);
61
+ transactionFees = callMemeTokenOutResult.extraFees.transactionFees;
62
+ buyTokenDTO.nativeTokenQuantity = new bignumber_js_1.default(callNativeTokenInResult.calculatedQuantity);
60
63
  isSaleFinalized = true;
61
64
  }
65
+ // Finalize sale if market cap is reached
62
66
  if (buyTokenDTO.nativeTokenQuantity
63
- .plus(new bignumber_js_1.BigNumber(sale.nativeTokenQuantity))
64
- .gte(new bignumber_js_1.BigNumber(types_1.LaunchpadSale.MARKET_CAP)))
67
+ .plus(new bignumber_js_1.default(sale.nativeTokenQuantity))
68
+ .gte(new bignumber_js_1.default(types_1.LaunchpadSale.MARKET_CAP)))
65
69
  isSaleFinalized = true;
70
+ // Check for slippage condition
66
71
  if (buyTokenDTO.expectedToken && buyTokenDTO.expectedToken.comparedTo(tokensToBuy) > 0) {
67
72
  throw new error_1.SlippageToleranceExceededError("Tokens expected from this operation are more than the the actual amount that will be provided.");
68
73
  }
74
+ // Transfer transaction fees to launchpad fee address
75
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
76
+ if (launchpadFeeAddressConfiguration && transactionFees) {
77
+ await (0, chaincode_1.transferToken)(ctx, {
78
+ from: ctx.callingUser,
79
+ to: launchpadFeeAddressConfiguration.feeAddress,
80
+ tokenInstanceKey: nativeToken,
81
+ quantity: new bignumber_js_1.default(transactionFees),
82
+ allowancesToUse: [],
83
+ authorizedOnBehalf: undefined
84
+ });
85
+ }
86
+ // Transfer native tokens from buyer to vault
69
87
  await (0, chaincode_1.transferToken)(ctx, {
70
88
  from: ctx.callingUser,
71
89
  to: buyTokenDTO.vaultAddress,
@@ -74,6 +92,7 @@ async function buyWithNative(ctx, buyTokenDTO) {
74
92
  allowancesToUse: [],
75
93
  authorizedOnBehalf: undefined
76
94
  });
95
+ // Transfer meme tokens from vault to buyer
77
96
  await (0, chaincode_1.transferToken)(ctx, {
78
97
  from: buyTokenDTO.vaultAddress,
79
98
  to: ctx.callingUser,
@@ -85,14 +104,17 @@ async function buyWithNative(ctx, buyTokenDTO) {
85
104
  callingUser: ctx.callingUser
86
105
  }
87
106
  });
107
+ // Update sale object with purchase data
88
108
  sale.buyToken(tokensToBuy, buyTokenDTO.nativeTokenQuantity);
89
109
  await (0, chaincode_1.putChainObject)(ctx, sale);
110
+ // Finalize sale if it's complete
90
111
  if (isSaleFinalized) {
91
112
  await (0, finaliseSale_1.finalizeSale)(ctx, sale);
92
113
  }
93
114
  const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
94
115
  return {
95
116
  inputQuantity: buyTokenDTO.nativeTokenQuantity.toFixed(),
117
+ totalFees: transactionFees,
96
118
  outputQuantity: tokensToBuy.toFixed(),
97
119
  tokenName: token.name,
98
120
  tradeType: "Buy",
@@ -1 +1 @@
1
- {"version":3,"file":"buyWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"buyWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/buyWithNative.ts"],"names":[],"mappings":"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"}
@@ -22,6 +22,7 @@ export declare function callMemeTokenIn(ctx: GalaChainContext, sellTokenDTO: Nat
22
22
  calculatedQuantity: string;
23
23
  extraFees: {
24
24
  reverseBondingCurve: string;
25
+ transactionFees: string;
25
26
  };
26
27
  }>;
27
28
  //# sourceMappingURL=callMemeTokenIn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callMemeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAmCxE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB;;;;;GAShG"}
1
+ {"version":3,"file":"callMemeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AA+BxE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,sBAAsB;;;;;;GAchG"}
@@ -17,13 +17,9 @@ const tslib_1 = require("tslib");
17
17
  * limitations under the License.
18
18
  */
19
19
  const api_1 = require("@gala-chain/api");
20
- const bignumber_js_1 = require("bignumber.js");
21
20
  const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
22
21
  const utils_1 = require("../utils");
23
22
  const fees_1 = require("./fees");
24
- bignumber_js_1.BigNumber.config({
25
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
26
- });
27
23
  function calculateMemeTokensRequired(sale, requestedNativeTokenQuantity) {
28
24
  const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold()); // current tokens sold / x
29
25
  let nativeTokens = new decimal_js_1.default(requestedNativeTokenQuantity.toString()); // native tokens used to buy / y
@@ -65,10 +61,12 @@ function calculateMemeTokensRequired(sale, requestedNativeTokenQuantity) {
65
61
  */
66
62
  async function callMemeTokenIn(ctx, sellTokenDTO) {
67
63
  const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
64
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
68
65
  return {
69
66
  calculatedQuantity: calculateMemeTokensRequired(sale, sellTokenDTO.nativeTokenQuantity),
70
67
  extraFees: {
71
- reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, sellTokenDTO.nativeTokenQuantity).toString()
68
+ reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, sellTokenDTO.nativeTokenQuantity).toString(),
69
+ transactionFees: (0, fees_1.calculateTransactionFee)(sellTokenDTO.nativeTokenQuantity, launchpadFeeAddressConfiguration === null || launchpadFeeAddressConfiguration === void 0 ? void 0 : launchpadFeeAddressConfiguration.feeAmount)
72
70
  }
73
71
  };
74
72
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callMemeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAwD;AAExD,+CAAyC;AACzC,oEAAiC;AAGjC,oCAAqE;AACrE,iCAAyD;AAEzD,wBAAS,CAAC,MAAM,CAAC;IACf,aAAa,EAAE,wBAAS,CAAC,QAAQ;CAClC,CAAC,CAAC;AAEH,SAAS,2BAA2B,CAAC,IAAmB,EAAE,4BAAuC;IAC/F,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACvF,IAAI,YAAY,GAAG,IAAI,oBAAO,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gCAAgC;IACzG,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACvE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjE,IAAI,YAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACjD,YAAY,GAAG,kBAAkB,CAAC;IACpC,CAAC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,2BAAqB,CAAC,6DAA6D,CAAC,CAAC;IACjG,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,oBAAO,CAAC,QAAQ,CAAC,CAAC;IAE1E,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,eAAe,CAAC,GAAqB,EAAE,YAAoC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IAExE,OAAO;QACL,kBAAkB,EAAE,2BAA2B,CAAC,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;QACvF,SAAS,EAAE;YACT,mBAAmB,EAAE,IAAA,sCAA+B,EAAC,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;SACxG;KACF,CAAC;AACJ,CAAC;AATD,0CASC"}
1
+ {"version":3,"file":"callMemeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenIn.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAwD;AAGxD,oEAAiC;AAGjC,oCAA+F;AAC/F,iCAAkF;AAElF,SAAS,2BAA2B,CAAC,IAAmB,EAAE,4BAAuC;IAC/F,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACvF,IAAI,YAAY,GAAG,IAAI,oBAAO,CAAC,4BAA4B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gCAAgC;IACzG,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACvE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,MAAM,kBAAkB,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjE,IAAI,YAAY,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE;QAChD,YAAY,GAAG,kBAAkB,CAAC;KACnC;IAED,MAAM,QAAQ,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACjC,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEvE,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE;QAC5B,MAAM,IAAI,2BAAqB,CAAC,6DAA6D,CAAC,CAAC;KAChG;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,EAAE,CAAC;IACvC,MAAM,UAAU,GAAG,eAAe,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC;IAC1F,MAAM,gBAAgB,GAAG,UAAU,CAAC,eAAe,CAAC,EAAE,EAAE,oBAAO,CAAC,QAAQ,CAAC,CAAC;IAE1E,OAAO,gBAAgB,CAAC,OAAO,EAAE,CAAC;AACpC,CAAC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACI,KAAK,UAAU,eAAe,CAAC,GAAqB,EAAE,YAAoC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,YAAY,CAAC,YAAY,CAAC,CAAC;IACxE,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAE7E,OAAO;QACL,kBAAkB,EAAE,2BAA2B,CAAC,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC;QACvF,SAAS,EAAE;YACT,mBAAmB,EAAE,IAAA,sCAA+B,EAAC,IAAI,EAAE,YAAY,CAAC,mBAAmB,CAAC,CAAC,QAAQ,EAAE;YACvG,eAAe,EAAE,IAAA,8BAAuB,EACtC,YAAY,CAAC,mBAAmB,EAChC,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,SAAS,CAC5C;SACF;KACF,CAAC;AACJ,CAAC;AAdD,0CAcC"}
@@ -20,6 +20,7 @@ export declare function callMemeTokenOut(ctx: GalaChainContext, buyTokenDTO: Nat
20
20
  calculatedQuantity: string;
21
21
  extraFees: {
22
22
  reverseBondingCurve: string;
23
+ transactionFees: string;
23
24
  };
24
25
  }>;
25
26
  //# sourceMappingURL=callMemeTokenOut.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callMemeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAOxE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB;;;;;GAsChG"}
1
+ {"version":3,"file":"callMemeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAiB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIxE;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,sBAAsB;;;;;;GA2ChG"}
@@ -2,13 +2,11 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.callMemeTokenOut = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const bignumber_js_1 = require("bignumber.js");
5
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
6
6
  const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
7
7
  const types_1 = require("../../api/types");
8
8
  const utils_1 = require("../utils");
9
- bignumber_js_1.BigNumber.config({
10
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
11
- });
9
+ const fees_1 = require("./fees");
12
10
  /**
13
11
  * Calculates the number of tokens that can be purchased using a specified amount
14
12
  * of native tokens based on a bonding curve mechanism.
@@ -45,10 +43,12 @@ async function callMemeTokenOut(ctx, buyTokenDTO) {
45
43
  if (roundedResult.add(totalTokensSold).greaterThan(new decimal_js_1.default("1e+7"))) {
46
44
  roundedResult = new decimal_js_1.default("1e+7").minus(new decimal_js_1.default(totalTokensSold));
47
45
  }
46
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
48
47
  return {
49
48
  calculatedQuantity: roundedResult.toFixed(),
50
49
  extraFees: {
51
- reverseBondingCurve: "0"
50
+ reverseBondingCurve: "0",
51
+ transactionFees: (0, fees_1.calculateTransactionFee)((0, bignumber_js_1.default)(nativeTokens.toFixed()), launchpadFeeAddressConfiguration === null || launchpadFeeAddressConfiguration === void 0 ? void 0 : launchpadFeeAddressConfiguration.feeAmount)
52
52
  }
53
53
  };
54
54
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callMemeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,+CAAyC;AACzC,oEAAiC;AAEjC,2CAAwE;AACxE,oCAAqE;AAErE,wBAAS,CAAC,MAAM,CAAC;IACf,aAAa,EAAE,wBAAS,CAAC,QAAQ;CAClC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,gBAAgB,CAAC,GAAqB,EAAE,WAAmC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACvF,IAAI,YAAY,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gCAAgC;IAC5G,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACvE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,IACE,YAAY,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,qBAAa,CAAC,UAAU,CAAC,CAAC,EAC1G,CAAC;QACD,YAAY,GAAG,IAAI,oBAAO,CAAC,qBAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,oBAAO,CAAC,UAAU,CAAC,CAAC;IAEnE,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACxE,aAAa,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,oBAAO,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1E,CAAC;IAED,OAAO;QACL,kBAAkB,EAAE,aAAa,CAAC,OAAO,EAAE;QAC3C,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG;SACzB;KACF,CAAC;AACJ,CAAC;AAtCD,4CAsCC"}
1
+ {"version":3,"file":"callMemeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callMemeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;AAEjC,2CAAwE;AACxE,oCAA+F;AAC/F,iCAAiD;AAEjD;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,gBAAgB,CAAC,GAAqB,EAAE,WAAmC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,0BAA0B;IACvF,IAAI,YAAY,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,gCAAgC;IAC5G,MAAM,SAAS,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,iBAAiB;IACvE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAA,2BAAmB,GAAE,CAAC;IAElE,IACE,YAAY,CAAC,GAAG,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,qBAAa,CAAC,UAAU,CAAC,CAAC,EAC1G;QACA,YAAY,GAAG,IAAI,oBAAO,CAAC,qBAAa,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,IAAI,oBAAO,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACnG;IAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEjE,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;IAEtC,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEzC,MAAM,WAAW,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAExD,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACtD,IAAI,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,oBAAO,CAAC,UAAU,CAAC,CAAC;IAEnE,IAAI,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,EAAE;QACvE,aAAa,GAAG,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,IAAI,oBAAO,CAAC,eAAe,CAAC,CAAC,CAAC;KACzE;IAED,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7E,OAAO;QACL,kBAAkB,EAAE,aAAa,CAAC,OAAO,EAAE;QAC3C,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG;YACxB,eAAe,EAAE,IAAA,8BAAuB,EACtC,IAAA,sBAAS,EAAC,YAAY,CAAC,OAAO,EAAE,CAAC,EACjC,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,SAAS,CAC5C;SACF;KACF,CAAC;AACJ,CAAC;AA3CD,4CA2CC"}
@@ -20,6 +20,7 @@ export declare function callNativeTokenIn(ctx: GalaChainContext, buyTokenDTO: Ex
20
20
  calculatedQuantity: string;
21
21
  extraFees: {
22
22
  reverseBondingCurve: string;
23
+ transactionFees: string;
23
24
  };
24
25
  }>;
25
26
  //# sourceMappingURL=callNativeTokenIn.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callNativeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAOxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB;;;;;GA6BhG"}
1
+ {"version":3,"file":"callNativeTokenIn.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAIxD;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,iBAAiB,CAAC,GAAG,EAAE,gBAAgB,EAAE,WAAW,EAAE,qBAAqB;;;;;;GAmChG"}
@@ -2,12 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.callNativeTokenIn = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const bignumber_js_1 = require("bignumber.js");
5
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
6
6
  const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
7
7
  const utils_1 = require("../utils");
8
- bignumber_js_1.BigNumber.config({
9
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
10
- });
8
+ const fees_1 = require("./fees");
11
9
  /**
12
10
  * Calculates the amount of native tokens required to purchase a specified amount
13
11
  * of tokens using a bonding curve mechanism.
@@ -40,10 +38,13 @@ async function callNativeTokenIn(ctx, buyTokenDTO) {
40
38
  const constantFactor = basePrice.div(exponentFactor);
41
39
  const differenceOfExponentials = eResult1.minus(eResult2);
42
40
  const price = constantFactor.mul(differenceOfExponentials);
41
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
42
+ const roundedPrice = price.toDecimalPlaces(8, decimal_js_1.default.ROUND_UP).toFixed();
43
43
  return {
44
- calculatedQuantity: price.toDecimalPlaces(8, decimal_js_1.default.ROUND_UP).toFixed(),
44
+ calculatedQuantity: roundedPrice,
45
45
  extraFees: {
46
- reverseBondingCurve: "0"
46
+ reverseBondingCurve: "0",
47
+ transactionFees: (0, fees_1.calculateTransactionFee)((0, bignumber_js_1.default)(roundedPrice), launchpadFeeAddressConfiguration === null || launchpadFeeAddressConfiguration === void 0 ? void 0 : launchpadFeeAddressConfiguration.feeAmount)
47
48
  }
48
49
  };
49
50
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callNativeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":";;;;AAeA,+CAAyC;AACzC,oEAAiC;AAGjC,oCAAqE;AAErE,wBAAS,CAAC,MAAM,CAAC;IACf,aAAa,EAAE,wBAAS,CAAC,QAAQ;CAClC,CAAC,CAAC;AAEH;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,iBAAiB,CAAC,GAAqB,EAAE,WAAkC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAE5D,IAAI,WAAW,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,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,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC;QACtE,WAAW,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,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;IAE1D,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE3D,OAAO;QACL,kBAAkB,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,oBAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE;QACxE,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG;SACzB;KACF,CAAC;AACJ,CAAC;AA7BD,8CA6BC"}
1
+ {"version":3,"file":"callNativeTokenIn.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenIn.ts"],"names":[],"mappings":";;;;AAeA,wEAAqC;AACrC,oEAAiC;AAGjC,oCAA+F;AAC/F,iCAAiD;AAEjD;;;;;;;;;;;;;;;GAeG;AACI,KAAK,UAAU,iBAAiB,CAAC,GAAqB,EAAE,WAAkC;IAC/F,MAAM,IAAI,GAAG,MAAM,IAAA,4BAAoB,EAAC,GAAG,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACvE,MAAM,eAAe,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC;IAE5D,IAAI,WAAW,GAAG,IAAI,oBAAO,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,EAAE,CAAC,CAAC;IACpE,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,WAAW,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,IAAI,oBAAO,CAAC,MAAM,CAAC,CAAC,EAAE;QACrE,WAAW,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;KACtD;IAED,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACrF,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAEpE,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;IAE1D,MAAM,KAAK,GAAG,cAAc,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IAE3D,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7E,MAAM,YAAY,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,EAAE,oBAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;IAC1E,OAAO;QACL,kBAAkB,EAAE,YAAY;QAChC,SAAS,EAAE;YACT,mBAAmB,EAAE,GAAG;YACxB,eAAe,EAAE,IAAA,8BAAuB,EACtC,IAAA,sBAAS,EAAC,YAAY,CAAC,EACvB,gCAAgC,aAAhC,gCAAgC,uBAAhC,gCAAgC,CAAE,SAAS,CAC5C;SACF;KACF,CAAC;AACJ,CAAC;AAnCD,8CAmCC"}
@@ -21,6 +21,7 @@ export declare function callNativeTokenOut(ctx: GalaChainContext, sellTokenDTO:
21
21
  calculatedQuantity: string;
22
22
  extraFees: {
23
23
  reverseBondingCurve: string;
24
+ transactionFees: string;
24
25
  };
25
26
  }>;
26
27
  //# sourceMappingURL=callNativeTokenOut.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"callNativeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,MAAM,iBAAiB,CAAC;AAoCvE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB;;;;;GASlG"}
1
+ {"version":3,"file":"callNativeTokenOut.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAIzD,OAAO,EAAE,qBAAqB,EAAiB,MAAM,iBAAiB,CAAC;AAgCvE;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,kBAAkB,CAAC,GAAG,EAAE,gBAAgB,EAAE,YAAY,EAAE,qBAAqB;;;;;;GAclG"}
@@ -2,13 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.callNativeTokenOut = void 0;
4
4
  const tslib_1 = require("tslib");
5
- const bignumber_js_1 = require("bignumber.js");
5
+ const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
6
6
  const decimal_js_1 = tslib_1.__importDefault(require("decimal.js"));
7
7
  const utils_1 = require("../utils");
8
8
  const fees_1 = require("./fees");
9
- bignumber_js_1.BigNumber.config({
10
- ROUNDING_MODE: bignumber_js_1.BigNumber.ROUND_UP
11
- });
12
9
  function calculateNativeTokensReceived(sale, tokensToSellBn) {
13
10
  const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
14
11
  let tokensToSell = new decimal_js_1.default(tokensToSellBn.toString());
@@ -49,10 +46,12 @@ function calculateNativeTokensReceived(sale, tokensToSellBn) {
49
46
  async function callNativeTokenOut(ctx, sellTokenDTO) {
50
47
  const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
51
48
  const nativeTokensReceived = calculateNativeTokensReceived(sale, sellTokenDTO.tokenQuantity);
49
+ const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
52
50
  return {
53
51
  calculatedQuantity: nativeTokensReceived,
54
52
  extraFees: {
55
- reverseBondingCurve: (0, fees_1.calculateReverseBondingCurveFee)(sale, (0, bignumber_js_1.BigNumber)(nativeTokensReceived)).toString()
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)
56
55
  }
57
56
  };
58
57
  }
@@ -1 +1 @@
1
- {"version":3,"file":"callNativeTokenOut.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/callNativeTokenOut.ts"],"names":[],"mappings":";;;;AAeA,+CAAyC;AACzC,oEAAiC;AAGjC,oCAAqE;AACrE,iCAAyD;AAEzD,wBAAS,CAAC,MAAM,CAAC;IACf,aAAa,EAAE,wBAAS,CAAC,QAAQ;CAClC,CAAC,CAAC;AAEH,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,CAAC;QACzC,YAAY,GAAG,eAAe,CAAC;QAC/B,kBAAkB,GAAG,IAAI,oBAAO,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;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,OAAO;QACL,kBAAkB,EAAE,oBAAoB;QACxC,SAAS,EAAE;YACT,mBAAmB,EAAE,IAAA,sCAA+B,EAAC,IAAI,EAAE,IAAA,wBAAS,EAAC,oBAAoB,CAAC,CAAC,CAAC,QAAQ,EAAE;SACvG;KACF,CAAC;AACJ,CAAC;AATD,gDASC"}
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;IAC7E,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;AAdD,gDAcC"}