@reyaxyz/common 0.344.0 → 0.344.1-perpob.110

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.
Files changed (140) hide show
  1. package/README.md +1 -1
  2. package/dist/commands/exposure/command.js +8 -22
  3. package/dist/commands/exposure/command.js.map +1 -1
  4. package/dist/incentives-api-types.js.map +1 -1
  5. package/dist/rest/helpers/constants.js +12 -0
  6. package/dist/rest/helpers/constants.js.map +1 -1
  7. package/dist/services/getNativeToken.js +1 -0
  8. package/dist/services/getNativeToken.js.map +1 -1
  9. package/dist/services/getSocketAddresses.js +1 -0
  10. package/dist/services/getSocketAddresses.js.map +1 -1
  11. package/dist/trading-api-types.js.map +1 -1
  12. package/dist/transactions/abis/Errors.json +1283 -34
  13. package/dist/transactions/abis/OrdersGateway.json +729 -123
  14. package/dist/transactions/abis/PassivePerpProxy.json +542 -0
  15. package/dist/transactions/buildMulticallTx.js.map +1 -1
  16. package/dist/transactions/consts.js +1 -2
  17. package/dist/transactions/consts.js.map +1 -1
  18. package/dist/transactions/contractAddresses.js +46 -5
  19. package/dist/transactions/contractAddresses.js.map +1 -1
  20. package/dist/transactions/executeTransaction.js +8 -123
  21. package/dist/transactions/executeTransaction.js.map +1 -1
  22. package/dist/transactions/sign.js +285 -79
  23. package/dist/transactions/sign.js.map +1 -1
  24. package/dist/types/commands/exposure/command.d.ts +8 -7
  25. package/dist/types/commands/exposure/command.d.ts.map +1 -1
  26. package/dist/types/incentives-api-types.d.ts +40 -17
  27. package/dist/types/incentives-api-types.d.ts.map +1 -1
  28. package/dist/types/rest/helpers/constants.d.ts +1 -1
  29. package/dist/types/rest/helpers/constants.d.ts.map +1 -1
  30. package/dist/types/services/getNativeToken.d.ts.map +1 -1
  31. package/dist/types/services/getSocketAddresses.d.ts.map +1 -1
  32. package/dist/types/trading-api-types.d.ts +144 -94
  33. package/dist/types/trading-api-types.d.ts.map +1 -1
  34. package/dist/types/transactions/buildMulticallTx.d.ts +1 -0
  35. package/dist/types/transactions/buildMulticallTx.d.ts.map +1 -1
  36. package/dist/types/transactions/consts.d.ts +0 -1
  37. package/dist/types/transactions/consts.d.ts.map +1 -1
  38. package/dist/types/transactions/contractAddresses.d.ts +1 -1
  39. package/dist/types/transactions/contractAddresses.d.ts.map +1 -1
  40. package/dist/types/transactions/executeTransaction.d.ts +2 -15
  41. package/dist/types/transactions/executeTransaction.d.ts.map +1 -1
  42. package/dist/types/transactions/sign.d.ts +117 -6
  43. package/dist/types/transactions/sign.d.ts.map +1 -1
  44. package/dist/types/types.d.ts +52 -64
  45. package/dist/types/types.d.ts.map +1 -1
  46. package/dist/types/utils/calculate.d.ts +14 -2
  47. package/dist/types/utils/calculate.d.ts.map +1 -1
  48. package/dist/types/utils/compute-trade-pnl.d.ts +39 -0
  49. package/dist/types/utils/compute-trade-pnl.d.ts.map +1 -0
  50. package/dist/types/utils/consts.d.ts +2 -2
  51. package/dist/types/utils/consts.d.ts.map +1 -1
  52. package/dist/types/utils/error-sanitizer.d.ts +15 -0
  53. package/dist/types/utils/error-sanitizer.d.ts.map +1 -0
  54. package/dist/types/utils/index.d.ts +3 -0
  55. package/dist/types/utils/index.d.ts.map +1 -1
  56. package/dist/types/utils/layerzero.d.ts +22 -0
  57. package/dist/types/utils/layerzero.d.ts.map +1 -0
  58. package/dist/types/utils/network.d.ts.map +1 -1
  59. package/dist/types/utils/throttled-error.d.ts +42 -0
  60. package/dist/types/utils/throttled-error.d.ts.map +1 -0
  61. package/dist/types/utils/token/batch-token-getters.d.ts +0 -5
  62. package/dist/types/utils/token/batch-token-getters.d.ts.map +1 -1
  63. package/dist/types/utils/token/normalize.d.ts +2 -1
  64. package/dist/types/utils/token/normalize.d.ts.map +1 -1
  65. package/dist/types/utils/token/token-getters.d.ts +0 -2
  66. package/dist/types/utils/token/token-getters.d.ts.map +1 -1
  67. package/dist/types/utils/token/token-info-getters.d.ts.map +1 -1
  68. package/dist/types/utils/token/token-info.d.ts.map +1 -1
  69. package/dist/types.js +41 -11
  70. package/dist/types.js.map +1 -1
  71. package/dist/utils/calculate.js +137 -16
  72. package/dist/utils/calculate.js.map +1 -1
  73. package/dist/utils/compute-trade-pnl.js +60 -0
  74. package/dist/utils/compute-trade-pnl.js.map +1 -0
  75. package/dist/utils/consts.js +8 -13
  76. package/dist/utils/consts.js.map +1 -1
  77. package/dist/utils/error-sanitizer.js +135 -0
  78. package/dist/utils/error-sanitizer.js.map +1 -0
  79. package/dist/utils/index.js +3 -0
  80. package/dist/utils/index.js.map +1 -1
  81. package/dist/utils/layerzero.js +31 -0
  82. package/dist/utils/layerzero.js.map +1 -0
  83. package/dist/utils/network.js +4 -0
  84. package/dist/utils/network.js.map +1 -1
  85. package/dist/utils/throttled-error.js +60 -0
  86. package/dist/utils/throttled-error.js.map +1 -0
  87. package/dist/utils/token/batch-token-getters.js +13 -64
  88. package/dist/utils/token/batch-token-getters.js.map +1 -1
  89. package/dist/utils/token/normalize.js +2 -2
  90. package/dist/utils/token/normalize.js.map +1 -1
  91. package/dist/utils/token/token-getters.js +1 -42
  92. package/dist/utils/token/token-getters.js.map +1 -1
  93. package/dist/utils/token/token-info-getters.js +45 -4
  94. package/dist/utils/token/token-info-getters.js.map +1 -1
  95. package/dist/utils/token/token-info.js +6 -0
  96. package/dist/utils/token/token-info.js.map +1 -1
  97. package/package.json +3 -3
  98. package/src/commands/exposure/command.ts +8 -38
  99. package/src/incentives-api-types.ts +66 -33
  100. package/src/rest/helpers/constants.ts +22 -0
  101. package/src/services/getNativeToken.ts +1 -0
  102. package/src/services/getSocketAddresses.ts +1 -0
  103. package/src/trading-api-types.ts +175 -127
  104. package/src/transactions/abis/Errors.json +5133 -3884
  105. package/src/transactions/abis/OrdersGateway.json +730 -124
  106. package/src/transactions/abis/PassivePerpProxy.json +542 -0
  107. package/src/transactions/buildMulticallTx.ts +4 -0
  108. package/src/transactions/consts.ts +0 -1
  109. package/src/transactions/contractAddresses.ts +43 -6
  110. package/src/transactions/executeTransaction.ts +2 -130
  111. package/src/transactions/sign.ts +347 -93
  112. package/src/types.ts +90 -74
  113. package/src/utils/calculate.ts +181 -21
  114. package/src/utils/compute-trade-pnl.ts +110 -0
  115. package/src/utils/consts.ts +10 -22
  116. package/src/utils/error-sanitizer.ts +137 -0
  117. package/src/utils/index.ts +3 -0
  118. package/src/utils/layerzero.ts +66 -0
  119. package/src/utils/network.ts +4 -0
  120. package/src/utils/throttled-error.ts +85 -0
  121. package/src/utils/token/batch-token-getters.ts +0 -28
  122. package/src/utils/token/normalize.ts +6 -1
  123. package/src/utils/token/token-getters.ts +0 -29
  124. package/src/utils/token/token-info-getters.ts +54 -4
  125. package/src/utils/token/token-info.ts +35 -0
  126. package/dist/types/utils/layerzero/index.d.ts +0 -3
  127. package/dist/types/utils/layerzero/index.d.ts.map +0 -1
  128. package/dist/types/utils/layerzero/oft-config.d.ts +0 -4
  129. package/dist/types/utils/layerzero/oft-config.d.ts.map +0 -1
  130. package/dist/types/utils/layerzero/types.d.ts +0 -23
  131. package/dist/types/utils/layerzero/types.d.ts.map +0 -1
  132. package/dist/utils/layerzero/index.js +0 -19
  133. package/dist/utils/layerzero/index.js.map +0 -1
  134. package/dist/utils/layerzero/oft-config.js +0 -29
  135. package/dist/utils/layerzero/oft-config.js.map +0 -1
  136. package/dist/utils/layerzero/types.js +0 -3
  137. package/dist/utils/layerzero/types.js.map +0 -1
  138. package/src/utils/layerzero/index.ts +0 -2
  139. package/src/utils/layerzero/oft-config.ts +0 -32
  140. package/src/utils/layerzero/types.ts +0 -25
@@ -36,10 +36,9 @@ var __generator = (this && this.__generator) || function (thisArg, body) {
36
36
  }
37
37
  };
38
38
  Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.signManagePermissionBySig = exports.signRevokePermission = exports.signVote = exports.signGrantPermission = exports.signCancelConditionalOrder = exports.isConditionalOrderSignatureValid = exports.signOrdersGatewayOrder = exports.createOrdersGatewayOrderNonce = exports.getReyaDomain = exports.signPoolRemoveLiquidity = exports.signCoreCommands = exports.convertEthersSignatureToEIP712Signature = void 0;
39
+ exports.signManagePermissionBySig = exports.signMECancelAllAfter = exports.signMEMassCancel = exports.signMEOrderCancel = exports.signRevokePermission = exports.signVote = exports.signGrantPermission = exports.isOrderSignatureValid = exports.signOrder = exports.fullPositionStopQuantity = exports.FULL_POSITION_STOP_SENTINEL = exports.orderTypes = exports.signMassCancel = exports.signOrderCancel = exports.cancelAllAfterTypes = exports.massCancelTypes = exports.orderCancelTypes = exports.getReyaDomain = exports.signPoolRemoveLiquidity = exports.signCoreCommands = exports.convertEthersSignatureToEIP712Signature = void 0;
40
40
  var ethers_1 = require("ethers");
41
41
  var contractAddresses_1 = require("./contractAddresses");
42
- var types_1 = require("../types");
43
42
  function convertEthersSignatureToEIP712Signature(signature, deadline) {
44
43
  return {
45
44
  v: signature.v,
@@ -159,118 +158,257 @@ function getReyaDomain(verifyingContract) {
159
158
  };
160
159
  }
161
160
  exports.getReyaDomain = getReyaDomain;
162
- var conditionalOrderTypes = {
163
- ConditionalOrder: [
161
+ // PRO-126 Bug 5 retired the legacy `ConditionalOrderDetails` typehash +
162
+ // `signOrdersGatewayOrder` / `isConditionalOrderSignatureValid` /
163
+ // `createOrdersGatewayOrderNonce` helpers. The on-chain
164
+ // `OrdersGateway.execute` selector that consumed those signatures is
165
+ // gone; every order class now signs the new flat `OrderDetails` schema
166
+ // via `signOrder` further down this file.
167
+ // The three cancel-side typed-data schemas below are EXPORTED as the single
168
+ // source of truth for signer AND verifier — common-backend's
169
+ // `recover{OrderCancel,MassCancel,CancelAllAfter}Signer` import them from
170
+ // here (like `orderTypes` for the Order struct). They used to be duplicated
171
+ // module-private consts on each side; any drift (field rename / width /
172
+ // reorder) silently breaks 100% of signature recovery for that request
173
+ // class, so exactly one copy may exist.
174
+ /**
175
+ * EIP-712 typed-data structures for the OrderCancel signature scheme used by
176
+ * the matching engine for order cancellations. The signer signs over a value
177
+ * of shape
178
+ * `{ verifyingChainId, deadline, cancel: { accountId, marketId, orderId, clOrdId, nonce } }`.
179
+ */
180
+ exports.orderCancelTypes = {
181
+ OrderCancel: [
182
+ { name: 'verifyingChainId', type: 'uint64' },
183
+ { name: 'deadline', type: 'uint64' },
184
+ { name: 'cancel', type: 'OrderCancelDetails' },
185
+ ],
186
+ OrderCancelDetails: [
187
+ { name: 'accountId', type: 'uint64' },
188
+ { name: 'marketId', type: 'uint64' },
189
+ { name: 'orderId', type: 'uint64' },
190
+ { name: 'clOrdId', type: 'uint64' },
191
+ { name: 'nonce', type: 'uint64' },
192
+ ],
193
+ };
194
+ /**
195
+ * EIP-712 typed-data structures for the MassCancel signature scheme used by
196
+ * the matching engine for mass cancellations. The signer signs over a value
197
+ * of shape `{ verifyingChainId, deadline, massCancel: { accountId, marketId, nonce } }`.
198
+ */
199
+ exports.massCancelTypes = {
200
+ MassCancel: [
201
+ { name: 'verifyingChainId', type: 'uint64' },
202
+ { name: 'deadline', type: 'uint64' },
203
+ { name: 'massCancel', type: 'MassCancelDetails' },
204
+ ],
205
+ MassCancelDetails: [
206
+ { name: 'accountId', type: 'uint64' },
207
+ { name: 'marketId', type: 'uint64' },
208
+ { name: 'nonce', type: 'uint64' },
209
+ ],
210
+ };
211
+ /**
212
+ * EIP-712 typed-data structures for the CancelAllAfter signature scheme used
213
+ * by the matching engine for the cancel-on-disconnect dead-man's-switch. The
214
+ * signer signs over a value of shape
215
+ * `{ verifyingChainId, deadline, cancelAllAfter: { accountId, timeoutMs, nonce } }`.
216
+ * uint64 throughout, matching the OrderCancel / MassCancel family.
217
+ */
218
+ exports.cancelAllAfterTypes = {
219
+ CancelAllAfter: [
220
+ { name: 'verifyingChainId', type: 'uint64' },
221
+ { name: 'deadline', type: 'uint64' },
222
+ { name: 'cancelAllAfter', type: 'CancelAllAfterDetails' },
223
+ ],
224
+ CancelAllAfterDetails: [
225
+ { name: 'accountId', type: 'uint64' },
226
+ { name: 'timeoutMs', type: 'uint64' },
227
+ { name: 'nonce', type: 'uint64' },
228
+ ],
229
+ };
230
+ function signOrderCancel(signer, reyaChainId, accountId, marketId, orderId, clOrdId, nonce, deadline) {
231
+ return __awaiter(this, void 0, void 0, function () {
232
+ var signature;
233
+ return __generator(this, function (_a) {
234
+ switch (_a.label) {
235
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), exports.orderCancelTypes, {
236
+ verifyingChainId: reyaChainId,
237
+ deadline: deadline,
238
+ cancel: {
239
+ accountId: accountId,
240
+ marketId: marketId,
241
+ orderId: orderId,
242
+ clOrdId: clOrdId,
243
+ nonce: nonce,
244
+ },
245
+ })];
246
+ case 1:
247
+ signature = _a.sent();
248
+ return [2 /*return*/, {
249
+ serializedSignature: signature.serialized,
250
+ nonce: nonce,
251
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
252
+ }];
253
+ }
254
+ });
255
+ });
256
+ }
257
+ exports.signOrderCancel = signOrderCancel;
258
+ function signMassCancel(signer, reyaChainId, accountId, marketId, nonce, deadline) {
259
+ return __awaiter(this, void 0, void 0, function () {
260
+ var signature;
261
+ return __generator(this, function (_a) {
262
+ switch (_a.label) {
263
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), exports.massCancelTypes, {
264
+ verifyingChainId: reyaChainId,
265
+ deadline: deadline,
266
+ massCancel: {
267
+ accountId: accountId,
268
+ marketId: marketId,
269
+ nonce: nonce,
270
+ },
271
+ })];
272
+ case 1:
273
+ signature = _a.sent();
274
+ return [2 /*return*/, {
275
+ serializedSignature: signature.serialized,
276
+ nonce: nonce,
277
+ signature: convertEthersSignatureToEIP712Signature(signature, deadline),
278
+ }];
279
+ }
280
+ });
281
+ });
282
+ }
283
+ exports.signMassCancel = signMassCancel;
284
+ // -----------------------------------------------------------------------------
285
+ // perpOB: EIP-712 typed data for the flat `Order` / `OrderDetails` struct
286
+ // -----------------------------------------------------------------------------
287
+ // Matches the post-audit on-chain redesign in
288
+ // reya-network/feat/perpOB (orders-gateway/src/libraries/DataTypes.sol +
289
+ // ConditionalOrderHashing.sol). PRO-126 Bug 5 retired the legacy
290
+ // `conditionalOrderTypes` / `signOrdersGatewayOrder` / `isConditionalOrderSignatureValid`
291
+ // surface that this struct replaced — every order class (spot + perp,
292
+ // IOC + GTC + TP + SL) now signs against `OrderDetails` here.
293
+ //
294
+ // Contract: Order envelope + flat OrderDetails inner struct. Two distinct time
295
+ // values are signed:
296
+ // - envelope `deadline` -> signature validity, enforced by API at entry
297
+ // - inner `expiresAfter` -> order lifetime, enforced on-chain at execution
298
+ // Convention: callers should set `deadline <= expiresAfter` when `expiresAfter > 0`.
299
+ // See reya-api-specs/docs/eip712.md for the canonical description.
300
+ exports.orderTypes = {
301
+ Order: [
164
302
  { name: 'verifyingChainId', type: 'uint256' },
165
303
  { name: 'deadline', type: 'uint256' },
166
- { name: 'order', type: 'ConditionalOrderDetails' },
304
+ { name: 'order', type: 'OrderDetails' },
167
305
  ],
168
- ConditionalOrderDetails: [
306
+ OrderDetails: [
169
307
  { name: 'accountId', type: 'uint128' },
170
308
  { name: 'marketId', type: 'uint128' },
171
309
  { name: 'exchangeId', type: 'uint128' },
172
- { name: 'counterpartyAccountIds', type: 'uint128[]' },
173
310
  { name: 'orderType', type: 'uint8' },
174
- { name: 'inputs', type: 'bytes' },
311
+ { name: 'quantity', type: 'int256' },
312
+ { name: 'limitPrice', type: 'uint256' },
313
+ { name: 'triggerPrice', type: 'uint256' },
314
+ { name: 'timeInForce', type: 'uint8' },
315
+ { name: 'clientOrderId', type: 'uint64' },
316
+ { name: 'reduceOnly', type: 'bool' },
317
+ { name: 'postOnly', type: 'bool' },
318
+ { name: 'expiresAfter', type: 'uint256' },
175
319
  { name: 'signer', type: 'address' },
176
320
  { name: 'nonce', type: 'uint256' },
177
321
  ],
178
322
  };
179
- function createOrdersGatewayOrderNonce(accountId, marketId, timestampMs) {
180
- // Validate the input ranges
181
- if (marketId < 0 || marketId >= Math.pow(2, 32))
182
- throw new Error('marketId is out of range');
183
- if (accountId < 0 || accountId >= Math.pow(2, 128))
184
- throw new Error('accountId is out of range');
185
- if (timestampMs < 0 || timestampMs >= Math.pow(2, 64))
186
- throw new Error('timestamp is out of range');
187
- var hashUint256 = (BigInt(accountId) << BigInt(98)) |
188
- (BigInt(timestampMs) << BigInt(32)) |
189
- BigInt(marketId);
190
- return hashUint256;
323
+ /**
324
+ * Full-position stop sentinel — `type(int256).max` (2^255 − 1), mirroring
325
+ * `FULL_POSITION_STOP_SENTINEL` in the OrdersGateway (reya-network #738). A
326
+ * STOP_LOSS / TAKE_PROFIT signs quantity `±sentinel` (the sign carries the
327
+ * close side: −sentinel sells out a long, +sentinel buys back a short); the
328
+ * chain enforces the iff — a stop with any other quantity (including the old
329
+ * quantity-0 encoding) reverts, and the sentinel magnitude is reserved (a
330
+ * non-stop signing it reverts). Raw int256 value, NOT E18-scaled. Signer and
331
+ * verifier must derive it from THIS constant so they can never drift.
332
+ */
333
+ exports.FULL_POSITION_STOP_SENTINEL = (BigInt(1) << BigInt(255)) - BigInt(1);
334
+ /** The signed quantity for a full-position stop: sign carries the close side. */
335
+ function fullPositionStopQuantity(isBuy) {
336
+ return isBuy ? exports.FULL_POSITION_STOP_SENTINEL : -exports.FULL_POSITION_STOP_SENTINEL;
191
337
  }
192
- exports.createOrdersGatewayOrderNonce = createOrdersGatewayOrderNonce;
193
- function signOrdersGatewayOrder(signer, reyaChainId, accountId, marketId, exchangeId, counterpartyAccountIds, orderType, inputs, deadline, creationTimestampMs, customNonce) {
338
+ exports.fullPositionStopQuantity = fullPositionStopQuantity;
339
+ function signOrder(signer, reyaChainId, params) {
340
+ var _a;
194
341
  return __awaiter(this, void 0, void 0, function () {
195
- var nonce, signature, _a, _b;
196
- var _c, _d;
197
- return __generator(this, function (_e) {
198
- switch (_e.label) {
342
+ var signature, _b, _c;
343
+ var _d, _e;
344
+ return __generator(this, function (_f) {
345
+ switch (_f.label) {
199
346
  case 0:
200
- nonce = customNonce !== null && customNonce !== void 0 ? customNonce : createOrdersGatewayOrderNonce(accountId, marketId, creationTimestampMs);
201
- _a = signReyaTypedData;
202
- _b = [signer,
347
+ _b = signReyaTypedData;
348
+ _c = [signer,
203
349
  (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY),
204
- conditionalOrderTypes];
205
- _c = {
350
+ exports.orderTypes];
351
+ _d = {
206
352
  verifyingChainId: reyaChainId,
207
- deadline: BigInt(deadline)
353
+ deadline: BigInt(params.deadline)
208
354
  };
209
- _d = {
210
- accountId: accountId,
211
- marketId: marketId,
212
- exchangeId: exchangeId,
213
- counterpartyAccountIds: counterpartyAccountIds,
214
- orderType: orderType,
215
- inputs: inputs
355
+ _e = {
356
+ accountId: params.accountId,
357
+ marketId: params.marketId,
358
+ exchangeId: params.exchangeId,
359
+ orderType: params.orderType,
360
+ quantity: params.quantity,
361
+ limitPrice: params.limitPrice,
362
+ triggerPrice: params.triggerPrice,
363
+ timeInForce: params.timeInForce,
364
+ clientOrderId: params.clientOrderId,
365
+ reduceOnly: params.reduceOnly,
366
+ postOnly: (_a = params.postOnly) !== null && _a !== void 0 ? _a : false,
367
+ expiresAfter: params.expiresAfter
216
368
  };
217
369
  return [4 /*yield*/, signer.getAddress()];
218
- case 1: return [4 /*yield*/, _a.apply(void 0, _b.concat([(_c.order = (_d.signer = _e.sent(),
219
- _d.nonce = nonce,
220
- _d),
221
- _c)]))];
370
+ case 1: return [4 /*yield*/, _b.apply(void 0, _c.concat([(_d.order = (_e.signer = _f.sent(),
371
+ _e.nonce = params.nonce,
372
+ _e),
373
+ _d)]))];
222
374
  case 2:
223
- signature = _e.sent();
375
+ signature = _f.sent();
224
376
  return [2 /*return*/, {
225
377
  serializedSignature: signature.serialized,
226
- nonce: nonce,
227
- signature: convertEthersSignatureToEIP712Signature(signature, deadline),
378
+ signature: convertEthersSignatureToEIP712Signature(signature, params.deadline),
228
379
  }];
229
380
  }
230
381
  });
231
382
  });
232
383
  }
233
- exports.signOrdersGatewayOrder = signOrdersGatewayOrder;
234
- function isConditionalOrderSignatureValid(signerAddress, signature, reyaChainId, accountId, marketId, exchangeId, counterpartyAccountIds, orderType, inputs, nonce, deadline) {
235
- // Encode the data for recovering the address
236
- var domain = getReyaDomain((0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.CONDITIONAL_ORDERS_PROXY));
384
+ exports.signOrder = signOrder;
385
+ function isOrderSignatureValid(signerAddress, signature, reyaChainId, params) {
386
+ var _a;
387
+ var domain = getReyaDomain((0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY));
237
388
  var value = {
238
389
  verifyingChainId: reyaChainId,
239
- deadline: BigInt(deadline),
390
+ deadline: BigInt(params.deadline),
240
391
  order: {
241
- accountId: accountId,
242
- marketId: marketId,
243
- exchangeId: exchangeId,
244
- counterpartyAccountIds: counterpartyAccountIds,
245
- orderType: orderType,
246
- inputs: inputs,
392
+ accountId: params.accountId,
393
+ marketId: params.marketId,
394
+ exchangeId: params.exchangeId,
395
+ orderType: params.orderType,
396
+ quantity: params.quantity,
397
+ limitPrice: params.limitPrice,
398
+ triggerPrice: params.triggerPrice,
399
+ timeInForce: params.timeInForce,
400
+ clientOrderId: params.clientOrderId,
401
+ reduceOnly: params.reduceOnly,
402
+ postOnly: (_a = params.postOnly) !== null && _a !== void 0 ? _a : false,
403
+ expiresAfter: params.expiresAfter,
247
404
  signer: signerAddress,
248
- nonce: nonce,
405
+ nonce: params.nonce,
249
406
  },
250
407
  };
251
- // Recover the address
252
- var recoveredAddress = (0, ethers_1.verifyTypedData)(domain, conditionalOrderTypes, value, signature);
408
+ var recoveredAddress = (0, ethers_1.verifyTypedData)(domain, exports.orderTypes, value, signature);
253
409
  return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();
254
410
  }
255
- exports.isConditionalOrderSignatureValid = isConditionalOrderSignatureValid;
256
- function signCancelConditionalOrder(signer, orderId) {
257
- return __awaiter(this, void 0, void 0, function () {
258
- var message;
259
- return __generator(this, function (_a) {
260
- switch (_a.label) {
261
- case 0:
262
- message = {
263
- orderId: orderId,
264
- status: types_1.ConditionalOrderStatus.CANCELLED,
265
- actionType: 'changeStatus',
266
- };
267
- return [4 /*yield*/, signer.signMessage(JSON.stringify(message))];
268
- case 1: return [2 /*return*/, _a.sent()];
269
- }
270
- });
271
- });
272
- }
273
- exports.signCancelConditionalOrder = signCancelConditionalOrder;
411
+ exports.isOrderSignatureValid = isOrderSignatureValid;
274
412
  function signGrantPermission(signer, reyaChainId, accountId, permission, user, nonce, deadline) {
275
413
  return __awaiter(this, void 0, void 0, function () {
276
414
  var signature;
@@ -363,6 +501,74 @@ function signRevokePermission(signer, reyaChainId, accountId, permission, user,
363
501
  });
364
502
  }
365
503
  exports.signRevokePermission = signRevokePermission;
504
+ function signMEOrderCancel(signer, reyaChainId, accountId, marketId, orderId, clOrdId, nonce, deadline) {
505
+ return __awaiter(this, void 0, void 0, function () {
506
+ var signature;
507
+ return __generator(this, function (_a) {
508
+ switch (_a.label) {
509
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), exports.orderCancelTypes, {
510
+ verifyingChainId: reyaChainId,
511
+ deadline: BigInt(deadline),
512
+ cancel: {
513
+ accountId: accountId,
514
+ marketId: marketId,
515
+ orderId: orderId,
516
+ clOrdId: clOrdId,
517
+ nonce: nonce,
518
+ },
519
+ })];
520
+ case 1:
521
+ signature = _a.sent();
522
+ return [2 /*return*/, signature.serialized];
523
+ }
524
+ });
525
+ });
526
+ }
527
+ exports.signMEOrderCancel = signMEOrderCancel;
528
+ function signMEMassCancel(signer, reyaChainId, accountId, marketId, nonce, deadline) {
529
+ return __awaiter(this, void 0, void 0, function () {
530
+ var signature;
531
+ return __generator(this, function (_a) {
532
+ switch (_a.label) {
533
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), exports.massCancelTypes, {
534
+ verifyingChainId: reyaChainId,
535
+ deadline: BigInt(deadline),
536
+ massCancel: {
537
+ accountId: accountId,
538
+ marketId: marketId,
539
+ nonce: nonce,
540
+ },
541
+ })];
542
+ case 1:
543
+ signature = _a.sent();
544
+ return [2 /*return*/, signature.serialized];
545
+ }
546
+ });
547
+ });
548
+ }
549
+ exports.signMEMassCancel = signMEMassCancel;
550
+ function signMECancelAllAfter(signer, reyaChainId, accountId, timeoutMs, nonce, deadline) {
551
+ return __awaiter(this, void 0, void 0, function () {
552
+ var signature;
553
+ return __generator(this, function (_a) {
554
+ switch (_a.label) {
555
+ case 0: return [4 /*yield*/, signReyaTypedData(signer, (0, contractAddresses_1.getAddress)(reyaChainId, contractAddresses_1.ContractType.ORDERS_GATEWAY_PROXY), exports.cancelAllAfterTypes, {
556
+ verifyingChainId: reyaChainId,
557
+ deadline: BigInt(deadline),
558
+ cancelAllAfter: {
559
+ accountId: accountId,
560
+ timeoutMs: timeoutMs,
561
+ nonce: nonce,
562
+ },
563
+ })];
564
+ case 1:
565
+ signature = _a.sent();
566
+ return [2 /*return*/, signature.serialized];
567
+ }
568
+ });
569
+ });
570
+ }
571
+ exports.signMECancelAllAfter = signMECancelAllAfter;
366
572
  var signManagePermissionBySig = function (signer, signerAddress, reyaChainId, targetAddress, permissionState, deadline) { return __awaiter(void 0, void 0, void 0, function () {
367
573
  var signature;
368
574
  return __generator(this, function (_a) {
@@ -1 +1 @@
1
- {"version":3,"file":"sign.js","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n JsonRpcSigner,\n Signature,\n Signer,\n TypedDataField,\n verifyTypedData,\n} from 'ethers';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { Command } from './action';\nimport {\n Address,\n ConditionalOrderStatus,\n ConditionalOrderType,\n OrdersGatewayOrderType,\n ReyaChainId,\n} from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\n};\n\nexport type CoreCommandsEIP712SignatureAndPayload = {\n signature: EIP712Signature;\n payload: {\n verifyingContract: string;\n types: Record<string, Array<TypedDataField>>;\n value: {\n verifyingChainId: number;\n caller: Address;\n accountId: number;\n commands: Command[];\n nonce: number;\n deadline: number;\n extraSignatureData: string;\n };\n };\n};\n\nexport function convertEthersSignatureToEIP712Signature(\n signature: Signature,\n deadline: number,\n): EIP712Signature {\n return {\n v: signature.v,\n r: signature.r,\n s: signature.s,\n deadline,\n };\n}\n\nexport async function signCoreCommands(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n accountId: number,\n commands: Command[],\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<CoreCommandsEIP712SignatureAndPayload> {\n const types = {\n ExecuteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'accountId', type: 'uint128' },\n { name: 'commands', type: 'Command[]' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n Command: [\n { name: 'commandType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n ],\n };\n\n const value = {\n verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n };\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n types,\n value,\n );\n\n const eip712Signature = convertEthersSignatureToEIP712Signature(\n signature,\n deadline,\n );\n\n return {\n signature: eip712Signature,\n payload: {\n verifyingContract: getAddress(reyaChainId, ContractType.CORE_PROXY),\n types: types,\n value: value,\n },\n };\n}\n\nexport async function signPoolRemoveLiquidity(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n owner: Address,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_POOL_PROXY),\n {\n RemoveLiquidityBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'owner', type: 'address' },\n { name: 'poolId', type: 'uint128' },\n { name: 'sharesAmount', type: 'uint256' },\n { name: 'minOut', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n caller: caller,\n owner: owner,\n poolId: poolId,\n sharesAmount: sharesAmount,\n minOut: minOut,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nasync function signReyaTypedData(\n signer: Signer | JsonRpcSigner,\n verifyingContract: string,\n types: Record<string, Array<TypedDataField>>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: Record<string, any>,\n): Promise<Signature> {\n const domain = getReyaDomain(verifyingContract);\n\n const signatureString = await signer.signTypedData(domain, types, value);\n\n return Signature.from(signatureString);\n}\n\nexport function getReyaDomain(verifyingContract: string) {\n return {\n name: 'Reya',\n version: '1',\n verifyingContract: verifyingContract,\n };\n}\n\nconst conditionalOrderTypes = {\n ConditionalOrder: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'order', type: 'ConditionalOrderDetails' },\n ],\n ConditionalOrderDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n { name: 'counterpartyAccountIds', type: 'uint128[]' },\n { name: 'orderType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\nexport function createOrdersGatewayOrderNonce(\n accountId: number,\n marketId: number,\n timestampMs: number,\n): bigint {\n // Validate the input ranges\n if (marketId < 0 || marketId >= 2 ** 32)\n throw new Error('marketId is out of range');\n if (accountId < 0 || accountId >= 2 ** 128)\n throw new Error('accountId is out of range');\n if (timestampMs < 0 || timestampMs >= 2 ** 64)\n throw new Error('timestamp is out of range');\n\n const hashUint256 =\n (BigInt(accountId) << BigInt(98)) |\n (BigInt(timestampMs) << BigInt(32)) |\n BigInt(marketId);\n\n return hashUint256;\n}\n\ntype SignOrdersGatewayOrderOutput = {\n serializedSignature: string;\n nonce: bigint;\n signature: EIP712Signature;\n};\n\nexport async function signOrdersGatewayOrder(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: ConditionalOrderType | OrdersGatewayOrderType,\n inputs: string,\n deadline: number,\n creationTimestampMs: number,\n customNonce?: bigint,\n): Promise<SignOrdersGatewayOrderOutput> {\n const nonce =\n customNonce ??\n createOrdersGatewayOrderNonce(accountId, marketId, creationTimestampMs);\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n conditionalOrderTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: await signer.getAddress(),\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport function isConditionalOrderSignatureValid(\n signerAddress: string,\n signature: string,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n exchangeId: number,\n counterpartyAccountIds: number[],\n orderType: number,\n inputs: string,\n nonce: bigint,\n deadline: number,\n): boolean {\n // Encode the data for recovering the address\n const domain = getReyaDomain(\n getAddress(reyaChainId, ContractType.CONDITIONAL_ORDERS_PROXY),\n );\n\n const value = {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n order: {\n accountId: accountId,\n marketId: marketId,\n exchangeId: exchangeId,\n counterpartyAccountIds: counterpartyAccountIds,\n orderType: orderType,\n inputs: inputs,\n signer: signerAddress,\n nonce: nonce,\n },\n };\n\n // Recover the address\n const recoveredAddress = verifyTypedData(\n domain,\n conditionalOrderTypes,\n value,\n signature,\n );\n\n return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();\n}\n\nexport async function signCancelConditionalOrder(\n signer: Signer | JsonRpcSigner,\n orderId: string,\n): Promise<string> {\n const message = {\n orderId: orderId,\n status: ConditionalOrderStatus.CANCELLED,\n actionType: 'changeStatus',\n };\n return await signer.signMessage(JSON.stringify(message));\n}\n\nexport async function signGrantPermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n GrantAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signVote(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n contractAddress: string,\n voter: string,\n isYesVote: boolean,\n deadline: number,\n): Promise<string> {\n const types = {\n CastVoteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'voter', type: 'address' },\n { name: 'yesVote', type: 'bool' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n const values = {\n verifyingChainId: reyaChainId,\n voter: voter,\n yesVote: isYesVote,\n nonce: 1, // hardcoded because a user cannot vote more than once\n deadline: deadline,\n };\n\n const domain = getReyaDomain(contractAddress);\n\n const signatureString = await signer.signTypedData(domain, types, values);\n\n return signatureString;\n}\n\nexport async function signRevokePermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n RevokeAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport const signManagePermissionBySig = async (\n signer: Signer | JsonRpcSigner,\n signerAddress: string,\n reyaChainId: ReyaChainId,\n targetAddress: string,\n permissionState: boolean,\n deadline: number,\n): Promise<EIP712Signature> => {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n {\n ManagePermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'owner', type: 'address' },\n { name: 'target', type: 'address' },\n { name: 'permissionState', type: 'bool' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n owner: signerAddress,\n target: targetAddress,\n permissionState: permissionState,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n};\n"]}
1
+ {"version":3,"file":"sign.js","sourceRoot":"/","sources":["transactions/sign.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iCAMgB;AAChB,yDAA+D;AA4B/D,SAAgB,uCAAuC,CACrD,SAAoB,EACpB,QAAgB;IAEhB,OAAO;QACL,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,QAAQ,UAAA;KACT,CAAC;AACJ,CAAC;AAVD,0FAUC;AAED,SAAsB,gBAAgB,CACpC,MAA8B,EAC9B,WAAwB,EACxB,MAAe,EACf,SAAiB,EACjB,QAAmB,EACnB,KAAa,EACb,QAAgB,EAChB,kBAA0B;;;;;;oBAEpB,KAAK,GAAG;wBACZ,YAAY,EAAE;4BACZ,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,WAAW,EAAE;4BACvC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;4BACrC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;yBAC9C;wBACD,OAAO,EAAE;4BACP,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;4BACtC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE;4BACjC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;4BACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;yBACxC;qBACF,CAAC;oBAEI,KAAK,GAAG;wBACZ,gBAAgB,EAAE,WAAW;wBAC7B,MAAM,EAAE,MAAM;wBACd,SAAS,EAAE,SAAS;wBACpB,QAAQ,EAAE,QAAQ;wBAClB,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,QAAQ;wBAClB,kBAAkB,EAAE,kBAAkB;qBACvC,CAAC;oBAEgB,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,UAAU,CAAC,EAChD,KAAK,EACL,KAAK,CACN,EAAA;;oBALK,SAAS,GAAG,SAKjB;oBAEK,eAAe,GAAG,uCAAuC,CAC7D,SAAS,EACT,QAAQ,CACT,CAAC;oBAEF,sBAAO;4BACL,SAAS,EAAE,eAAe;4BAC1B,OAAO,EAAE;gCACP,iBAAiB,EAAE,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,UAAU,CAAC;gCACnE,KAAK,EAAE,KAAK;gCACZ,KAAK,EAAE,KAAK;6BACb;yBACF,EAAC;;;;CACH;AA1DD,4CA0DC;AAED,SAAsB,uBAAuB,CAC3C,MAA8B,EAC9B,WAAwB,EACxB,MAAe,EACf,KAAc,EACd,MAAc,EACd,YAAoB,EACpB,MAAc,EACd,KAAa,EACb,QAAgB,EAChB,kBAA0B;;;;;wBAER,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,kBAAkB,CAAC,EACxD;wBACE,oBAAoB,EAAE;4BACpB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;4BACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;4BACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;4BACrC,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,OAAO,EAAE;yBAC9C;qBACF,EACD;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,KAAK;wBACZ,MAAM,EAAE,MAAM;wBACd,YAAY,EAAE,YAAY;wBAC1B,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,QAAQ;wBAClB,kBAAkB,EAAE,kBAAkB;qBACvC,CACF,EAAA;;oBA3BK,SAAS,GAAG,SA2BjB;oBAED,sBAAO,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAC;;;;CACrE;AA1CD,0DA0CC;AAED,SAAe,iBAAiB,CAC9B,MAA8B,EAC9B,iBAAyB,EACzB,KAA4C;AAC5C,8DAA8D;AAC9D,KAA0B;;;;;;oBAEpB,MAAM,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;oBAExB,qBAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,EAAA;;oBAAlE,eAAe,GAAG,SAAgD;oBAExE,sBAAO,kBAAS,CAAC,IAAI,CAAC,eAAe,CAAC,EAAC;;;;CACxC;AAED,SAAgB,aAAa,CAAC,iBAAyB;IACrD,OAAO;QACL,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,GAAG;QACZ,iBAAiB,EAAE,iBAAiB;KACrC,CAAC;AACJ,CAAC;AAND,sCAMC;AAED,wEAAwE;AACxE,kEAAkE;AAClE,wDAAwD;AACxD,qEAAqE;AACrE,uEAAuE;AACvE,0CAA0C;AAE1C,4EAA4E;AAC5E,6DAA6D;AAC7D,0EAA0E;AAC1E,4EAA4E;AAC5E,wEAAwE;AACxE,uEAAuE;AACvE,wCAAwC;AAExC;;;;;GAKG;AACU,QAAA,gBAAgB,GAAG;IAC9B,WAAW,EAAE;QACX,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE;KAC/C;IACD,kBAAkB,EAAE;QAClB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC;CACF,CAAC;AAEF;;;;GAIG;AACU,QAAA,eAAe,GAAG;IAC7B,UAAU,EAAE;QACV,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,mBAAmB,EAAE;KAClD;IACD,iBAAiB,EAAE;QACjB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC;CACF,CAAC;AAEF;;;;;;GAMG;AACU,QAAA,mBAAmB,GAAG;IACjC,cAAc,EAAE;QACd,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC5C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,uBAAuB,EAAE;KAC1D;IACD,qBAAqB,EAAE;QACrB,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE;KAClC;CACF,CAAC;AAQF,SAAsB,eAAe,CACnC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,OAAe,EACf,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D,wBAAgB,EAChB;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,QAAQ;wBAClB,MAAM,EAAE;4BACN,SAAS,EAAE,SAAS;4BACpB,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,OAAO;4BAChB,OAAO,EAAE,OAAO;4BAChB,KAAK,EAAE,KAAK;yBACb;qBACF,CACF,EAAA;;oBAfK,SAAS,GAAG,SAejB;oBAED,sBAAO;4BACL,mBAAmB,EAAE,SAAS,CAAC,UAAU;4BACzC,KAAK,OAAA;4BACL,SAAS,EAAE,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC;yBACxE,EAAC;;;;CACH;AAhCD,0CAgCC;AAED,SAAsB,cAAc,CAClC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D,uBAAe,EACf;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,QAAQ;wBAClB,UAAU,EAAE;4BACV,SAAS,EAAE,SAAS;4BACpB,QAAQ,EAAE,QAAQ;4BAClB,KAAK,EAAE,KAAK;yBACb;qBACF,CACF,EAAA;;oBAbK,SAAS,GAAG,SAajB;oBAED,sBAAO;4BACL,mBAAmB,EAAE,SAAS,CAAC,UAAU;4BACzC,KAAK,OAAA;4BACL,SAAS,EAAE,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC;yBACxE,EAAC;;;;CACH;AA5BD,wCA4BC;AAED,gFAAgF;AAChF,0EAA0E;AAC1E,gFAAgF;AAChF,8CAA8C;AAC9C,yEAAyE;AACzE,iEAAiE;AACjE,0FAA0F;AAC1F,sEAAsE;AACtE,8DAA8D;AAC9D,EAAE;AACF,+EAA+E;AAC/E,qBAAqB;AACrB,2EAA2E;AAC3E,+EAA+E;AAC/E,qFAAqF;AACrF,mEAAmE;AAEtD,QAAA,UAAU,GAAG;IACxB,KAAK,EAAE;QACL,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;QAC7C,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE;KACxC;IACD,YAAY,EAAE;QACZ,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,EAAE;QACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,QAAQ,EAAE;QACpC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE;QACtC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE;QACzC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE;QACpC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE;QAClC,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,SAAS,EAAE;QACzC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACF,CAAC;AAEF;;;;;;;;;GASG;AACU,QAAA,2BAA2B,GACtC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEzC,iFAAiF;AACjF,SAAgB,wBAAwB,CAAC,KAAc;IACrD,OAAO,KAAK,CAAC,CAAC,CAAC,mCAA2B,CAAC,CAAC,CAAC,CAAC,mCAA2B,CAAC;AAC5E,CAAC;AAFD,4DAEC;AAyCD,SAAsB,SAAS,CAC7B,MAA8B,EAC9B,WAAwB,EACxB,MAAuB;;;;;;;;oBAEC,KAAA,iBAAiB,CAAA;0BACvC,MAAM;wBACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC;wBAC1D,kBAAU;;wBAER,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;;;wBAE/B,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;wBAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;wBACzB,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,WAAW,EAAE,MAAM,CAAC,WAAW;wBAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;wBACnC,UAAU,EAAE,MAAM,CAAC,UAAU;wBAC7B,QAAQ,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK;wBAClC,YAAY,EAAE,MAAM,CAAC,YAAY;;oBACzB,qBAAM,MAAM,CAAC,UAAU,EAAE,EAAA;wBApBrB,qBAAM,6BAOpB,QAAK,IAaH,SAAM,GAAE,SAAyB;4BACjC,QAAK,GAAE,MAAM,CAAC,KAAK;+BACpB;kCAEJ,EAAA;;oBAxBK,SAAS,GAAG,SAwBjB;oBAED,sBAAO;4BACL,mBAAmB,EAAE,SAAS,CAAC,UAAU;4BACzC,SAAS,EAAE,uCAAuC,CAChD,SAAS,EACT,MAAM,CAAC,QAAQ,CAChB;yBACF,EAAC;;;;CACH;AAtCD,8BAsCC;AAED,SAAgB,qBAAqB,CACnC,aAAqB,EACrB,SAAiB,EACjB,WAAwB,EACxB,MAAuB;;IAEvB,IAAM,MAAM,GAAG,aAAa,CAC1B,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,CAC3D,CAAC;IAEF,IAAM,KAAK,GAAG;QACZ,gBAAgB,EAAE,WAAW;QAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;QACjC,KAAK,EAAE;YACL,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,WAAW,EAAE,MAAM,CAAC,WAAW;YAC/B,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,QAAQ,EAAE,MAAA,MAAM,CAAC,QAAQ,mCAAI,KAAK;YAClC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB;KACF,CAAC;IAEF,IAAM,gBAAgB,GAAG,IAAA,wBAAe,EACtC,MAAM,EACN,kBAAU,EACV,KAAK,EACL,SAAS,CACV,CAAC;IAEF,OAAO,gBAAgB,CAAC,WAAW,EAAE,KAAK,aAAa,CAAC,WAAW,EAAE,CAAC;AACxE,CAAC;AAvCD,sDAuCC;AAED,SAAsB,mBAAmB,CACvC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,UAAU,CAAC,EAChD;wBACE,2BAA2B,EAAE;4BAC3B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;4BACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;4BACjC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;yBACtC;qBACF,EACD;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,SAAS,EAAE,SAAS;wBACpB,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,QAAQ;qBACnB,CACF,EAAA;;oBArBK,SAAS,GAAG,SAqBjB;oBAED,sBAAO,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAC;;;;CACrE;AAjCD,kDAiCC;AAED,SAAsB,QAAQ,CAC5B,MAA8B,EAC9B,WAAwB,EACxB,eAAuB,EACvB,KAAa,EACb,SAAkB,EAClB,QAAgB;;;;;;oBAEV,KAAK,GAAG;wBACZ,aAAa,EAAE;4BACb,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,MAAM,EAAE;4BACjC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;yBACtC;qBACF,CAAC;oBACI,MAAM,GAAG;wBACb,gBAAgB,EAAE,WAAW;wBAC7B,KAAK,EAAE,KAAK;wBACZ,OAAO,EAAE,SAAS;wBAClB,KAAK,EAAE,CAAC,EAAE,sDAAsD;wBAChE,QAAQ,EAAE,QAAQ;qBACnB,CAAC;oBAEI,MAAM,GAAG,aAAa,CAAC,eAAe,CAAC,CAAC;oBAEtB,qBAAM,MAAM,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAA;;oBAAnE,eAAe,GAAG,SAAiD;oBAEzE,sBAAO,eAAe,EAAC;;;;CACxB;AA9BD,4BA8BC;AAED,SAAsB,oBAAoB,CACxC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,UAAkB,EAClB,IAAY,EACZ,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,UAAU,CAAC,EAChD;wBACE,4BAA4B,EAAE;4BAC5B,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;4BAC7C,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;4BACtC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;4BACvC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;4BACjC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;4BAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;yBACtC;qBACF,EACD;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,SAAS,EAAE,SAAS;wBACpB,UAAU,EAAE,UAAU;wBACtB,IAAI,EAAE,IAAI;wBACV,KAAK,EAAE,KAAK;wBACZ,QAAQ,EAAE,QAAQ;qBACnB,CACF,EAAA;;oBArBK,SAAS,GAAG,SAqBjB;oBAED,sBAAO,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAC;;;;CACrE;AAjCD,oDAiCC;AAED,SAAsB,iBAAiB,CACrC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,OAAe,EACf,OAAe,EACf,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D,wBAAgB,EAChB;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;wBAC1B,MAAM,EAAE;4BACN,SAAS,EAAE,SAAS;4BACpB,QAAQ,EAAE,QAAQ;4BAClB,OAAO,EAAE,OAAO;4BAChB,OAAO,EAAE,OAAO;4BAChB,KAAK,EAAE,KAAK;yBACb;qBACF,CACF,EAAA;;oBAfK,SAAS,GAAG,SAejB;oBAED,sBAAO,SAAS,CAAC,UAAU,EAAC;;;;CAC7B;AA5BD,8CA4BC;AAED,SAAsB,gBAAgB,CACpC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,QAAgB,EAChB,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D,uBAAe,EACf;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;wBAC1B,UAAU,EAAE;4BACV,SAAS,EAAE,SAAS;4BACpB,QAAQ,EAAE,QAAQ;4BAClB,KAAK,EAAE,KAAK;yBACb;qBACF,CACF,EAAA;;oBAbK,SAAS,GAAG,SAajB;oBAED,sBAAO,SAAS,CAAC,UAAU,EAAC;;;;CAC7B;AAxBD,4CAwBC;AAED,SAAsB,oBAAoB,CACxC,MAA8B,EAC9B,WAAwB,EACxB,SAAiB,EACjB,SAAiB,EACjB,KAAa,EACb,QAAgB;;;;;wBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D,2BAAmB,EACnB;wBACE,gBAAgB,EAAE,WAAW;wBAC7B,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;wBAC1B,cAAc,EAAE;4BACd,SAAS,EAAE,SAAS;4BACpB,SAAS,EAAE,SAAS;4BACpB,KAAK,EAAE,KAAK;yBACb;qBACF,CACF,EAAA;;oBAbK,SAAS,GAAG,SAajB;oBAED,sBAAO,SAAS,CAAC,UAAU,EAAC;;;;CAC7B;AAxBD,oDAwBC;AAEM,IAAM,yBAAyB,GAAG,UACvC,MAA8B,EAC9B,aAAqB,EACrB,WAAwB,EACxB,aAAqB,EACrB,eAAwB,EACxB,QAAgB;;;;oBAEE,qBAAM,iBAAiB,CACvC,MAAM,EACN,IAAA,8BAAU,EAAC,WAAW,EAAE,gCAAY,CAAC,oBAAoB,CAAC,EAC1D;oBACE,qBAAqB,EAAE;wBACrB,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,SAAS,EAAE;wBAC7C,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;wBAClC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;wBACnC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,EAAE;wBACzC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;qBACtC;iBACF,EACD;oBACE,gBAAgB,EAAE,WAAW;oBAC7B,KAAK,EAAE,aAAa;oBACpB,MAAM,EAAE,aAAa;oBACrB,eAAe,EAAE,eAAe;oBAChC,QAAQ,EAAE,QAAQ;iBACnB,CACF,EAAA;;gBAnBK,SAAS,GAAG,SAmBjB;gBAED,sBAAO,uCAAuC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAC;;;KACrE,CAAC;AA9BW,QAAA,yBAAyB,6BA8BpC","sourcesContent":["import {\n JsonRpcSigner,\n Signature,\n Signer,\n TypedDataField,\n verifyTypedData,\n} from 'ethers';\nimport { ContractType, getAddress } from './contractAddresses';\nimport { Command } from './action';\nimport { Address, OrderType, ReyaChainId } from '../types';\n\nexport type EIP712Signature = {\n v: number;\n r: string;\n s: string;\n deadline: number;\n};\n\nexport type CoreCommandsEIP712SignatureAndPayload = {\n signature: EIP712Signature;\n payload: {\n verifyingContract: string;\n types: Record<string, Array<TypedDataField>>;\n value: {\n verifyingChainId: number;\n caller: Address;\n accountId: number;\n commands: Command[];\n nonce: number;\n deadline: number;\n extraSignatureData: string;\n };\n };\n};\n\nexport function convertEthersSignatureToEIP712Signature(\n signature: Signature,\n deadline: number,\n): EIP712Signature {\n return {\n v: signature.v,\n r: signature.r,\n s: signature.s,\n deadline,\n };\n}\n\nexport async function signCoreCommands(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n accountId: number,\n commands: Command[],\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<CoreCommandsEIP712SignatureAndPayload> {\n const types = {\n ExecuteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'accountId', type: 'uint128' },\n { name: 'commands', type: 'Command[]' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n Command: [\n { name: 'commandType', type: 'uint8' },\n { name: 'inputs', type: 'bytes' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n ],\n };\n\n const value = {\n verifyingChainId: reyaChainId,\n caller: caller,\n accountId: accountId,\n commands: commands,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n };\n\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n types,\n value,\n );\n\n const eip712Signature = convertEthersSignatureToEIP712Signature(\n signature,\n deadline,\n );\n\n return {\n signature: eip712Signature,\n payload: {\n verifyingContract: getAddress(reyaChainId, ContractType.CORE_PROXY),\n types: types,\n value: value,\n },\n };\n}\n\nexport async function signPoolRemoveLiquidity(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n caller: Address,\n owner: Address,\n poolId: number,\n sharesAmount: bigint,\n minOut: bigint,\n nonce: number,\n deadline: number,\n extraSignatureData: string,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.PASSIVE_POOL_PROXY),\n {\n RemoveLiquidityBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'caller', type: 'address' },\n { name: 'owner', type: 'address' },\n { name: 'poolId', type: 'uint128' },\n { name: 'sharesAmount', type: 'uint256' },\n { name: 'minOut', type: 'uint256' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'extraSignatureData', type: 'bytes' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n caller: caller,\n owner: owner,\n poolId: poolId,\n sharesAmount: sharesAmount,\n minOut: minOut,\n nonce: nonce,\n deadline: deadline,\n extraSignatureData: extraSignatureData,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nasync function signReyaTypedData(\n signer: Signer | JsonRpcSigner,\n verifyingContract: string,\n types: Record<string, Array<TypedDataField>>,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n value: Record<string, any>,\n): Promise<Signature> {\n const domain = getReyaDomain(verifyingContract);\n\n const signatureString = await signer.signTypedData(domain, types, value);\n\n return Signature.from(signatureString);\n}\n\nexport function getReyaDomain(verifyingContract: string) {\n return {\n name: 'Reya',\n version: '1',\n verifyingContract: verifyingContract,\n };\n}\n\n// PRO-126 Bug 5 retired the legacy `ConditionalOrderDetails` typehash +\n// `signOrdersGatewayOrder` / `isConditionalOrderSignatureValid` /\n// `createOrdersGatewayOrderNonce` helpers. The on-chain\n// `OrdersGateway.execute` selector that consumed those signatures is\n// gone; every order class now signs the new flat `OrderDetails` schema\n// via `signOrder` further down this file.\n\n// The three cancel-side typed-data schemas below are EXPORTED as the single\n// source of truth for signer AND verifier — common-backend's\n// `recover{OrderCancel,MassCancel,CancelAllAfter}Signer` import them from\n// here (like `orderTypes` for the Order struct). They used to be duplicated\n// module-private consts on each side; any drift (field rename / width /\n// reorder) silently breaks 100% of signature recovery for that request\n// class, so exactly one copy may exist.\n\n/**\n * EIP-712 typed-data structures for the OrderCancel signature scheme used by\n * the matching engine for order cancellations. The signer signs over a value\n * of shape\n * `{ verifyingChainId, deadline, cancel: { accountId, marketId, orderId, clOrdId, nonce } }`.\n */\nexport const orderCancelTypes = {\n OrderCancel: [\n { name: 'verifyingChainId', type: 'uint64' },\n { name: 'deadline', type: 'uint64' },\n { name: 'cancel', type: 'OrderCancelDetails' },\n ],\n OrderCancelDetails: [\n { name: 'accountId', type: 'uint64' },\n { name: 'marketId', type: 'uint64' },\n { name: 'orderId', type: 'uint64' },\n { name: 'clOrdId', type: 'uint64' },\n { name: 'nonce', type: 'uint64' },\n ],\n};\n\n/**\n * EIP-712 typed-data structures for the MassCancel signature scheme used by\n * the matching engine for mass cancellations. The signer signs over a value\n * of shape `{ verifyingChainId, deadline, massCancel: { accountId, marketId, nonce } }`.\n */\nexport const massCancelTypes = {\n MassCancel: [\n { name: 'verifyingChainId', type: 'uint64' },\n { name: 'deadline', type: 'uint64' },\n { name: 'massCancel', type: 'MassCancelDetails' },\n ],\n MassCancelDetails: [\n { name: 'accountId', type: 'uint64' },\n { name: 'marketId', type: 'uint64' },\n { name: 'nonce', type: 'uint64' },\n ],\n};\n\n/**\n * EIP-712 typed-data structures for the CancelAllAfter signature scheme used\n * by the matching engine for the cancel-on-disconnect dead-man's-switch. The\n * signer signs over a value of shape\n * `{ verifyingChainId, deadline, cancelAllAfter: { accountId, timeoutMs, nonce } }`.\n * uint64 throughout, matching the OrderCancel / MassCancel family.\n */\nexport const cancelAllAfterTypes = {\n CancelAllAfter: [\n { name: 'verifyingChainId', type: 'uint64' },\n { name: 'deadline', type: 'uint64' },\n { name: 'cancelAllAfter', type: 'CancelAllAfterDetails' },\n ],\n CancelAllAfterDetails: [\n { name: 'accountId', type: 'uint64' },\n { name: 'timeoutMs', type: 'uint64' },\n { name: 'nonce', type: 'uint64' },\n ],\n};\n\ntype SignCancelOutput = {\n serializedSignature: string;\n nonce: bigint;\n signature: EIP712Signature;\n};\n\nexport async function signOrderCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n orderId: bigint,\n clOrdId: bigint,\n nonce: bigint,\n deadline: number,\n): Promise<SignCancelOutput> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n orderCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: deadline,\n cancel: {\n accountId: accountId,\n marketId: marketId,\n orderId: orderId,\n clOrdId: clOrdId,\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\nexport async function signMassCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n nonce: bigint,\n deadline: number,\n): Promise<SignCancelOutput> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n massCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: deadline,\n massCancel: {\n accountId: accountId,\n marketId: marketId,\n nonce: nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n nonce,\n signature: convertEthersSignatureToEIP712Signature(signature, deadline),\n };\n}\n\n// -----------------------------------------------------------------------------\n// perpOB: EIP-712 typed data for the flat `Order` / `OrderDetails` struct\n// -----------------------------------------------------------------------------\n// Matches the post-audit on-chain redesign in\n// reya-network/feat/perpOB (orders-gateway/src/libraries/DataTypes.sol +\n// ConditionalOrderHashing.sol). PRO-126 Bug 5 retired the legacy\n// `conditionalOrderTypes` / `signOrdersGatewayOrder` / `isConditionalOrderSignatureValid`\n// surface that this struct replaced — every order class (spot + perp,\n// IOC + GTC + TP + SL) now signs against `OrderDetails` here.\n//\n// Contract: Order envelope + flat OrderDetails inner struct. Two distinct time\n// values are signed:\n// - envelope `deadline` -> signature validity, enforced by API at entry\n// - inner `expiresAfter` -> order lifetime, enforced on-chain at execution\n// Convention: callers should set `deadline <= expiresAfter` when `expiresAfter > 0`.\n// See reya-api-specs/docs/eip712.md for the canonical description.\n\nexport const orderTypes = {\n Order: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n { name: 'order', type: 'OrderDetails' },\n ],\n OrderDetails: [\n { name: 'accountId', type: 'uint128' },\n { name: 'marketId', type: 'uint128' },\n { name: 'exchangeId', type: 'uint128' },\n { name: 'orderType', type: 'uint8' },\n { name: 'quantity', type: 'int256' },\n { name: 'limitPrice', type: 'uint256' },\n { name: 'triggerPrice', type: 'uint256' },\n { name: 'timeInForce', type: 'uint8' },\n { name: 'clientOrderId', type: 'uint64' },\n { name: 'reduceOnly', type: 'bool' },\n { name: 'postOnly', type: 'bool' },\n { name: 'expiresAfter', type: 'uint256' },\n { name: 'signer', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n ],\n};\n\n/**\n * Full-position stop sentinel — `type(int256).max` (2^255 − 1), mirroring\n * `FULL_POSITION_STOP_SENTINEL` in the OrdersGateway (reya-network #738). A\n * STOP_LOSS / TAKE_PROFIT signs quantity `±sentinel` (the sign carries the\n * close side: −sentinel sells out a long, +sentinel buys back a short); the\n * chain enforces the iff — a stop with any other quantity (including the old\n * quantity-0 encoding) reverts, and the sentinel magnitude is reserved (a\n * non-stop signing it reverts). Raw int256 value, NOT E18-scaled. Signer and\n * verifier must derive it from THIS constant so they can never drift.\n */\nexport const FULL_POSITION_STOP_SENTINEL =\n (BigInt(1) << BigInt(255)) - BigInt(1);\n\n/** The signed quantity for a full-position stop: sign carries the close side. */\nexport function fullPositionStopQuantity(isBuy: boolean): bigint {\n return isBuy ? FULL_POSITION_STOP_SENTINEL : -FULL_POSITION_STOP_SENTINEL;\n}\n\nexport type SignOrderParams = {\n /** Unified market id: core_id for perp, core_id + 1e10 for spot. */\n accountId: number;\n marketId: number;\n exchangeId: number;\n orderType: OrderType;\n /**\n * Signed: positive = buy/long, negative = sell/short. For STOP_LOSS /\n * TAKE_PROFIT this must be `fullPositionStopQuantity(isBuy)` — the\n * ±int256.max full-position sentinel, never a real size and never 0.\n */\n quantity: bigint;\n limitPrice: bigint;\n /** Must be 0n for Limit; must be non-zero for StopLoss / TakeProfit. */\n triggerPrice: bigint;\n /** 0 = GTC, 1 = IOC, 2 = GTT. Signed but not on-chain-enforced. */\n timeInForce: number;\n /** Signed but not on-chain-enforced. Off-chain correlation id. */\n clientOrderId: bigint;\n reduceOnly: boolean;\n /**\n * Maker-only intent, signed into OrderDetails (api-specs 3.0.1 / on-chain\n * Phase 0). Optional for back-compat: omitted ⇒ signed as `false`, so\n * existing signers keep producing valid signatures. Must equal the\n * client's intent for recovery to match.\n */\n postOnly?: boolean;\n /** 0n = good-until-cancelled. On-chain-enforced at execution. */\n expiresAfter: bigint;\n nonce: bigint;\n /** EIP-712 envelope signature deadline (unix seconds). API-enforced at entry. */\n deadline: number;\n};\n\nexport type SignOrderOutput = {\n serializedSignature: string;\n signature: EIP712Signature;\n};\n\nexport async function signOrder(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n params: SignOrderParams,\n): Promise<SignOrderOutput> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n orderTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(params.deadline),\n order: {\n accountId: params.accountId,\n marketId: params.marketId,\n exchangeId: params.exchangeId,\n orderType: params.orderType,\n quantity: params.quantity,\n limitPrice: params.limitPrice,\n triggerPrice: params.triggerPrice,\n timeInForce: params.timeInForce,\n clientOrderId: params.clientOrderId,\n reduceOnly: params.reduceOnly,\n postOnly: params.postOnly ?? false,\n expiresAfter: params.expiresAfter,\n signer: await signer.getAddress(),\n nonce: params.nonce,\n },\n },\n );\n\n return {\n serializedSignature: signature.serialized,\n signature: convertEthersSignatureToEIP712Signature(\n signature,\n params.deadline,\n ),\n };\n}\n\nexport function isOrderSignatureValid(\n signerAddress: string,\n signature: string,\n reyaChainId: ReyaChainId,\n params: SignOrderParams,\n): boolean {\n const domain = getReyaDomain(\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n );\n\n const value = {\n verifyingChainId: reyaChainId,\n deadline: BigInt(params.deadline),\n order: {\n accountId: params.accountId,\n marketId: params.marketId,\n exchangeId: params.exchangeId,\n orderType: params.orderType,\n quantity: params.quantity,\n limitPrice: params.limitPrice,\n triggerPrice: params.triggerPrice,\n timeInForce: params.timeInForce,\n clientOrderId: params.clientOrderId,\n reduceOnly: params.reduceOnly,\n postOnly: params.postOnly ?? false,\n expiresAfter: params.expiresAfter,\n signer: signerAddress,\n nonce: params.nonce,\n },\n };\n\n const recoveredAddress = verifyTypedData(\n domain,\n orderTypes,\n value,\n signature,\n );\n\n return recoveredAddress.toLowerCase() === signerAddress.toLowerCase();\n}\n\nexport async function signGrantPermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n GrantAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signVote(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n contractAddress: string,\n voter: string,\n isYesVote: boolean,\n deadline: number,\n): Promise<string> {\n const types = {\n CastVoteBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'voter', type: 'address' },\n { name: 'yesVote', type: 'bool' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n };\n const values = {\n verifyingChainId: reyaChainId,\n voter: voter,\n yesVote: isYesVote,\n nonce: 1, // hardcoded because a user cannot vote more than once\n deadline: deadline,\n };\n\n const domain = getReyaDomain(contractAddress);\n\n const signatureString = await signer.signTypedData(domain, types, values);\n\n return signatureString;\n}\n\nexport async function signRevokePermission(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n permission: string,\n user: string,\n nonce: number,\n deadline: number,\n): Promise<EIP712Signature> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.CORE_PROXY),\n {\n RevokeAccountPermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'accountId', type: 'uint128' },\n { name: 'permission', type: 'bytes32' },\n { name: 'user', type: 'address' },\n { name: 'nonce', type: 'uint256' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n accountId: accountId,\n permission: permission,\n user: user,\n nonce: nonce,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n}\n\nexport async function signMEOrderCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n orderId: bigint,\n clOrdId: bigint,\n nonce: bigint,\n deadline: number,\n): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n orderCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n cancel: {\n accountId: accountId,\n marketId: marketId,\n orderId: orderId,\n clOrdId: clOrdId,\n nonce: nonce,\n },\n },\n );\n\n return signature.serialized;\n}\n\nexport async function signMEMassCancel(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n marketId: number,\n nonce: bigint,\n deadline: number,\n): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n massCancelTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n massCancel: {\n accountId: accountId,\n marketId: marketId,\n nonce: nonce,\n },\n },\n );\n\n return signature.serialized;\n}\n\nexport async function signMECancelAllAfter(\n signer: Signer | JsonRpcSigner,\n reyaChainId: ReyaChainId,\n accountId: number,\n timeoutMs: number,\n nonce: bigint,\n deadline: number,\n): Promise<string> {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n cancelAllAfterTypes,\n {\n verifyingChainId: reyaChainId,\n deadline: BigInt(deadline),\n cancelAllAfter: {\n accountId: accountId,\n timeoutMs: timeoutMs,\n nonce: nonce,\n },\n },\n );\n\n return signature.serialized;\n}\n\nexport const signManagePermissionBySig = async (\n signer: Signer | JsonRpcSigner,\n signerAddress: string,\n reyaChainId: ReyaChainId,\n targetAddress: string,\n permissionState: boolean,\n deadline: number,\n): Promise<EIP712Signature> => {\n const signature = await signReyaTypedData(\n signer,\n getAddress(reyaChainId, ContractType.ORDERS_GATEWAY_PROXY),\n {\n ManagePermissionBySig: [\n { name: 'verifyingChainId', type: 'uint256' },\n { name: 'owner', type: 'address' },\n { name: 'target', type: 'address' },\n { name: 'permissionState', type: 'bool' },\n { name: 'deadline', type: 'uint256' },\n ],\n },\n {\n verifyingChainId: reyaChainId,\n owner: signerAddress,\n target: targetAddress,\n permissionState: permissionState,\n deadline: deadline,\n },\n );\n\n return convertEthersSignatureToEIP712Signature(signature, deadline);\n};\n"]}
@@ -51,13 +51,6 @@ export declare class ExposureCommand {
51
51
  static exchangeWithPriceHaircut(quantity: number, price: number, haircut: number): number;
52
52
  static reverseExchangeWithPriceHaircut(quantity: number, price: number, haircut: number): number;
53
53
  static getBalanceWithHaircut(exchangeInfoPerAsset: ExchangeInfo[], assetAddress: string, marginBalance: number): number;
54
- /**
55
- * @audit This function uses a linear approximation that is not aligned with the on-chain
56
- * exponential logPriceMultiplier pricing logic (PriceMultiplier.sol). The intention is to
57
- * deprecate this function completely once downstream consumers (PoolLiquidityCommand,
58
- * updateLiquidity.task, marketDataLiquidity.task) are migrated.
59
- */
60
- getSlippage(deltaBase: number, marketConfiguration: MarketConfiguration, marketStorage: MarketStorage): number;
61
54
  getMaxExposure(marketConfiguration: MarketConfiguration, marketStorage: MarketStorage, isPool: boolean): {
62
55
  maxExposureShort: number;
63
56
  maxExposureLong: number;
@@ -94,8 +87,16 @@ export declare class ExposureCommand {
94
87
  static getHourlyFundingPeriods(lastFundingTimeStamp: BigNumber): BigNumber;
95
88
  static getFundingRateDelta(fundingPeriods: BigNumber, lastFundingVelocity: BigNumber): BigNumber;
96
89
  static getCurrentFundingRate(last_funding_timestamp: BigNumber, lastFundingVelocity: BigNumber, lastFundingRate: BigNumber): BigNumber;
90
+ /**
91
+ * @deprecated OB model reads funding rate directly from FundingRateProvider.
92
+ * Remains for legacy AMM model consumers. To be removed in a future cleanup PR.
93
+ */
97
94
  static getCurrentHourlyFundingRate(last_funding_timestamp: BigNumber, lastFundingVelocity: BigNumber, lastFundingRate: BigNumber): BigNumber;
98
95
  static getFundingValueDelta(periods: BigNumber, lastFundingRate: BigNumber, lastFundingVelocity: BigNumber, price: BigNumber, baseMultiplier: BigNumber): BigNumber;
96
+ /**
97
+ * @deprecated OB model reads funding value directly from market trackers.
98
+ * Remains for legacy AMM model consumers. To be removed in a future cleanup PR.
99
+ */
99
100
  static getCurrentFundingValue(spotPrice: BigNumber, lastFundingValue: BigNumber, baseMultiplier: BigNumber, lastFundingRate: BigNumber, lastFundingVelocity: BigNumber, lastFundingTimestamp: BigNumber): BigNumber;
100
101
  convertToUsd(amount: number, tokenAddress: string): number;
101
102
  getExchangeRate(tokenAddress: string): number;
@@ -1 +1 @@
1
- {"version":3,"file":"command.d.ts","sourceRoot":"/","sources":["commands/exposure/command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"/","sources":["commands/exposure/command.ts"],"names":[],"mappings":"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"}