@d8x/perpetuals-sdk 1.3.6 → 2.0.0-alpha
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/cjs/accountTrade.d.ts +9 -9
- package/dist/cjs/accountTrade.js +19 -17
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.d.ts +11 -12
- package/dist/cjs/brokerTool.js +7 -8
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/constants.d.ts +11 -12
- package/dist/cjs/constants.js +12 -13
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/contracts/ERC20.d.ts +146 -171
- package/dist/cjs/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/cjs/contracts/IPyth.d.ts +181 -184
- package/dist/cjs/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/cjs/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/cjs/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/cjs/contracts/Multicall3.d.ts +147 -211
- package/dist/cjs/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/cjs/contracts/OracleFactory.d.ts +258 -238
- package/dist/cjs/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/cjs/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/cjs/contracts/ShareToken.d.ts +232 -285
- package/dist/cjs/contracts/common.d.ts +40 -11
- package/dist/cjs/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js +3 -3
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js +3 -3
- package/dist/cjs/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +3 -3
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +3 -3
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/cjs/contracts/factories/Multicall3__factory.js +7 -10
- package/dist/cjs/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js +3 -3
- package/dist/cjs/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js +3 -3
- package/dist/cjs/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js +3 -3
- package/dist/cjs/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js +3 -3
- package/dist/cjs/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js +3 -3
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/cjs/d8XMath.d.ts +16 -16
- package/dist/cjs/d8XMath.js +48 -49
- package/dist/cjs/d8XMath.js.map +1 -1
- package/dist/cjs/liquidatorTool.d.ts +8 -8
- package/dist/cjs/liquidatorTool.js +5 -7
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.d.ts +4 -5
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +27 -28
- package/dist/cjs/marketData.js +65 -69
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +35 -37
- package/dist/cjs/onChainPxFeed.d.ts +2 -2
- package/dist/cjs/onChainPxFeed.js +3 -3
- package/dist/cjs/onChainPxFeed.js.map +1 -1
- package/dist/cjs/onChainPxFeedAngle.d.ts +2 -2
- package/dist/cjs/onChainPxFeedAngle.js +4 -5
- package/dist/cjs/onChainPxFeedAngle.js.map +1 -1
- package/dist/cjs/onChainPxFeedRedStone.js +2 -2
- package/dist/cjs/onChainPxFeedRedStone.js.map +1 -1
- package/dist/cjs/orderExecutorTool.d.ts +7 -9
- package/dist/cjs/orderExecutorTool.js +54 -63
- package/dist/cjs/orderExecutorTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +38 -35
- package/dist/cjs/perpetualDataHandler.js +173 -167
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/perpetualEventHandler.d.ts +4 -5
- package/dist/cjs/perpetualEventHandler.js +2 -2
- package/dist/cjs/perpetualEventHandler.js.map +1 -1
- package/dist/cjs/priceFeeds.js +2 -3
- package/dist/cjs/priceFeeds.js.map +1 -1
- package/dist/cjs/referralCodeSigner.d.ts +1 -1
- package/dist/cjs/referralCodeSigner.js +12 -16
- package/dist/cjs/referralCodeSigner.js.map +1 -1
- package/dist/cjs/traderDigests.d.ts +2 -1
- package/dist/cjs/traderDigests.js +9 -11
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.d.ts +8 -9
- package/dist/cjs/traderInterface.js +26 -23
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/utils.d.ts +2 -3
- package/dist/cjs/utils.js +1 -2
- package/dist/cjs/utils.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/writeAccessHandler.d.ts +7 -9
- package/dist/cjs/writeAccessHandler.js +13 -16
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.d.ts +9 -9
- package/dist/esm/accountTrade.js +19 -17
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.d.ts +11 -12
- package/dist/esm/brokerTool.js +2 -3
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/constants.d.ts +11 -12
- package/dist/esm/constants.js +12 -13
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/contracts/ERC20.d.ts +146 -171
- package/dist/esm/contracts/IPerpetualManager.d.ts +2534 -2225
- package/dist/esm/contracts/IPyth.d.ts +181 -184
- package/dist/esm/contracts/LimitOrderBook.d.ts +373 -401
- package/dist/esm/contracts/LimitOrderBookBeacon.d.ts +53 -104
- package/dist/esm/contracts/LimitOrderBookFactory.d.ts +129 -185
- package/dist/esm/contracts/MockTokenSwap.d.ts +109 -169
- package/dist/esm/contracts/Multicall3.d.ts +147 -211
- package/dist/esm/contracts/OnDemandOracleUpgradeable.d.ts +342 -399
- package/dist/esm/contracts/OracleFactory.d.ts +258 -238
- package/dist/esm/contracts/PerpetualManagerProxy.d.ts +1099 -891
- package/dist/esm/contracts/RedStoneAbi.d.ts +369 -488
- package/dist/esm/contracts/ShareToken.d.ts +232 -285
- package/dist/esm/contracts/common.d.ts +40 -11
- package/dist/esm/contracts/factories/ERC20__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ERC20__factory.js +4 -4
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +4 -4
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -1
- package/dist/esm/contracts/factories/IPyth__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/IPyth__factory.js +4 -4
- package/dist/esm/contracts/factories/IPyth__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookBeacon__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +4 -4
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -1
- package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +4 -4
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -1
- package/dist/esm/contracts/factories/Multicall3__factory.d.ts +11 -9
- package/dist/esm/contracts/factories/Multicall3__factory.js +8 -11
- package/dist/esm/contracts/factories/Multicall3__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js +4 -4
- package/dist/esm/contracts/factories/OnDemandOracleUpgradeable__factory.js.map +1 -1
- package/dist/esm/contracts/factories/OracleFactory__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/OracleFactory__factory.js +4 -4
- package/dist/esm/contracts/factories/OracleFactory__factory.js.map +1 -1
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js +4 -4
- package/dist/esm/contracts/factories/PerpetualManagerProxy__factory.js.map +1 -1
- package/dist/esm/contracts/factories/RedStoneAbi__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js +4 -4
- package/dist/esm/contracts/factories/RedStoneAbi__factory.js.map +1 -1
- package/dist/esm/contracts/factories/ShareToken__factory.d.ts +2 -3
- package/dist/esm/contracts/factories/ShareToken__factory.js +4 -4
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -1
- package/dist/esm/d8XMath.d.ts +16 -16
- package/dist/esm/d8XMath.js +48 -49
- package/dist/esm/d8XMath.js.map +1 -1
- package/dist/esm/liquidatorTool.d.ts +8 -8
- package/dist/esm/liquidatorTool.js +5 -7
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.d.ts +4 -5
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +27 -28
- package/dist/esm/marketData.js +55 -59
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +35 -37
- package/dist/esm/onChainPxFeed.d.ts +2 -2
- package/dist/esm/onChainPxFeed.js +3 -3
- package/dist/esm/onChainPxFeed.js.map +1 -1
- package/dist/esm/onChainPxFeedAngle.d.ts +2 -2
- package/dist/esm/onChainPxFeedAngle.js +2 -3
- package/dist/esm/onChainPxFeedAngle.js.map +1 -1
- package/dist/esm/onChainPxFeedRedStone.js +1 -1
- package/dist/esm/onChainPxFeedRedStone.js.map +1 -1
- package/dist/esm/orderExecutorTool.d.ts +7 -9
- package/dist/esm/orderExecutorTool.js +40 -49
- package/dist/esm/orderExecutorTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +38 -35
- package/dist/esm/perpetualDataHandler.js +114 -108
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/perpetualEventHandler.d.ts +4 -5
- package/dist/esm/perpetualEventHandler.js +2 -2
- package/dist/esm/perpetualEventHandler.js.map +1 -1
- package/dist/esm/priceFeeds.js +2 -3
- package/dist/esm/priceFeeds.js.map +1 -1
- package/dist/esm/referralCodeSigner.d.ts +1 -1
- package/dist/esm/referralCodeSigner.js +6 -10
- package/dist/esm/referralCodeSigner.js.map +1 -1
- package/dist/esm/traderDigests.d.ts +2 -1
- package/dist/esm/traderDigests.js +2 -4
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.d.ts +8 -9
- package/dist/esm/traderInterface.js +26 -23
- package/dist/esm/traderInterface.js.map +1 -1
- package/dist/esm/utils.d.ts +2 -3
- package/dist/esm/utils.js +1 -2
- package/dist/esm/utils.js.map +1 -1
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/esm/writeAccessHandler.d.ts +7 -9
- package/dist/esm/writeAccessHandler.js +5 -8
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/package.json +7 -17
- package/src/accountTrade.ts +32 -34
- package/src/brokerTool.ts +17 -20
- package/src/constants.ts +12 -13
- package/src/contracts/ERC20.ts +236 -350
- package/src/contracts/IPerpetualManager.ts +3359 -5050
- package/src/contracts/IPyth.ts +272 -409
- package/src/contracts/LimitOrderBook.ts +503 -779
- package/src/contracts/LimitOrderBookBeacon.ts +123 -171
- package/src/contracts/LimitOrderBookFactory.ts +263 -332
- package/src/contracts/MockTokenSwap.ts +237 -275
- package/src/contracts/Multicall3.ts +208 -374
- package/src/contracts/OnDemandOracleUpgradeable.ts +569 -782
- package/src/contracts/OracleFactory.ts +410 -538
- package/src/contracts/PerpetualManagerProxy.ts +1898 -1426
- package/src/contracts/RedStoneAbi.ts +486 -986
- package/src/contracts/ShareToken.ts +376 -557
- package/src/contracts/common.ts +108 -21
- package/src/contracts/factories/ERC20__factory.ts +4 -5
- package/src/contracts/factories/IPerpetualManager__factory.ts +4 -5
- package/src/contracts/factories/IPyth__factory.ts +4 -5
- package/src/contracts/factories/LimitOrderBookBeacon__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBookFactory__factory.ts +5 -6
- package/src/contracts/factories/LimitOrderBook__factory.ts +4 -5
- package/src/contracts/factories/MockTokenSwap__factory.ts +4 -5
- package/src/contracts/factories/Multicall3__factory.ts +21 -19
- package/src/contracts/factories/OnDemandOracleUpgradeable__factory.ts +5 -6
- package/src/contracts/factories/OracleFactory__factory.ts +4 -5
- package/src/contracts/factories/PerpetualManagerProxy__factory.ts +5 -6
- package/src/contracts/factories/RedStoneAbi__factory.ts +4 -8
- package/src/contracts/factories/ShareToken__factory.ts +4 -8
- package/src/d8XMath.ts +57 -57
- package/src/liquidatorTool.ts +12 -15
- package/src/liquidityProviderTool.ts +7 -5
- package/src/marketData.ts +110 -121
- package/src/nodeSDKTypes.ts +51 -38
- package/src/onChainPxFeed.ts +4 -4
- package/src/onChainPxFeedAngle.ts +5 -7
- package/src/onChainPxFeedRedStone.ts +1 -3
- package/src/orderExecutorTool.ts +102 -109
- package/src/perpetualDataHandler.ts +181 -167
- package/src/perpetualEventHandler.ts +16 -17
- package/src/priceFeeds.ts +2 -3
- package/src/referralCodeSigner.ts +6 -10
- package/src/traderDigests.ts +8 -5
- package/src/traderInterface.ts +45 -31
- package/src/utils.ts +3 -4
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +26 -17
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { HashZero } from "@ethersproject/constants";
|
|
3
|
-
import { StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
1
|
+
import { JsonRpcProvider, ZeroHash, } from "ethers";
|
|
4
2
|
import { BUY_SIDE, MULTICALL_ADDRESS, OrderStatus, SELL_SIDE, ZERO_ADDRESS } from "./constants";
|
|
5
3
|
import { IPyth__factory, LimitOrderBook__factory, Multicall3__factory } from "./contracts";
|
|
6
4
|
import { ABK64x64ToFloat, floatToABK64x64 } from "./d8XMath";
|
|
@@ -108,10 +106,11 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
108
106
|
}
|
|
109
107
|
let rpcURL;
|
|
110
108
|
let splitTx;
|
|
109
|
+
let maxGasLimit;
|
|
111
110
|
if (overrides) {
|
|
112
|
-
({ rpcURL, splitTx, ...overrides } = overrides);
|
|
111
|
+
({ rpcURL, splitTx, maxGasLimit, ...overrides } = overrides);
|
|
113
112
|
}
|
|
114
|
-
const provider = new
|
|
113
|
+
const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL);
|
|
115
114
|
if (typeof executorAddr == "undefined") {
|
|
116
115
|
executorAddr = this.traderAddr;
|
|
117
116
|
}
|
|
@@ -149,9 +148,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
149
148
|
]);
|
|
150
149
|
value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
|
|
151
150
|
}
|
|
152
|
-
if (overrides?.nonce
|
|
153
|
-
|
|
154
|
-
overrides.nonce = BigNumber.from(nonce).add(nonceInc);
|
|
151
|
+
if (overrides?.nonce != undefined) {
|
|
152
|
+
overrides.nonce = overrides.nonce + nonceInc;
|
|
155
153
|
}
|
|
156
154
|
if (overrides?.gasLimit !== undefined) {
|
|
157
155
|
overrides.gasLimit = await overrides.gasLimit;
|
|
@@ -163,7 +161,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
163
161
|
value = await value;
|
|
164
162
|
}
|
|
165
163
|
const unsignedTx = {
|
|
166
|
-
to: this.getOrderBookContract(symbol).
|
|
164
|
+
to: this.getOrderBookContract(symbol).target,
|
|
167
165
|
from: this.traderAddr,
|
|
168
166
|
nonce: overrides?.nonce,
|
|
169
167
|
data: txData,
|
|
@@ -175,22 +173,15 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
175
173
|
};
|
|
176
174
|
// no gas limit was specified, explicitly estimate
|
|
177
175
|
if (!overrides?.gasLimit) {
|
|
178
|
-
// given gas price might be conservative, which leads to a lower a gas estimate
|
|
179
|
-
//-> compensate with larger buffer
|
|
180
176
|
let gasLimit = await this.signer
|
|
181
177
|
.estimateGas(unsignedTx)
|
|
182
|
-
.then((gas) => gas
|
|
178
|
+
.then((gas) => (gas * 1500n) / 1000n)
|
|
183
179
|
.catch((_e) => undefined);
|
|
184
180
|
if (!gasLimit) {
|
|
185
181
|
// gas estimate failed - txn would probably revert, double check (and possibly re-throw):
|
|
186
|
-
overrides = {
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
value: unsignedTx.value,
|
|
190
|
-
};
|
|
191
|
-
await this.getOrderBookContract(symbol, provider).callStatic.executeOrders(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
|
|
192
|
-
// it worked - use fallback
|
|
193
|
-
gasLimit = BigNumber.from(overrides?.maxGasLimit ?? this.gasLimit);
|
|
182
|
+
overrides = { gasLimit: maxGasLimit ?? this.gasLimit, value: unsignedTx.value, ...overrides };
|
|
183
|
+
await this.getOrderBookContract(symbol).executeOrders.staticCall(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
|
|
184
|
+
gasLimit = BigInt(maxGasLimit ?? this.gasLimit);
|
|
194
185
|
}
|
|
195
186
|
unsignedTx.gasLimit = gasLimit;
|
|
196
187
|
}
|
|
@@ -225,23 +216,23 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
225
216
|
if (overrides) {
|
|
226
217
|
({ rpcURL, ...overrides } = overrides);
|
|
227
218
|
}
|
|
228
|
-
const provider = new
|
|
219
|
+
const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
229
220
|
const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
|
|
230
221
|
const calls = [
|
|
231
222
|
// 0: orderOfDigest
|
|
232
223
|
{
|
|
233
|
-
target: ob.
|
|
224
|
+
target: ob.target,
|
|
234
225
|
allowFailure: false,
|
|
235
226
|
callData: ob.interface.encodeFunctionData("orderOfDigest", [id]),
|
|
236
227
|
},
|
|
237
228
|
// 1: orderDependency
|
|
238
229
|
{
|
|
239
|
-
target: ob.
|
|
230
|
+
target: ob.target,
|
|
240
231
|
allowFailure: false,
|
|
241
232
|
callData: ob.interface.encodeFunctionData("orderDependency", [id]),
|
|
242
233
|
},
|
|
243
234
|
];
|
|
244
|
-
const encodedResults = await multicall.
|
|
235
|
+
const encodedResults = await multicall.aggregate3.staticCall(calls, overrides || {});
|
|
245
236
|
if (encodedResults.some(({ success }) => !success)) {
|
|
246
237
|
return undefined;
|
|
247
238
|
}
|
|
@@ -288,7 +279,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
288
279
|
if (overrides) {
|
|
289
280
|
({ rpcURL, ...overrides } = overrides);
|
|
290
281
|
}
|
|
291
|
-
const provider = new
|
|
282
|
+
const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
292
283
|
const fS2S3 = indexPrices.map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x));
|
|
293
284
|
const perpId = this.getPerpIdFromSymbol(order.symbol);
|
|
294
285
|
const fAmount = floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1));
|
|
@@ -296,43 +287,43 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
296
287
|
const proxyCalls = [
|
|
297
288
|
// 0: trade amount price
|
|
298
289
|
{
|
|
299
|
-
target: this.proxyContract.
|
|
290
|
+
target: this.proxyContract.target,
|
|
300
291
|
allowFailure: true,
|
|
301
292
|
callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
|
|
302
293
|
},
|
|
303
294
|
// 1: amm state to get the mark price
|
|
304
295
|
{
|
|
305
|
-
target: this.proxyContract.
|
|
296
|
+
target: this.proxyContract.target,
|
|
306
297
|
allowFailure: true,
|
|
307
298
|
callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
|
|
308
299
|
},
|
|
309
300
|
// 2: order status to see if it's still open
|
|
310
301
|
{
|
|
311
|
-
target: orderBook.
|
|
302
|
+
target: orderBook.target,
|
|
312
303
|
allowFailure: true,
|
|
313
304
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
|
|
314
305
|
},
|
|
315
306
|
// 3: block timestamp
|
|
316
307
|
{
|
|
317
|
-
target: this.multicall.
|
|
308
|
+
target: this.multicall.target,
|
|
318
309
|
allowFailure: false,
|
|
319
310
|
callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
|
|
320
311
|
},
|
|
321
312
|
];
|
|
322
313
|
const hasParent = order.parentChildOrderIds != undefined &&
|
|
323
|
-
order.parentChildOrderIds[0] ==
|
|
324
|
-
order.parentChildOrderIds[1] !=
|
|
314
|
+
order.parentChildOrderIds[0] == ZeroHash &&
|
|
315
|
+
order.parentChildOrderIds[1] != ZeroHash;
|
|
325
316
|
if (hasParent) {
|
|
326
317
|
// 4: order has a parent, one more call needed:
|
|
327
318
|
proxyCalls.push({
|
|
328
|
-
target: orderBook.
|
|
319
|
+
target: orderBook.target,
|
|
329
320
|
allowFailure: true,
|
|
330
321
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
|
|
331
322
|
});
|
|
332
323
|
}
|
|
333
324
|
// multicall
|
|
334
325
|
const multicall = Multicall3__factory.connect(this.config.multicall ?? MULTICALL_ADDRESS, provider);
|
|
335
|
-
const encodedResults = await multicall.
|
|
326
|
+
const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
336
327
|
// order status
|
|
337
328
|
let iOrderStatus;
|
|
338
329
|
if (encodedResults[2].success) {
|
|
@@ -378,8 +369,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
378
369
|
}
|
|
379
370
|
const orderPrice = ABK64x64ToFloat(fOrderPrice);
|
|
380
371
|
// block timestamp
|
|
381
|
-
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0]
|
|
382
|
-
blockTimestamp = Math.max(ts + 1, blockTimestamp ?? 0);
|
|
372
|
+
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0];
|
|
373
|
+
blockTimestamp = Math.max(Number(ts) + 1, blockTimestamp ?? 0);
|
|
383
374
|
return this._isTradeable(order, orderPrice, markPrice, blockTimestamp, this.symbolToPerpStaticInfo);
|
|
384
375
|
}
|
|
385
376
|
/**
|
|
@@ -445,7 +436,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
445
436
|
if (overrides) {
|
|
446
437
|
({ rpcURL, ...overrides } = overrides);
|
|
447
438
|
}
|
|
448
|
-
const provider = new
|
|
439
|
+
const provider = new JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
449
440
|
const fS2S3 = [indexPrices[0], indexPrices[1]].map((x) => floatToABK64x64(x == undefined || Number.isNaN(x) ? 0 : x));
|
|
450
441
|
const perpId = this.getPerpIdFromSymbol(orders[0].symbol);
|
|
451
442
|
const fAmounts = orders.map((order) => floatToABK64x64(order.quantity * (order.side == BUY_SIDE ? 1 : -1)));
|
|
@@ -455,27 +446,27 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
455
446
|
let proxyCalls = [
|
|
456
447
|
// 0: amm state to get the mark price
|
|
457
448
|
{
|
|
458
|
-
target: this.proxyContract.
|
|
449
|
+
target: this.proxyContract.target,
|
|
459
450
|
allowFailure: false,
|
|
460
451
|
callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
|
|
461
452
|
},
|
|
462
453
|
// 1: block timestamp
|
|
463
454
|
{
|
|
464
|
-
target: this.multicall.
|
|
455
|
+
target: this.multicall.target,
|
|
465
456
|
allowFailure: false,
|
|
466
457
|
callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
|
|
467
458
|
},
|
|
468
459
|
];
|
|
469
460
|
// status calls
|
|
470
461
|
const statusCalls = orderIds.map((orderId) => ({
|
|
471
|
-
target: orderBook.
|
|
462
|
+
target: orderBook.target,
|
|
472
463
|
allowFailure: false,
|
|
473
464
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
|
|
474
465
|
}));
|
|
475
466
|
proxyCalls = proxyCalls.concat(statusCalls);
|
|
476
467
|
// price calls
|
|
477
468
|
const priceCalls = fAmounts.map((fAmount) => ({
|
|
478
|
-
target: this.proxyContract.
|
|
469
|
+
target: this.proxyContract.target,
|
|
479
470
|
allowFailure: false,
|
|
480
471
|
callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
|
|
481
472
|
}));
|
|
@@ -483,24 +474,24 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
483
474
|
// possibly also get parent orders' status
|
|
484
475
|
const parentStatusCalls = orders
|
|
485
476
|
.filter((order) => order.parentChildOrderIds != undefined &&
|
|
486
|
-
order.parentChildOrderIds[0] ==
|
|
487
|
-
order.parentChildOrderIds[1] !=
|
|
477
|
+
order.parentChildOrderIds[0] == ZeroHash &&
|
|
478
|
+
order.parentChildOrderIds[1] != ZeroHash)
|
|
488
479
|
.map((order) => {
|
|
489
480
|
return {
|
|
490
|
-
target: orderBook.
|
|
481
|
+
target: orderBook.target,
|
|
491
482
|
allowFailure: false,
|
|
492
483
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
|
|
493
484
|
};
|
|
494
485
|
});
|
|
495
486
|
proxyCalls = proxyCalls.concat(parentStatusCalls);
|
|
496
487
|
// --- multicall ---
|
|
497
|
-
const encodedResults = await multicall.
|
|
488
|
+
const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
498
489
|
// mark price
|
|
499
490
|
const ammState = this.proxyContract.interface.decodeFunctionResult("getAMMState", encodedResults[0].returnData)[0];
|
|
500
491
|
const markPrice = indexPrices[0] * (1 + ABK64x64ToFloat(ammState[8]));
|
|
501
492
|
// block timestamp
|
|
502
|
-
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0]
|
|
503
|
-
blockTimestamp = Math.max(ts, blockTimestamp ?? 0);
|
|
493
|
+
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0];
|
|
494
|
+
blockTimestamp = Math.max(Number(ts), blockTimestamp ?? 0);
|
|
504
495
|
// order status
|
|
505
496
|
const isOrderOpen = encodedResults.slice(2, 2 + orders.length).map((encodedResult) => {
|
|
506
497
|
const iOrderStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResult.returnData)[0];
|
|
@@ -517,8 +508,8 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
517
508
|
for (let i = 0; i < orders.length; i++) {
|
|
518
509
|
const order = orders[i];
|
|
519
510
|
const hasParent = order.parentChildOrderIds != undefined &&
|
|
520
|
-
order.parentChildOrderIds[0] ==
|
|
521
|
-
order.parentChildOrderIds[1] !=
|
|
511
|
+
order.parentChildOrderIds[0] == ZeroHash &&
|
|
512
|
+
order.parentChildOrderIds[1] != ZeroHash;
|
|
522
513
|
if (hasParent) {
|
|
523
514
|
const iParentStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResults[idxInResults].returnData)[0];
|
|
524
515
|
isParentReady[i] = iParentStatus == OrderStatus.EXECUTED || iParentStatus == OrderStatus.CANCELED;
|
|
@@ -601,7 +592,7 @@ export default class OrderExecutorTool extends WriteAccessHandler {
|
|
|
601
592
|
if (this.signer == null) {
|
|
602
593
|
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
603
594
|
}
|
|
604
|
-
return await this.signer.
|
|
595
|
+
return await this.signer.getNonce(blockTag);
|
|
605
596
|
}
|
|
606
597
|
}
|
|
607
598
|
//# sourceMappingURL=orderExecutorTool.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orderExecutorTool.js","sourceRoot":"","sources":["../../src/orderExecutorTool.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"orderExecutorTool.js","sourceRoot":"","sources":["../../src/orderExecutorTool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,eAAe,EAKf,QAAQ,GACT,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,WAAW,EAAE,SAAS,EAAE,YAAY,EAAiB,MAAM,aAAa,CAAC;AAC/G,OAAO,EAAE,cAAc,EAAE,uBAAuB,EAAc,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAQ7D,OAAO,oBAAoB,MAAM,wBAAwB,CAAC;AAC1D,OAAO,kBAAkB,MAAM,sBAAsB,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,kBAAkB;IAC/D;;;;;;;;;;;;;;;;;;OAkBG;IACH,YAAmB,MAAqB,EAAE,MAAuB;QAC/D,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACtB,kDAAkD;QAClD,IAAI,CAAC,QAAQ,GAAG,OAAS,CAAC;IAC5B,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAiCG;IACI,KAAK,CAAC,YAAY,CACvB,MAAc,EACd,OAAe,EACf,YAAqB,EACrB,UAAgC,EAChC,SAA4B;QAE5B,OAAO,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IACpF,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACI,KAAK,CAAC,aAAa,CACxB,MAAc,EACd,QAAkB,EAClB,YAAqB,EACrB,UAAgC,EAChC,SAAiG;QAEjG,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACrD,MAAM,KAAK,CAAC,qEAAqE,CAAC,CAAC;SACpF;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAA4B,CAAC;QACjC,IAAI,WAAqC,CAAC;QAC1C,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SAC9D;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;QAE7D,IAAI,OAAO,YAAY,IAAI,WAAW,EAAE;YACtC,YAAY,GAAG,IAAI,CAAC,UAAU,CAAC;SAChC;QACD,IAAI,UAAU,IAAI,SAAS,EAAE;YAC3B,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,oCAAoC,CAAC,MAAM,CAAC,CAAC;SACtF;QAED,MAAM,GAAG,GAAG,uBAAuB,CAAC,eAAe,EAAE,CAAC;QAEtD,eAAe;QACf,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,IAAI,MAAc,CAAC;QACnB,IAAI,KAAK,GAAG,SAAS,EAAE,KAAK,CAAC;QAC7B,IAAI,OAAO,EAAE;YACX,IAAI;gBACF,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,QAAS,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACnF,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,MAAM,CAAE,CAAC,QAAQ,CAAC;gBACnE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,2BAA2B,CACnD,UAAU,CAAC,aAAa,EACxB,QAAQ,EACR,UAAU,CAAC,UAAU,EACrB;oBACE,KAAK,EAAE,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM;oBAChE,QAAQ,EAAE,SAAS,EAAE,QAAQ,IAAI,IAAI,CAAC,QAAQ;oBAC9C,KAAK,EAAE,SAAS,EAAE,KAAK;iBACxB,CACF,CAAC;gBACF,QAAQ,IAAI,CAAC,CAAC;gBACd,uBAAuB;aACxB;YAAC,OAAO,CAAC,EAAE;gBACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;aAChB;YAED,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;SACpF;aAAM;YACL,MAAM,GAAG,GAAG,CAAC,kBAAkB,CAAC,eAAe,EAAE;gBAC/C,QAAQ;gBACR,YAAY;gBACZ,UAAU,CAAC,aAAa;gBACxB,UAAU,CAAC,UAAU;aACtB,CAAC,CAAC;YACH,KAAK,GAAG,IAAI,CAAC,qBAAqB,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC;SACnE;QAED,IAAI,SAAS,EAAE,KAAK,IAAI,SAAS,EAAE;YACjC,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,GAAG,QAAQ,CAAC;SAC9C;QAED,IAAI,SAAS,EAAE,QAAQ,KAAK,SAAS,EAAE;YACrC,SAAS,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;SAC/C;QAED,IAAI,SAAS,EAAE,QAAQ,KAAK,SAAS,EAAE;YACrC,SAAS,CAAC,QAAQ,GAAG,MAAM,SAAS,CAAC,QAAQ,CAAC;SAC/C;QAED,IAAI,KAAK,KAAK,SAAS,EAAE;YACvB,KAAK,GAAG,MAAM,KAAK,CAAC;SACrB;QAED,MAAM,UAAU,GAAuB;YACrC,EAAE,EAAE,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,MAAM;YAC5C,IAAI,EAAE,IAAI,CAAC,UAAU;YACrB,KAAK,EAAE,SAAS,EAAE,KAAK;YACvB,IAAI,EAAE,MAAM;YACZ,KAAK,EAAE,KAAK;YACZ,QAAQ,EAAE,SAAS,EAAE,QAAQ;YAC7B,sDAAsD;YACtD,QAAQ,EAAE,SAAS,EAAE,QAAQ;YAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,kDAAkD;QAClD,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE;YACxB,IAAI,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM;iBAC7B,WAAW,CAAC,UAAU,CAAC;iBACvB,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,KAAK,CAAC;iBACpC,KAAK,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,CAAC;YAC5B,IAAI,CAAC,QAAQ,EAAE;gBACb,yFAAyF;gBACzF,SAAS,GAAG,EAAE,QAAQ,EAAE,WAAW,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,UAAU,CAAC,KAAK,EAAE,GAAG,SAAS,EAAE,CAAC;gBAC9F,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,aAAa,CAAC,UAAU,CAC9D,QAAQ,EACR,YAAY,EACZ,UAAU,CAAC,aAAa,EACxB,UAAU,CAAC,UAAU,EACrB,SAAS,CACV,CAAC;gBACF,QAAQ,GAAG,MAAM,CAAC,WAAW,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC;aACjD;YACD,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAC;SAChC;QACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;IACzE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,YAAY,CACvB,MAAc,EACd,EAAU,EACV,SAA2C;QAE3C,IAAI,EAAE,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC3C,YAAY;QACZ,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpG,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,KAAK,GAA6B;YACtC,mBAAmB;YACnB;gBACE,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,eAAe,EAAE,CAAC,EAAE,CAAC,CAAC;aACjE;YACD,qBAAqB;YACrB;gBACE,MAAM,EAAE,EAAE,CAAC,MAAM;gBACjB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,EAAE,CAAC,SAAS,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC,EAAE,CAAC,CAAC;aACnE;SACF,CAAC;QACF,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QACrF,IAAI,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,EAAE;YAClD,OAAO,SAAS,CAAC;SAClB;QAED,MAAM,kBAAkB,GAAG,EAAE,CAAC,SAAS,CAAC,oBAAoB,CAC1D,eAAe,EACf,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CA+B7B,CAAC;QACF,MAAM,eAAe,GAAG,EAAE,CAAC,SAAS,CAAC,oBAAoB,CACvD,iBAAiB,EACjB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAI7B,CAAC;QACF,IAAI,kBAAkB,CAAC,UAAU,IAAI,YAAY,EAAE;YACjD,OAAO,SAAS,CAAC;SAClB;QACD,MAAM,KAAK,GAAG,iBAAiB,CAAC,sBAAsB,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACxG,KAAK,CAAC,mBAAmB,GAAG,CAAC,eAAe,CAAC,kBAAkB,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;QACrG,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,KAAK,CAAC,WAAW,CACtB,KAAY,EACZ,OAAe,EACf,cAAuB,EACvB,WAA8B,EAC9B,SAA2C;QAE3C,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3E,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACpD;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpG,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAG9F,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACtD,MAAM,OAAO,GAAG,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpF,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAE5E,MAAM,UAAU,GAA6B;YAC3C,wBAAwB;YACxB;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;aAC3G;YACD,qCAAqC;YACrC;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1F;YACD,4CAA4C;YAC5C;gBACE,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;aAC9E;YACD,qBAAqB;YACrB;gBACE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAC7B,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,0BAA0B,CAAC;aAClF;SACF,CAAC;QAEF,MAAM,SAAS,GACb,KAAK,CAAC,mBAAmB,IAAI,SAAS;YACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ;YACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;QAE3C,IAAI,SAAS,EAAE;YACb,+CAA+C;YAC/C,UAAU,CAAC,IAAI,CAAC;gBACd,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,IAAI;gBAClB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,mBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;aACpG,CAAC,CAAC;SACJ;QACD,YAAY;QACZ,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QACpG,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAE1F,eAAe;QACf,IAAI,YAA0B,CAAC;QAC/B,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC7B,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;SAC5G;aAAM;YACL,YAAY,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;SACxD;QACD,IAAI,YAAY,IAAI,WAAW,CAAC,IAAI,EAAE;YACpC,gDAAgD;YAChD,OAAO,KAAK,CAAC;SACd;QAED,gBAAgB;QAChB,IAAI,SAAS,EAAE;YACb,IAAI,kBAAgC,CAAC;YACrC,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBAC7B,kBAAkB,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAC3D,gBAAgB,EAChB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAC,CAAC;aACN;iBAAM;gBACL,kBAAkB,GAAG,MAAM,SAAS,CAAC,cAAc,CAAC,KAAK,CAAC,mBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;aACpF;YACD,IAAI,kBAAkB,IAAI,WAAW,CAAC,QAAQ,IAAI,kBAAkB,IAAI,WAAW,CAAC,QAAQ,EAAE;gBAC5F,sDAAsD;gBACtD,OAAO,KAAK,CAAC;aACd;SACF;QAED,aAAa;QACb,IAAI,QAAkB,CAAC;QACvB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC7B,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC1D,aAAa,EACb,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAa,CAAC;SAClB;aAAM;YACL,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SAChE;QACD,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,QAAQ;QACR,IAAI,WAAmB,CAAC;QACxB,IAAI,cAAc,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;YAC7B,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAC7D,qBAAqB,EACrB,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;SAChB;aAAM;YACL,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SACpF;QACD,MAAM,UAAU,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAEhD,kBAAkB;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CACtD,0BAA0B,EAC1B,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;QACf,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IACtG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACI,KAAK,CAAC,gBAAgB,CAC3B,MAAe,EACf,QAAkB,EAClB,cAAuB,EACvB,WAAgD,EAChD,SAA2C;QAE3C,MAAM,kBAAkB,GAAG,EAAE,CAAC;QAC9B,IAAI,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC;QAChC,IAAI,MAAM,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACvC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EACnC,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,kBAAkB,CAAC,EACrC,cAAc,EACd,WAAW,EACX,SAAS,IAAI,EAAE,CAChB,CAAC;QACF,OAAO,MAAM,CAAC,MAAM,GAAG,WAAW,EAAE;YAClC,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CACpC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,EAC/D,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,kBAAkB,CAAC,EACjE,cAAc,EACd,WAAW,EACX,SAAS,IAAI,EAAE,CAChB,CAAC;YACF,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAC7B;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,iBAAiB,CAC7B,MAAe,EACf,QAAkB,EAClB,cAAuB,EACvB,WAAgD,EAChD,SAA2C;QAE3C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;YACtB,OAAO,EAAE,CAAC;SACX;QACD,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,EAAE;YACxD,MAAM,KAAK,CAAC,2DAA2D,CAAC,CAAC;SAC1E;QACD,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE;YAC7E,MAAM,KAAK,CAAC,iDAAiD,CAAC,CAAC;SAChE;QACD,IAAI,WAAW,IAAI,SAAS,EAAE;YAC5B,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;YAC/E,WAAW,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;SACxF;QACD,IAAI,WAAW,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,EAAE;YACpC,gBAAgB;YAChB,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;SAChC;QACD,IAAI,MAA0B,CAAC;QAC/B,IAAI,SAAS,EAAE;YACb,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,GAAG,SAAS,CAAC,CAAC;SACxC;QACD,MAAM,QAAQ,GAAG,IAAI,eAAe,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAEpG,MAAM,KAAK,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACvD,eAAe,CAAC,CAAC,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACvC,CAAC;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5G,MAAM,SAAS,GAAG,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAChF,MAAM,SAAS,GAAG,mBAAmB,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,iBAAiB,EAAE,QAAQ,CAAC,CAAC;QAEpG,2BAA2B;QAC3B,IAAI,UAAU,GAA6B;YACzC,qCAAqC;YACrC;gBACE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM;gBACjC,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,kBAAkB,CAAC,aAAa,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;aAC1F;YACD,qBAAqB;YACrB;gBACE,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM;gBAC7B,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,0BAA0B,CAAC;aAClF;SACF,CAAC;QAEF,eAAe;QACf,MAAM,WAAW,GAA6B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACvE,MAAM,EAAE,SAAS,CAAC,MAAM;YACxB,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,OAAO,CAAC,CAAC;SAC9E,CAAC,CAAC,CAAC;QACJ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAE5C,cAAc;QACd,MAAM,UAAU,GAA6B,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;YACtE,MAAM,EAAE,IAAI,CAAC,aAAc,CAAC,MAAM;YAClC,YAAY,EAAE,KAAK;YACnB,QAAQ,EAAE,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;SAC5G,CAAC,CAAC,CAAC;QACJ,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAE3C,0CAA0C;QAC1C,MAAM,iBAAiB,GAA6B,MAAM;aACvD,MAAM,CACL,CAAC,KAAK,EAAE,EAAE,CACR,KAAK,CAAC,mBAAmB,IAAI,SAAS;YACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ;YACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAC3C;aACA,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;YACb,OAAO;gBACL,MAAM,EAAE,SAAS,CAAC,MAAM;gBACxB,YAAY,EAAE,KAAK;gBACnB,QAAQ,EAAE,SAAS,CAAC,SAAS,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,CAAC,KAAK,CAAC,mBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC;aACpG,CAAC;QACJ,CAAC,CAAC,CAAC;QACL,UAAU,GAAG,UAAU,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAElD,oBAAoB;QACpB,MAAM,cAAc,GAAG,MAAM,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,SAAS,IAAI,EAAE,CAAC,CAAC;QAE1F,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,oBAAoB,CAChE,aAAa,EACb,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAa,CAAC;QACjB,MAAM,SAAS,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAEtE,kBAAkB;QAClB,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CACtD,0BAA0B,EAC1B,cAAc,CAAC,CAAC,CAAC,CAAC,UAAU,CAC7B,CAAC,CAAC,CAAW,CAAC;QACf,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,cAAc,IAAI,CAAC,CAAC,CAAC;QAE3D,eAAe;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;YACnF,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC,gBAAgB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7G,OAAO,YAAY,IAAI,WAAW,CAAC,IAAI,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,eAAe;QACf,MAAM,WAAW,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;YACvG,MAAM,UAAU,GAAG,eAAe,CAChC,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC,oBAAoB,CAAC,qBAAqB,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAW,CACjH,CAAC;YACF,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,sBAAsB;QACtB,IAAI,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACzC,IAAI,aAAa,GAAc,IAAI,KAAK,CAAU,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC5E,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,SAAS,GACb,KAAK,CAAC,mBAAmB,IAAI,SAAS;gBACtC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ;gBACxC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC,IAAI,QAAQ,CAAC;YAC3C,IAAI,SAAS,EAAE;gBACb,MAAM,aAAa,GAAG,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAC5D,gBAAgB,EAChB,cAAc,CAAC,YAAY,CAAC,CAAC,UAAU,CACxC,CAAC,CAAC,CAAC,CAAC;gBACL,aAAa,CAAC,CAAC,CAAC,GAAG,aAAa,IAAI,WAAW,CAAC,QAAQ,IAAI,aAAa,IAAI,WAAW,CAAC,QAAQ,CAAC;gBAClG,YAAY,IAAI,CAAC,CAAC;aACnB;SACF;QAED,cAAc;QACd,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE;gBAC5C,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,cAAe,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACzG,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACO,YAAY,CACpB,KAAY,EACZ,UAAkB,EAClB,SAAiB,EACjB,gBAAwB,EACxB,mBAAqD;QAErD,wBAAwB;QACxB,IAAI,KAAK,CAAC,QAAQ,IAAI,SAAS,IAAI,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE;YACrE,gCAAgC;YAChC,OAAO,KAAK,CAAC;SACd;QACD,4BAA4B;QAC5B,IAAI,KAAK,CAAC,kBAAkB,GAAG,CAAC,IAAI,gBAAgB,GAAG,KAAK,CAAC,kBAAkB,EAAE;YAC/E,oGAAoG;YACpG,OAAO,KAAK,CAAC;SACd;QACD,IAAI,KAAK,CAAC,kBAAkB,IAAI,SAAS,IAAI,gBAAgB,IAAI,KAAK,CAAC,kBAAkB,EAAE;YACzF,0FAA0F;YAC1F,OAAO,KAAK,CAAC;SACd;QAED,mBAAmB;QACnB,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;QACpF,IAAI,KAAK,CAAC,QAAQ,GAAG,OAAO,EAAE;YAC5B,uEAAuE;YACvE,OAAO,KAAK,CAAC;SACd;QACD,wFAAwF;QACxF,IAAI,KAAK,CAAC,UAAU,IAAI,SAAS,EAAE;YACjC,wCAAwC;YACxC,OAAO,KAAK,CAAC;SACd;QACD,IAAI,UAAU,GAAG,KAAK,CAAC,UAAW,CAAC;QACnC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,UAAU,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,UAAU,GAAG,UAAU,CAAC,EAAE;YAC/G,mFAAmF;YACnF,OAAO,KAAK,CAAC;SACd;QACD,mBAAmB;QACnB,IACE,KAAK,CAAC,SAAS,IAAI,SAAS;YAC5B,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,QAAQ,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;gBACtD,CAAC,KAAK,CAAC,IAAI,IAAI,SAAS,IAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAC3D;YACA,qCAAqC;YACrC,OAAO,KAAK,CAAC;SACd;QAED,0CAA0C;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;OAIG;IACI,yBAAyB,CAAC,OAA2B;QAC1D,OAAO,oBAAoB,CAAC,sBAAsB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC3F,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,mBAAmB,CAAC,QAAmB;QAClD,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,EAAE;YACvB,MAAM,KAAK,CAAC,mDAAmD,CAAC,CAAC;SAClE;QACD,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC9C,CAAC;CACF"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import { Signer } from "
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { Provider } from "@ethersproject/providers";
|
|
5
|
-
import { type LimitOrderBook, type LimitOrderBookFactory, type Multicall3 } from "./contracts";
|
|
6
|
-
import { type IPerpetualOrder } from "./contracts/IPerpetualManager";
|
|
7
|
-
import { type IClientOrder } from "./contracts/LimitOrderBook";
|
|
1
|
+
import { BaseContract, Contract, Interface, Network, Overrides, Provider, Signer } from "ethers";
|
|
2
|
+
import { LimitOrderBook, LimitOrderBookFactory, Multicall3 } from "./contracts";
|
|
3
|
+
import { IClientOrder, IPerpetualOrder } from "./contracts/LimitOrderBook";
|
|
8
4
|
import { TypeSafeOrder, type ClientOrder, type MarginAccount, type NodeSDKConfig, type Order, type PerpetualState, type PerpetualStaticInfo, type PoolStaticInfo, type PriceFeedSubmission, type SmartContractOrder, type PerpetualData, LiquidityPoolData, SettlementConfig } from "./nodeSDKTypes";
|
|
9
5
|
import PriceFeeds from "./priceFeeds";
|
|
10
6
|
/**
|
|
@@ -20,16 +16,17 @@ export default class PerpetualDataHandler {
|
|
|
20
16
|
protected settlementConfig: SettlementConfig;
|
|
21
17
|
config: NodeSDKConfig;
|
|
22
18
|
protected symbolToTokenAddrMap: Map<string, string>;
|
|
23
|
-
chainId:
|
|
19
|
+
chainId: bigint;
|
|
20
|
+
network: Network;
|
|
24
21
|
protected proxyContract: Contract | null;
|
|
25
|
-
protected proxyABI:
|
|
22
|
+
protected proxyABI: Interface;
|
|
26
23
|
protected proxyAddr: string;
|
|
27
24
|
protected oraclefactoryAddr: string | undefined;
|
|
28
25
|
protected lobFactoryContract: LimitOrderBookFactory | null;
|
|
29
|
-
protected lobFactoryABI:
|
|
26
|
+
protected lobFactoryABI: Interface;
|
|
30
27
|
protected lobFactoryAddr: string | undefined;
|
|
31
|
-
protected lobABI:
|
|
32
|
-
protected shareTokenABI:
|
|
28
|
+
protected lobABI: Interface;
|
|
29
|
+
protected shareTokenABI: Interface;
|
|
33
30
|
protected multicall: Multicall3 | null;
|
|
34
31
|
protected nodeURL: string;
|
|
35
32
|
protected provider: Provider | null;
|
|
@@ -43,20 +40,26 @@ export default class PerpetualDataHandler {
|
|
|
43
40
|
* PerpetualDataHandler.readSDKConfig.
|
|
44
41
|
*/
|
|
45
42
|
constructor(config: NodeSDKConfig);
|
|
46
|
-
protected initContractsAndData(signerOrProvider: Signer | Provider, overrides?:
|
|
43
|
+
protected initContractsAndData(signerOrProvider: Signer | Provider, overrides?: Overrides): Promise<void>;
|
|
47
44
|
/**
|
|
48
45
|
* Returns the order-book contract for the symbol if found or fails
|
|
49
46
|
* @param symbol symbol of the form ETH-USD-MATIC
|
|
50
47
|
* @returns order book contract for the perpetual
|
|
51
48
|
*/
|
|
52
|
-
getOrderBookContract(symbol: string,
|
|
49
|
+
getOrderBookContract(symbol: string, signerOrProvider?: Signer | Provider): LimitOrderBook;
|
|
50
|
+
/**
|
|
51
|
+
* Returns the order-book contract for the symbol if found or fails
|
|
52
|
+
* @param symbol symbol of the form ETH-USD-MATIC
|
|
53
|
+
* @returns order book contract for the perpetual
|
|
54
|
+
*/
|
|
55
|
+
getOrderBookAddress(symbol: string): string | undefined;
|
|
53
56
|
/**
|
|
54
57
|
* Get perpetuals for the given ids from onchain
|
|
55
58
|
* @param ids perpetual ids
|
|
56
59
|
* @param overrides optional
|
|
57
60
|
* @returns array of PerpetualData converted into decimals
|
|
58
61
|
*/
|
|
59
|
-
getPerpetuals(ids: number[], overrides?:
|
|
62
|
+
getPerpetuals(ids: number[], overrides?: Overrides): Promise<PerpetualData[]>;
|
|
60
63
|
/**
|
|
61
64
|
* Get liquidity pools data
|
|
62
65
|
* @param fromIdx starting index (>=1)
|
|
@@ -64,13 +67,13 @@ export default class PerpetualDataHandler {
|
|
|
64
67
|
* @param overrides optional
|
|
65
68
|
* @returns array of LiquidityPoolData converted into decimals
|
|
66
69
|
*/
|
|
67
|
-
getLiquidityPools(fromIdx: number, toIdx: number, overrides?:
|
|
70
|
+
getLiquidityPools(fromIdx: number, toIdx: number, overrides?: Overrides): Promise<LiquidityPoolData[]>;
|
|
68
71
|
/**
|
|
69
72
|
* Called when initializing. This function fills this.symbolToTokenAddrMap,
|
|
70
73
|
* and this.nestedPerpetualIDs and this.symbolToPerpStaticInfo
|
|
71
74
|
*
|
|
72
75
|
*/
|
|
73
|
-
protected _fillSymbolMaps(overrides?:
|
|
76
|
+
protected _fillSymbolMaps(overrides?: Overrides): Promise<void>;
|
|
74
77
|
/**
|
|
75
78
|
* Initializes settlement currency for all pools by
|
|
76
79
|
* completing this.poolStaticInfos with settlement currency info
|
|
@@ -173,7 +176,7 @@ export default class PerpetualDataHandler {
|
|
|
173
176
|
* @param {Map<string, string>} symbolList mapping of symbols to convert long-format <-> blockchain-format
|
|
174
177
|
* @returns array with PerpetualStaticInfo for each perpetual
|
|
175
178
|
*/
|
|
176
|
-
static getPerpetualStaticInfo(_proxyContract: Contract, nestedPerpetualIDs: Array<Array<number>>, symbolList: Map<string, string>, overrides?:
|
|
179
|
+
static getPerpetualStaticInfo(_proxyContract: Contract, nestedPerpetualIDs: Array<Array<number>>, symbolList: Map<string, string>, overrides?: Overrides): Promise<Array<PerpetualStaticInfo>>;
|
|
177
180
|
/**
|
|
178
181
|
* Breaks up an array of nested arrays into chunks of a specified size.
|
|
179
182
|
* @param {number} chunkSize The size of each chunk.
|
|
@@ -189,7 +192,7 @@ export default class PerpetualDataHandler {
|
|
|
189
192
|
* @param overrides optional
|
|
190
193
|
* @returns array of PerpetualData converted into decimals
|
|
191
194
|
*/
|
|
192
|
-
static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract: Contract, _symbolList: Map<string, string>, overrides?:
|
|
195
|
+
static _getLiquidityPools(fromIdx: number, toIdx: number, _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: Overrides): Promise<LiquidityPoolData[]>;
|
|
193
196
|
/**
|
|
194
197
|
* Query perpetuals
|
|
195
198
|
* @param ids perpetual ids
|
|
@@ -198,14 +201,14 @@ export default class PerpetualDataHandler {
|
|
|
198
201
|
* @param overrides optional
|
|
199
202
|
* @returns array of PerpetualData converted into decimals
|
|
200
203
|
*/
|
|
201
|
-
static _getPerpetuals(ids: number[], _proxyContract: Contract, _symbolList: Map<string, string>, overrides?:
|
|
202
|
-
static getPoolStaticInfo(_proxyContract: Contract, overrides?:
|
|
204
|
+
static _getPerpetuals(ids: number[], _proxyContract: Contract, _symbolList: Map<string, string>, overrides?: Overrides): Promise<PerpetualData[]>;
|
|
205
|
+
static getPoolStaticInfo(_proxyContract: Contract, overrides?: Overrides): Promise<{
|
|
203
206
|
nestedPerpetualIDs: Array<Array<number>>;
|
|
204
207
|
poolShareTokenAddr: Array<string>;
|
|
205
208
|
poolMarginTokenAddr: Array<string>;
|
|
206
209
|
oracleFactory: string;
|
|
207
210
|
}>;
|
|
208
|
-
static buildMarginAccountFromState(symbol: string, traderState:
|
|
211
|
+
static buildMarginAccountFromState(symbol: string, traderState: bigint[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _pxS2S3: [number, number]): MarginAccount;
|
|
209
212
|
/**
|
|
210
213
|
* Get trader state from the blockchain and parse into a human-readable margin account
|
|
211
214
|
* @param traderAddr Trader address
|
|
@@ -216,7 +219,7 @@ export default class PerpetualDataHandler {
|
|
|
216
219
|
* @param overrides Optional overrides for eth_call
|
|
217
220
|
* @returns A Margin account
|
|
218
221
|
*/
|
|
219
|
-
static getMarginAccount(traderAddr: string, symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, _pxS2S3: [number, number], overrides?:
|
|
222
|
+
static getMarginAccount(traderAddr: string, symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, _pxS2S3: [number, number], overrides?: Overrides): Promise<MarginAccount>;
|
|
220
223
|
/**
|
|
221
224
|
* All the orders in the order book for a given symbol that are currently open.
|
|
222
225
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -237,7 +240,7 @@ export default class PerpetualDataHandler {
|
|
|
237
240
|
*
|
|
238
241
|
* @returns Array with all open orders and their IDs.
|
|
239
242
|
*/
|
|
240
|
-
getAllOpenOrders(symbol: string, overrides?:
|
|
243
|
+
getAllOpenOrders(symbol: string, overrides?: Overrides): Promise<[Order[], string[], string[]]>;
|
|
241
244
|
/**
|
|
242
245
|
* Total number of limit orders for this symbol, excluding those that have been cancelled/removed.
|
|
243
246
|
* @param {string} symbol Symbol of the form ETH-USD-MATIC.
|
|
@@ -258,7 +261,7 @@ export default class PerpetualDataHandler {
|
|
|
258
261
|
*
|
|
259
262
|
* @returns {number} Number of open orders.
|
|
260
263
|
*/
|
|
261
|
-
numberOfOpenOrders(symbol: string, overrides?:
|
|
264
|
+
numberOfOpenOrders(symbol: string, overrides?: Overrides & {
|
|
262
265
|
rpcURL?: string;
|
|
263
266
|
}): Promise<number>;
|
|
264
267
|
/**
|
|
@@ -284,7 +287,7 @@ export default class PerpetualDataHandler {
|
|
|
284
287
|
*
|
|
285
288
|
* @returns Array of orders and corresponding order IDs
|
|
286
289
|
*/
|
|
287
|
-
pollLimitOrders(symbol: string, numElements: number, startAfter?: string | number, overrides?:
|
|
290
|
+
pollLimitOrders(symbol: string, numElements: number, startAfter?: string | number, overrides?: Overrides & {
|
|
288
291
|
rpcURL?: string;
|
|
289
292
|
}): Promise<[Order[], string[], string[]]>;
|
|
290
293
|
/**
|
|
@@ -298,11 +301,11 @@ export default class PerpetualDataHandler {
|
|
|
298
301
|
* @param overrides Optional eth_call overrides
|
|
299
302
|
* @returns List of margin accounts
|
|
300
303
|
*/
|
|
301
|
-
static getMarginAccounts(traderAddrs: string[], symbols: string[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _multicall: Multicall3, _proxyContract: Contract, _pxS2S3s: number[][], overrides?:
|
|
302
|
-
protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?:
|
|
303
|
-
protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?:
|
|
304
|
-
protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number, boolean, boolean], overrides?:
|
|
305
|
-
protected static _parseAMMState(symbol: string, ammState:
|
|
304
|
+
static getMarginAccounts(traderAddrs: string[], symbols: string[], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _multicall: Multicall3, _proxyContract: Contract, _pxS2S3s: number[][], overrides?: Overrides): Promise<MarginAccount[]>;
|
|
305
|
+
protected static _queryPerpetualPrice(symbol: string, tradeAmount: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: Overrides): Promise<number>;
|
|
306
|
+
protected static _queryPerpetualMarkPrice(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number], overrides?: Overrides): Promise<number>;
|
|
307
|
+
protected static _queryPerpetualState(symbol: string, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>, _proxyContract: Contract, indexPrices: [number, number, boolean, boolean], overrides?: Overrides): Promise<PerpetualState>;
|
|
308
|
+
protected static _parseAMMState(symbol: string, ammState: bigint[], indexPrices: [number, number, boolean, boolean], symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): PerpetualState;
|
|
306
309
|
/**
|
|
307
310
|
* Liquidation price
|
|
308
311
|
* @param symbol symbol of the form BTC-USD-MATIC
|
|
@@ -311,7 +314,7 @@ export default class PerpetualDataHandler {
|
|
|
311
314
|
* @param symbolToPerpStaticInfo mapping symbol->PerpStaticInfo
|
|
312
315
|
* @returns liquidation mark-price, corresponding collateral/quote conversion
|
|
313
316
|
*/
|
|
314
|
-
protected static _calculateLiquidationPrice(symbol: string, traderState:
|
|
317
|
+
protected static _calculateLiquidationPrice(symbol: string, traderState: bigint[], S2: number, symbolToPerpStaticInfo: Map<string, PerpetualStaticInfo>): [number, number, number, number, number];
|
|
315
318
|
/**
|
|
316
319
|
* Finds the perpetual id for a symbol of the form
|
|
317
320
|
* <base>-<quote>-<collateral>. The function first converts the
|
|
@@ -408,12 +411,12 @@ export default class PerpetualDataHandler {
|
|
|
408
411
|
*/
|
|
409
412
|
static getAvailableConfigs(): Set<string>;
|
|
410
413
|
/**
|
|
411
|
-
* Get the ABI of a function in a given contract
|
|
414
|
+
* Get the ABI of a function in a given contract. Undefined if it doesn't exist.
|
|
412
415
|
* @param contract A contract instance, e.g. this.proxyContract
|
|
413
416
|
* @param functionName Name of the function whose ABI we want
|
|
414
417
|
* @returns Function ABI as a single JSON string
|
|
415
418
|
*/
|
|
416
|
-
protected static _getABIFromContract(contract:
|
|
419
|
+
protected static _getABIFromContract(contract: BaseContract, functionName: string): string | undefined;
|
|
417
420
|
/**
|
|
418
421
|
* Gets the pool index (starting at 0 in exchangeInfo, not ID!) corresponding to a given symbol.
|
|
419
422
|
* @param symbol Symbol of the form ETH-USD-MATIC
|
|
@@ -449,7 +452,7 @@ export default class PerpetualDataHandler {
|
|
|
449
452
|
* @param contract name of contract: proxy|lob|sharetoken
|
|
450
453
|
* @returns ABI for the requested contract
|
|
451
454
|
*/
|
|
452
|
-
getABI(contract: string):
|
|
455
|
+
getABI(contract: string): Interface | undefined;
|
|
453
456
|
/**
|
|
454
457
|
* Performs basic validity checks on a given order
|
|
455
458
|
* @param order Order struct
|