@gala-chain/launchpad 1.0.12 → 1.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/package.json +1 -1
- package/lib/src/api/types/LaunchpadDtos.d.ts +1 -0
- package/lib/src/api/types/LaunchpadDtos.d.ts.map +1 -1
- package/lib/src/api/types/LaunchpadDtos.js +5 -0
- package/lib/src/api/types/LaunchpadDtos.js.map +1 -1
- package/lib/src/api/types/LaunchpadSale.d.ts +2 -1
- package/lib/src/api/types/LaunchpadSale.d.ts.map +1 -1
- package/lib/src/api/types/LaunchpadSale.js +18 -6
- package/lib/src/api/types/LaunchpadSale.js.map +1 -1
- package/lib/src/chaincode/LaunchpadContract.js +6 -6
- package/lib/src/chaincode/LaunchpadContract.js.map +1 -1
- package/lib/src/chaincode/launchpad/buyExactToken.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/buyExactToken.js +18 -42
- package/lib/src/chaincode/launchpad/buyExactToken.js.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/buyWithNative.js +12 -43
- package/lib/src/chaincode/launchpad/buyWithNative.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callMemeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js +13 -9
- package/lib/src/chaincode/launchpad/callMemeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callMemeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js +46 -22
- package/lib/src/chaincode/launchpad/callMemeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callNativeTokenIn.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js +35 -14
- package/lib/src/chaincode/launchpad/callNativeTokenIn.js.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts +4 -10
- package/lib/src/chaincode/launchpad/callNativeTokenOut.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js +17 -12
- package/lib/src/chaincode/launchpad/callNativeTokenOut.js.map +1 -1
- package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js +1 -1
- package/lib/src/chaincode/launchpad/configureLaunchpadFeeConfig.js.map +1 -1
- package/lib/src/chaincode/launchpad/createSale.js +1 -1
- package/lib/src/chaincode/launchpad/createSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/fees.d.ts +11 -0
- package/lib/src/chaincode/launchpad/fees.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/fees.js +42 -3
- package/lib/src/chaincode/launchpad/fees.js.map +1 -1
- package/lib/src/chaincode/launchpad/finaliseSale.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/finaliseSale.js +9 -6
- package/lib/src/chaincode/launchpad/finaliseSale.js.map +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/sellExactToken.js +14 -23
- package/lib/src/chaincode/launchpad/sellExactToken.js.map +1 -1
- package/lib/src/chaincode/launchpad/sellWithNative.d.ts.map +1 -1
- package/lib/src/chaincode/launchpad/sellWithNative.js +10 -19
- package/lib/src/chaincode/launchpad/sellWithNative.js.map +1 -1
- package/lib/src/chaincode/test/launchpadgala.d.ts.map +1 -1
- package/lib/src/chaincode/test/launchpadgala.js +2 -1
- package/lib/src/chaincode/test/launchpadgala.js.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts +4 -0
- package/lib/src/chaincode/utils/launchpadSaleUtils.d.ts.map +1 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.js +10 -1
- package/lib/src/chaincode/utils/launchpadSaleUtils.js.map +1 -1
- package/lib/src/cli.js +3 -1
- package/lib/src/cli.js.map +1 -1
- package/lib/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/src/api/types/LaunchpadDtos.ts +4 -0
- package/src/api/types/LaunchpadSale.ts +14 -7
- package/src/chaincode/LaunchpadContract.ts +3 -3
- package/src/chaincode/launchpad/buyExactToken.spec.ts +2 -37
- package/src/chaincode/launchpad/buyExactToken.ts +22 -56
- package/src/chaincode/launchpad/buyWithNative.spec.ts +2 -37
- package/src/chaincode/launchpad/buyWithNative.ts +15 -65
- package/src/chaincode/launchpad/callMemeTokenIn.ts +36 -12
- package/src/chaincode/launchpad/callMemeTokenOut.spec.ts +1 -1
- package/src/chaincode/launchpad/callMemeTokenOut.ts +72 -26
- package/src/chaincode/launchpad/callNativeTokenIn.ts +62 -19
- package/src/chaincode/launchpad/callNativeTokenOut.ts +38 -15
- package/src/chaincode/launchpad/configureLaunchpadFeeConfig.spec.ts +0 -1
- package/src/chaincode/launchpad/configureLaunchpadFeeConfig.ts +1 -1
- package/src/chaincode/launchpad/createSale.ts +1 -1
- package/src/chaincode/launchpad/fees.ts +55 -3
- package/src/chaincode/launchpad/finaliseSale.ts +11 -8
- package/src/chaincode/launchpad/launchpadBatchSubmitAuthorizations.spec.ts +150 -68
- package/src/chaincode/launchpad/sellExactToken.spec.ts +4 -81
- package/src/chaincode/launchpad/sellExactToken.ts +16 -25
- package/src/chaincode/launchpad/sellWithNative.spec.ts +2 -42
- package/src/chaincode/launchpad/sellWithNative.ts +14 -23
- package/src/chaincode/test/launchpadgala.ts +3 -1
- package/src/chaincode/utils/launchpadSaleUtils.ts +13 -1
- package/src/cli.ts +3 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateTransactionFee = exports.payReverseBondingCurveFee = exports.calculateReverseBondingCurveFee = void 0;
|
|
3
|
+
exports.transferTransactionFees = exports.calculateTransactionFee = exports.payReverseBondingCurveFee = exports.calculateReverseBondingCurveFee = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/*
|
|
6
6
|
* Copyright (c) Gala Games Inc. All rights reserved.
|
|
@@ -19,10 +19,11 @@ const tslib_1 = require("tslib");
|
|
|
19
19
|
const api_1 = require("@gala-chain/api");
|
|
20
20
|
const chaincode_1 = require("@gala-chain/chaincode");
|
|
21
21
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
22
|
+
const types_1 = require("../../api/types");
|
|
22
23
|
const error_1 = require("../../api/utils/error");
|
|
23
24
|
const utils_1 = require("../utils");
|
|
24
25
|
const REVERSE_BONDING_CURVE_FEE_CODE = "LaunchpadReverseBondingCurveFee";
|
|
25
|
-
const NATIVE_TOKEN_DECIMALS =
|
|
26
|
+
const NATIVE_TOKEN_DECIMALS = types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS;
|
|
26
27
|
function calculateReverseBondingCurveFee(sale, nativeTokensToReceive) {
|
|
27
28
|
if (!sale.reverseBondingCurveConfiguration ||
|
|
28
29
|
sale.reverseBondingCurveConfiguration.maxFeePortion.isZero()) {
|
|
@@ -82,7 +83,45 @@ async function payReverseBondingCurveFee(ctx, sale, nativeTokensToReceive, maxAc
|
|
|
82
83
|
}
|
|
83
84
|
exports.payReverseBondingCurveFee = payReverseBondingCurveFee;
|
|
84
85
|
function calculateTransactionFee(tokensBeingTraded, feeAmount) {
|
|
85
|
-
return tokensBeingTraded.multipliedBy(feeAmount !== null && feeAmount !== void 0 ? feeAmount : 0).toFixed(
|
|
86
|
+
return tokensBeingTraded.multipliedBy(feeAmount !== null && feeAmount !== void 0 ? feeAmount : 0).toFixed(NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_UP);
|
|
86
87
|
}
|
|
87
88
|
exports.calculateTransactionFee = calculateTransactionFee;
|
|
89
|
+
/**
|
|
90
|
+
* Transfers transaction fees to the launchpad fee address if applicable.
|
|
91
|
+
* Optionally validates that the user has sufficient balance when nativeTokensRequired is provided.
|
|
92
|
+
*
|
|
93
|
+
* @param ctx - The context object providing access to the GalaChain environment.
|
|
94
|
+
* @param sale - The launchpad sale object.
|
|
95
|
+
* @param transactionFees - The transaction fees amount (as BigNumber or string).
|
|
96
|
+
* @param nativeToken - The native token instance key (returned from sale.fetchNativeTokenInstanceKey()).
|
|
97
|
+
* @param nativeTokensRequired - Optional. If provided, validates user has sufficient balance for fees + required tokens.
|
|
98
|
+
*/
|
|
99
|
+
async function transferTransactionFees(ctx, sale, transactionFees, nativeToken, nativeTokensRequired) {
|
|
100
|
+
const launchpadFeeAddressConfiguration = await (0, utils_1.fetchLaunchpadFeeAddress)(ctx);
|
|
101
|
+
const transactionFeesBn = typeof transactionFees === "string" ? new bignumber_js_1.default(transactionFees) : transactionFees;
|
|
102
|
+
// Check if transaction fees is greater than 0 and if the launchpad fee address configuration where
|
|
103
|
+
// the fees are sent to is defined
|
|
104
|
+
if (!launchpadFeeAddressConfiguration || !transactionFeesBn.isGreaterThan(0)) {
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
// If nativeTokensRequired is provided, validate user has sufficient balance
|
|
108
|
+
if (nativeTokensRequired) {
|
|
109
|
+
const totalRequired = nativeTokensRequired.plus(transactionFeesBn);
|
|
110
|
+
const buyerBalance = await (0, chaincode_1.fetchOrCreateBalance)(ctx, ctx.callingUser, sale.nativeToken);
|
|
111
|
+
// Check if the buyer has sufficient balance to pay the transaction fees
|
|
112
|
+
if (buyerBalance.getQuantityTotal().isLessThan(totalRequired)) {
|
|
113
|
+
throw new api_1.ValidationFailedError(`Insufficient balance: Total amount required including fee is ${totalRequired}`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Transfer transaction fees to the launchpad fee address
|
|
117
|
+
await (0, chaincode_1.transferToken)(ctx, {
|
|
118
|
+
from: ctx.callingUser,
|
|
119
|
+
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
120
|
+
tokenInstanceKey: nativeToken,
|
|
121
|
+
quantity: transactionFeesBn,
|
|
122
|
+
allowancesToUse: [],
|
|
123
|
+
authorizedOnBehalf: undefined
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
exports.transferTransactionFees = transferTransactionFees;
|
|
88
127
|
//# sourceMappingURL=fees.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,
|
|
1
|
+
{"version":3,"file":"fees.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/fees.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finaliseSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,gBAAgB,EAOjB,MAAM,uBAAuB,CAAC;AAgB/B,OAAO,EAAkC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhF,wBAAsB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"finaliseSale.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"AAgBA,OAAO,EACL,gBAAgB,EAOjB,MAAM,uBAAuB,CAAC;AAgB/B,OAAO,EAAkC,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAIhF,wBAAsB,YAAY,CAAC,GAAG,EAAE,gBAAgB,EAAE,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CA0J5F"}
|
|
@@ -44,7 +44,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
44
44
|
tokenInstanceKey: nativeToken,
|
|
45
45
|
quantity: new bignumber_js_1.default(sale.nativeTokenQuantity)
|
|
46
46
|
.times(ownerAllocationPercentage)
|
|
47
|
-
.decimalPlaces(
|
|
47
|
+
.decimalPlaces(types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_DOWN),
|
|
48
48
|
allowancesToUse: [],
|
|
49
49
|
authorizedOnBehalf: {
|
|
50
50
|
callingOnBehalf: vaultAddressAlias,
|
|
@@ -57,7 +57,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
57
57
|
tokenInstanceKey: nativeToken,
|
|
58
58
|
quantity: new bignumber_js_1.default(sale.nativeTokenQuantity)
|
|
59
59
|
.times(platformFeePercentage)
|
|
60
|
-
.decimalPlaces(
|
|
60
|
+
.decimalPlaces(types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS, bignumber_js_1.default.ROUND_DOWN),
|
|
61
61
|
allowancesToUse: [],
|
|
62
62
|
authorizedOnBehalf: {
|
|
63
63
|
callingOnBehalf: vaultAddressAlias,
|
|
@@ -77,7 +77,10 @@ async function finalizeSale(ctx, sale) {
|
|
|
77
77
|
}
|
|
78
78
|
const poolInfo = await (0, dex_1.getSlot0)(ctx, poolDTO);
|
|
79
79
|
// Proceed normally if price in the pool is within an acceptable range
|
|
80
|
-
const priceCloseEnough = sqrtPrice
|
|
80
|
+
const priceCloseEnough = sqrtPrice
|
|
81
|
+
.minus(poolInfo.sqrtPrice)
|
|
82
|
+
.abs()
|
|
83
|
+
.isLessThanOrEqualTo(sqrtPrice.multipliedBy(0.05));
|
|
81
84
|
const expectedNativeTokenRequired = new bignumber_js_1.default(sale.nativeTokenQuantity).times(liquidityAllocationPercentage);
|
|
82
85
|
const isPriceGreaterThanExpected = poolInfo.sqrtPrice.isGreaterThan(sqrtPrice);
|
|
83
86
|
const expectedSaleTokenRequired = expectedNativeTokenRequired.times(finalPrice);
|
|
@@ -95,12 +98,12 @@ async function finalizeSale(ctx, sale) {
|
|
|
95
98
|
? !areTokensSorted
|
|
96
99
|
: areTokensSorted;
|
|
97
100
|
const expectedTokenDTO = new dex_1.GetAddLiquidityEstimationDto(token0, token1, 10000, // TODO: make this configurable
|
|
98
|
-
liquidityAmount, -
|
|
101
|
+
liquidityAmount, -886800, 886800, zeroForOne);
|
|
99
102
|
const addLiquidityEstimate = await (0, dex_1.getAddLiquidityEstimation)(ctx, expectedTokenDTO);
|
|
100
103
|
const amount0 = new bignumber_js_1.default(addLiquidityEstimate.amount0.toString());
|
|
101
104
|
const amount1 = new bignumber_js_1.default(addLiquidityEstimate.amount1.toString());
|
|
102
105
|
const positionDto = new dex_1.AddLiquidityDTO(token0, token1, 10000, // TODO: make this configurable
|
|
103
|
-
-
|
|
106
|
+
-886800, 886800, amount0, amount1, amount0.times(0.9999999), amount1.times(0.9999999), undefined);
|
|
104
107
|
positionDto.uniqueKey = sale.vaultAddress.toString();
|
|
105
108
|
await (0, dex_1.addLiquidity)(ctx, positionDto, vaultAddressAlias);
|
|
106
109
|
// Burn any extra meme tokens
|
|
@@ -132,7 +135,7 @@ async function finalizeSale(ctx, sale) {
|
|
|
132
135
|
exports.finalizeSale = finalizeSale;
|
|
133
136
|
function calculateFinalLaunchpadPrice(sale, areTokensSorted) {
|
|
134
137
|
const totalTokensSold = new decimal_js_1.default(sale.fetchTokensSold());
|
|
135
|
-
const basePrice = new decimal_js_1.default(
|
|
138
|
+
const basePrice = new decimal_js_1.default(types_1.LaunchpadSale.BASE_PRICE);
|
|
136
139
|
const { exponentFactor, euler, decimals } = (0, utils_1.getBondingConstants)();
|
|
137
140
|
const exponent = exponentFactor.mul(totalTokensSold).div(decimals);
|
|
138
141
|
const multiplicand = euler.pow(exponent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"finaliseSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,4BAA4B;AAC5B,yCAAoD;AACpD,qDAQ+B;AAC/B,yCAWyB;AACzB,wEAAqC;AACrC,oEAAiC;AAEjC,2CAAgF;AAChF,iDAAgE;AAChE,oCAAyE;AAElE,KAAK,UAAU,YAAY,CAAC,GAAqB,EAAE,IAAmB;IAC3E,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,sCAA8B,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IACtF,MAAM,aAAa,GAAG,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,sCAA8B,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;IAE5G,MAAM,gCAAgC,GAAG,MAAM,IAAA,gCAAwB,EAAC,GAAG,CAAC,CAAC;IAC7E,IAAI,CAAC,gCAAgC,EAAE;QACrC,MAAM,IAAI,+BAAuB,CAAC,kDAAkD,CAAC,CAAC;KACvF;IAED,MAAM,qBAAqB,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,IAAI,CAAC;IACzF,MAAM,yBAAyB,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,MAAM,6BAA6B,GAAG,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC,IAAI,CAAC;IAEzG,MAAM,WAAW,GAAG,IAAI,CAAC,2BAA2B,EAAE,CAAC;IACvD,MAAM,SAAS,GAAG,IAAI,CAAC,4BAA4B,EAAE,CAAC;IACtD,MAAM,iBAAiB,GAAG,MAAM,IAAA,4BAAgB,EAAC,GAAG,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAEzE,MAAM,IAAA,yBAAa,EAAC,GAAG,EAAE;QACvB,IAAI,EAAE,iBAAiB;QACvB,EAAE,EAAE,IAAI,CAAC,SAAS;QAClB,gBAAgB,EAAE,WAAW;QAC7B,QAAQ,EAAE,IAAI,sBAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC;aAC9C,KAAK,CAAC,yBAAyB,CAAC;aAChC,aAAa,CAAC,CAAC,EAAE,sBAAS,CAAC,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"finaliseSale.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/finaliseSale.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"sellExactToken.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAkD,MAAM,uBAAuB,CAAC;AAGzG,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMrE;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,qBAAqB,GAClC,OAAO,CAAC,WAAW,CAAC,CAoFtB"}
|
|
@@ -46,41 +46,32 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
46
46
|
const sale = await (0, utils_1.fetchAndValidateSale)(ctx, sellTokenDTO.vaultAddress);
|
|
47
47
|
// Determine how much native token (e.g., GALA) the user will receive for the exact token quantity
|
|
48
48
|
const callNativeTokenOutResult = await (0, callNativeTokenOut_1.callNativeTokenOut)(ctx, sellTokenDTO);
|
|
49
|
-
const
|
|
50
|
-
const
|
|
49
|
+
const tokensBeingSold = new bignumber_js_1.BigNumber(callNativeTokenOutResult.originalQuantity); // number of tokens user wants to sell
|
|
50
|
+
const nativeTokensPayout = new bignumber_js_1.BigNumber(callNativeTokenOutResult.calculatedQuantity); // number of native tokens user will receive
|
|
51
|
+
const transactionFees = new bignumber_js_1.BigNumber(callNativeTokenOutResult.extraFees.transactionFees); // transaction fees
|
|
51
52
|
const nativeTokensLeftInVault = new bignumber_js_1.BigNumber(sale.nativeTokenQuantity);
|
|
52
53
|
const nativeToken = sale.fetchNativeTokenInstanceKey();
|
|
53
54
|
const memeToken = sale.fetchSellingTokenInstanceKey();
|
|
54
55
|
// Abort if the vault doesn't have enough native tokens to pay the user
|
|
55
|
-
if (
|
|
56
|
+
if (new bignumber_js_1.BigNumber(sellTokenDTO.tokenQuantity).isGreaterThan(nativeTokensLeftInVault)) {
|
|
56
57
|
throw new api_1.ValidationFailedError("Not enough GALA in sale contract to carry out this operation.");
|
|
57
58
|
}
|
|
58
59
|
// Enforce slippage tolerance: expected amount must not be greater than what will actually be received
|
|
59
60
|
if (sellTokenDTO.expectedNativeToken &&
|
|
60
|
-
sellTokenDTO.expectedNativeToken.
|
|
61
|
-
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedNativeToken.toString()}, but only ${
|
|
61
|
+
sellTokenDTO.expectedNativeToken.isGreaterThan(nativeTokensPayout)) {
|
|
62
|
+
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedNativeToken.toString()}, but only ${nativeTokensPayout.toString()} tokens can be provided. Reduce the expected amount or adjust your slippage tolerance.`);
|
|
62
63
|
}
|
|
63
64
|
// The fee must be paid BEFORE the sale can happen.
|
|
64
65
|
// That means you cannot pay the fee using proceeds from the sale.
|
|
65
|
-
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale,
|
|
66
|
+
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale, nativeTokensPayout, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
|
|
66
67
|
// Transfer launchpad transaction fee if applicable
|
|
67
|
-
|
|
68
|
-
if (launchpadFeeAddressConfiguration && transactionFees) {
|
|
69
|
-
await (0, chaincode_1.transferToken)(ctx, {
|
|
70
|
-
from: ctx.callingUser,
|
|
71
|
-
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
72
|
-
tokenInstanceKey: nativeToken,
|
|
73
|
-
quantity: new bignumber_js_1.BigNumber(transactionFees),
|
|
74
|
-
allowancesToUse: [],
|
|
75
|
-
authorizedOnBehalf: undefined
|
|
76
|
-
});
|
|
77
|
-
}
|
|
68
|
+
await (0, fees_1.transferTransactionFees)(ctx, sale, transactionFees, nativeToken);
|
|
78
69
|
// Transfer meme tokens from user to vault
|
|
79
70
|
await (0, chaincode_1.transferToken)(ctx, {
|
|
80
71
|
from: ctx.callingUser,
|
|
81
72
|
to: sellTokenDTO.vaultAddress,
|
|
82
73
|
tokenInstanceKey: memeToken,
|
|
83
|
-
quantity:
|
|
74
|
+
quantity: tokensBeingSold,
|
|
84
75
|
allowancesToUse: [],
|
|
85
76
|
authorizedOnBehalf: undefined
|
|
86
77
|
});
|
|
@@ -89,7 +80,7 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
89
80
|
from: sellTokenDTO.vaultAddress,
|
|
90
81
|
to: ctx.callingUser,
|
|
91
82
|
tokenInstanceKey: nativeToken,
|
|
92
|
-
quantity:
|
|
83
|
+
quantity: nativeTokensPayout,
|
|
93
84
|
allowancesToUse: [],
|
|
94
85
|
authorizedOnBehalf: {
|
|
95
86
|
callingOnBehalf: sellTokenDTO.vaultAddress,
|
|
@@ -97,15 +88,15 @@ async function sellExactToken(ctx, sellTokenDTO) {
|
|
|
97
88
|
}
|
|
98
89
|
});
|
|
99
90
|
// Update sale state with this transaction
|
|
100
|
-
sale.sellToken(
|
|
91
|
+
sale.sellToken(tokensBeingSold, nativeTokensPayout);
|
|
101
92
|
await (0, chaincode_1.putChainObject)(ctx, sale);
|
|
102
93
|
const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
|
|
103
94
|
return {
|
|
104
|
-
inputQuantity:
|
|
105
|
-
totalFees:
|
|
95
|
+
inputQuantity: tokensBeingSold.toFixed(),
|
|
96
|
+
totalFees: transactionFees
|
|
106
97
|
.plus((_c = (_b = sellTokenDTO.extraFees) === null || _b === void 0 ? void 0 : _b.maxAcceptableReverseBondingCurveFee) !== null && _c !== void 0 ? _c : 0)
|
|
107
98
|
.toFixed(),
|
|
108
|
-
outputQuantity:
|
|
99
|
+
outputQuantity: nativeTokensPayout.toFixed(),
|
|
109
100
|
tokenName: token.name,
|
|
110
101
|
tradeType: "Sell",
|
|
111
102
|
vaultAddress: sellTokenDTO.vaultAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAwD;AACxD,qDAAyG;AACzG,+CAAyC;AAGzC,iDAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"sellExactToken.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellExactToken.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAKjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,
|
|
1
|
+
{"version":3,"file":"sellWithNative.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,gBAAgB,EAKjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAMtE;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,cAAc,CAClC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,sBAAsB,GACnC,OAAO,CAAC,WAAW,CAAC,CA6FtB"}
|
|
@@ -56,34 +56,25 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
56
56
|
const sellingToken = await (0, chaincode_1.getObjectByKey)(ctx, api_1.TokenClass, sellingTokenCompositeKey);
|
|
57
57
|
const nativeTokensLeftInVault = new bignumber_js_1.default(sale.nativeTokenQuantity);
|
|
58
58
|
// Cap nativeTokenQuantity to the vault balance if the requested amount exceeds it
|
|
59
|
-
if (nativeTokensLeftInVault.
|
|
59
|
+
if (nativeTokensLeftInVault.isLessThan(sellTokenDTO.nativeTokenQuantity)) {
|
|
60
60
|
throw new api_1.ValidationFailedError("Not enough GALA in sale contract to carry out this operation.");
|
|
61
61
|
}
|
|
62
62
|
// Calculate how many tokens need to be sold to get the requested native amount
|
|
63
63
|
const callMemeTokenInResult = await (0, callMemeTokenIn_1.callMemeTokenIn)(ctx, sellTokenDTO);
|
|
64
|
-
const transactionFees = callMemeTokenInResult.extraFees.transactionFees;
|
|
65
|
-
const
|
|
64
|
+
const transactionFees = callMemeTokenInResult.extraFees.transactionFees; // transaction fees
|
|
65
|
+
const nativeTokensPayout = new bignumber_js_1.default(callMemeTokenInResult.originalQuantity); // number of native tokens user wants to receive
|
|
66
|
+
const tokensToSell = new bignumber_js_1.default(callMemeTokenInResult.calculatedQuantity).decimalPlaces(sellingToken.decimals); // number of tokens user needs to sell
|
|
66
67
|
const nativeToken = sale.fetchNativeTokenInstanceKey();
|
|
67
68
|
const memeToken = sale.fetchSellingTokenInstanceKey();
|
|
68
69
|
// Enforce slippage tolerance
|
|
69
|
-
if (sellTokenDTO.expectedToken && sellTokenDTO.expectedToken.
|
|
70
|
+
if (sellTokenDTO.expectedToken && sellTokenDTO.expectedToken.isLessThan(tokensToSell)) {
|
|
70
71
|
throw new error_1.SlippageToleranceExceededError(`expected ${sellTokenDTO.expectedToken.toString()}, but at least ${tokensToSell.toString()} tokens are required. Increase the expected amount or adjust your slippage tolerance.`);
|
|
71
72
|
}
|
|
72
73
|
// The fee must be paid BEFORE the sale can happen.
|
|
73
74
|
// That means you cannot pay the fee using proceeds from the sale.
|
|
74
|
-
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale,
|
|
75
|
+
await (0, fees_1.payReverseBondingCurveFee)(ctx, sale, nativeTokensPayout, (_a = sellTokenDTO.extraFees) === null || _a === void 0 ? void 0 : _a.maxAcceptableReverseBondingCurveFee);
|
|
75
76
|
// Transfer launchpad transaction fees if applicable
|
|
76
|
-
|
|
77
|
-
if (launchpadFeeAddressConfiguration && transactionFees) {
|
|
78
|
-
await (0, chaincode_1.transferToken)(ctx, {
|
|
79
|
-
from: ctx.callingUser,
|
|
80
|
-
to: launchpadFeeAddressConfiguration.feeAddress,
|
|
81
|
-
tokenInstanceKey: nativeToken,
|
|
82
|
-
quantity: new bignumber_js_1.default(transactionFees),
|
|
83
|
-
allowancesToUse: [],
|
|
84
|
-
authorizedOnBehalf: undefined
|
|
85
|
-
});
|
|
86
|
-
}
|
|
77
|
+
await (0, fees_1.transferTransactionFees)(ctx, sale, transactionFees, nativeToken);
|
|
87
78
|
// Send meme tokens from user to vault
|
|
88
79
|
await (0, chaincode_1.transferToken)(ctx, {
|
|
89
80
|
from: ctx.callingUser,
|
|
@@ -98,7 +89,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
98
89
|
from: sellTokenDTO.vaultAddress,
|
|
99
90
|
to: ctx.callingUser,
|
|
100
91
|
tokenInstanceKey: nativeToken,
|
|
101
|
-
quantity:
|
|
92
|
+
quantity: nativeTokensPayout,
|
|
102
93
|
allowancesToUse: [],
|
|
103
94
|
authorizedOnBehalf: {
|
|
104
95
|
callingOnBehalf: sellTokenDTO.vaultAddress,
|
|
@@ -106,7 +97,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
106
97
|
}
|
|
107
98
|
});
|
|
108
99
|
// Update internal sale tracking
|
|
109
|
-
sale.sellToken(tokensToSell,
|
|
100
|
+
sale.sellToken(tokensToSell, nativeTokensPayout);
|
|
110
101
|
await (0, chaincode_1.putChainObject)(ctx, sale);
|
|
111
102
|
const token = await (0, chaincode_1.fetchTokenClass)(ctx, sale.sellingToken);
|
|
112
103
|
return {
|
|
@@ -114,7 +105,7 @@ async function sellWithNative(ctx, sellTokenDTO) {
|
|
|
114
105
|
totalFees: new bignumber_js_1.default(transactionFees)
|
|
115
106
|
.plus((_c = (_b = sellTokenDTO.extraFees) === null || _b === void 0 ? void 0 : _b.maxAcceptableReverseBondingCurveFee) !== null && _c !== void 0 ? _c : 0)
|
|
116
107
|
.toFixed(),
|
|
117
|
-
outputQuantity:
|
|
108
|
+
outputQuantity: nativeTokensPayout.toFixed(),
|
|
118
109
|
tokenName: token.name,
|
|
119
110
|
tradeType: "Sell",
|
|
120
111
|
vaultAddress: sellTokenDTO.vaultAddress,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sellWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAoE;AACpE,qDAM+B;AAC/B,wEAAqC;AAGrC,iDAAuE;AACvE,
|
|
1
|
+
{"version":3,"file":"sellWithNative.js","sourceRoot":"","sources":["../../../../src/chaincode/launchpad/sellWithNative.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadgala.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,SAAS,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"launchpadgala.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"AAcA,OAAO,EAEL,cAAc,EACd,YAAY,EACZ,SAAS,EACT,UAAU,EACV,aAAa,EACb,aAAa,EACb,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,SAAS,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+HrC,wBAsBE"}
|
|
@@ -20,6 +20,7 @@ const api_1 = require("@gala-chain/api");
|
|
|
20
20
|
const test_1 = require("@gala-chain/test");
|
|
21
21
|
const utils_1 = require("@gala-chain/test/lib/src/data/utils");
|
|
22
22
|
const bignumber_js_1 = tslib_1.__importDefault(require("bignumber.js"));
|
|
23
|
+
const types_1 = require("../../api/types");
|
|
23
24
|
process.env.LAUNCHPAD_GALA_CLASS_COLLECTION = (_a = process.env.LAUNCHPAD_GALA_CLASS_COLLECTION) !== null && _a !== void 0 ? _a : "GALA";
|
|
24
25
|
process.env.LAUNCHPAD_GALA_CLASS_CATEGORY = (_b = process.env.LAUNCHPAD_GALA_CLASS_CATEGORY) !== null && _b !== void 0 ? _b : "Unit";
|
|
25
26
|
process.env.LAUNCHPAD_GALA_CLASS_TYPE = (_c = process.env.LAUNCHPAD_GALA_CLASS_TYPE) !== null && _c !== void 0 ? _c : "none";
|
|
@@ -33,7 +34,7 @@ const tokenClassKeyPlain = (0, utils_1.createPlainFn)({
|
|
|
33
34
|
const tokenClassPlain = (0, utils_1.createPlainFn)({
|
|
34
35
|
...tokenClassKeyPlain(),
|
|
35
36
|
description: "Generated via automated test suite.",
|
|
36
|
-
decimals:
|
|
37
|
+
decimals: types_1.LaunchpadSale.NATIVE_TOKEN_DECIMALS,
|
|
37
38
|
image: "https://app.gala.games/test-image-placeholder-url.png",
|
|
38
39
|
isNonFungible: false,
|
|
39
40
|
maxCapacity: new bignumber_js_1.default(100000000000000),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadgala.js","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCASyB;AACzB,2CAAyC;AACzC,+DAAsF;AACtF,wEAAqC;AAErC,OAAO,CAAC,GAAG,CAAC,+BAA+B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,+BAA+B,mCAAI,MAAM,CAAC;AACpG,OAAO,CAAC,GAAG,CAAC,6BAA6B,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,6BAA6B,mCAAI,MAAM,CAAC;AAChG,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,yBAAyB,mCAAI,MAAM,CAAC;AACxF,OAAO,CAAC,GAAG,CAAC,mCAAmC,GAAG,MAAA,OAAO,CAAC,GAAG,CAAC,mCAAmC,mCAAI,MAAM,CAAC;AAE5G,MAAM,kBAAkB,GAAG,IAAA,qBAAa,EAAC;IACvC,UAAU,EAAE,OAAO,CAAC,GAAG,CAAC,+BAA+B;IACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,6BAA6B;IACnD,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,yBAAyB;IAC3C,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,mCAAmC;CAC/D,CAAC,CAAC;AAEH,MAAM,eAAe,GAAG,IAAA,qBAAa,EAAC;IACpC,GAAG,kBAAkB,EAAE;IACvB,WAAW,EAAE,qCAAqC;IAClD,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"launchpadgala.js","sourceRoot":"","sources":["../../../../src/chaincode/test/launchpadgala.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,4 +8,8 @@ export declare function getBondingConstants(): {
|
|
|
8
8
|
decimals: Decimal;
|
|
9
9
|
};
|
|
10
10
|
export declare function fetchLaunchpadFeeAddress(ctx: GalaChainContext): Promise<LaunchpadFeeConfig | undefined>;
|
|
11
|
+
export declare function fetchTokenDecimals(ctx: GalaChainContext, sale: LaunchpadSale): Promise<{
|
|
12
|
+
sellingTokenDecimals: number;
|
|
13
|
+
nativeTokenDecimals: number;
|
|
14
|
+
}>;
|
|
11
15
|
//# sourceMappingURL=launchpadSaleUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadSaleUtils.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/utils/launchpadSaleUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"launchpadSaleUtils.d.ts","sourceRoot":"","sources":["../../../../src/chaincode/utils/launchpadSaleUtils.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,gBAAgB,EAAmC,MAAM,uBAAuB,CAAC;AAC1F,OAAO,OAAO,MAAM,YAAY,CAAC;AAEjC,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAc,MAAM,iBAAiB,CAAC;AAEhF,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,gBAAgB,EACrB,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,aAAa,CAAC,CAmBxB;AAED,wBAAgB,mBAAmB;;;;EAMlC;AAED,wBAAsB,wBAAwB,CAC5C,GAAG,EAAE,gBAAgB,GACpB,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC,CAazC;AAED,wBAAsB,kBAAkB,CACtC,GAAG,EAAE,gBAAgB,EACrB,IAAI,EAAE,aAAa,GAClB,OAAO,CAAC;IAAE,oBAAoB,EAAE,MAAM,CAAC;IAAC,mBAAmB,EAAE,MAAM,CAAA;CAAE,CAAC,CAOxE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.fetchLaunchpadFeeAddress = exports.getBondingConstants = exports.fetchAndValidateSale = void 0;
|
|
3
|
+
exports.fetchTokenDecimals = exports.fetchLaunchpadFeeAddress = exports.getBondingConstants = exports.fetchAndValidateSale = void 0;
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
/*
|
|
6
6
|
* Copyright (c) Gala Games Inc. All rights reserved.
|
|
@@ -62,4 +62,13 @@ async function fetchLaunchpadFeeAddress(ctx) {
|
|
|
62
62
|
return platformFeeAddress;
|
|
63
63
|
}
|
|
64
64
|
exports.fetchLaunchpadFeeAddress = fetchLaunchpadFeeAddress;
|
|
65
|
+
async function fetchTokenDecimals(ctx, sale) {
|
|
66
|
+
const sellingToken = await (0, chaincode_1.fetchTokenClass)(ctx, sale.fetchSellingTokenInstanceKey());
|
|
67
|
+
const nativeToken = await (0, chaincode_1.fetchTokenClass)(ctx, sale.fetchNativeTokenInstanceKey());
|
|
68
|
+
return {
|
|
69
|
+
sellingTokenDecimals: sellingToken.decimals,
|
|
70
|
+
nativeTokenDecimals: nativeToken.decimals
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
exports.fetchTokenDecimals = fetchTokenDecimals;
|
|
65
74
|
//# sourceMappingURL=launchpadSaleUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launchpadSaleUtils.js","sourceRoot":"","sources":["../../../../src/chaincode/utils/launchpadSaleUtils.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAqF;AACrF,
|
|
1
|
+
{"version":3,"file":"launchpadSaleUtils.js","sourceRoot":"","sources":["../../../../src/chaincode/utils/launchpadSaleUtils.ts"],"names":[],"mappings":";;;;AAAA;;;;;;;;;;;;;GAaG;AACH,yCAAqF;AACrF,qDAA0F;AAC1F,oEAAiC;AAEjC,2CAAgF;AAEzE,KAAK,UAAU,oBAAoB,CACxC,GAAqB,EACrB,YAAoB;IAEpB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAa,CAAC,SAAS,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IACjF,MAAM,IAAI,GAAG,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,qBAAa,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACrE,MAAM,UAAU,GAAG,gBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,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,IAAI,IAAI,KAAK,SAAS,EAAE;QACtB,MAAM,IAAI,mBAAa,CAAC,wBAAwB,CAAC,CAAC;KACnD;IACD,IAAI,IAAI,CAAC,UAAU,KAAK,kBAAU,CAAC,GAAG,EAAE;QACtC,MAAM,IAAI,kBAAY,CAAC,8BAA8B,CAAC,CAAC;KACxD;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAtBD,oDAsBC;AAED,SAAgB,mBAAmB;IACjC,OAAO;QACL,cAAc,EAAE,IAAI,oBAAO,CAAC,eAAe,CAAC;QAC5C,KAAK,EAAE,IAAI,oBAAO,CAAC,mCAAmC,CAAC;QACvD,QAAQ,EAAE,IAAI,oBAAO,CAAC,OAAO,CAAC,CAAC,8BAA8B;KAC9D,CAAC;AACJ,CAAC;AAND,kDAMC;AAEM,KAAK,UAAU,wBAAwB,CAC5C,GAAqB;IAErB,MAAM,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC,kBAAkB,CAAC,0BAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;IAE1E,MAAM,kBAAkB,GAAG,MAAM,IAAA,0BAAc,EAAC,GAAG,EAAE,0BAAkB,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE;QACxF,MAAM,UAAU,GAAG,gBAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACtC,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,OAAO,kBAAkB,CAAC;AAC5B,CAAC;AAfD,4DAeC;AAEM,KAAK,UAAU,kBAAkB,CACtC,GAAqB,EACrB,IAAmB;IAEnB,MAAM,YAAY,GAAG,MAAM,IAAA,2BAAe,EAAC,GAAG,EAAE,IAAI,CAAC,4BAA4B,EAAE,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,MAAM,IAAA,2BAAe,EAAC,GAAG,EAAE,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;IACnF,OAAO;QACL,oBAAoB,EAAE,YAAY,CAAC,QAAQ;QAC3C,mBAAmB,EAAE,WAAW,CAAC,QAAQ;KAC1C,CAAC;AACJ,CAAC;AAVD,gDAUC"}
|
package/lib/src/cli.js
CHANGED
|
@@ -4,13 +4,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
const tslib_1 = require("tslib");
|
|
5
5
|
require("fabric-shim/cli");
|
|
6
6
|
const fs_1 = tslib_1.__importDefault(require("fs"));
|
|
7
|
+
const os_1 = tslib_1.__importDefault(require("os"));
|
|
8
|
+
const path_1 = tslib_1.__importDefault(require("path"));
|
|
7
9
|
const [, , customCommand] = process.argv;
|
|
8
10
|
if (customCommand === "get-contract-names") {
|
|
9
11
|
printContractNames();
|
|
10
12
|
process.exit(0);
|
|
11
13
|
}
|
|
12
14
|
if (customCommand === "get-contract-api") {
|
|
13
|
-
saveContractAPI("
|
|
15
|
+
saveContractAPI(path_1.default.join(os_1.default.tmpdir(), "contract-api.json")); // output is stored at the operating system's default directory
|
|
14
16
|
process.exit(0);
|
|
15
17
|
}
|
|
16
18
|
function getContractInstances() {
|
package/lib/src/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;;AAmBA,2BAAyB;AACzB,oDAAoB;
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli.ts"],"names":[],"mappings":";;;;AAmBA,2BAAyB;AACzB,oDAAoB;AACpB,oDAAoB;AACpB,wDAAwB;AAExB,MAAM,CAAC,EAAE,AAAD,EAAG,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AACzC,IAAI,aAAa,KAAK,oBAAoB,EAAE;IAC1C,kBAAkB,EAAE,CAAC;IACrB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,IAAI,aAAa,KAAK,kBAAkB,EAAE;IACxC,eAAe,CAAC,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,MAAM,EAAE,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC,+DAA+D;IAC7H,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB;AAED,SAAS,oBAAoB;IAC3B,qFAAqF;IACrF,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,OAAO,CAAC;IACnD,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAC;IAEhC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,OAAO,CAAC,SAAS,aAAT,SAAS,cAAT,SAAS,GAAI,EAAE,CAAC;SACrB,MAAM,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,UAAU,CAAC;SAC3C,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC;SACvB,MAAM,CAAC,CAAC,CAAe,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU,CAAC,CAAC;AAClE,CAAC;AAED,SAAS,kBAAkB;IACzB,MAAM,QAAQ,GAAG,oBAAoB,EAAE;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SACvB,MAAM,CAAC,CAAC,IAAY,EAAE,EAAE,CAAC,IAAI,KAAK,SAAS,CAAC;SAC5C,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,YAAoB,EAAE,EAAE,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC;IAErD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxC,CAAC;AAED,SAAS,eAAe,CAAC,IAAY;IACnC,MAAM,QAAQ,GAAG,oBAAoB,EAAE;SACpC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;SAC9B,MAAM,CAAC,CAAC,GAAgB,EAAE,EAAE,CAAC,GAAG,KAAK,SAAS,CAAC;SAC/C,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhE,YAAE,CAAC,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC;AACnD,CAAC"}
|