@d8x/perpetuals-sdk 0.6.0 → 0.6.3
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 +11 -10
- package/dist/cjs/accountTrade.js +51 -45
- package/dist/cjs/accountTrade.js.map +1 -1
- package/dist/cjs/brokerTool.d.ts +14 -12
- package/dist/cjs/brokerTool.js +51 -28
- package/dist/cjs/brokerTool.js.map +1 -1
- package/dist/cjs/config/defaultConfig.json +20 -19
- package/dist/cjs/contracts/ERC20.d.ts +194 -0
- package/dist/cjs/contracts/ERC20.js +3 -0
- package/dist/cjs/contracts/ERC20.js.map +1 -0
- package/dist/cjs/contracts/IPerpetualManager.d.ts +3012 -0
- package/dist/cjs/contracts/IPerpetualManager.js +3 -0
- package/dist/cjs/contracts/IPerpetualManager.js.map +1 -0
- package/dist/cjs/contracts/LimitOrderBook.d.ts +560 -0
- package/dist/cjs/contracts/LimitOrderBook.js +3 -0
- package/dist/cjs/contracts/LimitOrderBook.js.map +1 -0
- package/dist/cjs/contracts/LimitOrderBookFactory.d.ts +152 -0
- package/dist/cjs/contracts/LimitOrderBookFactory.js +3 -0
- package/dist/cjs/contracts/LimitOrderBookFactory.js.map +1 -0
- package/dist/cjs/contracts/MockTokenSwap.d.ts +194 -0
- package/dist/cjs/contracts/MockTokenSwap.js +3 -0
- package/dist/cjs/contracts/MockTokenSwap.js.map +1 -0
- package/dist/cjs/contracts/ShareToken.d.ts +320 -0
- package/dist/cjs/contracts/ShareToken.js +3 -0
- package/dist/cjs/contracts/ShareToken.js.map +1 -0
- package/dist/cjs/contracts/common.d.ts +21 -0
- package/dist/cjs/contracts/common.js +3 -0
- package/dist/cjs/contracts/common.js.map +1 -0
- package/dist/cjs/contracts/factories/ERC20__factory.d.ts +226 -0
- package/dist/cjs/contracts/factories/ERC20__factory.js +309 -0
- package/dist/cjs/contracts/factories/ERC20__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.d.ts +4599 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js +5909 -0
- package/dist/cjs/contracts/factories/IPerpetualManager__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.d.ts +131 -0
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js +182 -0
- package/dist/cjs/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.d.ts +830 -0
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js +1083 -0
- package/dist/cjs/contracts/factories/LimitOrderBook__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.d.ts +153 -0
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js +207 -0
- package/dist/cjs/contracts/factories/MockTokenSwap__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/ShareToken__factory.d.ts +336 -0
- package/dist/cjs/contracts/factories/ShareToken__factory.js +449 -0
- package/dist/cjs/contracts/factories/ShareToken__factory.js.map +1 -0
- package/dist/cjs/contracts/factories/index.d.ts +6 -0
- package/dist/cjs/contracts/factories/index.js +19 -0
- package/dist/cjs/contracts/factories/index.js.map +1 -0
- package/dist/cjs/contracts/index.d.ts +13 -0
- package/dist/cjs/contracts/index.js +18 -0
- package/dist/cjs/contracts/index.js.map +1 -0
- package/dist/cjs/liquidatorTool.d.ts +7 -7
- package/dist/cjs/liquidatorTool.js +17 -16
- package/dist/cjs/liquidatorTool.js.map +1 -1
- package/dist/cjs/liquidityProviderTool.d.ts +4 -4
- package/dist/cjs/liquidityProviderTool.js +6 -12
- package/dist/cjs/liquidityProviderTool.js.map +1 -1
- package/dist/cjs/marketData.d.ts +30 -22
- package/dist/cjs/marketData.js +86 -76
- package/dist/cjs/marketData.js.map +1 -1
- package/dist/cjs/nodeSDKTypes.d.ts +6 -6
- package/dist/cjs/orderReferrerTool.d.ts +10 -10
- package/dist/cjs/orderReferrerTool.js +106 -103
- package/dist/cjs/orderReferrerTool.js.map +1 -1
- package/dist/cjs/perpetualDataHandler.d.ts +17 -14
- package/dist/cjs/perpetualDataHandler.js +36 -36
- package/dist/cjs/perpetualDataHandler.js.map +1 -1
- package/dist/cjs/traderDigests.d.ts +2 -2
- package/dist/cjs/traderDigests.js +38 -49
- package/dist/cjs/traderDigests.js.map +1 -1
- package/dist/cjs/traderInterface.d.ts +5 -4
- package/dist/cjs/traderInterface.js +12 -24
- package/dist/cjs/traderInterface.js.map +1 -1
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +2 -2
- package/dist/cjs/version.js.map +1 -1
- package/dist/cjs/writeAccessHandler.d.ts +5 -5
- package/dist/cjs/writeAccessHandler.js +13 -12
- package/dist/cjs/writeAccessHandler.js.map +1 -1
- package/dist/esm/accountTrade.d.ts +11 -10
- package/dist/esm/accountTrade.js +52 -46
- package/dist/esm/accountTrade.js.map +1 -1
- package/dist/esm/brokerTool.d.ts +14 -12
- package/dist/esm/brokerTool.js +51 -28
- package/dist/esm/brokerTool.js.map +1 -1
- package/dist/esm/config/defaultConfig.json +20 -19
- package/dist/esm/contracts/ERC20.d.ts +194 -0
- package/dist/esm/contracts/ERC20.js +2 -0
- package/dist/esm/contracts/ERC20.js.map +1 -0
- package/dist/esm/contracts/IPerpetualManager.d.ts +3012 -0
- package/dist/esm/contracts/IPerpetualManager.js +2 -0
- package/dist/esm/contracts/IPerpetualManager.js.map +1 -0
- package/dist/esm/contracts/LimitOrderBook.d.ts +560 -0
- package/dist/esm/contracts/LimitOrderBook.js +2 -0
- package/dist/esm/contracts/LimitOrderBook.js.map +1 -0
- package/dist/esm/contracts/LimitOrderBookFactory.d.ts +152 -0
- package/dist/esm/contracts/LimitOrderBookFactory.js +2 -0
- package/dist/esm/contracts/LimitOrderBookFactory.js.map +1 -0
- package/dist/esm/contracts/MockTokenSwap.d.ts +194 -0
- package/dist/esm/contracts/MockTokenSwap.js +2 -0
- package/dist/esm/contracts/MockTokenSwap.js.map +1 -0
- package/dist/esm/contracts/ShareToken.d.ts +320 -0
- package/dist/esm/contracts/ShareToken.js +2 -0
- package/dist/esm/contracts/ShareToken.js.map +1 -0
- package/dist/esm/contracts/common.d.ts +21 -0
- package/dist/esm/contracts/common.js +2 -0
- package/dist/esm/contracts/common.js.map +1 -0
- package/dist/esm/contracts/factories/ERC20__factory.d.ts +226 -0
- package/dist/esm/contracts/factories/ERC20__factory.js +306 -0
- package/dist/esm/contracts/factories/ERC20__factory.js.map +1 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.d.ts +4599 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js +5906 -0
- package/dist/esm/contracts/factories/IPerpetualManager__factory.js.map +1 -0
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.d.ts +131 -0
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js +179 -0
- package/dist/esm/contracts/factories/LimitOrderBookFactory__factory.js.map +1 -0
- package/dist/esm/contracts/factories/LimitOrderBook__factory.d.ts +830 -0
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js +1080 -0
- package/dist/esm/contracts/factories/LimitOrderBook__factory.js.map +1 -0
- package/dist/esm/contracts/factories/MockTokenSwap__factory.d.ts +153 -0
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js +204 -0
- package/dist/esm/contracts/factories/MockTokenSwap__factory.js.map +1 -0
- package/dist/esm/contracts/factories/ShareToken__factory.d.ts +336 -0
- package/dist/esm/contracts/factories/ShareToken__factory.js +446 -0
- package/dist/esm/contracts/factories/ShareToken__factory.js.map +1 -0
- package/dist/esm/contracts/factories/index.d.ts +6 -0
- package/dist/esm/contracts/factories/index.js +10 -0
- package/dist/esm/contracts/factories/index.js.map +1 -0
- package/dist/esm/contracts/index.d.ts +13 -0
- package/dist/esm/contracts/index.js +8 -0
- package/dist/esm/contracts/index.js.map +1 -0
- package/dist/esm/liquidatorTool.d.ts +7 -7
- package/dist/esm/liquidatorTool.js +18 -17
- package/dist/esm/liquidatorTool.js.map +1 -1
- package/dist/esm/liquidityProviderTool.d.ts +4 -4
- package/dist/esm/liquidityProviderTool.js +6 -12
- package/dist/esm/liquidityProviderTool.js.map +1 -1
- package/dist/esm/marketData.d.ts +30 -22
- package/dist/esm/marketData.js +87 -77
- package/dist/esm/marketData.js.map +1 -1
- package/dist/esm/nodeSDKTypes.d.ts +6 -6
- package/dist/esm/orderReferrerTool.d.ts +10 -10
- package/dist/esm/orderReferrerTool.js +107 -104
- package/dist/esm/orderReferrerTool.js.map +1 -1
- package/dist/esm/perpetualDataHandler.d.ts +17 -14
- package/dist/esm/perpetualDataHandler.js +36 -36
- package/dist/esm/perpetualDataHandler.js.map +1 -1
- package/dist/esm/traderDigests.d.ts +2 -2
- package/dist/esm/traderDigests.js +38 -49
- package/dist/esm/traderDigests.js.map +1 -1
- package/dist/esm/traderInterface.d.ts +5 -4
- package/dist/esm/traderInterface.js +12 -24
- package/dist/esm/traderInterface.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 +5 -5
- package/dist/esm/writeAccessHandler.js +15 -14
- package/dist/esm/writeAccessHandler.js.map +1 -1
- package/doc/d8x-perpetuals-sdk.md +27 -0
- package/doc/marketData.md +13 -0
- package/package.json +7 -4
- package/dist/cjs/abi/testnet/IPerpetualManager.json +0 -5918
- package/dist/cjs/abi/testnet/v7/IPerpetualManager.json +0 -5918
- package/dist/cjs/abi/testnet/v8/LimitOrderBook.json +0 -1062
- package/dist/cjs/abi/testnet/v8/LimitOrderBookFactory.json +0 -161
- package/dist/cjs/abi/testnet/v8/ShareToken.json +0 -428
- package/dist/cjs/abi/zkevmTestnet/IPerpetualManager.json +0 -5773
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBook.json +0 -1075
- package/dist/cjs/abi/zkevmTestnet/LimitOrderBookFactory.json +0 -135
- package/dist/cjs/abi/zkevmTestnet/ShareToken.json +0 -428
- package/dist/esm/abi/testnet/IPerpetualManager.json +0 -5918
- package/dist/esm/abi/testnet/LimitOrderBook.json +0 -1062
- package/dist/esm/abi/testnet/LimitOrderBookFactory.json +0 -161
- package/dist/esm/abi/testnet/ShareToken.json +0 -428
- package/dist/esm/abi/testnet/v7/IPerpetualManager.json +0 -5918
- package/dist/esm/abi/testnet/v7/LimitOrderBook.json +0 -1062
- package/dist/esm/abi/testnet/v7/LimitOrderBookFactory.json +0 -161
- package/dist/esm/abi/testnet/v7/ShareToken.json +0 -428
- package/dist/esm/abi/testnet/v8/LimitOrderBook.json +0 -1062
- package/dist/esm/abi/testnet/v8/LimitOrderBookFactory.json +0 -161
- package/dist/esm/abi/testnet/v8/ShareToken.json +0 -428
- package/dist/esm/abi/zkevmTestnet/IPerpetualManager.json +0 -5773
- package/dist/esm/abi/zkevmTestnet/LimitOrderBook.json +0 -1075
- package/dist/esm/abi/zkevmTestnet/LimitOrderBookFactory.json +0 -135
- package/dist/esm/abi/zkevmTestnet/ShareToken.json +0 -428
- /package/dist/cjs/abi/{testnet/v8/IPerpetualManager.json → IPerpetualManager.json} +0 -0
- /package/dist/cjs/abi/{testnet/LimitOrderBook.json → LimitOrderBook.json} +0 -0
- /package/dist/cjs/abi/{testnet/LimitOrderBookFactory.json → LimitOrderBookFactory.json} +0 -0
- /package/dist/cjs/abi/{testnet/ShareToken.json → ShareToken.json} +0 -0
- /package/dist/esm/abi/{testnet/v8/IPerpetualManager.json → IPerpetualManager.json} +0 -0
- /package/dist/{cjs/abi/testnet/v7 → esm/abi}/LimitOrderBook.json +0 -0
- /package/dist/{cjs/abi/testnet/v7 → esm/abi}/LimitOrderBookFactory.json +0 -0
- /package/dist/{cjs/abi/testnet/v7 → esm/abi}/ShareToken.json +0 -0
package/dist/esm/marketData.js
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { __awaiter, __extends, __generator, __read, __spreadArray, __values } from "tslib";
|
|
2
2
|
import { BigNumber } from "@ethersproject/bignumber";
|
|
3
|
-
import { Contract } from "@ethersproject/contracts";
|
|
4
3
|
import { StaticJsonRpcProvider } from "@ethersproject/providers";
|
|
4
|
+
import { formatUnits } from "@ethersproject/units";
|
|
5
|
+
import { ERC20__factory } from "./contracts";
|
|
5
6
|
import { ABK64x64ToFloat, calculateLiquidationPriceCollateralBase, calculateLiquidationPriceCollateralQuanto, calculateLiquidationPriceCollateralQuote, floatToABK64x64, getDepositAmountForLvgTrade, dec18ToFloat, } from "./d8XMath";
|
|
6
|
-
import { BUY_SIDE, CLOSED_SIDE, COLLATERAL_CURRENCY_BASE, COLLATERAL_CURRENCY_QUANTO, CollaterlCCY,
|
|
7
|
+
import { BUY_SIDE, CLOSED_SIDE, COLLATERAL_CURRENCY_BASE, COLLATERAL_CURRENCY_QUANTO, CollaterlCCY, PERP_STATE_STR, SELL_SIDE, ZERO_ADDRESS, } from "./nodeSDKTypes";
|
|
7
8
|
import PerpetualDataHandler from "./perpetualDataHandler";
|
|
8
9
|
import { contractSymbolToSymbol, toBytes4 } from "./utils";
|
|
9
10
|
/**
|
|
@@ -41,7 +42,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
41
42
|
* about perpetual currencies
|
|
42
43
|
* @param provider optional provider
|
|
43
44
|
*/
|
|
44
|
-
MarketData.prototype.createProxyInstance = function (provider) {
|
|
45
|
+
MarketData.prototype.createProxyInstance = function (provider, overrides) {
|
|
45
46
|
return __awaiter(this, void 0, void 0, function () {
|
|
46
47
|
return __generator(this, function (_a) {
|
|
47
48
|
switch (_a.label) {
|
|
@@ -52,7 +53,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
52
53
|
else {
|
|
53
54
|
this.provider = provider;
|
|
54
55
|
}
|
|
55
|
-
return [4 /*yield*/, this.initContractsAndData(this.provider)];
|
|
56
|
+
return [4 /*yield*/, this.initContractsAndData(this.provider, overrides)];
|
|
56
57
|
case 1:
|
|
57
58
|
_a.sent();
|
|
58
59
|
return [2 /*return*/];
|
|
@@ -120,7 +121,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
120
121
|
*
|
|
121
122
|
* @returns {ExchangeInfo} Array of static data for all the pools and perpetuals in the system.
|
|
122
123
|
*/
|
|
123
|
-
MarketData.prototype.exchangeInfo = function () {
|
|
124
|
+
MarketData.prototype.exchangeInfo = function (overrides) {
|
|
124
125
|
return __awaiter(this, void 0, void 0, function () {
|
|
125
126
|
return __generator(this, function (_a) {
|
|
126
127
|
switch (_a.label) {
|
|
@@ -128,7 +129,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
128
129
|
if (this.proxyContract == null) {
|
|
129
130
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
130
131
|
}
|
|
131
|
-
return [4 /*yield*/, MarketData._exchangeInfo(this.proxyContract, this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter)];
|
|
132
|
+
return [4 /*yield*/, MarketData._exchangeInfo(this.proxyContract, this.poolStaticInfos, this.symbolToPerpStaticInfo, this.perpetualIdToSymbol, this.nestedPerpetualIDs, this.symbolList, this.priceFeedGetter, overrides)];
|
|
132
133
|
case 1: return [2 /*return*/, _a.sent()];
|
|
133
134
|
}
|
|
134
135
|
});
|
|
@@ -155,7 +156,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
155
156
|
*
|
|
156
157
|
* @returns For each perpetual an array of open orders and corresponding order-ids.
|
|
157
158
|
*/
|
|
158
|
-
MarketData.prototype.openOrders = function (traderAddr, symbol) {
|
|
159
|
+
MarketData.prototype.openOrders = function (traderAddr, symbol, overrides) {
|
|
159
160
|
return __awaiter(this, void 0, void 0, function () {
|
|
160
161
|
var resArray, symbols, prom, k, p, res;
|
|
161
162
|
return __generator(this, function (_a) {
|
|
@@ -166,14 +167,14 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
166
167
|
symbols = this.getPerpetualSymbolsInPool(symbol);
|
|
167
168
|
prom = [];
|
|
168
169
|
for (k = 0; k < symbols.length; k++) {
|
|
169
|
-
p = this._openOrdersOfPerpetual(traderAddr, symbols[k]);
|
|
170
|
+
p = this._openOrdersOfPerpetual(traderAddr, symbols[k], overrides);
|
|
170
171
|
prom.push(p);
|
|
171
172
|
}
|
|
172
173
|
return [4 /*yield*/, Promise.all(prom)];
|
|
173
174
|
case 1:
|
|
174
175
|
resArray = _a.sent();
|
|
175
176
|
return [3 /*break*/, 4];
|
|
176
|
-
case 2: return [4 /*yield*/, this._openOrdersOfPerpetual(traderAddr, symbol)];
|
|
177
|
+
case 2: return [4 /*yield*/, this._openOrdersOfPerpetual(traderAddr, symbol, overrides)];
|
|
177
178
|
case 3:
|
|
178
179
|
res = _a.sent();
|
|
179
180
|
resArray.push(res);
|
|
@@ -189,7 +190,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
189
190
|
* @param {string} symbol perpetual-symbol of the form ETH-USD-MATIC
|
|
190
191
|
* @returns open orders and order ids
|
|
191
192
|
*/
|
|
192
|
-
MarketData.prototype._openOrdersOfPerpetual = function (traderAddr, symbol) {
|
|
193
|
+
MarketData.prototype._openOrdersOfPerpetual = function (traderAddr, symbol, overrides) {
|
|
193
194
|
return __awaiter(this, void 0, void 0, function () {
|
|
194
195
|
var orderBookContract, _a, orders, digests;
|
|
195
196
|
return __generator(this, function (_b) {
|
|
@@ -197,8 +198,8 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
197
198
|
case 0:
|
|
198
199
|
orderBookContract = this.getOrderBookContract(symbol);
|
|
199
200
|
return [4 /*yield*/, Promise.all([
|
|
200
|
-
this.openOrdersOnOrderBook(traderAddr, orderBookContract),
|
|
201
|
-
MarketData.orderIdsOfTrader(traderAddr, orderBookContract),
|
|
201
|
+
this.openOrdersOnOrderBook(traderAddr, orderBookContract, overrides),
|
|
202
|
+
MarketData.orderIdsOfTrader(traderAddr, orderBookContract, overrides),
|
|
202
203
|
])];
|
|
203
204
|
case 1:
|
|
204
205
|
_a = __read.apply(void 0, [_b.sent(), 2]), orders = _a[0], digests = _a[1];
|
|
@@ -229,7 +230,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
229
230
|
*
|
|
230
231
|
* @returns {MarginAccount[]} Array of position risks of trader.
|
|
231
232
|
*/
|
|
232
|
-
MarketData.prototype.positionRisk = function (traderAddr, symbol) {
|
|
233
|
+
MarketData.prototype.positionRisk = function (traderAddr, symbol, overrides) {
|
|
233
234
|
return __awaiter(this, void 0, void 0, function () {
|
|
234
235
|
var resArray, symbols, prom, k, p, res;
|
|
235
236
|
return __generator(this, function (_a) {
|
|
@@ -243,14 +244,14 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
243
244
|
symbols = this.getPerpetualSymbolsInPool(symbol);
|
|
244
245
|
prom = [];
|
|
245
246
|
for (k = 0; k < symbols.length; k++) {
|
|
246
|
-
p = this._positionRiskForTraderInPerpetual(traderAddr, symbols[k]);
|
|
247
|
+
p = this._positionRiskForTraderInPerpetual(traderAddr, symbols[k], overrides);
|
|
247
248
|
prom.push(p);
|
|
248
249
|
}
|
|
249
250
|
return [4 /*yield*/, Promise.all(prom)];
|
|
250
251
|
case 1:
|
|
251
252
|
resArray = _a.sent();
|
|
252
253
|
return [3 /*break*/, 4];
|
|
253
|
-
case 2: return [4 /*yield*/, this._positionRiskForTraderInPerpetual(traderAddr, symbol)];
|
|
254
|
+
case 2: return [4 /*yield*/, this._positionRiskForTraderInPerpetual(traderAddr, symbol, overrides)];
|
|
254
255
|
case 3:
|
|
255
256
|
res = _a.sent();
|
|
256
257
|
resArray.push(res);
|
|
@@ -266,7 +267,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
266
267
|
* @param {string} symbol perpetual symbol of the form ETH-USD-MATIC
|
|
267
268
|
* @returns MarginAccount struct for the trader
|
|
268
269
|
*/
|
|
269
|
-
MarketData.prototype._positionRiskForTraderInPerpetual = function (traderAddr, symbol) {
|
|
270
|
+
MarketData.prototype._positionRiskForTraderInPerpetual = function (traderAddr, symbol, overrides) {
|
|
270
271
|
return __awaiter(this, void 0, void 0, function () {
|
|
271
272
|
var obj, mgnAcct;
|
|
272
273
|
return __generator(this, function (_a) {
|
|
@@ -274,7 +275,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
274
275
|
case 0: return [4 /*yield*/, this.priceFeedGetter.fetchPricesForPerpetual(symbol)];
|
|
275
276
|
case 1:
|
|
276
277
|
obj = _a.sent();
|
|
277
|
-
return [4 /*yield*/, PerpetualDataHandler.getMarginAccount(traderAddr, symbol, this.symbolToPerpStaticInfo, this.proxyContract, [obj.idxPrices[0], obj.idxPrices[1]])];
|
|
278
|
+
return [4 /*yield*/, PerpetualDataHandler.getMarginAccount(traderAddr, symbol, this.symbolToPerpStaticInfo, this.proxyContract, [obj.idxPrices[0], obj.idxPrices[1]], overrides)];
|
|
278
279
|
case 2:
|
|
279
280
|
mgnAcct = _a.sent();
|
|
280
281
|
return [2 /*return*/, mgnAcct];
|
|
@@ -290,7 +291,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
290
291
|
* @param indexPriceInfo Index prices and market status (open/closed)
|
|
291
292
|
* @returns Position risk after trade
|
|
292
293
|
*/
|
|
293
|
-
MarketData.prototype.positionRiskOnTrade = function (traderAddr, order, account, indexPriceInfo) {
|
|
294
|
+
MarketData.prototype.positionRiskOnTrade = function (traderAddr, order, account, indexPriceInfo, overrides) {
|
|
294
295
|
var _a, _b, _c, _d, _e;
|
|
295
296
|
return __awaiter(this, void 0, void 0, function () {
|
|
296
297
|
var obj, lotSizeBC, perpetualState, _f, S2, S3, Sm, currentMarginCashCC, currentPositionBC, currentLockedInQC, tradeAmountBC, newPositionBC, newSide, tradePrice, _g, poolId, exchangeFeeTbps, exchangeFeeCC, brokerFeeCC, referralFeeCC, isClose, isOpen, isFlip, keepPositionLvgOnClose, traderDepositCC, targetLvg, initialMarginRate, _h, b0, pos0, deltaCashCC, deltaLockedQC, pnl, newLockedInValueQC, newMarginCashCC, newEntryPrice, newMarginBalanceCC, newLeverage, _j, S2Liq, S3Liq, tau, newPositionRisk;
|
|
@@ -301,7 +302,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
301
302
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
302
303
|
}
|
|
303
304
|
if (!(account == undefined)) return [3 /*break*/, 2];
|
|
304
|
-
return [4 /*yield*/, this.positionRisk(traderAddr, order.symbol)];
|
|
305
|
+
return [4 /*yield*/, this.positionRisk(traderAddr, order.symbol, overrides)];
|
|
305
306
|
case 1:
|
|
306
307
|
account = (_k.sent())[0];
|
|
307
308
|
_k.label = 2;
|
|
@@ -318,7 +319,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
318
319
|
if (Math.abs(order.quantity) < lotSizeBC) {
|
|
319
320
|
return [2 /*return*/, { newPositionRisk: account, orderCost: 0 }];
|
|
320
321
|
}
|
|
321
|
-
return [4 /*yield*/, this.getPerpetualState(order.symbol, indexPriceInfo)];
|
|
322
|
+
return [4 /*yield*/, this.getPerpetualState(order.symbol, indexPriceInfo, overrides)];
|
|
322
323
|
case 5:
|
|
323
324
|
perpetualState = _k.sent();
|
|
324
325
|
_f = __read([perpetualState.indexPrice, perpetualState.collToQuoteIndexPrice, perpetualState.markPrice], 3), S2 = _f[0], S3 = _f[1], Sm = _f[2];
|
|
@@ -336,14 +337,14 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
336
337
|
if (!((_a = order.limitPrice) !== null && _a !== void 0)) return [3 /*break*/, 6];
|
|
337
338
|
_g = _a;
|
|
338
339
|
return [3 /*break*/, 8];
|
|
339
|
-
case 6: return [4 /*yield*/, this.getPerpetualPrice(order.symbol, tradeAmountBC)];
|
|
340
|
+
case 6: return [4 /*yield*/, this.getPerpetualPrice(order.symbol, tradeAmountBC, [indexPriceInfo[0], indexPriceInfo[1]], overrides)];
|
|
340
341
|
case 7:
|
|
341
342
|
_g = (_k.sent());
|
|
342
343
|
_k.label = 8;
|
|
343
344
|
case 8:
|
|
344
345
|
tradePrice = _g;
|
|
345
346
|
poolId = PerpetualDataHandler._getPoolIdFromSymbol(order.symbol, this.poolStaticInfos);
|
|
346
|
-
return [4 /*yield*/, this.proxyContract.queryExchangeFee(poolId, traderAddr, (_b = order.brokerAddr) !== null && _b !== void 0 ? _b : ZERO_ADDRESS)];
|
|
347
|
+
return [4 /*yield*/, this.proxyContract.queryExchangeFee(poolId, traderAddr, (_b = order.brokerAddr) !== null && _b !== void 0 ? _b : ZERO_ADDRESS, overrides || {})];
|
|
347
348
|
case 9:
|
|
348
349
|
exchangeFeeTbps = _k.sent();
|
|
349
350
|
exchangeFeeCC = (Math.abs(tradeAmountBC) * exchangeFeeTbps * 1e-5 * S2) / S3;
|
|
@@ -410,7 +411,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
410
411
|
* @param currentPositionRisk Position risk before
|
|
411
412
|
* @returns {MarginAccount} Position risk after
|
|
412
413
|
*/
|
|
413
|
-
MarketData.prototype.positionRiskOnCollateralAction = function (deltaCollateral, account, indexPriceInfo) {
|
|
414
|
+
MarketData.prototype.positionRiskOnCollateralAction = function (deltaCollateral, account, indexPriceInfo, overrides) {
|
|
414
415
|
return __awaiter(this, void 0, void 0, function () {
|
|
415
416
|
var obj, perpetualState, _a, S2, S3, Sm, positionBC, lockedInQC, newMarginCashCC, newMarginBalanceCC, newLeverage, _b, S2Liq, S3Liq, tau, newPositionRisk;
|
|
416
417
|
return __generator(this, function (_c) {
|
|
@@ -428,7 +429,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
428
429
|
obj = _c.sent();
|
|
429
430
|
indexPriceInfo = [obj.idxPrices[0], obj.idxPrices[1], obj.mktClosed[0], obj.mktClosed[1]];
|
|
430
431
|
_c.label = 2;
|
|
431
|
-
case 2: return [4 /*yield*/, this.getPerpetualState(account.symbol, indexPriceInfo)];
|
|
432
|
+
case 2: return [4 /*yield*/, this.getPerpetualState(account.symbol, indexPriceInfo, overrides)];
|
|
432
433
|
case 3:
|
|
433
434
|
perpetualState = _c.sent();
|
|
434
435
|
_a = __read([perpetualState.indexPrice, perpetualState.collToQuoteIndexPrice, perpetualState.markPrice], 3), S2 = _a[0], S3 = _a[1], Sm = _a[2];
|
|
@@ -516,19 +517,22 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
516
517
|
* @param symbol Symbol of the form ETH-USD-MATIC.
|
|
517
518
|
* @returns Balance
|
|
518
519
|
*/
|
|
519
|
-
MarketData.prototype.getWalletBalance = function (address, symbol) {
|
|
520
|
+
MarketData.prototype.getWalletBalance = function (address, symbol, overrides) {
|
|
520
521
|
return __awaiter(this, void 0, void 0, function () {
|
|
521
|
-
var poolIdx, marginTokenAddr, token,
|
|
522
|
+
var poolIdx, marginTokenAddr, token, walletBalance, decimals;
|
|
522
523
|
return __generator(this, function (_a) {
|
|
523
524
|
switch (_a.label) {
|
|
524
525
|
case 0:
|
|
525
526
|
poolIdx = this.getPoolStaticInfoIndexFromSymbol(symbol);
|
|
526
527
|
marginTokenAddr = this.poolStaticInfos[poolIdx].poolMarginTokenAddr;
|
|
527
|
-
token =
|
|
528
|
-
return [4 /*yield*/, token.balanceOf(address)];
|
|
528
|
+
token = ERC20__factory.connect(marginTokenAddr, this.provider);
|
|
529
|
+
return [4 /*yield*/, token.balanceOf(address, overrides || {})];
|
|
529
530
|
case 1:
|
|
530
|
-
|
|
531
|
-
return [
|
|
531
|
+
walletBalance = _a.sent();
|
|
532
|
+
return [4 /*yield*/, token.decimals(overrides || {})];
|
|
533
|
+
case 2:
|
|
534
|
+
decimals = _a.sent();
|
|
535
|
+
return [2 /*return*/, Number(formatUnits(walletBalance, decimals))];
|
|
532
536
|
}
|
|
533
537
|
});
|
|
534
538
|
});
|
|
@@ -538,12 +542,12 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
538
542
|
* @param address address of the liquidity provider
|
|
539
543
|
* @param symbolOrId Symbol of the form ETH-USD-MATIC, or MATIC (collateral only), or Pool-Id
|
|
540
544
|
*/
|
|
541
|
-
MarketData.prototype.getPoolShareTokenBalance = function (address, symbolOrId) {
|
|
545
|
+
MarketData.prototype.getPoolShareTokenBalance = function (address, symbolOrId, overrides) {
|
|
542
546
|
return __awaiter(this, void 0, void 0, function () {
|
|
543
547
|
var poolId;
|
|
544
548
|
return __generator(this, function (_a) {
|
|
545
549
|
poolId = this._poolSymbolOrIdToPoolId(symbolOrId);
|
|
546
|
-
return [2 /*return*/, this._getPoolShareTokenBalanceFromId(address, poolId)];
|
|
550
|
+
return [2 /*return*/, this._getPoolShareTokenBalanceFromId(address, poolId, overrides)];
|
|
547
551
|
});
|
|
548
552
|
});
|
|
549
553
|
};
|
|
@@ -553,15 +557,15 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
553
557
|
* @param poolId pool id
|
|
554
558
|
* @returns pool share token balance of address
|
|
555
559
|
*/
|
|
556
|
-
MarketData.prototype._getPoolShareTokenBalanceFromId = function (address, poolId) {
|
|
560
|
+
MarketData.prototype._getPoolShareTokenBalanceFromId = function (address, poolId, overrides) {
|
|
557
561
|
return __awaiter(this, void 0, void 0, function () {
|
|
558
562
|
var shareTokenAddr, shareToken, d18ShareTokenBalanceOfAddr;
|
|
559
563
|
return __generator(this, function (_a) {
|
|
560
564
|
switch (_a.label) {
|
|
561
565
|
case 0:
|
|
562
566
|
shareTokenAddr = this.poolStaticInfos[poolId - 1].shareTokenAddr;
|
|
563
|
-
shareToken =
|
|
564
|
-
return [4 /*yield*/, shareToken.balanceOf(address)];
|
|
567
|
+
shareToken = ERC20__factory.connect(shareTokenAddr, this.provider);
|
|
568
|
+
return [4 /*yield*/, shareToken.balanceOf(address, overrides || {})];
|
|
565
569
|
case 1:
|
|
566
570
|
d18ShareTokenBalanceOfAddr = _a.sent();
|
|
567
571
|
return [2 /*return*/, dec18ToFloat(d18ShareTokenBalanceOfAddr)];
|
|
@@ -574,14 +578,14 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
574
578
|
* @param symbolOrId symbol of the form ETH-USD-MATIC, MATIC (collateral), or poolId
|
|
575
579
|
* @returns current pool share token price in collateral currency
|
|
576
580
|
*/
|
|
577
|
-
MarketData.prototype.getShareTokenPrice = function (symbolOrId) {
|
|
581
|
+
MarketData.prototype.getShareTokenPrice = function (symbolOrId, overrides) {
|
|
578
582
|
return __awaiter(this, void 0, void 0, function () {
|
|
579
583
|
var poolId, priceDec18, price;
|
|
580
584
|
return __generator(this, function (_a) {
|
|
581
585
|
switch (_a.label) {
|
|
582
586
|
case 0:
|
|
583
587
|
poolId = this._poolSymbolOrIdToPoolId(symbolOrId);
|
|
584
|
-
return [4 /*yield*/, this.proxyContract.getShareTokenPriceD18(poolId)];
|
|
588
|
+
return [4 /*yield*/, this.proxyContract.getShareTokenPriceD18(poolId, overrides || {})];
|
|
585
589
|
case 1:
|
|
586
590
|
priceDec18 = _a.sent();
|
|
587
591
|
price = dec18ToFloat(priceDec18);
|
|
@@ -610,17 +614,17 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
610
614
|
* main();
|
|
611
615
|
* @returns the value (in collateral tokens) of the pool share, #share tokens, shareTokenAddress
|
|
612
616
|
*/
|
|
613
|
-
MarketData.prototype.getParticipationValue = function (address, symbolOrId) {
|
|
617
|
+
MarketData.prototype.getParticipationValue = function (address, symbolOrId, overrides) {
|
|
614
618
|
return __awaiter(this, void 0, void 0, function () {
|
|
615
619
|
var poolId, shareTokens, priceDec18, price, value, shareTokenAddr;
|
|
616
620
|
return __generator(this, function (_a) {
|
|
617
621
|
switch (_a.label) {
|
|
618
622
|
case 0:
|
|
619
623
|
poolId = this._poolSymbolOrIdToPoolId(symbolOrId);
|
|
620
|
-
return [4 /*yield*/, this._getPoolShareTokenBalanceFromId(address, poolId)];
|
|
624
|
+
return [4 /*yield*/, this._getPoolShareTokenBalanceFromId(address, poolId, overrides)];
|
|
621
625
|
case 1:
|
|
622
626
|
shareTokens = _a.sent();
|
|
623
|
-
return [4 /*yield*/, this.proxyContract.getShareTokenPriceD18(poolId)];
|
|
627
|
+
return [4 /*yield*/, this.proxyContract.getShareTokenPriceD18(poolId, overrides || {})];
|
|
624
628
|
case 2:
|
|
625
629
|
priceDec18 = _a.sent();
|
|
626
630
|
price = dec18ToFloat(priceDec18);
|
|
@@ -656,7 +660,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
656
660
|
* @param positionRisk Current position risk (as seen in positionRisk)
|
|
657
661
|
* @returns Maximal trade size, not signed
|
|
658
662
|
*/
|
|
659
|
-
MarketData.prototype.maxOrderSizeForTrader = function (side, positionRisk) {
|
|
663
|
+
MarketData.prototype.maxOrderSizeForTrader = function (side, positionRisk, overrides) {
|
|
660
664
|
return __awaiter(this, void 0, void 0, function () {
|
|
661
665
|
var curPosition, perpId, perpMaxPositionABK;
|
|
662
666
|
return __generator(this, function (_a) {
|
|
@@ -664,7 +668,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
664
668
|
case 0:
|
|
665
669
|
curPosition = side == BUY_SIDE ? positionRisk.positionNotionalBaseCCY : -positionRisk.positionNotionalBaseCCY;
|
|
666
670
|
perpId = this.getPerpIdFromSymbol(positionRisk.symbol);
|
|
667
|
-
return [4 /*yield*/, this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, floatToABK64x64(curPosition), side == BUY_SIDE)];
|
|
671
|
+
return [4 /*yield*/, this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, floatToABK64x64(curPosition), side == BUY_SIDE, overrides || {})];
|
|
668
672
|
case 1:
|
|
669
673
|
perpMaxPositionABK = _a.sent();
|
|
670
674
|
return [2 /*return*/, ABK64x64ToFloat(perpMaxPositionABK.abs())];
|
|
@@ -678,7 +682,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
678
682
|
* @param symbol of the form ETH-USD-MATIC.
|
|
679
683
|
* @returns signed maximal position size in base currency
|
|
680
684
|
*/
|
|
681
|
-
MarketData.prototype.maxSignedPosition = function (side, symbol) {
|
|
685
|
+
MarketData.prototype.maxSignedPosition = function (side, symbol, overrides) {
|
|
682
686
|
return __awaiter(this, void 0, void 0, function () {
|
|
683
687
|
var perpId, isBuy, maxSignedPos;
|
|
684
688
|
return __generator(this, function (_a) {
|
|
@@ -686,7 +690,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
686
690
|
case 0:
|
|
687
691
|
perpId = this.getPerpIdFromSymbol(symbol);
|
|
688
692
|
isBuy = side == BUY_SIDE;
|
|
689
|
-
return [4 /*yield*/, this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, BigNumber.from(0), isBuy)];
|
|
693
|
+
return [4 /*yield*/, this.proxyContract.getMaxSignedOpenTradeSizeForPos(perpId, BigNumber.from(0), isBuy, overrides || {})];
|
|
690
694
|
case 1:
|
|
691
695
|
maxSignedPos = _a.sent();
|
|
692
696
|
return [2 /*return*/, ABK64x64ToFloat(maxSignedPos)];
|
|
@@ -714,16 +718,16 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
714
718
|
*
|
|
715
719
|
* @returns {number} Price of index in given currency.
|
|
716
720
|
*/
|
|
717
|
-
MarketData.prototype.getOraclePrice = function (base, quote) {
|
|
721
|
+
MarketData.prototype.getOraclePrice = function (base, quote, overrides) {
|
|
718
722
|
return __awaiter(this, void 0, void 0, function () {
|
|
719
723
|
var px;
|
|
720
724
|
return __generator(this, function (_a) {
|
|
721
725
|
switch (_a.label) {
|
|
722
726
|
case 0:
|
|
723
|
-
if (this.proxyContract
|
|
727
|
+
if (!this.proxyContract) {
|
|
724
728
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
725
729
|
}
|
|
726
|
-
return [4 /*yield*/, this.proxyContract.getOraclePrice([toBytes4(base), toBytes4(quote)])];
|
|
730
|
+
return [4 /*yield*/, this.proxyContract.getOraclePrice([toBytes4(base), toBytes4(quote)], overrides || {})];
|
|
727
731
|
case 1:
|
|
728
732
|
px = _a.sent();
|
|
729
733
|
return [2 /*return*/, px == undefined ? undefined : ABK64x64ToFloat(px)];
|
|
@@ -731,18 +735,24 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
731
735
|
});
|
|
732
736
|
});
|
|
733
737
|
};
|
|
734
|
-
|
|
738
|
+
/**
|
|
739
|
+
*
|
|
740
|
+
* @param symbol Symbol of the form ETH-USD-MATIC
|
|
741
|
+
* @param orderId Order Id
|
|
742
|
+
* @param overrides
|
|
743
|
+
* @returns Order status ()
|
|
744
|
+
*/
|
|
745
|
+
MarketData.prototype.getOrderStatus = function (symbol, orderId, overrides) {
|
|
735
746
|
return __awaiter(this, void 0, void 0, function () {
|
|
736
747
|
var orderBookContract, status;
|
|
737
748
|
return __generator(this, function (_a) {
|
|
738
749
|
switch (_a.label) {
|
|
739
750
|
case 0:
|
|
740
|
-
if (this.proxyContract
|
|
751
|
+
if (!this.proxyContract) {
|
|
741
752
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
742
753
|
}
|
|
743
|
-
orderBookContract = null;
|
|
744
754
|
orderBookContract = this.getOrderBookContract(symbol);
|
|
745
|
-
return [4 /*yield*/, orderBookContract.getOrderStatus(orderId)];
|
|
755
|
+
return [4 /*yield*/, orderBookContract.getOrderStatus(orderId, overrides || {})];
|
|
746
756
|
case 1:
|
|
747
757
|
status = _a.sent();
|
|
748
758
|
return [2 /*return*/, status];
|
|
@@ -810,7 +820,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
810
820
|
*
|
|
811
821
|
* @returns price (number)
|
|
812
822
|
*/
|
|
813
|
-
MarketData.prototype.getPerpetualPrice = function (symbol, quantity, indexPrices) {
|
|
823
|
+
MarketData.prototype.getPerpetualPrice = function (symbol, quantity, indexPrices, overrides) {
|
|
814
824
|
return __awaiter(this, void 0, void 0, function () {
|
|
815
825
|
var obj;
|
|
816
826
|
return __generator(this, function (_a) {
|
|
@@ -825,7 +835,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
825
835
|
obj = _a.sent();
|
|
826
836
|
indexPrices = [obj.idxPrices[0], obj.idxPrices[1]];
|
|
827
837
|
_a.label = 2;
|
|
828
|
-
case 2: return [4 /*yield*/, PerpetualDataHandler._queryPerpetualPrice(symbol, quantity, this.symbolToPerpStaticInfo, this.proxyContract, indexPrices)];
|
|
838
|
+
case 2: return [4 /*yield*/, PerpetualDataHandler._queryPerpetualPrice(symbol, quantity, this.symbolToPerpStaticInfo, this.proxyContract, indexPrices, overrides)];
|
|
829
839
|
case 3: return [2 /*return*/, _a.sent()];
|
|
830
840
|
}
|
|
831
841
|
});
|
|
@@ -837,7 +847,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
837
847
|
* @param indexPrices S2 and S3 prices/isMarketOpen if not provided fetch via REST API
|
|
838
848
|
* @returns PerpetualState reference
|
|
839
849
|
*/
|
|
840
|
-
MarketData.prototype.getPerpetualState = function (symbol, indexPriceInfo) {
|
|
850
|
+
MarketData.prototype.getPerpetualState = function (symbol, indexPriceInfo, overrides) {
|
|
841
851
|
return __awaiter(this, void 0, void 0, function () {
|
|
842
852
|
var obj, state;
|
|
843
853
|
return __generator(this, function (_a) {
|
|
@@ -852,7 +862,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
852
862
|
obj = _a.sent();
|
|
853
863
|
indexPriceInfo = [obj.idxPrices[0], obj.idxPrices[1], obj.mktClosed[0], obj.mktClosed[1]];
|
|
854
864
|
_a.label = 2;
|
|
855
|
-
case 2: return [4 /*yield*/, PerpetualDataHandler._queryPerpetualState(symbol, this.symbolToPerpStaticInfo, this.proxyContract, indexPriceInfo)];
|
|
865
|
+
case 2: return [4 /*yield*/, PerpetualDataHandler._queryPerpetualState(symbol, this.symbolToPerpStaticInfo, this.proxyContract, indexPriceInfo, overrides)];
|
|
856
866
|
case 3:
|
|
857
867
|
state = _a.sent();
|
|
858
868
|
return [2 /*return*/, state];
|
|
@@ -927,7 +937,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
927
937
|
* @returns {Order[]} Array of user friendly order struct.
|
|
928
938
|
* @ignore
|
|
929
939
|
*/
|
|
930
|
-
MarketData.prototype.openOrdersOnOrderBook = function (traderAddr, orderBookContract) {
|
|
940
|
+
MarketData.prototype.openOrdersOnOrderBook = function (traderAddr, orderBookContract, overrides) {
|
|
931
941
|
return __awaiter(this, void 0, void 0, function () {
|
|
932
942
|
var userFriendlyOrders, haveMoreOrders, from, bulkSize, orders, k;
|
|
933
943
|
return __generator(this, function (_a) {
|
|
@@ -940,15 +950,15 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
940
950
|
_a.label = 1;
|
|
941
951
|
case 1:
|
|
942
952
|
if (!haveMoreOrders) return [3 /*break*/, 3];
|
|
943
|
-
return [4 /*yield*/, orderBookContract.getOrders(traderAddr, from, bulkSize)];
|
|
953
|
+
return [4 /*yield*/, orderBookContract.getOrders(traderAddr, from, bulkSize, overrides || {})];
|
|
944
954
|
case 2:
|
|
945
955
|
orders = _a.sent();
|
|
946
956
|
k = 0;
|
|
947
|
-
while (k < orders.length && orders[k].traderAddr
|
|
957
|
+
while (k < orders.length && orders[k].traderAddr !== ZERO_ADDRESS) {
|
|
948
958
|
userFriendlyOrders.push(PerpetualDataHandler.fromClientOrder(orders[k], this.symbolToPerpStaticInfo));
|
|
949
959
|
k++;
|
|
950
960
|
}
|
|
951
|
-
haveMoreOrders = orders[orders.length - 1].traderAddr
|
|
961
|
+
haveMoreOrders = orders[orders.length - 1].traderAddr !== ZERO_ADDRESS;
|
|
952
962
|
from = from + bulkSize;
|
|
953
963
|
return [3 /*break*/, 1];
|
|
954
964
|
case 3: return [2 /*return*/, userFriendlyOrders];
|
|
@@ -963,12 +973,12 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
963
973
|
* @returns Array of order-id's
|
|
964
974
|
* @ignore
|
|
965
975
|
*/
|
|
966
|
-
MarketData.orderIdsOfTrader = function (traderAddr, orderBookContract) {
|
|
976
|
+
MarketData.orderIdsOfTrader = function (traderAddr, orderBookContract, overrides) {
|
|
967
977
|
return __awaiter(this, void 0, void 0, function () {
|
|
968
978
|
var digestsRaw, k, digests;
|
|
969
979
|
return __generator(this, function (_a) {
|
|
970
980
|
switch (_a.label) {
|
|
971
|
-
case 0: return [4 /*yield*/, orderBookContract.limitDigestsOfTrader(traderAddr, 0, 15)];
|
|
981
|
+
case 0: return [4 /*yield*/, orderBookContract.limitDigestsOfTrader(traderAddr, 0, 15, overrides || {})];
|
|
972
982
|
case 1:
|
|
973
983
|
digestsRaw = _a.sent();
|
|
974
984
|
k = 0;
|
|
@@ -990,13 +1000,13 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
990
1000
|
* @param indexPrices optional index prices, will otherwise fetch from REST API
|
|
991
1001
|
* @returns available margin in collateral currency
|
|
992
1002
|
*/
|
|
993
|
-
MarketData.prototype.getAvailableMargin = function (traderAddr, symbol, indexPrices) {
|
|
1003
|
+
MarketData.prototype.getAvailableMargin = function (traderAddr, symbol, indexPrices, overrides) {
|
|
994
1004
|
return __awaiter(this, void 0, void 0, function () {
|
|
995
1005
|
var obj, perpID, traderState, idx_availableMargin, mgn;
|
|
996
1006
|
return __generator(this, function (_a) {
|
|
997
1007
|
switch (_a.label) {
|
|
998
1008
|
case 0:
|
|
999
|
-
if (this.proxyContract
|
|
1009
|
+
if (!this.proxyContract) {
|
|
1000
1010
|
throw Error("no proxy contract initialized. Use createProxyInstance().");
|
|
1001
1011
|
}
|
|
1002
1012
|
if (!(indexPrices == undefined)) return [3 /*break*/, 2];
|
|
@@ -1007,7 +1017,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1007
1017
|
_a.label = 2;
|
|
1008
1018
|
case 2:
|
|
1009
1019
|
perpID = PerpetualDataHandler.symbolToPerpetualId(symbol, this.symbolToPerpStaticInfo);
|
|
1010
|
-
return [4 /*yield*/, this.proxyContract.getTraderState(perpID, traderAddr, indexPrices.map(function (x) { return floatToABK64x64(x); }))];
|
|
1020
|
+
return [4 /*yield*/, this.proxyContract.getTraderState(perpID, traderAddr, indexPrices.map(function (x) { return floatToABK64x64(x); }), overrides || {})];
|
|
1011
1021
|
case 3:
|
|
1012
1022
|
traderState = _a.sent();
|
|
1013
1023
|
idx_availableMargin = 1;
|
|
@@ -1023,7 +1033,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1023
1033
|
* @param brokerAddr address of the trader's broker or undefined
|
|
1024
1034
|
* @returns a loyality score (4 worst, 1 best)
|
|
1025
1035
|
*/
|
|
1026
|
-
MarketData.prototype.getTraderLoyalityScore = function (traderAddr, brokerAddr) {
|
|
1036
|
+
MarketData.prototype.getTraderLoyalityScore = function (traderAddr, brokerAddr, overrides) {
|
|
1027
1037
|
return __awaiter(this, void 0, void 0, function () {
|
|
1028
1038
|
var brokerProm, traderProm, k, brkrVol_1, trdrVol_1, totalBrokerVolume, totalTraderVolume, brkrVol, trdrVol, k, volumeCap, score, rank4;
|
|
1029
1039
|
return __generator(this, function (_a) {
|
|
@@ -1036,10 +1046,10 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1036
1046
|
traderProm = [];
|
|
1037
1047
|
for (k = 0; k < this.poolStaticInfos.length; k++) {
|
|
1038
1048
|
if (brokerAddr != "" && brokerAddr != undefined) {
|
|
1039
|
-
brkrVol_1 = this.proxyContract.getCurrentBrokerVolume(this.poolStaticInfos[k].poolId, brokerAddr);
|
|
1049
|
+
brkrVol_1 = this.proxyContract.getCurrentBrokerVolume(this.poolStaticInfos[k].poolId, brokerAddr, overrides || {});
|
|
1040
1050
|
brokerProm.push(brkrVol_1);
|
|
1041
1051
|
}
|
|
1042
|
-
trdrVol_1 = this.proxyContract.getCurrentTraderVolume(this.poolStaticInfos[k].poolId, traderAddr);
|
|
1052
|
+
trdrVol_1 = this.proxyContract.getCurrentTraderVolume(this.poolStaticInfos[k].poolId, traderAddr, overrides || {});
|
|
1043
1053
|
traderProm.push(trdrVol_1);
|
|
1044
1054
|
}
|
|
1045
1055
|
totalBrokerVolume = 0;
|
|
@@ -1158,7 +1168,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1158
1168
|
* @param _idxPriceMap symbol to price/market closed
|
|
1159
1169
|
* @returns perpetual symbol to mid-prices mapping
|
|
1160
1170
|
*/
|
|
1161
|
-
MarketData._queryMidPrices = function (_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _idxPriceMap) {
|
|
1171
|
+
MarketData._queryMidPrices = function (_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _idxPriceMap, overrides) {
|
|
1162
1172
|
return __awaiter(this, void 0, void 0, function () {
|
|
1163
1173
|
var chunkSize, perpetualIDChunks, midPriceMap, k, indexPrices, j, id, symbol3s, info, S2, S3, fMidPrice, j, id, symbol3s;
|
|
1164
1174
|
return __generator(this, function (_a) {
|
|
@@ -1185,7 +1195,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1185
1195
|
indexPrices.push(S2);
|
|
1186
1196
|
indexPrices.push(S3);
|
|
1187
1197
|
}
|
|
1188
|
-
return [4 /*yield*/, _proxyContract.queryMidPrices(perpetualIDChunks[k], indexPrices)];
|
|
1198
|
+
return [4 /*yield*/, _proxyContract.queryMidPrices(perpetualIDChunks[k], indexPrices, overrides || {})];
|
|
1189
1199
|
case 2:
|
|
1190
1200
|
fMidPrice = _a.sent();
|
|
1191
1201
|
for (j = 0; j < fMidPrice.length; j++) {
|
|
@@ -1202,7 +1212,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1202
1212
|
});
|
|
1203
1213
|
});
|
|
1204
1214
|
};
|
|
1205
|
-
MarketData._queryPoolStates = function (_proxyContract, _poolStaticInfos, _numPools) {
|
|
1215
|
+
MarketData._queryPoolStates = function (_proxyContract, _poolStaticInfos, _numPools, overrides) {
|
|
1206
1216
|
return __awaiter(this, void 0, void 0, function () {
|
|
1207
1217
|
var chunkSize, iFrom, poolStates, pools, k, poolSymbol, poolState;
|
|
1208
1218
|
return __generator(this, function (_a) {
|
|
@@ -1214,7 +1224,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1214
1224
|
_a.label = 1;
|
|
1215
1225
|
case 1:
|
|
1216
1226
|
if (!(iFrom <= _numPools)) return [3 /*break*/, 3];
|
|
1217
|
-
return [4 /*yield*/, _proxyContract.getLiquidityPools(iFrom, iFrom + chunkSize)];
|
|
1227
|
+
return [4 /*yield*/, _proxyContract.getLiquidityPools(iFrom, iFrom + chunkSize, overrides || {})];
|
|
1218
1228
|
case 2:
|
|
1219
1229
|
pools = _a.sent();
|
|
1220
1230
|
for (k = 0; k < pools.length; k++) {
|
|
@@ -1240,7 +1250,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1240
1250
|
});
|
|
1241
1251
|
});
|
|
1242
1252
|
};
|
|
1243
|
-
MarketData._queryPerpetualStates = function (_proxyContract, _nestedPerpetualIDs, _symbolList) {
|
|
1253
|
+
MarketData._queryPerpetualStates = function (_proxyContract, _nestedPerpetualIDs, _symbolList, overrides) {
|
|
1244
1254
|
return __awaiter(this, void 0, void 0, function () {
|
|
1245
1255
|
var chunkSize, perpetualIDChunks, perpStateInfos, k, perps, j, PerpetualState;
|
|
1246
1256
|
return __generator(this, function (_a) {
|
|
@@ -1253,7 +1263,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1253
1263
|
_a.label = 1;
|
|
1254
1264
|
case 1:
|
|
1255
1265
|
if (!(k < perpetualIDChunks.length)) return [3 /*break*/, 4];
|
|
1256
|
-
return [4 /*yield*/, _proxyContract.getPerpetuals(perpetualIDChunks[k])];
|
|
1266
|
+
return [4 /*yield*/, _proxyContract.getPerpetuals(perpetualIDChunks[k], overrides || {})];
|
|
1257
1267
|
case 2:
|
|
1258
1268
|
perps = _a.sent();
|
|
1259
1269
|
for (j = 0; j < perps.length; j++) {
|
|
@@ -1281,7 +1291,7 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1281
1291
|
});
|
|
1282
1292
|
});
|
|
1283
1293
|
};
|
|
1284
|
-
MarketData._exchangeInfo = function (_proxyContract, _poolStaticInfos, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _nestedPerpetualIDs, _symbolList, _priceFeedGetter) {
|
|
1294
|
+
MarketData._exchangeInfo = function (_proxyContract, _poolStaticInfos, _symbolToPerpStaticInfo, _perpetualIdToSymbol, _nestedPerpetualIDs, _symbolList, _priceFeedGetter, overrides) {
|
|
1285
1295
|
return __awaiter(this, void 0, void 0, function () {
|
|
1286
1296
|
var factory, info, numPools, idxPriceMap, midPriceMap, poolStateInfos, perpStateInfos, k, perp, symbol3s, info_1, idxPriceS2Pair, idxPriceS3Pair, indexS3, poolId;
|
|
1287
1297
|
return __generator(this, function (_a) {
|
|
@@ -1293,13 +1303,13 @@ var MarketData = /** @class */ (function (_super) {
|
|
|
1293
1303
|
return [4 /*yield*/, MarketData._getAllIndexPrices(_symbolToPerpStaticInfo, _priceFeedGetter)];
|
|
1294
1304
|
case 1:
|
|
1295
1305
|
idxPriceMap = _a.sent();
|
|
1296
|
-
return [4 /*yield*/, MarketData._queryMidPrices(_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, idxPriceMap)];
|
|
1306
|
+
return [4 /*yield*/, MarketData._queryMidPrices(_proxyContract, _nestedPerpetualIDs, _symbolToPerpStaticInfo, _perpetualIdToSymbol, idxPriceMap, overrides)];
|
|
1297
1307
|
case 2:
|
|
1298
1308
|
midPriceMap = _a.sent();
|
|
1299
|
-
return [4 /*yield*/, MarketData._queryPoolStates(_proxyContract, _poolStaticInfos, numPools)];
|
|
1309
|
+
return [4 /*yield*/, MarketData._queryPoolStates(_proxyContract, _poolStaticInfos, numPools, overrides)];
|
|
1300
1310
|
case 3:
|
|
1301
1311
|
poolStateInfos = _a.sent();
|
|
1302
|
-
return [4 /*yield*/, MarketData._queryPerpetualStates(_proxyContract, _nestedPerpetualIDs, _symbolList)];
|
|
1312
|
+
return [4 /*yield*/, MarketData._queryPerpetualStates(_proxyContract, _nestedPerpetualIDs, _symbolList, overrides)];
|
|
1303
1313
|
case 4:
|
|
1304
1314
|
perpStateInfos = _a.sent();
|
|
1305
1315
|
// put together all info
|