@pendle/sdk-boros 0.1.0 → 0.1.2

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.
@@ -2,7 +2,7 @@ import { FixedX18 } from '@pendle/boros-offchain-math';
2
2
  export type MarketConfig = {
3
3
  marginFactor: FixedX18;
4
4
  markRate: FixedX18;
5
- maxMarginIndexRate: FixedX18;
5
+ minMarginIndexRate: FixedX18;
6
6
  marketExpiry_s: number;
7
7
  };
8
8
  export type GetOrderSizeByExactInitialMarginParams = {
@@ -7,14 +7,14 @@ const SIZE_ORDER_RATE_RATIO = boros_offchain_math_1.FixedX18.fromNumber(0.01);
7
7
  const SECONDS_PER_YEARS = 3600 * 24 * 365;
8
8
  class Market {
9
9
  static getOrderSizeByExactInitialMargin(params) {
10
- const { initialMargin, orderRate, isMarketOrder, leverage, marginFactor, markRate, maxMarginIndexRate, marketExpiry_s, } = params;
10
+ const { initialMargin, orderRate, isMarketOrder, leverage, marginFactor, markRate, minMarginIndexRate, marketExpiry_s, } = params;
11
11
  const timeToMaturity_y = (marketExpiry_s - Math.floor(Date.now() / 1000)) / SECONDS_PER_YEARS;
12
12
  const orderRateWithBuffer = isMarketOrder
13
13
  ? orderRate.mulDown(boros_offchain_math_1.FixedX18.ONE.add(MARKET_ORDER_BUFFER_RATE))
14
14
  : orderRate;
15
15
  const sizeOrderRateRatio = [
16
16
  marginFactor.mulDown(markRate),
17
- marginFactor.mulDown(maxMarginIndexRate),
17
+ marginFactor.mulDown(minMarginIndexRate),
18
18
  orderRateWithBuffer.divDown(boros_offchain_math_1.FixedX18.fromNumber(leverage)),
19
19
  ].reduce((a, b) => (a.gt(b) ? a : b), boros_offchain_math_1.FixedX18.ZERO);
20
20
  const sizeOrderRateRatioWithBuffer = sizeOrderRateRatio.mulDown(boros_offchain_math_1.FixedX18.ONE.add(SIZE_ORDER_RATE_RATIO));
@@ -25,12 +25,12 @@ class Market {
25
25
  return orderSize;
26
26
  }
27
27
  static getInitialMarginByOrderSize(params) {
28
- const { orderSize, orderRate, isMarketOrder, leverage, marginFactor, markRate, maxMarginIndexRate, marketExpiry_s } = params;
28
+ const { orderSize, orderRate, isMarketOrder, leverage, marginFactor, markRate, minMarginIndexRate, marketExpiry_s } = params;
29
29
  const timeToMaturity_y = (marketExpiry_s - Math.floor(Date.now() / 1000)) / SECONDS_PER_YEARS;
30
30
  const orderRateWithBuffer = isMarketOrder ? orderRate.mulDown(boros_offchain_math_1.FixedX18.ONE.add(MARKET_ORDER_BUFFER_RATE)) : orderRate;
31
31
  const sizeOrderRateRatio = [
32
32
  marginFactor.mulDown(markRate),
33
- marginFactor.mulDown(maxMarginIndexRate),
33
+ marginFactor.mulDown(minMarginIndexRate),
34
34
  orderRateWithBuffer.divDown(boros_offchain_math_1.FixedX18.fromNumber(leverage)),
35
35
  ].reduce((a, b) => (a.gt(b) ? a : b), boros_offchain_math_1.FixedX18.ZERO);
36
36
  const initialMarginRateRatioWithBuffer = sizeOrderRateRatio.mulDown(boros_offchain_math_1.FixedX18.ONE.add(SIZE_ORDER_RATE_RATIO));
@@ -13,7 +13,7 @@ export declare class AccountPositionLib {
13
13
  export declare class AccountLib {
14
14
  static pack(root: Address, accountId: number): Account;
15
15
  static unpack(account: Account): {
16
- root: `0x${string}`;
16
+ root: string;
17
17
  accountId: number;
18
18
  };
19
19
  }
@@ -30,22 +30,14 @@ class AccountPositionLib {
30
30
  exports.AccountPositionLib = AccountPositionLib;
31
31
  class AccountLib {
32
32
  static pack(root, accountId) {
33
- const rawUserBytes = (0, viem_1.hexToBytes)(root);
34
- const rawBytes = new Uint8Array(21);
35
- let offset = 0;
36
- rawBytes.set((0, viem_1.numberToBytes)(accountId, { size: 1 }), offset);
37
- offset += 1;
38
- rawBytes.set(rawUserBytes, offset);
39
- offset += 20;
40
- return (0, viem_1.bytesToHex)(rawBytes);
33
+ const rootBigInt = (0, viem_1.fromHex)(root, 'bigint');
34
+ const accountBigInt = (rootBigInt << 8n) | BigInt(accountId);
35
+ return (0, viem_1.bytesToHex)((0, viem_1.numberToBytes)(accountBigInt, { size: 21 }));
41
36
  }
42
37
  static unpack(account) {
43
- const accountBytes = (0, viem_1.hexToBytes)(account);
44
- if (accountBytes.length !== 21) {
45
- throw new Error('Invalid account');
46
- }
47
- const accountId = Number(`${(0, viem_1.bytesToHex)(accountBytes.slice(0, 1))}`);
48
- const root = (0, viem_1.bytesToHex)(accountBytes.slice(1));
38
+ const accountBigInt = (0, viem_1.fromHex)(account, 'bigint');
39
+ const accountId = Number(accountBigInt & ((1n << 8n) - 1n));
40
+ const root = (0, viem_1.bytesToHex)((0, viem_1.numberToBytes)(accountBigInt >> 8n, { size: 20 })).toLowerCase();
49
41
  return { root, accountId };
50
42
  }
51
43
  }
@@ -1 +1 @@
1
- {"version":3,"file":"accountLib.js","sourceRoot":"","sources":["../../src/utils/accountLib.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"accountLib.js","sourceRoot":"","sources":["../../src/utils/accountLib.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@pendle/sdk-boros",
3
3
  "description": "Pendle SDK for Boros",
4
4
  "license": "MIT",
5
- "version": "0.1.0",
5
+ "version": "0.1.2",
6
6
  "main": "dist/index.js",
7
7
  "types": "dist/index.d.ts",
8
8
  "files": [