@d8x/perpetuals-sdk 1.3.7 → 2.0.1-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/config/priceFeedConfig.json +16 -2
- package/dist/cjs/config/symbolList.json +2 -1
- package/dist/cjs/constants.d.ts +12 -12
- package/dist/cjs/constants.js +14 -14
- 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 +28 -16
- package/dist/cjs/d8XMath.js +70 -50
- 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 +52 -62
- package/dist/cjs/orderExecutorTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +44 -35
- package/dist/cjs/perpetualDataHandler.js +194 -170
- 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/polyMktsPxFeed.d.ts +14 -0
- package/dist/cjs/polyMktsPxFeed.js +59 -0
- package/dist/cjs/polyMktsPxFeed.js.map +1 -0
- package/dist/cjs/priceFeeds.d.ts +2 -0
- package/dist/cjs/priceFeeds.js +44 -9
- 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 +40 -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/config/priceFeedConfig.json +16 -2
- package/dist/esm/config/symbolList.json +2 -1
- package/dist/esm/constants.d.ts +12 -12
- package/dist/esm/constants.js +13 -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 +28 -16
- package/dist/esm/d8XMath.js +67 -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 +38 -48
- package/dist/esm/orderExecutorTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +44 -35
- package/dist/esm/perpetualDataHandler.js +137 -113
- 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/polyMktsPxFeed.d.ts +14 -0
- package/dist/esm/polyMktsPxFeed.js +56 -0
- package/dist/esm/polyMktsPxFeed.js.map +1 -0
- package/dist/esm/priceFeeds.d.ts +2 -0
- package/dist/esm/priceFeeds.js +44 -9
- 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 +42 -25
- 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/config/priceFeedConfig.json +16 -2
- package/src/config/symbolList.json +2 -1
- package/src/constants.ts +13 -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 +78 -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 +100 -108
- package/src/perpetualDataHandler.ts +209 -172
- package/src/perpetualEventHandler.ts +16 -17
- package/src/polyMktsPxFeed.ts +71 -0
- package/src/priceFeeds.ts +46 -10
- package/src/referralCodeSigner.ts +6 -10
- package/src/traderDigests.ts +8 -5
- package/src/traderInterface.ts +61 -33
- package/src/utils.ts +3 -4
- package/src/version.ts +1 -1
- package/src/writeAccessHandler.ts +26 -17
|
@@ -3,10 +3,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
const
|
|
7
|
-
const constants_1 = require("
|
|
8
|
-
const providers_1 = require("@ethersproject/providers");
|
|
9
|
-
const constants_2 = require("./constants");
|
|
6
|
+
const ethers_1 = require("ethers");
|
|
7
|
+
const constants_1 = require("./constants");
|
|
10
8
|
const contracts_1 = require("./contracts");
|
|
11
9
|
const d8XMath_1 = require("./d8XMath");
|
|
12
10
|
const perpetualDataHandler_1 = __importDefault(require("./perpetualDataHandler"));
|
|
@@ -117,7 +115,7 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
117
115
|
if (overrides) {
|
|
118
116
|
({ rpcURL, splitTx, maxGasLimit, ...overrides } = overrides);
|
|
119
117
|
}
|
|
120
|
-
const provider = new
|
|
118
|
+
const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL);
|
|
121
119
|
if (typeof executorAddr == "undefined") {
|
|
122
120
|
executorAddr = this.traderAddr;
|
|
123
121
|
}
|
|
@@ -155,9 +153,8 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
155
153
|
]);
|
|
156
154
|
value = this.PRICE_UPDATE_FEE_GWEI * submission.timestamps.length;
|
|
157
155
|
}
|
|
158
|
-
if (overrides?.nonce
|
|
159
|
-
|
|
160
|
-
overrides.nonce = bignumber_1.BigNumber.from(nonce).add(nonceInc);
|
|
156
|
+
if (overrides?.nonce != undefined) {
|
|
157
|
+
overrides.nonce = overrides.nonce + nonceInc;
|
|
161
158
|
}
|
|
162
159
|
if (overrides?.gasLimit !== undefined) {
|
|
163
160
|
overrides.gasLimit = await overrides.gasLimit;
|
|
@@ -169,7 +166,7 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
169
166
|
value = await value;
|
|
170
167
|
}
|
|
171
168
|
const unsignedTx = {
|
|
172
|
-
to: this.getOrderBookContract(symbol).
|
|
169
|
+
to: this.getOrderBookContract(symbol).target,
|
|
173
170
|
from: this.traderAddr,
|
|
174
171
|
nonce: overrides?.nonce,
|
|
175
172
|
data: txData,
|
|
@@ -181,22 +178,15 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
181
178
|
};
|
|
182
179
|
// no gas limit was specified, explicitly estimate
|
|
183
180
|
if (!overrides?.gasLimit) {
|
|
184
|
-
// given gas price might be conservative, which leads to a lower a gas estimate
|
|
185
|
-
//-> compensate with larger buffer
|
|
186
181
|
let gasLimit = await this.signer
|
|
187
182
|
.estimateGas(unsignedTx)
|
|
188
|
-
.then((gas) => gas
|
|
183
|
+
.then((gas) => (gas * 1500n) / 1000n)
|
|
189
184
|
.catch((_e) => undefined);
|
|
190
185
|
if (!gasLimit) {
|
|
191
186
|
// gas estimate failed - txn would probably revert, double check (and possibly re-throw):
|
|
192
|
-
overrides = {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
value: unsignedTx.value,
|
|
196
|
-
};
|
|
197
|
-
await this.getOrderBookContract(symbol, provider).callStatic.executeOrders(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
|
|
198
|
-
// it worked - use fallback
|
|
199
|
-
gasLimit = bignumber_1.BigNumber.from(maxGasLimit ?? this.gasLimit);
|
|
187
|
+
overrides = { gasLimit: maxGasLimit ?? this.gasLimit, value: unsignedTx.value, ...overrides };
|
|
188
|
+
await this.getOrderBookContract(symbol).executeOrders.staticCall(orderIds, executorAddr, submission.priceFeedVaas, submission.timestamps, overrides);
|
|
189
|
+
gasLimit = BigInt(maxGasLimit ?? this.gasLimit);
|
|
200
190
|
}
|
|
201
191
|
unsignedTx.gasLimit = gasLimit;
|
|
202
192
|
}
|
|
@@ -231,29 +221,29 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
231
221
|
if (overrides) {
|
|
232
222
|
({ rpcURL, ...overrides } = overrides);
|
|
233
223
|
}
|
|
234
|
-
const provider = new
|
|
235
|
-
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ??
|
|
224
|
+
const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
225
|
+
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider);
|
|
236
226
|
const calls = [
|
|
237
227
|
// 0: orderOfDigest
|
|
238
228
|
{
|
|
239
|
-
target: ob.
|
|
229
|
+
target: ob.target,
|
|
240
230
|
allowFailure: false,
|
|
241
231
|
callData: ob.interface.encodeFunctionData("orderOfDigest", [id]),
|
|
242
232
|
},
|
|
243
233
|
// 1: orderDependency
|
|
244
234
|
{
|
|
245
|
-
target: ob.
|
|
235
|
+
target: ob.target,
|
|
246
236
|
allowFailure: false,
|
|
247
237
|
callData: ob.interface.encodeFunctionData("orderDependency", [id]),
|
|
248
238
|
},
|
|
249
239
|
];
|
|
250
|
-
const encodedResults = await multicall.
|
|
240
|
+
const encodedResults = await multicall.aggregate3.staticCall(calls, overrides || {});
|
|
251
241
|
if (encodedResults.some(({ success }) => !success)) {
|
|
252
242
|
return undefined;
|
|
253
243
|
}
|
|
254
244
|
const smartContractOrder = ob.interface.decodeFunctionResult("orderOfDigest", encodedResults[0].returnData);
|
|
255
245
|
const orderDependency = ob.interface.decodeFunctionResult("orderDependency", encodedResults[1].returnData);
|
|
256
|
-
if (smartContractOrder.traderAddr ==
|
|
246
|
+
if (smartContractOrder.traderAddr == constants_1.ZERO_ADDRESS) {
|
|
257
247
|
return undefined;
|
|
258
248
|
}
|
|
259
249
|
const order = OrderExecutorTool.fromSmartContractOrder(smartContractOrder, this.symbolToPerpStaticInfo);
|
|
@@ -294,51 +284,51 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
294
284
|
if (overrides) {
|
|
295
285
|
({ rpcURL, ...overrides } = overrides);
|
|
296
286
|
}
|
|
297
|
-
const provider = new
|
|
287
|
+
const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
298
288
|
const fS2S3 = indexPrices.map((x) => (0, d8XMath_1.floatToABK64x64)(x == undefined || Number.isNaN(x) ? 0 : x));
|
|
299
289
|
const perpId = this.getPerpIdFromSymbol(order.symbol);
|
|
300
|
-
const fAmount = (0, d8XMath_1.floatToABK64x64)(order.quantity * (order.side ==
|
|
290
|
+
const fAmount = (0, d8XMath_1.floatToABK64x64)(order.quantity * (order.side == constants_1.BUY_SIDE ? 1 : -1));
|
|
301
291
|
const orderBook = this.getOrderBookContract(order.symbol).connect(provider);
|
|
302
292
|
const proxyCalls = [
|
|
303
293
|
// 0: trade amount price
|
|
304
294
|
{
|
|
305
|
-
target: this.proxyContract.
|
|
295
|
+
target: this.proxyContract.target,
|
|
306
296
|
allowFailure: true,
|
|
307
297
|
callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
|
|
308
298
|
},
|
|
309
299
|
// 1: amm state to get the mark price
|
|
310
300
|
{
|
|
311
|
-
target: this.proxyContract.
|
|
301
|
+
target: this.proxyContract.target,
|
|
312
302
|
allowFailure: true,
|
|
313
303
|
callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
|
|
314
304
|
},
|
|
315
305
|
// 2: order status to see if it's still open
|
|
316
306
|
{
|
|
317
|
-
target: orderBook.
|
|
307
|
+
target: orderBook.target,
|
|
318
308
|
allowFailure: true,
|
|
319
309
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
|
|
320
310
|
},
|
|
321
311
|
// 3: block timestamp
|
|
322
312
|
{
|
|
323
|
-
target: this.multicall.
|
|
313
|
+
target: this.multicall.target,
|
|
324
314
|
allowFailure: false,
|
|
325
315
|
callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
|
|
326
316
|
},
|
|
327
317
|
];
|
|
328
318
|
const hasParent = order.parentChildOrderIds != undefined &&
|
|
329
|
-
order.parentChildOrderIds[0] ==
|
|
330
|
-
order.parentChildOrderIds[1] !=
|
|
319
|
+
order.parentChildOrderIds[0] == ethers_1.ZeroHash &&
|
|
320
|
+
order.parentChildOrderIds[1] != ethers_1.ZeroHash;
|
|
331
321
|
if (hasParent) {
|
|
332
322
|
// 4: order has a parent, one more call needed:
|
|
333
323
|
proxyCalls.push({
|
|
334
|
-
target: orderBook.
|
|
324
|
+
target: orderBook.target,
|
|
335
325
|
allowFailure: true,
|
|
336
326
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
|
|
337
327
|
});
|
|
338
328
|
}
|
|
339
329
|
// multicall
|
|
340
|
-
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ??
|
|
341
|
-
const encodedResults = await multicall.
|
|
330
|
+
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider);
|
|
331
|
+
const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
342
332
|
// order status
|
|
343
333
|
let iOrderStatus;
|
|
344
334
|
if (encodedResults[2].success) {
|
|
@@ -347,7 +337,7 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
347
337
|
else {
|
|
348
338
|
iOrderStatus = await orderBook.getOrderStatus(orderId);
|
|
349
339
|
}
|
|
350
|
-
if (iOrderStatus !=
|
|
340
|
+
if (iOrderStatus != constants_1.OrderStatus.OPEN) {
|
|
351
341
|
// no need to continue - order is no longer open
|
|
352
342
|
return false;
|
|
353
343
|
}
|
|
@@ -360,7 +350,7 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
360
350
|
else {
|
|
361
351
|
iParentOrderStatus = await orderBook.getOrderStatus(order.parentChildOrderIds[1]);
|
|
362
352
|
}
|
|
363
|
-
if (iParentOrderStatus !=
|
|
353
|
+
if (iParentOrderStatus != constants_1.OrderStatus.EXECUTED && iParentOrderStatus != constants_1.OrderStatus.CANCELED) {
|
|
364
354
|
// no need to continue - parent order is still pending
|
|
365
355
|
return false;
|
|
366
356
|
}
|
|
@@ -384,8 +374,8 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
384
374
|
}
|
|
385
375
|
const orderPrice = (0, d8XMath_1.ABK64x64ToFloat)(fOrderPrice);
|
|
386
376
|
// block timestamp
|
|
387
|
-
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0]
|
|
388
|
-
blockTimestamp = Math.max(ts + 1, blockTimestamp ?? 0);
|
|
377
|
+
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[3].returnData)[0];
|
|
378
|
+
blockTimestamp = Math.max(Number(ts) + 1, blockTimestamp ?? 0);
|
|
389
379
|
return this._isTradeable(order, orderPrice, markPrice, blockTimestamp, this.symbolToPerpStaticInfo);
|
|
390
380
|
}
|
|
391
381
|
/**
|
|
@@ -451,37 +441,37 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
451
441
|
if (overrides) {
|
|
452
442
|
({ rpcURL, ...overrides } = overrides);
|
|
453
443
|
}
|
|
454
|
-
const provider = new
|
|
444
|
+
const provider = new ethers_1.JsonRpcProvider(rpcURL ?? this.nodeURL, this.network, { staticNetwork: true });
|
|
455
445
|
const fS2S3 = [indexPrices[0], indexPrices[1]].map((x) => (0, d8XMath_1.floatToABK64x64)(x == undefined || Number.isNaN(x) ? 0 : x));
|
|
456
446
|
const perpId = this.getPerpIdFromSymbol(orders[0].symbol);
|
|
457
|
-
const fAmounts = orders.map((order) => (0, d8XMath_1.floatToABK64x64)(order.quantity * (order.side ==
|
|
447
|
+
const fAmounts = orders.map((order) => (0, d8XMath_1.floatToABK64x64)(order.quantity * (order.side == constants_1.BUY_SIDE ? 1 : -1)));
|
|
458
448
|
const orderBook = this.getOrderBookContract(orders[0].symbol).connect(provider);
|
|
459
|
-
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ??
|
|
449
|
+
const multicall = contracts_1.Multicall3__factory.connect(this.config.multicall ?? constants_1.MULTICALL_ADDRESS, provider);
|
|
460
450
|
// mark price and timestamp
|
|
461
451
|
let proxyCalls = [
|
|
462
452
|
// 0: amm state to get the mark price
|
|
463
453
|
{
|
|
464
|
-
target: this.proxyContract.
|
|
454
|
+
target: this.proxyContract.target,
|
|
465
455
|
allowFailure: false,
|
|
466
456
|
callData: this.proxyContract.interface.encodeFunctionData("getAMMState", [perpId, fS2S3]),
|
|
467
457
|
},
|
|
468
458
|
// 1: block timestamp
|
|
469
459
|
{
|
|
470
|
-
target: this.multicall.
|
|
460
|
+
target: this.multicall.target,
|
|
471
461
|
allowFailure: false,
|
|
472
462
|
callData: this.multicall.interface.encodeFunctionData("getCurrentBlockTimestamp"),
|
|
473
463
|
},
|
|
474
464
|
];
|
|
475
465
|
// status calls
|
|
476
466
|
const statusCalls = orderIds.map((orderId) => ({
|
|
477
|
-
target: orderBook.
|
|
467
|
+
target: orderBook.target,
|
|
478
468
|
allowFailure: false,
|
|
479
469
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [orderId]),
|
|
480
470
|
}));
|
|
481
471
|
proxyCalls = proxyCalls.concat(statusCalls);
|
|
482
472
|
// price calls
|
|
483
473
|
const priceCalls = fAmounts.map((fAmount) => ({
|
|
484
|
-
target: this.proxyContract.
|
|
474
|
+
target: this.proxyContract.target,
|
|
485
475
|
allowFailure: false,
|
|
486
476
|
callData: this.proxyContract.interface.encodeFunctionData("queryPerpetualPrice", [perpId, fAmount, fS2S3]),
|
|
487
477
|
}));
|
|
@@ -489,28 +479,28 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
489
479
|
// possibly also get parent orders' status
|
|
490
480
|
const parentStatusCalls = orders
|
|
491
481
|
.filter((order) => order.parentChildOrderIds != undefined &&
|
|
492
|
-
order.parentChildOrderIds[0] ==
|
|
493
|
-
order.parentChildOrderIds[1] !=
|
|
482
|
+
order.parentChildOrderIds[0] == ethers_1.ZeroHash &&
|
|
483
|
+
order.parentChildOrderIds[1] != ethers_1.ZeroHash)
|
|
494
484
|
.map((order) => {
|
|
495
485
|
return {
|
|
496
|
-
target: orderBook.
|
|
486
|
+
target: orderBook.target,
|
|
497
487
|
allowFailure: false,
|
|
498
488
|
callData: orderBook.interface.encodeFunctionData("getOrderStatus", [order.parentChildOrderIds[1]]),
|
|
499
489
|
};
|
|
500
490
|
});
|
|
501
491
|
proxyCalls = proxyCalls.concat(parentStatusCalls);
|
|
502
492
|
// --- multicall ---
|
|
503
|
-
const encodedResults = await multicall.
|
|
493
|
+
const encodedResults = await multicall.aggregate3.staticCall(proxyCalls, overrides || {});
|
|
504
494
|
// mark price
|
|
505
495
|
const ammState = this.proxyContract.interface.decodeFunctionResult("getAMMState", encodedResults[0].returnData)[0];
|
|
506
496
|
const markPrice = indexPrices[0] * (1 + (0, d8XMath_1.ABK64x64ToFloat)(ammState[8]));
|
|
507
497
|
// block timestamp
|
|
508
|
-
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0]
|
|
509
|
-
blockTimestamp = Math.max(ts, blockTimestamp ?? 0);
|
|
498
|
+
const ts = this.multicall.interface.decodeFunctionResult("getCurrentBlockTimestamp", encodedResults[1].returnData)[0];
|
|
499
|
+
blockTimestamp = Math.max(Number(ts), blockTimestamp ?? 0);
|
|
510
500
|
// order status
|
|
511
501
|
const isOrderOpen = encodedResults.slice(2, 2 + orders.length).map((encodedResult) => {
|
|
512
502
|
const iOrderStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResult.returnData)[0];
|
|
513
|
-
return iOrderStatus ==
|
|
503
|
+
return iOrderStatus == constants_1.OrderStatus.OPEN;
|
|
514
504
|
});
|
|
515
505
|
// order prices
|
|
516
506
|
const orderPrices = encodedResults.slice(2 + orders.length, 2 + 2 * orders.length).map((encodedResult) => {
|
|
@@ -523,11 +513,11 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
523
513
|
for (let i = 0; i < orders.length; i++) {
|
|
524
514
|
const order = orders[i];
|
|
525
515
|
const hasParent = order.parentChildOrderIds != undefined &&
|
|
526
|
-
order.parentChildOrderIds[0] ==
|
|
527
|
-
order.parentChildOrderIds[1] !=
|
|
516
|
+
order.parentChildOrderIds[0] == ethers_1.ZeroHash &&
|
|
517
|
+
order.parentChildOrderIds[1] != ethers_1.ZeroHash;
|
|
528
518
|
if (hasParent) {
|
|
529
519
|
const iParentStatus = orderBook.interface.decodeFunctionResult("getOrderStatus", encodedResults[idxInResults].returnData)[0];
|
|
530
|
-
isParentReady[i] = iParentStatus ==
|
|
520
|
+
isParentReady[i] = iParentStatus == constants_1.OrderStatus.EXECUTED || iParentStatus == constants_1.OrderStatus.CANCELED;
|
|
531
521
|
idxInResults += 1;
|
|
532
522
|
}
|
|
533
523
|
}
|
|
@@ -576,14 +566,14 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
576
566
|
return false;
|
|
577
567
|
}
|
|
578
568
|
let limitPrice = order.limitPrice;
|
|
579
|
-
if ((order.side ==
|
|
569
|
+
if ((order.side == constants_1.BUY_SIDE && tradePrice > limitPrice) || (order.side == constants_1.SELL_SIDE && tradePrice < limitPrice)) {
|
|
580
570
|
// console.log(`limit price not met: ${limitPrice} ${order.side} @ ${tradePrice}`);
|
|
581
571
|
return false;
|
|
582
572
|
}
|
|
583
573
|
// check stop price
|
|
584
574
|
if (order.stopPrice != undefined &&
|
|
585
|
-
((order.side ==
|
|
586
|
-
(order.side ==
|
|
575
|
+
((order.side == constants_1.BUY_SIDE && markPrice < order.stopPrice) ||
|
|
576
|
+
(order.side == constants_1.SELL_SIDE && markPrice > order.stopPrice))) {
|
|
587
577
|
// console.log("stop price not met");
|
|
588
578
|
return false;
|
|
589
579
|
}
|
|
@@ -607,7 +597,7 @@ class OrderExecutorTool extends writeAccessHandler_1.default {
|
|
|
607
597
|
if (this.signer == null) {
|
|
608
598
|
throw Error("no wallet initialized. Use createProxyInstance().");
|
|
609
599
|
}
|
|
610
|
-
return await this.signer.
|
|
600
|
+
return await this.signer.getNonce(blockTag);
|
|
611
601
|
}
|
|
612
602
|
}
|
|
613
603
|
exports.default = OrderExecutorTool;
|
|
@@ -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":"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"}
|
|
@@ -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
|
|
@@ -463,4 +466,10 @@ export default class PerpetualDataHandler {
|
|
|
463
466
|
* @returns Order that can be submitted to the corresponding LOB via ethers v6 or viem
|
|
464
467
|
*/
|
|
465
468
|
static fromClientOrderToTypeSafeOrder(order: ClientOrder): TypeSafeOrder;
|
|
469
|
+
/**
|
|
470
|
+
* Determines whether a given perpetual represents a predictive market
|
|
471
|
+
* @param staticInfo Perpetual static info
|
|
472
|
+
* @returns True if this is a predictive market
|
|
473
|
+
*/
|
|
474
|
+
static isPredictiveMarket(staticInfo: PerpetualStaticInfo): boolean;
|
|
466
475
|
}
|