@orbs-network/twap 1.5.11-0 → 1.5.12
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/dist/src/lib.d.ts +11 -1
- package/dist/src/lib.js +34 -4
- package/package.json +1 -1
package/dist/src/lib.d.ts
CHANGED
|
@@ -13,6 +13,7 @@ export declare class TWAPLib {
|
|
|
13
13
|
constructor(config: Config, maker: string, provider?: any);
|
|
14
14
|
dstAmount: (srcToken: TokenData, dstToken: TokenData, srcAmount: BN.Value, srcUsdMarket: BN.Value, dstUsdMarket: BN.Value, limitDstPriceFor1Src: BN.Value, isMarketOrder: boolean) => BN;
|
|
15
15
|
isNativeToken: (token: TokenData) => boolean;
|
|
16
|
+
isWrappedToken: (token: TokenData) => boolean;
|
|
16
17
|
isValidChain: (chainId: number) => boolean;
|
|
17
18
|
maxPossibleChunks: (srcToken: TokenData, srcAmount: BN.Value, srcUsd: BN.Value) => number;
|
|
18
19
|
srcChunkAmount: (srcAmount: BN.Value, totalChunks: BN.Value) => BN;
|
|
@@ -28,6 +29,7 @@ export declare class TWAPLib {
|
|
|
28
29
|
waitForConfirmation<T>(fn: () => Promise<T>): Promise<T>;
|
|
29
30
|
hasAllowance(srcToken: TokenData, amount: BN.Value): Promise<boolean>;
|
|
30
31
|
approve(srcToken: TokenData, amount: BN.Value, priorityFeePerGas?: BN.Value, maxFeePerGas?: BN.Value): Promise<void>;
|
|
32
|
+
validateTokens(srcToken: TokenData, dstToken: TokenData): TokensValidation;
|
|
31
33
|
validateOrderInputs(srcToken: TokenData, dstToken: TokenData, srcAmount: BN.Value, srcChunkAmount: BN.Value, dstMinChunkAmountOut: BN.Value, deadline: BN.Value, fillDelaySeconds: BN.Value, srcUsd: BN.Value): OrderInputValidation;
|
|
32
34
|
submitOrder(srcToken: TokenData, dstToken: TokenData, srcAmount: BN.Value, srcChunkAmount: BN.Value, dstMinChunkAmountOut: BN.Value, deadline: number, fillDelaySeconds: number, srcUsd: BN.Value, priorityFeePerGas?: BN.Value, maxFeePerGas?: BN.Value): Promise<number>;
|
|
33
35
|
getOrder(id: number): Promise<Order>;
|
|
@@ -71,7 +73,7 @@ export declare enum Status {
|
|
|
71
73
|
}
|
|
72
74
|
export declare enum OrderInputValidation {
|
|
73
75
|
valid = "valid",
|
|
74
|
-
|
|
76
|
+
invalidTokens = "invalidTokens",
|
|
75
77
|
invalidSrcAmount = "invalidSrcAmount",
|
|
76
78
|
invalidSrcChunkAmount = "invalidSrcChunkAmount",
|
|
77
79
|
invalidDstMinChunkAmountOut = "invalidDstMinChunkAmountOut",
|
|
@@ -80,3 +82,11 @@ export declare enum OrderInputValidation {
|
|
|
80
82
|
invalidSrcUsd = "invalidSrcUsd",
|
|
81
83
|
invalidSmallestSrcChunkUsd = "invalidSmallestSrcChunkUsd"
|
|
82
84
|
}
|
|
85
|
+
export declare enum TokensValidation {
|
|
86
|
+
valid = "valid",
|
|
87
|
+
invalid = "invalid",
|
|
88
|
+
wrapOnly = "wrapOnly",
|
|
89
|
+
unwrapOnly = "unwrapOnly",
|
|
90
|
+
wrapAndOrder = "wrapAndOrder",
|
|
91
|
+
dstTokenZero = "dstTokenZero"
|
|
92
|
+
}
|
package/dist/src/lib.js
CHANGED
|
@@ -12,7 +12,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
12
12
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
13
|
};
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.OrderInputValidation = exports.Status = exports.TWAPLib = exports.lensAbi = exports.twapAbi = void 0;
|
|
15
|
+
exports.TokensValidation = exports.OrderInputValidation = exports.Status = exports.TWAPLib = exports.lensAbi = exports.twapAbi = void 0;
|
|
16
16
|
const configs_1 = require("./configs");
|
|
17
17
|
const web3_1 = __importDefault(require("web3"));
|
|
18
18
|
const bignumber_js_1 = __importDefault(require("bignumber.js"));
|
|
@@ -29,6 +29,7 @@ class TWAPLib {
|
|
|
29
29
|
this.provider = provider;
|
|
30
30
|
this.dstAmount = (srcToken, dstToken, srcAmount, srcUsdMarket, dstUsdMarket, limitDstPriceFor1Src, isMarketOrder) => (0, web3_candies_1.convertDecimals)(isMarketOrder ? (0, bignumber_js_1.default)(srcAmount).times(srcUsdMarket).div(dstUsdMarket) : (0, bignumber_js_1.default)(srcAmount).times(limitDstPriceFor1Src), srcToken.decimals, dstToken.decimals).integerValue(bignumber_js_1.default.ROUND_FLOOR);
|
|
31
31
|
this.isNativeToken = (token) => (0, configs_1.isNativeAddress)(token.address);
|
|
32
|
+
this.isWrappedToken = (token) => (0, web3_candies_1.eqIgnoreCase)(token.address, this.config.wToken.address); //TODO
|
|
32
33
|
this.isValidChain = (chainId) => chainId === this.config.chainId;
|
|
33
34
|
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)))
|
|
34
35
|
.integerValue(bignumber_js_1.default.ROUND_FLOOR)
|
|
@@ -94,9 +95,29 @@ class TWAPLib {
|
|
|
94
95
|
yield this.sendTx(token.methods.approve(this.config.twapAddress, amount.toString()), priorityFeePerGas, maxFeePerGas);
|
|
95
96
|
});
|
|
96
97
|
}
|
|
97
|
-
|
|
98
|
+
validateTokens(srcToken, dstToken) {
|
|
98
99
|
if (lodash_1.default.isEqual(srcToken, dstToken))
|
|
99
|
-
return
|
|
100
|
+
return TokensValidation.invalid;
|
|
101
|
+
if ((0, configs_1.isNativeAddress)(srcToken.address)) {
|
|
102
|
+
if ((0, configs_1.isNativeAddress)(dstToken.address))
|
|
103
|
+
return TokensValidation.invalid;
|
|
104
|
+
if (this.isWrappedToken(dstToken))
|
|
105
|
+
return TokensValidation.wrapOnly;
|
|
106
|
+
return TokensValidation.wrapAndOrder;
|
|
107
|
+
}
|
|
108
|
+
if (this.isWrappedToken(srcToken)) {
|
|
109
|
+
if ((0, configs_1.isNativeAddress)(dstToken.address))
|
|
110
|
+
return TokensValidation.unwrapOnly;
|
|
111
|
+
return TokensValidation.valid;
|
|
112
|
+
}
|
|
113
|
+
if ((0, configs_1.isNativeAddress)(dstToken.address)) {
|
|
114
|
+
return TokensValidation.dstTokenZero;
|
|
115
|
+
}
|
|
116
|
+
return TokensValidation.valid;
|
|
117
|
+
}
|
|
118
|
+
validateOrderInputs(srcToken, dstToken, srcAmount, srcChunkAmount, dstMinChunkAmountOut, deadline, fillDelaySeconds, srcUsd) {
|
|
119
|
+
if (this.validateTokens(srcToken, dstToken) !== TokensValidation.valid)
|
|
120
|
+
return OrderInputValidation.invalidTokens; // TODO
|
|
100
121
|
if ((0, bignumber_js_1.default)(srcAmount).lte(0))
|
|
101
122
|
return OrderInputValidation.invalidSrcAmount;
|
|
102
123
|
if ((0, bignumber_js_1.default)(srcChunkAmount).lte(0) || (0, bignumber_js_1.default)(srcChunkAmount).gt(srcAmount))
|
|
@@ -199,7 +220,7 @@ var Status;
|
|
|
199
220
|
var OrderInputValidation;
|
|
200
221
|
(function (OrderInputValidation) {
|
|
201
222
|
OrderInputValidation["valid"] = "valid";
|
|
202
|
-
OrderInputValidation["
|
|
223
|
+
OrderInputValidation["invalidTokens"] = "invalidTokens";
|
|
203
224
|
OrderInputValidation["invalidSrcAmount"] = "invalidSrcAmount";
|
|
204
225
|
OrderInputValidation["invalidSrcChunkAmount"] = "invalidSrcChunkAmount";
|
|
205
226
|
OrderInputValidation["invalidDstMinChunkAmountOut"] = "invalidDstMinChunkAmountOut";
|
|
@@ -208,3 +229,12 @@ var OrderInputValidation;
|
|
|
208
229
|
OrderInputValidation["invalidSrcUsd"] = "invalidSrcUsd";
|
|
209
230
|
OrderInputValidation["invalidSmallestSrcChunkUsd"] = "invalidSmallestSrcChunkUsd";
|
|
210
231
|
})(OrderInputValidation = exports.OrderInputValidation || (exports.OrderInputValidation = {}));
|
|
232
|
+
var TokensValidation;
|
|
233
|
+
(function (TokensValidation) {
|
|
234
|
+
TokensValidation["valid"] = "valid";
|
|
235
|
+
TokensValidation["invalid"] = "invalid";
|
|
236
|
+
TokensValidation["wrapOnly"] = "wrapOnly";
|
|
237
|
+
TokensValidation["unwrapOnly"] = "unwrapOnly";
|
|
238
|
+
TokensValidation["wrapAndOrder"] = "wrapAndOrder";
|
|
239
|
+
TokensValidation["dstTokenZero"] = "dstTokenZero";
|
|
240
|
+
})(TokensValidation = exports.TokensValidation || (exports.TokensValidation = {}));
|