@orbs-network/twap 1.25.3 → 2.0.0
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/configs.json +211 -0
- package/package.json +6 -26
- package/dist/artifacts/contracts/TWAP.sol/TWAP.json +0 -894
- package/dist/artifacts/contracts/periphery/Lens.sol/Lens.json +0 -561
- package/dist/artifacts/contracts/periphery/Taker.sol/Taker.json +0 -142
- package/dist/script/input/1284/config.json +0 -8
- package/dist/script/input/137/config.json +0 -8
- package/dist/script/input/250/config.json +0 -8
- package/dist/script/input/324/config.json +0 -8
- package/dist/script/input/42161/config.json +0 -8
- package/dist/script/input/43114/config.json +0 -8
- package/dist/script/input/56/config.json +0 -8
- package/dist/script/input/59144/config.json +0 -8
- package/dist/script/input/8453/config.json +0 -8
- package/dist/src/configs.d.ts +0 -4357
- package/dist/src/configs.js +0 -81
- package/dist/src/index.d.ts +0 -2
- package/dist/src/index.js +0 -18
- package/dist/src/legacy-abi.d.ts +0 -178
- package/dist/src/legacy-abi.js +0 -9
- package/dist/src/lib.d.ts +0 -102
- package/dist/src/lib.js +0 -271
package/dist/src/lib.js
DELETED
|
@@ -1,271 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.TokensValidation = exports.OrderInputValidation = exports.Status = exports.TWAPLib = void 0;
|
|
16
|
-
const web3_1 = __importDefault(require("web3"));
|
|
17
|
-
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
18
|
-
const web3_candies_1 = require("@defi.org/web3-candies");
|
|
19
|
-
const lodash_1 = __importDefault(require("lodash"));
|
|
20
|
-
class TWAPLib {
|
|
21
|
-
constructor(config, maker, provider) {
|
|
22
|
-
this.config = config;
|
|
23
|
-
this.maker = maker;
|
|
24
|
-
this.provider = provider;
|
|
25
|
-
this.isNativeToken = (token) => (0, web3_candies_1.isNativeAddress)(token.address);
|
|
26
|
-
this.isWrappedToken = (token) => (0, web3_candies_1.eqIgnoreCase)(token.address, this.config.wToken.address);
|
|
27
|
-
this.isValidChain = (chainId) => chainId === this.config.chainId;
|
|
28
|
-
this.maxPossibleChunks = (srcToken, srcAmount, srcUsd) => bignumber_js_1.default.max(1, (0, bignumber_js_1.default)(srcAmount).div((0, bignumber_js_1.default)(10).pow(srcToken.decimals).div(srcUsd).times(this.config.minChunkSizeUsd)))
|
|
29
|
-
.integerValue(bignumber_js_1.default.ROUND_FLOOR)
|
|
30
|
-
.toNumber();
|
|
31
|
-
this.srcChunkAmount = (srcAmount, totalChunks) => (0, bignumber_js_1.default)(srcAmount).div(totalChunks).integerValue(bignumber_js_1.default.ROUND_FLOOR);
|
|
32
|
-
this.totalChunks = (srcAmount, srcChunkAmount) => (0, bignumber_js_1.default)(srcAmount).div(srcChunkAmount).integerValue(bignumber_js_1.default.ROUND_CEIL).toNumber();
|
|
33
|
-
this.estimatedDelayBetweenChunksMillis = () => this.config.bidDelaySeconds * 1000 * 2;
|
|
34
|
-
/**
|
|
35
|
-
* includes the bidding war and block settelment
|
|
36
|
-
*/
|
|
37
|
-
this.fillDelayUiMillis = (totalChunks, maxDurationMillis) => bignumber_js_1.default.max((0, bignumber_js_1.default)(totalChunks).gt(1) ? (0, bignumber_js_1.default)(maxDurationMillis).div(totalChunks) : 0, (0, bignumber_js_1.default)(this.estimatedDelayBetweenChunksMillis())).toNumber();
|
|
38
|
-
this.fillDelayMillis = (totalChunks, maxDurationMillis) => this.fillDelayUiMillis(totalChunks, maxDurationMillis) - this.estimatedDelayBetweenChunksMillis();
|
|
39
|
-
this.dstMinAmountOut = (srcToken, dstToken, srcChunkAmount, limitDstPriceFor1Src, isMarketOrder) => isMarketOrder
|
|
40
|
-
? (0, bignumber_js_1.default)(1)
|
|
41
|
-
: bignumber_js_1.default.max(1, (0, web3_candies_1.convertDecimals)((0, bignumber_js_1.default)(srcChunkAmount).times(limitDstPriceFor1Src), srcToken.decimals, dstToken.decimals).integerValue(bignumber_js_1.default.ROUND_FLOOR));
|
|
42
|
-
// TODO: REMOVE
|
|
43
|
-
this.dstPriceFor1Src = (srcToken, dstToken, srcUsdMarket, dstUsdMarket, srcChunkAmount, dstMinAmountOut) => (0, bignumber_js_1.default)(dstMinAmountOut).eq(1)
|
|
44
|
-
? (0, bignumber_js_1.default)(srcUsdMarket).div(dstUsdMarket)
|
|
45
|
-
: (0, bignumber_js_1.default)(dstMinAmountOut).div((0, web3_candies_1.convertDecimals)((0, bignumber_js_1.default)(srcChunkAmount), srcToken.decimals, dstToken.decimals));
|
|
46
|
-
this.isMarketOrder = (order) => order.ask.dstMinAmount.lte(1);
|
|
47
|
-
this.orderProgress = (order) => parseFloat(order.srcFilledAmount.div(order.ask.srcAmount).toFixed(4));
|
|
48
|
-
this.percentAboveMarket = (srcUsdMarket, dstUsdMarket, limitDstPriceFor1Src) => parseFloat((0, bignumber_js_1.default)(limitDstPriceFor1Src).div((0, bignumber_js_1.default)(srcUsdMarket).div(dstUsdMarket)).minus(1).toFixed(4));
|
|
49
|
-
this.status = (order) => order.status > Date.now() / 1000
|
|
50
|
-
? Status.Open
|
|
51
|
-
: order.status === 1
|
|
52
|
-
? Status.Canceled
|
|
53
|
-
: order.status === 2
|
|
54
|
-
? Status.Completed
|
|
55
|
-
: Status.Expired;
|
|
56
|
-
if (provider)
|
|
57
|
-
(0, web3_candies_1.setWeb3Instance)(new web3_1.default(provider));
|
|
58
|
-
this.twap = (0, web3_candies_1.contract)(config.twapAbi, config.twapAddress);
|
|
59
|
-
this.lens = (0, web3_candies_1.contract)(config.lensAbi, config.lensAddress);
|
|
60
|
-
}
|
|
61
|
-
makerBalance(token) {
|
|
62
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
63
|
-
if (this.isNativeToken(token))
|
|
64
|
-
return (0, web3_candies_1.web3)().eth.getBalance(this.maker).then(bignumber_js_1.default);
|
|
65
|
-
else
|
|
66
|
-
return (0, web3_candies_1.erc20)(token.symbol, token.address, token.decimals).methods.balanceOf(this.maker).call().then(bignumber_js_1.default);
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
wrapNativeToken(amount, maxPriorityFeePerGas, maxFeePerGas) {
|
|
70
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
71
|
-
yield (0, web3_candies_1.sendAndWaitForConfirmations)((0, web3_candies_1.erc20)(this.config.wToken.symbol, this.config.wToken.address, this.config.wToken.decimals, web3_candies_1.iwethabi).methods.deposit(), { from: this.maker, maxPriorityFeePerGas, maxFeePerGas, value: amount });
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
unwrapNativeToken(amount, maxPriorityFeePerGas, maxFeePerGas) {
|
|
75
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
76
|
-
yield (0, web3_candies_1.sendAndWaitForConfirmations)((0, web3_candies_1.erc20)(this.config.wToken.symbol, this.config.wToken.address, this.config.wToken.decimals, web3_candies_1.iwethabi).methods.withdraw((0, bignumber_js_1.default)(amount).toFixed(0)), { from: this.maker, maxPriorityFeePerGas, maxFeePerGas });
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
hasAllowance(srcToken, amount) {
|
|
80
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
-
if (this.isNativeToken(srcToken))
|
|
82
|
-
return true;
|
|
83
|
-
const token = (0, web3_candies_1.erc20)(srcToken.symbol, srcToken.address, srcToken.decimals);
|
|
84
|
-
const allowance = (0, bignumber_js_1.default)(yield token.methods.allowance(this.maker, this.config.twapAddress).call());
|
|
85
|
-
return allowance.gte(amount);
|
|
86
|
-
});
|
|
87
|
-
}
|
|
88
|
-
approve(srcToken, amount, maxPriorityFeePerGas, maxFeePerGas) {
|
|
89
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
90
|
-
const token = (0, web3_candies_1.erc20)(srcToken.symbol, srcToken.address, srcToken.decimals);
|
|
91
|
-
yield (0, web3_candies_1.sendAndWaitForConfirmations)(token.methods.approve(this.config.twapAddress, (0, bignumber_js_1.default)(amount).toFixed(0)), {
|
|
92
|
-
from: this.maker,
|
|
93
|
-
maxPriorityFeePerGas,
|
|
94
|
-
maxFeePerGas,
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
validateTokens(srcToken, dstToken) {
|
|
99
|
-
if (lodash_1.default.isEqual(srcToken, dstToken) || (this.isNativeToken(srcToken) && this.isNativeToken(dstToken)))
|
|
100
|
-
return TokensValidation.invalid;
|
|
101
|
-
if (this.isNativeToken(srcToken)) {
|
|
102
|
-
if (this.isWrappedToken(dstToken))
|
|
103
|
-
return TokensValidation.wrapOnly;
|
|
104
|
-
return TokensValidation.wrapAndOrder;
|
|
105
|
-
}
|
|
106
|
-
if (this.isWrappedToken(srcToken) && this.isNativeToken(dstToken))
|
|
107
|
-
return TokensValidation.unwrapOnly;
|
|
108
|
-
if (this.isNativeToken(dstToken))
|
|
109
|
-
return TokensValidation.dstTokenZero;
|
|
110
|
-
return TokensValidation.valid;
|
|
111
|
-
}
|
|
112
|
-
validateOrderInputs(srcToken, dstToken, srcAmount, srcChunkAmount, dstMinChunkAmountOut, deadline, fillDelaySeconds, srcUsd) {
|
|
113
|
-
const tokensValidation = this.validateTokens(srcToken, dstToken);
|
|
114
|
-
if (tokensValidation === TokensValidation.invalid)
|
|
115
|
-
return OrderInputValidation.invalidTokens;
|
|
116
|
-
if ((0, bignumber_js_1.default)(srcAmount).lte(0))
|
|
117
|
-
return OrderInputValidation.invalidSrcAmount;
|
|
118
|
-
if ((0, bignumber_js_1.default)(srcChunkAmount).lte(0) || (0, bignumber_js_1.default)(srcChunkAmount).gt(srcAmount))
|
|
119
|
-
return OrderInputValidation.invalidSrcChunkAmount;
|
|
120
|
-
if ((0, bignumber_js_1.default)(dstMinChunkAmountOut).lte(0))
|
|
121
|
-
return OrderInputValidation.invalidDstMinChunkAmountOut;
|
|
122
|
-
if ((0, bignumber_js_1.default)(deadline).integerValue(bignumber_js_1.default.ROUND_FLOOR).lte(Date.now()))
|
|
123
|
-
return OrderInputValidation.invalidDeadline;
|
|
124
|
-
if ((0, bignumber_js_1.default)(fillDelaySeconds).integerValue(bignumber_js_1.default.ROUND_FLOOR).lt(0))
|
|
125
|
-
return OrderInputValidation.invalidFillDelaySeconds;
|
|
126
|
-
if ((0, bignumber_js_1.default)(srcUsd).lte(0))
|
|
127
|
-
return OrderInputValidation.invalidSrcUsd;
|
|
128
|
-
if ((0, bignumber_js_1.default)(srcChunkAmount)
|
|
129
|
-
.times(srcUsd)
|
|
130
|
-
.lt((0, bignumber_js_1.default)(this.config.minChunkSizeUsd).times((0, bignumber_js_1.default)(10).pow(srcToken.decimals))))
|
|
131
|
-
return OrderInputValidation.invalidSmallestSrcChunkUsd;
|
|
132
|
-
return OrderInputValidation.valid;
|
|
133
|
-
}
|
|
134
|
-
submitOrder(srcToken, dstToken, srcAmount, srcChunkAmount, dstMinChunkAmountOut, deadline, fillDelaySeconds, srcUsd, askDataParams = [], maxPriorityFeePerGas, maxFeePerGas) {
|
|
135
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
136
|
-
const validation = this.validateOrderInputs(srcToken, dstToken, srcAmount, srcChunkAmount, dstMinChunkAmountOut, deadline, fillDelaySeconds, srcUsd);
|
|
137
|
-
if (validation !== OrderInputValidation.valid)
|
|
138
|
-
throw new Error(`invalid inputs: ${validation}`);
|
|
139
|
-
const askData = this.config.exchangeType === "PangolinDaasExchange"
|
|
140
|
-
? (0, web3_candies_1.web3)().eth.abi.encodeParameters(["address"], askDataParams)
|
|
141
|
-
: [];
|
|
142
|
-
const askParams = [
|
|
143
|
-
this.config.exchangeAddress,
|
|
144
|
-
srcToken.address,
|
|
145
|
-
dstToken.address,
|
|
146
|
-
(0, bignumber_js_1.default)(srcAmount).toFixed(0),
|
|
147
|
-
(0, bignumber_js_1.default)(srcChunkAmount).toFixed(0),
|
|
148
|
-
(0, bignumber_js_1.default)(dstMinChunkAmountOut).toFixed(0),
|
|
149
|
-
(0, bignumber_js_1.default)(deadline).div(1000).toFixed(0),
|
|
150
|
-
(0, bignumber_js_1.default)(this.config.bidDelaySeconds).toFixed(0),
|
|
151
|
-
(0, bignumber_js_1.default)(fillDelaySeconds).toFixed(0),
|
|
152
|
-
];
|
|
153
|
-
let ask;
|
|
154
|
-
if (this.config.twapVersion > 3) {
|
|
155
|
-
askParams.push(askData);
|
|
156
|
-
ask = this.twap.methods.ask(askParams);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
ask = this.twap.methods.ask(...askParams);
|
|
160
|
-
}
|
|
161
|
-
const tx = yield (0, web3_candies_1.sendAndWaitForConfirmations)(ask, {
|
|
162
|
-
from: this.maker,
|
|
163
|
-
maxPriorityFeePerGas,
|
|
164
|
-
maxFeePerGas,
|
|
165
|
-
});
|
|
166
|
-
const events = (0, web3_candies_1.parseEvents)(tx, this.twap.options.jsonInterface);
|
|
167
|
-
return { txHash: tx.transactionHash, orderId: Number(events[0].returnValues.id) };
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
getOrder(id) {
|
|
171
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
-
return this.parseOrder(yield this.twap.methods.order(id).call());
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
cancelOrder(id, maxPriorityFeePerGas, maxFeePerGas) {
|
|
176
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
177
|
-
yield (0, web3_candies_1.sendAndWaitForConfirmations)(this.twap.methods.cancel(id), {
|
|
178
|
-
from: this.maker,
|
|
179
|
-
maxPriorityFeePerGas,
|
|
180
|
-
maxFeePerGas,
|
|
181
|
-
});
|
|
182
|
-
});
|
|
183
|
-
}
|
|
184
|
-
getAllOrders() {
|
|
185
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
186
|
-
return lodash_1.default.filter(lodash_1.default.map(yield this.lens.methods.makerOrders(this.maker).call(), (o) => this.parseOrder(o)), (o) => (0, web3_candies_1.eqIgnoreCase)(o.ask.exchange, this.config.exchangeAddress));
|
|
187
|
-
});
|
|
188
|
-
}
|
|
189
|
-
getAllOrdersWithTokens() {
|
|
190
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
-
const orders = yield this.getAllOrders();
|
|
192
|
-
const tokens = yield Promise.all(lodash_1.default.map(lodash_1.default.uniq(lodash_1.default.concat(lodash_1.default.map(orders, (o) => o.ask.srcToken), lodash_1.default.map(orders, (o) => o.ask.dstToken))), (a) => this.getToken(a)));
|
|
193
|
-
return lodash_1.default.map(orders, (o) => lodash_1.default.merge(o, {
|
|
194
|
-
srcToken: lodash_1.default.find(tokens, (t) => (0, web3_candies_1.eqIgnoreCase)(t.address, o.ask.srcToken)),
|
|
195
|
-
dstToken: lodash_1.default.find(tokens, (t) => (0, web3_candies_1.eqIgnoreCase)(t.address, o.ask.dstToken)),
|
|
196
|
-
}));
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
parseOrder(r) {
|
|
200
|
-
var _a, _b, _c, _d, _e, _f;
|
|
201
|
-
return {
|
|
202
|
-
id: Number(r.id),
|
|
203
|
-
status: Number(r.status),
|
|
204
|
-
time: Number(r.time || r.ask.time),
|
|
205
|
-
filledTime: Number(r.filledTime),
|
|
206
|
-
srcFilledAmount: (0, bignumber_js_1.default)(r.srcFilledAmount),
|
|
207
|
-
maker: web3_1.default.utils.toChecksumAddress(r.maker || r.ask.maker),
|
|
208
|
-
ask: {
|
|
209
|
-
deadline: Number(r.ask.deadline),
|
|
210
|
-
bidDelay: Number(r.ask.bidDelay),
|
|
211
|
-
fillDelay: Number(r.ask.fillDelay),
|
|
212
|
-
exchange: web3_1.default.utils.toChecksumAddress(r.ask.exchange),
|
|
213
|
-
srcToken: web3_1.default.utils.toChecksumAddress(r.ask.srcToken),
|
|
214
|
-
dstToken: web3_1.default.utils.toChecksumAddress(r.ask.dstToken),
|
|
215
|
-
srcAmount: (0, bignumber_js_1.default)(r.ask.srcAmount),
|
|
216
|
-
srcBidAmount: (0, bignumber_js_1.default)(r.ask.srcBidAmount),
|
|
217
|
-
dstMinAmount: (0, bignumber_js_1.default)(r.ask.dstMinAmount),
|
|
218
|
-
},
|
|
219
|
-
bid: {
|
|
220
|
-
time: Number(((_a = r.bid) === null || _a === void 0 ? void 0 : _a.time) || 0),
|
|
221
|
-
taker: web3_1.default.utils.toChecksumAddress(((_b = r.bid) === null || _b === void 0 ? void 0 : _b.taker) || web3_candies_1.zeroAddress),
|
|
222
|
-
exchange: web3_1.default.utils.toChecksumAddress(((_c = r.bid) === null || _c === void 0 ? void 0 : _c.exchange) || web3_candies_1.zeroAddress),
|
|
223
|
-
dstAmount: (0, bignumber_js_1.default)(((_d = r.bid) === null || _d === void 0 ? void 0 : _d.dstAmount) || web3_candies_1.zero),
|
|
224
|
-
dstFee: (0, bignumber_js_1.default)(((_e = r.bid) === null || _e === void 0 ? void 0 : _e.dstFee) || web3_candies_1.zero),
|
|
225
|
-
data: ((_f = r.bid) === null || _f === void 0 ? void 0 : _f.data) || "",
|
|
226
|
-
},
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
getToken(address) {
|
|
230
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
231
|
-
if ((0, web3_candies_1.isNativeAddress)(address))
|
|
232
|
-
return this.config.nativeToken;
|
|
233
|
-
if ((0, web3_candies_1.eqIgnoreCase)(address, this.config.wToken.address))
|
|
234
|
-
return this.config.wToken;
|
|
235
|
-
address = web3_1.default.utils.toChecksumAddress(address);
|
|
236
|
-
const t = (0, web3_candies_1.erc20)(address, address);
|
|
237
|
-
const [decimals, symbol] = yield Promise.all([t.decimals(), t.methods.symbol().call()]);
|
|
238
|
-
return { address, decimals, symbol };
|
|
239
|
-
});
|
|
240
|
-
}
|
|
241
|
-
}
|
|
242
|
-
exports.TWAPLib = TWAPLib;
|
|
243
|
-
TWAPLib.VERSION = 4;
|
|
244
|
-
var Status;
|
|
245
|
-
(function (Status) {
|
|
246
|
-
Status["Open"] = "Open";
|
|
247
|
-
Status["Canceled"] = "Canceled";
|
|
248
|
-
Status["Completed"] = "Completed";
|
|
249
|
-
Status["Expired"] = "Expired";
|
|
250
|
-
})(Status = exports.Status || (exports.Status = {}));
|
|
251
|
-
var OrderInputValidation;
|
|
252
|
-
(function (OrderInputValidation) {
|
|
253
|
-
OrderInputValidation["valid"] = "valid";
|
|
254
|
-
OrderInputValidation["invalidTokens"] = "invalidTokens";
|
|
255
|
-
OrderInputValidation["invalidSrcAmount"] = "invalidSrcAmount";
|
|
256
|
-
OrderInputValidation["invalidSrcChunkAmount"] = "invalidSrcChunkAmount";
|
|
257
|
-
OrderInputValidation["invalidDstMinChunkAmountOut"] = "invalidDstMinChunkAmountOut";
|
|
258
|
-
OrderInputValidation["invalidDeadline"] = "invalidDeadline";
|
|
259
|
-
OrderInputValidation["invalidFillDelaySeconds"] = "invalidFillDelaySeconds";
|
|
260
|
-
OrderInputValidation["invalidSrcUsd"] = "invalidSrcUsd";
|
|
261
|
-
OrderInputValidation["invalidSmallestSrcChunkUsd"] = "invalidSmallestSrcChunkUsd";
|
|
262
|
-
})(OrderInputValidation = exports.OrderInputValidation || (exports.OrderInputValidation = {}));
|
|
263
|
-
var TokensValidation;
|
|
264
|
-
(function (TokensValidation) {
|
|
265
|
-
TokensValidation["valid"] = "valid";
|
|
266
|
-
TokensValidation["invalid"] = "invalid";
|
|
267
|
-
TokensValidation["wrapOnly"] = "wrapOnly";
|
|
268
|
-
TokensValidation["unwrapOnly"] = "unwrapOnly";
|
|
269
|
-
TokensValidation["wrapAndOrder"] = "wrapAndOrder";
|
|
270
|
-
TokensValidation["dstTokenZero"] = "dstTokenZero";
|
|
271
|
-
})(TokensValidation = exports.TokensValidation || (exports.TokensValidation = {}));
|