@reyaxyz/common 0.258.4 → 0.260.0

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/README.md CHANGED
@@ -6,5 +6,5 @@
6
6
 
7
7
  | Statements | Branches | Functions | Lines |
8
8
  | --------------------------- | ----------------------- | ------------------------- | ----------------- |
9
- | ![Statements](https://img.shields.io/badge/statements-16.96%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-16.82%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-9.94%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-17.71%25-red.svg?style=flat) |
9
+ | ![Statements](https://img.shields.io/badge/statements-17.42%25-red.svg?style=flat) | ![Branches](https://img.shields.io/badge/branches-13.35%25-red.svg?style=flat) | ![Functions](https://img.shields.io/badge/functions-8.53%25-red.svg?style=flat) | ![Lines](https://img.shields.io/badge/lines-18.61%25-red.svg?style=flat) |
10
10
 
@@ -6,7 +6,7 @@ var types_1 = require("../../types");
6
6
  exports.API_CLIENT_CONFIGS = {
7
7
  local: {
8
8
  chain: types_1.ReyaChainId.reyaCronos,
9
- apiEndpoint: 'http://localhost:3000',
9
+ apiEndpoint: 'http://localhost:8000',
10
10
  webSocketEndpoint: 'ws://localhost:8080',
11
11
  environment: 'local',
12
12
  timeout: utils_1.API_TIMEOUT,
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,qCAA0C;AAY7B,QAAA,kBAAkB,GAA8C;IAC3E,KAAK,EAAE;QACL,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,uBAAuB;QACpC,iBAAiB,EAAE,qBAAqB;QACxC,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,sBAAsB;QACnC,iBAAiB,EAAE,0BAA0B;QAC7C,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,EAAE,EAAE;QACF,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,yBAAyB;QACtC,iBAAiB,EAAE,0BAA0B;QAC7C,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,iBAAiB,EAAE,kCAAkC;QACrD,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;CACF,CAAC","sourcesContent":["import { API_TIMEOUT } from '../../utils';\nimport { ReyaChainId } from '../../types';\n\nexport type ServiceEnvironment = 'production' | 'test' | 'local' | 'jp';\nexport interface ServiceConfig {\n chain: ReyaChainId;\n apiEndpoint: string;\n webSocketEndpoint: string;\n environment: ServiceEnvironment; // Configuration for SDK, such as base URL for the REST API\n timeout: number; // Optional timeout for API requests\n logging: boolean;\n}\n\nexport const API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {\n local: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: 'http://localhost:3000',\n webSocketEndpoint: 'ws://localhost:8080',\n environment: 'local',\n timeout: API_TIMEOUT,\n logging: true,\n },\n production: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: 'https://api.reya.xyz',\n webSocketEndpoint: 'wss://websocket.reya.xyz',\n environment: 'production',\n timeout: API_TIMEOUT,\n logging: false,\n },\n jp: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: 'https://api-jp.reya.xyz',\n webSocketEndpoint: 'wss://websocket.reya.xyz',\n environment: 'production',\n timeout: API_TIMEOUT,\n logging: false,\n },\n test: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: 'https://api-cronos.reya.xyz',\n webSocketEndpoint: 'wss://websocket-testnet.reya.xyz',\n environment: 'test',\n timeout: API_TIMEOUT,\n logging: true,\n },\n};\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"/","sources":["rest/helpers/constants.ts"],"names":[],"mappings":";;;AAAA,qCAA0C;AAC1C,qCAA0C;AAY7B,QAAA,kBAAkB,GAA8C;IAC3E,KAAK,EAAE;QACL,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,uBAAuB;QACpC,iBAAiB,EAAE,qBAAqB;QACxC,WAAW,EAAE,OAAO;QACpB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;IACD,UAAU,EAAE;QACV,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,sBAAsB;QACnC,iBAAiB,EAAE,0BAA0B;QAC7C,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,EAAE,EAAE;QACF,KAAK,EAAE,mBAAW,CAAC,WAAW;QAC9B,WAAW,EAAE,yBAAyB;QACtC,iBAAiB,EAAE,0BAA0B;QAC7C,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,KAAK;KACf;IACD,IAAI,EAAE;QACJ,KAAK,EAAE,mBAAW,CAAC,UAAU;QAC7B,WAAW,EAAE,6BAA6B;QAC1C,iBAAiB,EAAE,kCAAkC;QACrD,WAAW,EAAE,MAAM;QACnB,OAAO,EAAE,mBAAW;QACpB,OAAO,EAAE,IAAI;KACd;CACF,CAAC","sourcesContent":["import { API_TIMEOUT } from '../../utils';\nimport { ReyaChainId } from '../../types';\n\nexport type ServiceEnvironment = 'production' | 'test' | 'local' | 'jp';\nexport interface ServiceConfig {\n chain: ReyaChainId;\n apiEndpoint: string;\n webSocketEndpoint: string;\n environment: ServiceEnvironment; // Configuration for SDK, such as base URL for the REST API\n timeout: number; // Optional timeout for API requests\n logging: boolean;\n}\n\nexport const API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {\n local: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: 'http://localhost:8000',\n webSocketEndpoint: 'ws://localhost:8080',\n environment: 'local',\n timeout: API_TIMEOUT,\n logging: true,\n },\n production: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: 'https://api.reya.xyz',\n webSocketEndpoint: 'wss://websocket.reya.xyz',\n environment: 'production',\n timeout: API_TIMEOUT,\n logging: false,\n },\n jp: {\n chain: ReyaChainId.reyaNetwork,\n apiEndpoint: 'https://api-jp.reya.xyz',\n webSocketEndpoint: 'wss://websocket.reya.xyz',\n environment: 'production',\n timeout: API_TIMEOUT,\n logging: false,\n },\n test: {\n chain: ReyaChainId.reyaCronos,\n apiEndpoint: 'https://api-cronos.reya.xyz',\n webSocketEndpoint: 'wss://websocket-testnet.reya.xyz',\n environment: 'test',\n timeout: API_TIMEOUT,\n logging: true,\n },\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"trading-api-types.js","sourceRoot":"/","sources":["trading-api-types.ts"],"names":[],"mappings":";;;AAwBa,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACjB,CAAC","sourcesContent":["import { ParamsDictionary, Query } from 'express-serve-static-core';\ntype Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\ntype OnlyDigits<T extends string> = T extends `${Digit}${infer Rest}`\n ? Rest extends ''\n ? T\n : OnlyDigits<Rest>\n : never;\n\nexport type PaginatedQueryParams = {\n before: OnlyDigits<string>;\n after: OnlyDigits<string>;\n limit: OnlyDigits<string>;\n direction: 'asc' | 'desc';\n};\n\nexport type PaginatedQueryMeta = {\n limit: number;\n count: number;\n before: bigint | null | undefined;\n after: bigint | null | undefined;\n};\n\nexport type Decimal = 'fake-decimal';\n\nexport const AccountStatusValues = {\n OPEN: 'OPEN',\n CLOSED: 'CLOSED',\n};\n\nexport type AccountStatus =\n (typeof AccountStatusValues)[keyof typeof AccountStatusValues];\n\ntype Order = {\n id: string;\n market_id: Decimal | null;\n account_id: Decimal | null;\n order_base: Decimal | null;\n fee: Decimal | null;\n price: Decimal | null;\n type: string;\n processed: boolean;\n transaction_hash: string;\n r_pnl: Decimal | null;\n price_variation_pnl: Decimal | null;\n funding_pnl: Decimal | null;\n average_entry_price: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n source: string | null;\n unique_id: bigint | null;\n created_at: Date;\n};\n\nexport type TradingApiSource = {\n PoolBalance: {\n params: {\n poolId?: string;\n };\n query: never;\n response: {\n id: number;\n timestamp: bigint;\n pool_id: number;\n value: Decimal;\n apy: Decimal;\n share_price: Decimal;\n share_price_index: Decimal;\n } | null;\n };\n Leverages: {\n params: {\n address: string;\n };\n query: never;\n response: {\n accountId: Decimal;\n marketId: Decimal;\n leverage: number;\n createdAt: Date;\n updatedAt: Date;\n }[];\n };\n MarketsConfiguration: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n risk_matrix_index: Decimal | null;\n max_open_base: Decimal | null;\n velocity_multiplier: Decimal | null;\n minimum_order_base: Decimal | null;\n base_spacing: Decimal | null;\n price_spacing: Decimal | null;\n oracle_node_id: string | null;\n mtm_window: Decimal | null;\n dutch_config_lambda: Decimal | null;\n dutch_config_min_base: Decimal | null;\n slippage_params_phi: Decimal | null;\n slippage_params_beta: Decimal | null;\n depth_factor: Decimal | null;\n max_exposure_factor: Decimal | null;\n max_p_slippage: Decimal | null;\n price_spread: Decimal | null;\n volatility_index_multiplier: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n MarketsStorage: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n quote_collateral: string | null;\n instrument_address: string | null;\n name: string | null;\n risk_block_id: Decimal | null;\n collateral_pool_id: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n MarketsTracker: {\n params: never;\n query: never;\n response: {\n market_data_id: Decimal;\n passive_pool_id: Decimal | null;\n pool_account_id: Decimal | null;\n quote_token: string | null;\n quote_token_decimals: Decimal | null;\n last_funding_velocity: Decimal | null;\n last_funding_timestamp: Decimal | null;\n last_mtm_price: Decimal | null;\n last_mtm_timestamp: Decimal | null;\n long_trackers_funding_value: Decimal | null;\n last_funding_rate: Decimal | null;\n long_trackers_base_multiplier: Decimal | null;\n long_trackers_adl_unwind_price: Decimal | null;\n short_trackers_funding_value: Decimal | null;\n short_trackers_base_multiplier: Decimal | null;\n short_trackers_adl_unwind_price: Decimal | null;\n open_interest: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n Positions: {\n params: {\n address: string;\n };\n query: never;\n response: {\n market_id: Decimal;\n account_id: Decimal;\n base: Decimal | null;\n realized_pnl: Decimal | null;\n realized_pnl_latest_snapshot: Decimal | null;\n average_entry_price_off_chain_tracker: Decimal | null;\n funding_value_off_chain_tracker: Decimal | null;\n last_price: Decimal | null;\n position_data_last_price_data_timestamp: Decimal | null;\n funding_value: Decimal | null;\n base_multiplier: Decimal | null;\n adl_unwind_price: Decimal | null;\n transaction_hash: string;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n ConditionalOrders: {\n params: {\n address: string;\n };\n query: never;\n response: {\n id: string;\n account_id: Decimal;\n market_id: Decimal;\n order_type: string;\n is_long: boolean;\n trigger_price: number;\n order_base: Decimal;\n exchange_id: bigint;\n inputs: string;\n counterparty_account_id: bigint;\n reya_chain_id: bigint;\n deadline: bigint;\n signer_address: string;\n nonce: Decimal;\n signature: string;\n status: string;\n creation_timestamp_ms: bigint;\n last_update_timestamp_ms: bigint;\n transaction_hash: string | null;\n }[];\n };\n Assets: {\n params: never;\n query: never;\n response: {\n address: string;\n name: string;\n short: string;\n createdAt: Date;\n updatedAt: Date;\n asset_price_contract_id: string | null;\n asset_price_usdc_contract_id: string | null;\n decimals: number;\n }[];\n };\n Prices: {\n params: never;\n query: never;\n response: {\n block_number: Decimal;\n unique_id: bigint | null;\n contract_id: string;\n price: Decimal | null;\n round_id: Decimal | null;\n timestamp: Decimal;\n }[];\n };\n Accounts: {\n params: {\n address: string;\n };\n query: never;\n response: {\n account_id: Decimal;\n name: string;\n status: AccountStatus;\n updated_timestamp_ms: Decimal;\n source: string | null;\n }[];\n };\n AccountsBalances: {\n params: {\n address: string;\n };\n query: never;\n response: {\n account_id: number;\n collateral: string;\n balance: string;\n }[];\n };\n AutoExchange: {\n params: {\n address: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: {\n id: string;\n liquidated_account_id: Decimal | null;\n liquidator_account_id: Decimal | null;\n requested_quote_amount: Decimal | null;\n collateral_out_address: string | null;\n collateral_in_address: string | null;\n collateral_amount_to_liquidator: Decimal | null;\n quote_amount_to_insurance_fund: Decimal | null;\n quote_amount_to_account: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n transaction_hash: string;\n unique_id: bigint | null;\n }[];\n meta: PaginatedQueryMeta;\n };\n };\n Swaps: {\n params: {\n address: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: {\n id: string;\n account_id: Decimal;\n token_in: string;\n token_out: string;\n amount_in: Decimal;\n amount_out: Decimal;\n executed_amount_out: Decimal;\n transaction_hash: string;\n block_timestamp: Decimal;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n meta: PaginatedQueryMeta;\n };\n };\n MarketOrders: {\n params: {\n marketId: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n AccountOrders: {\n params: {\n accountId: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n WalletOrders: {\n params: {\n address: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n RiskMatrices: {\n params: {\n poolId: string;\n };\n query: never;\n response: {\n blockId: Decimal;\n matrix: string[][];\n }[];\n };\n Markets: {\n params: never;\n query: never;\n response: {\n id: Decimal;\n ticker: string;\n markPrice: number;\n isActive: boolean;\n maxLeverage: number;\n volume24H: number;\n priceChange24H: number;\n longOI: number;\n shortOI: number;\n availableLong: number;\n availableShort: number;\n marketPriceDeviation: number;\n riskBlockId: number;\n rootCollateralPoolId: number;\n description: string;\n name: string;\n quoteTokenId: string;\n tickSizeDecimals: number;\n underlyingAssetId: string;\n priceChange24HPercentage: number;\n openInterest: number;\n fundingRate: number;\n priority: number;\n }[];\n };\n TierFees: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n tier_id: Decimal;\n fee_parameter: Decimal | null;\n }[];\n };\n AccountsTiers: {\n params: {\n address: string;\n };\n query: never;\n response: {\n market_id: Decimal;\n account_id: Decimal;\n tier_id: Decimal;\n }[];\n };\n CollateralConfiguration: {\n params: never;\n query: never;\n response: {\n collateral_pool_id: Decimal;\n collateral_address: string;\n price_haircut: Decimal | null;\n auto_exchange_discount: Decimal | null;\n oracle_node_id: string | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n};\n\nexport type Stringified<T, D = Decimal> = T extends D | bigint | Date\n ? string\n : T extends (infer U)[]\n ? Stringified<U, D>[]\n : { [K in keyof T]: Stringified<T[K], D> };\n\nexport type Req<P = ParamsDictionary, ReqQuery = Query> = {\n params: P;\n query: ReqQuery;\n};\n\n/*\n\nSame as infered type \n\nexport type TradingApi = {\n [K in keyof typeof TradingQueries as K extends `get${infer R}` ? R : K]: {\n params: Parameters<ReturnType<(typeof TradingQueries)[K]>>[0] extends Req\n ? Parameters<ReturnType<(typeof TradingQueries)[K]>>[0]['params']\n : never;\n query: Parameters<ReturnType<(typeof TradingQueries)[K]>>[0] extends Req\n ? Parameters<ReturnType<(typeof TradingQueries)[K]>>[0]['query']\n : never;\n response: Stringified<\n Awaited<ReturnType<ReturnType<(typeof TradingQueries)[K]>>>\n >;\n\n*/\n\nexport type TradingApi = {\n [K in keyof TradingApiSource as K]: {\n params: TradingApiSource[K]['params'];\n query: TradingApiSource[K]['query'];\n response: Stringified<TradingApiSource[K]['response']>;\n };\n};\n"]}
1
+ {"version":3,"file":"trading-api-types.js","sourceRoot":"/","sources":["trading-api-types.ts"],"names":[],"mappings":";;;AAwBa,QAAA,mBAAmB,GAAG;IACjC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,QAAQ;CACjB,CAAC","sourcesContent":["import { ParamsDictionary, Query } from 'express-serve-static-core';\ntype Digit = '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\ntype OnlyDigits<T extends string> = T extends `${Digit}${infer Rest}`\n ? Rest extends ''\n ? T\n : OnlyDigits<Rest>\n : never;\n\nexport type PaginatedQueryParams = {\n before: OnlyDigits<string>;\n after: OnlyDigits<string>;\n limit: OnlyDigits<string>;\n direction: 'asc' | 'desc';\n};\n\nexport type PaginatedQueryMeta = {\n limit: number;\n count: number;\n before: bigint | null | undefined;\n after: bigint | null | undefined;\n};\n\nexport type Decimal = 'fake-decimal';\n\nexport const AccountStatusValues = {\n OPEN: 'OPEN',\n CLOSED: 'CLOSED',\n};\n\nexport type AccountStatus =\n (typeof AccountStatusValues)[keyof typeof AccountStatusValues];\n\ntype Order = {\n id: string;\n market_id: Decimal | null;\n account_id: Decimal | null;\n order_base: Decimal | null;\n fee: Decimal | null;\n price: Decimal | null;\n type: string;\n processed: boolean;\n transaction_hash: string;\n r_pnl: Decimal | null;\n price_variation_pnl: Decimal | null;\n funding_pnl: Decimal | null;\n average_entry_price: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n source: string | null;\n unique_id: bigint | null;\n created_at: Date;\n};\n\nexport type TradingApiSource = {\n PoolBalance: {\n params: {\n poolId?: string;\n };\n query: never;\n response: {\n id: number;\n timestamp: bigint;\n pool_id: number;\n value: Decimal;\n apy: Decimal;\n share_price: Decimal;\n share_price_index: Decimal;\n } | null;\n };\n Leverages: {\n params: {\n address: string;\n };\n query: never;\n response: {\n accountId: Decimal;\n marketId: Decimal;\n leverage: number;\n createdAt: Date;\n updatedAt: Date;\n }[];\n };\n MarketsConfiguration: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n risk_matrix_index: Decimal | null;\n max_open_base: Decimal | null;\n velocity_multiplier: Decimal | null;\n minimum_order_base: Decimal | null;\n base_spacing: Decimal | null;\n price_spacing: Decimal | null;\n oracle_node_id: string | null;\n mtm_window: Decimal | null;\n dutch_config_lambda: Decimal | null;\n dutch_config_min_base: Decimal | null;\n slippage_params_phi: Decimal | null;\n slippage_params_beta: Decimal | null;\n depth_factor: Decimal | null;\n max_exposure_factor: Decimal | null;\n max_p_slippage: Decimal | null;\n price_spread: Decimal | null;\n volatility_index_multiplier: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n MarketsStorage: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n quote_collateral: string | null;\n instrument_address: string | null;\n name: string | null;\n risk_block_id: Decimal | null;\n collateral_pool_id: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n MarketsTracker: {\n params: never;\n query: never;\n response: {\n market_data_id: Decimal;\n passive_pool_id: Decimal | null;\n pool_account_id: Decimal | null;\n quote_token: string | null;\n quote_token_decimals: Decimal | null;\n last_funding_velocity: Decimal | null;\n last_funding_timestamp: Decimal | null;\n last_mtm_price: Decimal | null;\n last_mtm_timestamp: Decimal | null;\n long_trackers_funding_value: Decimal | null;\n last_funding_rate: Decimal | null;\n long_trackers_base_multiplier: Decimal | null;\n long_trackers_adl_unwind_price: Decimal | null;\n short_trackers_funding_value: Decimal | null;\n short_trackers_base_multiplier: Decimal | null;\n short_trackers_adl_unwind_price: Decimal | null;\n open_interest: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n Positions: {\n params: {\n address: string;\n };\n query: never;\n response: {\n market_id: Decimal;\n account_id: Decimal;\n base: Decimal | null;\n realized_pnl: Decimal | null;\n realized_pnl_latest_snapshot: Decimal | null;\n average_entry_price_off_chain_tracker: Decimal | null;\n funding_value_off_chain_tracker: Decimal | null;\n last_price: Decimal | null;\n position_data_last_price_data_timestamp: Decimal | null;\n funding_value: Decimal | null;\n base_multiplier: Decimal | null;\n adl_unwind_price: Decimal | null;\n transaction_hash: string;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n ConditionalOrders: {\n params: {\n address: string;\n };\n query: never;\n response: {\n id: string;\n account_id: Decimal;\n market_id: Decimal;\n order_type: string;\n is_long: boolean;\n trigger_price: number;\n order_base: Decimal;\n exchange_id: bigint;\n inputs: string;\n counterparty_account_id: bigint;\n reya_chain_id: bigint;\n deadline: bigint;\n signer_address: string;\n nonce: Decimal;\n signature: string;\n status: string;\n creation_timestamp_ms: bigint;\n last_update_timestamp_ms: bigint;\n transaction_hash: string | null;\n }[];\n };\n Assets: {\n params: never;\n query: never;\n response: {\n address: string;\n name: string;\n short: string;\n createdAt: Date;\n updatedAt: Date;\n asset_price_contract_id: string | null;\n asset_price_usdc_contract_id: string | null;\n decimals: number;\n }[];\n };\n Prices: {\n params: never;\n query: never;\n response: {\n block_number: Decimal;\n unique_id: bigint | null;\n contract_id: string;\n price: Decimal | null;\n round_id: Decimal | null;\n timestamp: Decimal;\n }[];\n };\n Accounts: {\n params: {\n address: string;\n };\n query: never;\n response: {\n account_id: Decimal;\n name: string;\n status: AccountStatus;\n updated_timestamp_ms: Decimal;\n source: string | null;\n }[];\n };\n AccountsBalances: {\n params: {\n address: string;\n };\n query: never;\n response: {\n account_id: number;\n collateral: string;\n balance: string;\n }[];\n };\n AutoExchange: {\n params: {\n address: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: {\n id: string;\n liquidated_account_id: Decimal | null;\n liquidator_account_id: Decimal | null;\n requested_quote_amount: Decimal | null;\n collateral_out_address: string | null;\n collateral_in_address: string | null;\n collateral_amount_to_liquidator: Decimal | null;\n quote_amount_to_insurance_fund: Decimal | null;\n quote_amount_to_account: Decimal | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n transaction_hash: string;\n unique_id: bigint | null;\n }[];\n meta: PaginatedQueryMeta;\n };\n };\n Swaps: {\n params: {\n address: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: {\n id: string;\n account_id: Decimal;\n token_in: string;\n token_out: string;\n amount_in: Decimal;\n amount_out: Decimal;\n executed_amount_out: Decimal;\n transaction_hash: string;\n block_timestamp: Decimal;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n meta: PaginatedQueryMeta;\n };\n };\n MarketOrders: {\n params: {\n marketId: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n AccountOrders: {\n params: {\n accountId: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n WalletBalanceHistory: {\n params: {\n address: string;\n timestamp?: string;\n };\n query: never;\n response: {\n timestamp: number;\n balance: number;\n }[];\n };\n WalletOrders: {\n params: {\n address: string;\n type?: string;\n };\n query: PaginatedQueryParams;\n response: {\n data: Order[];\n meta: PaginatedQueryMeta;\n };\n };\n RiskMatrices: {\n params: {\n poolId: string;\n };\n query: never;\n response: {\n blockId: Decimal;\n matrix: string[][];\n }[];\n };\n Markets: {\n params: never;\n query: never;\n response: {\n id: Decimal;\n ticker: string;\n markPrice: number;\n isActive: boolean;\n maxLeverage: number;\n volume24H: number;\n priceChange24H: number;\n longOI: number;\n shortOI: number;\n availableLong: number;\n availableShort: number;\n marketPriceDeviation: number;\n riskBlockId: number;\n rootCollateralPoolId: number;\n description: string;\n name: string;\n quoteTokenId: string;\n tickSizeDecimals: number;\n underlyingAssetId: string;\n priceChange24HPercentage: number;\n openInterest: number;\n fundingRate: number;\n priority: number;\n }[];\n };\n TierFees: {\n params: never;\n query: never;\n response: {\n market_id: Decimal;\n tier_id: Decimal;\n fee_parameter: Decimal | null;\n }[];\n };\n AccountsTiers: {\n params: {\n address: string;\n };\n query: never;\n response: {\n market_id: Decimal;\n account_id: Decimal;\n tier_id: Decimal;\n }[];\n };\n CollateralConfiguration: {\n params: never;\n query: never;\n response: {\n collateral_pool_id: Decimal;\n collateral_address: string;\n price_haircut: Decimal | null;\n auto_exchange_discount: Decimal | null;\n oracle_node_id: string | null;\n block_timestamp: Decimal | null;\n block_number: Decimal;\n unique_id: bigint | null;\n }[];\n };\n};\n\nexport type Stringified<T, D = Decimal> = T extends D | bigint | Date\n ? string\n : T extends (infer U)[]\n ? Stringified<U, D>[]\n : { [K in keyof T]: Stringified<T[K], D> };\n\nexport type Req<P = ParamsDictionary, ReqQuery = Query> = {\n params: P;\n query: ReqQuery;\n};\n\n/*\n\nSame as infered type \n\nexport type TradingApi = {\n [K in keyof typeof TradingQueries as K extends `get${infer R}` ? R : K]: {\n params: Parameters<ReturnType<(typeof TradingQueries)[K]>>[0] extends Req\n ? Parameters<ReturnType<(typeof TradingQueries)[K]>>[0]['params']\n : never;\n query: Parameters<ReturnType<(typeof TradingQueries)[K]>>[0] extends Req\n ? Parameters<ReturnType<(typeof TradingQueries)[K]>>[0]['query']\n : never;\n response: Stringified<\n Awaited<ReturnType<ReturnType<(typeof TradingQueries)[K]>>>\n >;\n\n*/\n\nexport type TradingApi = {\n [K in keyof TradingApiSource as K]: {\n params: TradingApiSource[K]['params'];\n query: TradingApiSource[K]['query'];\n response: Stringified<TradingApiSource[K]['response']>;\n };\n};\n"]}
@@ -305,6 +305,17 @@ export type TradingApiSource = {
305
305
  meta: PaginatedQueryMeta;
306
306
  };
307
307
  };
308
+ WalletBalanceHistory: {
309
+ params: {
310
+ address: string;
311
+ timestamp?: string;
312
+ };
313
+ query: never;
314
+ response: {
315
+ timestamp: number;
316
+ balance: number;
317
+ }[];
318
+ };
308
319
  WalletOrders: {
309
320
  params: {
310
321
  address: string;
@@ -1 +1 @@
1
- {"version":3,"file":"trading-api-types.d.ts","sourceRoot":"/","sources":["trading-api-types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trading-api-types.d.ts","sourceRoot":"/","sources":["trading-api-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ type MarketId = string;
2
+ type AccountId = string;
3
+ type Address = string;
4
+ export declare const calculateMaxExposure: ({ poolBalance, riskFactor, poolIMR, }: {
5
+ poolBalance: number;
6
+ poolIMR?: number | undefined;
7
+ riskFactor: number;
8
+ }) => number;
9
+ export declare const calculateEstimatedExecutionPrice: (poolPrice: number, size: number, oraclePrice: number, maxExposure: number, depth: number) => number;
10
+ export declare const calculateTradeFee: ({ feeRate, tradeNotional, }: {
11
+ feeRate: number;
12
+ tradeNotional: number;
13
+ }) => number;
14
+ export declare const calculateSpread: ({ depthFactor, maxExposure, oraclePrice, poolPrice, tradeNotional, }: {
15
+ depthFactor: number;
16
+ maxExposure: number;
17
+ oraclePrice: number;
18
+ poolPrice: number;
19
+ tradeNotional: number;
20
+ }) => number;
21
+ export declare const calculateEstimatedLiquidationPrice: ({ LMR, accountBalance, isShort, notional, oraclePrice, }: {
22
+ LMR: number;
23
+ accountBalance: number;
24
+ isShort: boolean;
25
+ notional: number;
26
+ oraclePrice: number;
27
+ }) => number;
28
+ export declare const calculateLeverage: ({ imrMultiplier, riskFactor, }: {
29
+ imrMultiplier: number;
30
+ riskFactor: number;
31
+ }) => number;
32
+ export declare const calculateRequiredMargin: ({ currIMR, currentNotional, leverage, tradeNotional, }: {
33
+ currIMR: number;
34
+ currentNotional: number;
35
+ leverage: number;
36
+ tradeNotional: number;
37
+ }) => number;
38
+ export declare const calculateMaxOrderSize: ({ currIMR, currNodeBalance, currNotional, depthFactor, extendingPosition, feeRate, isShortTrade, leverage, maxExposure, oraclePrice, poolPrice, }: {
39
+ currIMR: number;
40
+ currNodeBalance: number;
41
+ currNotional: number;
42
+ depthFactor: number;
43
+ extendingPosition: boolean;
44
+ feeRate: number;
45
+ isShortTrade: boolean;
46
+ leverage: number;
47
+ maxExposure: number;
48
+ oraclePrice: number;
49
+ poolPrice: number;
50
+ }) => number;
51
+ export declare const calculateIMR: ({ accountLeverages, marketLeverages, marketPrices, positions, }: {
52
+ accountLeverages: Map<AccountId, number>;
53
+ marketLeverages: Map<MarketId, number>;
54
+ marketPrices: Map<MarketId, number>;
55
+ positions: Map<MarketId, number>;
56
+ }) => number;
57
+ export declare const calculateLMR: ({ marketPrices, positions, riskFactors, marketId, tradeSize, }: {
58
+ marketId?: string | undefined;
59
+ marketPrices: Map<MarketId, number>;
60
+ positions: Map<MarketId, number>;
61
+ riskFactors: Map<MarketId, number>;
62
+ tradeSize?: number | undefined;
63
+ }) => number;
64
+ export declare const calculateMarginRatio: ({ LMR, totalBalance, tradeCost, }: {
65
+ LMR: number;
66
+ totalBalance: number;
67
+ tradeCost: number;
68
+ }) => number;
69
+ export declare const calculateTotalMargin: ({ marketsTrackers, accountBalances, assetPrices, marketsTokenInfo, positions, }: {
70
+ accountBalances: Map<Address, number>;
71
+ assetPrices: Map<Address, number>;
72
+ marketsTokenInfo: Map<MarketId, {
73
+ quoteTokenId: string;
74
+ underlyingAssetId: string;
75
+ }>;
76
+ marketsTrackers: Map<MarketId, {
77
+ longADLUnwindPrice: number;
78
+ longBaseMultiplier: number;
79
+ longFundingValue: number;
80
+ shortADLUnwindPrice: number;
81
+ shortBaseMultiplier: number;
82
+ shortFundingValue: number;
83
+ }>;
84
+ positions: {
85
+ adlUnwindPrice: number;
86
+ base: number;
87
+ baseMultiplier: number;
88
+ fundingValue: number;
89
+ lastPrice: number;
90
+ marketId: string;
91
+ realizedPnl: number;
92
+ }[];
93
+ }) => number;
94
+ export {};
95
+ //# sourceMappingURL=calculate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.d.ts","sourceRoot":"/","sources":["utils/calculate.ts"],"names":[],"mappings":"AAIA,KAAK,QAAQ,GAAG,MAAM,CAAC;AACvB,KAAK,SAAS,GAAG,MAAM,CAAC;AACxB,KAAK,OAAO,GAAG,MAAM,CAAC;AAEtB,eAAO,MAAM,oBAAoB;iBAKlB,MAAM;;gBAEP,MAAM;YACiC,CAAC;AAEtD,eAAO,MAAM,gCAAgC,cAChC,MAAM,QACX,MAAM,eACC,MAAM,eACN,MAAM,SACZ,MAAM,WAE8D,CAAC;AAE9E,eAAO,MAAM,iBAAiB;aAInB,MAAM;mBACA,MAAM;YACgB,CAAC;AAExC,eAAO,MAAM,eAAe;iBAOb,MAAM;iBACN,MAAM;iBACN,MAAM;eACR,MAAM;mBACF,MAAM;YAIR,CAAC;AAEhB,eAAO,MAAM,kCAAkC;SAOxC,MAAM;oBACK,MAAM;aACb,OAAO;cACN,MAAM;iBACH,MAAM;YAMlB,CAAC;AAEJ,eAAO,MAAM,iBAAiB;mBAIb,MAAM;gBACT,MAAM;YAC6B,CAAC;AAElD,eAAO,MAAM,uBAAuB;aAMzB,MAAM;qBACE,MAAM;cACb,MAAM;mBACD,MAAM;YAIX,CAAC;AAEb,eAAO,MAAM,qBAAqB;aAavB,MAAM;qBACE,MAAM;kBACT,MAAM;iBACP,MAAM;uBACA,OAAO;aACjB,MAAM;kBACD,OAAO;cACX,MAAM;iBACH,MAAM;iBACN,MAAM;eACR,MAAM;YAqBlB,CAAC;AAEF,eAAO,MAAM,YAAY;sBAML,IAAI,SAAS,EAAE,MAAM,CAAC;qBACvB,IAAI,QAAQ,EAAE,MAAM,CAAC;kBACxB,IAAI,QAAQ,EAAE,MAAM,CAAC;eACxB,IAAI,QAAQ,EAAE,MAAM,CAAC;YAcjC,CAAC;AAEF,eAAO,MAAM,YAAY;;kBAQT,IAAI,QAAQ,EAAE,MAAM,CAAC;eACxB,IAAI,QAAQ,EAAE,MAAM,CAAC;iBACnB,IAAI,QAAQ,EAAE,MAAM,CAAC;;YAkB7B,CAAC;AAIR,eAAO,MAAM,oBAAoB;SAK1B,MAAM;kBACG,MAAM;eACT,MAAM;YAYlB,CAAC;AAEF,eAAO,MAAM,oBAAoB;qBAOd,IAAI,OAAO,EAAE,MAAM,CAAC;iBACxB,IAAI,OAAO,EAAE,MAAM,CAAC;sBACf,IAChB,QAAQ,EACR;QACE,YAAY,EAAE,MAAM,CAAC;QACrB,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CACF;qBACgB,IACf,QAAQ,EACR;QACE,kBAAkB,EAAE,MAAM,CAAC;QAC3B,kBAAkB,EAAE,MAAM,CAAC;QAC3B,gBAAgB,EAAE,MAAM,CAAC;QACzB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CACF;eACU;QACT,cAAc,EAAE,MAAM,CAAC;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,cAAc,EAAE,MAAM,CAAC;QACvB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;KACrB,EAAE;YAwDJ,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export * from './consts';
2
+ export * from './calculate';
3
+ export * from './struct';
2
4
  export * from './cooldown-interval';
3
5
  export * from './network';
4
6
  export * from './number';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC"}
@@ -2,7 +2,8 @@
2
2
  import { BigNumberish } from 'ethers';
3
3
  import { ReyaChainId } from '../types';
4
4
  export declare const SBT_ROOT: Record<ReyaChainId, string>;
5
- export declare const getSbtRoot: (reyaChainId: ReyaChainId) => string;
5
+ export declare const SBT_ROOT_EXTRA_OGS: Record<ReyaChainId, string>;
6
+ export declare const getSbtRoot: (reyaChainId: ReyaChainId, isSpecialRoot: boolean) => string;
6
7
  export declare const SBT_MINT_DEADLINE = 1743508800;
7
8
  export type SbtLeafInfo = {
8
9
  account: string;
@@ -1 +1 @@
1
- {"version":3,"file":"sbt-helpers.d.ts","sourceRoot":"/","sources":["utils/sbt-helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKhD,CAAC;AAEF,eAAO,MAAM,UAAU,gBAAiB,WAAW,WAElD,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,MAAM,oBAAoB,MAAM,KAAG,MAQnE,CAAC;AAEF,eAAO,MAAM,aAAa,YACf,MAAM,cACH,MAAM,oBACA,MAAM,KACvB,YASF,CAAC"}
1
+ {"version":3,"file":"sbt-helpers.d.ts","sourceRoot":"/","sources":["utils/sbt-helpers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAU,YAAY,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC,eAAO,MAAM,QAAQ,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAKhD,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAK1D,CAAC;AAEF,eAAO,MAAM,UAAU,gBACR,WAAW,iBACT,OAAO,WAKvB,CAAC;AAEF,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAE5C,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B,CAAC;AAEF,eAAO,MAAM,OAAO,YAAa,MAAM,oBAAoB,MAAM,KAAG,MAQnE,CAAC;AAEF,eAAO,MAAM,aAAa,YACf,MAAM,cACH,MAAM,oBACA,MAAM,KACvB,YASF,CAAC"}
@@ -0,0 +1,7 @@
1
+ export declare const createMap: <T, K, V>(a: T[], k: (v: T) => K, m: (v: T) => V) => Map<K, V>;
2
+ export declare const pluck: <T, K extends keyof T, OK>(m: Map<OK, T>, k: K) => Map<OK, T[K]>;
3
+ export declare const mergeMap: <T, K>(m: Map<K, T>, o: [K, T][]) => Map<K, T>;
4
+ export declare const filterBy: <T, K extends keyof T, V>(a: T[], k: K, v: V) => T[];
5
+ export declare const findBy: <T, K extends keyof T, V>(a: T[], k: K, v: V) => T | undefined;
6
+ export declare const groupBy: <T, K>(items: T[], key: (item: T) => K) => Map<K, T[]>;
7
+ //# sourceMappingURL=struct.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"struct.d.ts","sourceRoot":"/","sources":["utils/struct.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,SAAS,gEACqB,CAAC;AAE5C,eAAO,MAAM,KAAK,kEAKf,CAAC;AAEJ,eAAO,MAAM,QAAQ,gDAKlB,CAAC;AAEJ,eAAO,MAAM,QAAQ,sDACQ,CAAC;AAE9B,eAAO,MAAM,MAAM,gEACQ,CAAC;AAE5B,eAAO,MAAM,OAAO,wDAWnB,CAAC"}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.calculateTotalMargin = exports.calculateMarginRatio = exports.calculateLMR = exports.calculateIMR = exports.calculateMaxOrderSize = exports.calculateRequiredMargin = exports.calculateLeverage = exports.calculateEstimatedLiquidationPrice = exports.calculateSpread = exports.calculateTradeFee = exports.calculateEstimatedExecutionPrice = exports.calculateMaxExposure = void 0;
4
+ var struct_1 = require("./struct");
5
+ var POOL_IMR = 9.1;
6
+ var calculateMaxExposure = function (_a) {
7
+ var poolBalance = _a.poolBalance, riskFactor = _a.riskFactor, _b = _a.poolIMR, poolIMR = _b === void 0 ? POOL_IMR : _b;
8
+ return poolBalance / (poolIMR * Math.sqrt(riskFactor));
9
+ };
10
+ exports.calculateMaxExposure = calculateMaxExposure;
11
+ var calculateEstimatedExecutionPrice = function (poolPrice, size, oraclePrice, maxExposure, depth) {
12
+ return Math.max(0, poolPrice * (1 + (size * oraclePrice) / (depth * maxExposure)));
13
+ };
14
+ exports.calculateEstimatedExecutionPrice = calculateEstimatedExecutionPrice;
15
+ var calculateTradeFee = function (_a) {
16
+ var feeRate = _a.feeRate, tradeNotional = _a.tradeNotional;
17
+ return feeRate * Math.abs(tradeNotional);
18
+ };
19
+ exports.calculateTradeFee = calculateTradeFee;
20
+ var calculateSpread = function (_a) {
21
+ var depthFactor = _a.depthFactor, maxExposure = _a.maxExposure, oraclePrice = _a.oraclePrice, poolPrice = _a.poolPrice, tradeNotional = _a.tradeNotional;
22
+ return (poolPrice / oraclePrice) *
23
+ (1 + tradeNotional / (depthFactor * maxExposure) - 1) *
24
+ tradeNotional;
25
+ };
26
+ exports.calculateSpread = calculateSpread;
27
+ var calculateEstimatedLiquidationPrice = function (_a) {
28
+ var LMR = _a.LMR, accountBalance = _a.accountBalance, isShort = _a.isShort, notional = _a.notional, oraclePrice = _a.oraclePrice;
29
+ return Math.max(0, oraclePrice *
30
+ (1 - ((accountBalance - LMR) / notional) * (isShort ? -1 : 1)));
31
+ };
32
+ exports.calculateEstimatedLiquidationPrice = calculateEstimatedLiquidationPrice;
33
+ var calculateLeverage = function (_a) {
34
+ var imrMultiplier = _a.imrMultiplier, riskFactor = _a.riskFactor;
35
+ return 1 / (imrMultiplier * Math.sqrt(riskFactor));
36
+ };
37
+ exports.calculateLeverage = calculateLeverage;
38
+ var calculateRequiredMargin = function (_a) {
39
+ var currIMR = _a.currIMR, currentNotional = _a.currentNotional, leverage = _a.leverage, tradeNotional = _a.tradeNotional;
40
+ return currIMR +
41
+ (Math.abs(currentNotional + tradeNotional) - Math.abs(currentNotional)) /
42
+ leverage;
43
+ };
44
+ exports.calculateRequiredMargin = calculateRequiredMargin;
45
+ var calculateMaxOrderSize = function (_a) {
46
+ var currIMR = _a.currIMR, currNodeBalance = _a.currNodeBalance, currNotional = _a.currNotional, depthFactor = _a.depthFactor, extendingPosition = _a.extendingPosition, feeRate = _a.feeRate, isShortTrade = _a.isShortTrade, leverage = _a.leverage, maxExposure = _a.maxExposure, oraclePrice = _a.oraclePrice, poolPrice = _a.poolPrice;
47
+ var a = poolPrice / oraclePrice;
48
+ var c = 1 / (depthFactor * maxExposure);
49
+ var R = a - 1 - feeRate * (isShortTrade ? -1 : 1);
50
+ var SN = currNotional < 0 ? -1 : 1;
51
+ var Q = R - (SN / leverage) * (extendingPosition ? 1 : -1);
52
+ return Math.abs((-1 * Q +
53
+ Math.sqrt(Math.pow(Q, 2) -
54
+ 4 *
55
+ a *
56
+ c *
57
+ (currNodeBalance -
58
+ currIMR +
59
+ (extendingPosition ? 0 : ((2 * SN) / leverage) * currNotional))) *
60
+ (isShortTrade ? 1 : -1)) /
61
+ (2 * a * c));
62
+ };
63
+ exports.calculateMaxOrderSize = calculateMaxOrderSize;
64
+ var calculateIMR = function (_a) {
65
+ var accountLeverages = _a.accountLeverages, marketLeverages = _a.marketLeverages, marketPrices = _a.marketPrices, positions = _a.positions;
66
+ return Array.from(positions.entries()).reduce(function (sum, _a) {
67
+ var _b;
68
+ var marketId = _a[0], positionSize = _a[1];
69
+ var leverage = accountLeverages.get(marketId) || marketLeverages.get(marketId);
70
+ return leverage
71
+ ? sum +
72
+ (Math.abs(positionSize) * ((_b = marketPrices.get(marketId)) !== null && _b !== void 0 ? _b : 0)) /
73
+ leverage
74
+ : sum;
75
+ }, 0);
76
+ };
77
+ exports.calculateIMR = calculateIMR;
78
+ var calculateLMR = function (_a) {
79
+ var _b;
80
+ var marketPrices = _a.marketPrices, positions = _a.positions, riskFactors = _a.riskFactors, marketId = _a.marketId, tradeSize = _a.tradeSize;
81
+ return Array.from((marketId && tradeSize
82
+ ? (0, struct_1.mergeMap)(positions, [
83
+ [marketId, ((_b = positions.get(marketId)) !== null && _b !== void 0 ? _b : 0) + tradeSize],
84
+ ])
85
+ : positions).entries()).reduce(function (sum, _a) {
86
+ var _b;
87
+ var marketId = _a[0], positionSize = _a[1];
88
+ var riskFactor = riskFactors.get(marketId);
89
+ return riskFactor
90
+ ? sum +
91
+ Math.abs(positionSize) *
92
+ ((_b = marketPrices.get(marketId)) !== null && _b !== void 0 ? _b : 0) *
93
+ Math.sqrt(riskFactor)
94
+ : sum;
95
+ }, 0);
96
+ };
97
+ exports.calculateLMR = calculateLMR;
98
+ // if account balance is below LMR position is liquidable
99
+ var calculateMarginRatio = function (_a) {
100
+ var LMR = _a.LMR, totalBalance = _a.totalBalance, tradeCost = _a.tradeCost;
101
+ if (LMR === 0) {
102
+ return 0;
103
+ }
104
+ if (tradeCost > totalBalance) {
105
+ return 1;
106
+ }
107
+ if (totalBalance === tradeCost) {
108
+ return Infinity;
109
+ }
110
+ return Math.min(1, LMR / (totalBalance - tradeCost));
111
+ };
112
+ exports.calculateMarginRatio = calculateMarginRatio;
113
+ var calculateTotalMargin = function (_a) {
114
+ var marketsTrackers = _a.marketsTrackers, accountBalances = _a.accountBalances, assetPrices = _a.assetPrices, marketsTokenInfo = _a.marketsTokenInfo, positions = _a.positions;
115
+ var pnl = new Map();
116
+ positions.forEach(function (position) {
117
+ var _a, _b;
118
+ var marketTracker = marketsTrackers === null || marketsTrackers === void 0 ? void 0 : marketsTrackers.get(position.marketId);
119
+ var tokenInfo = marketsTokenInfo.get(position.marketId);
120
+ if (!tokenInfo)
121
+ return;
122
+ var fundingCashFlow = 0;
123
+ var adlCashFlow = 0;
124
+ if (marketTracker) {
125
+ // fundingCashFlow
126
+ var marketTrackerFundingValue = position.base < 0
127
+ ? marketTracker.shortFundingValue
128
+ : marketTracker.longFundingValue;
129
+ var trackerDelta = marketTrackerFundingValue - position.fundingValue;
130
+ fundingCashFlow =
131
+ (trackerDelta / position.baseMultiplier) * -1 * position.base;
132
+ // adlCashFlow
133
+ var adlUnwindPrice = ((position.base < 0
134
+ ? marketTracker.shortADLUnwindPrice
135
+ : marketTracker.longADLUnwindPrice) -
136
+ position.adlUnwindPrice) /
137
+ position.baseMultiplier;
138
+ var baseMultiplier = (position.base < 0
139
+ ? marketTracker.shortBaseMultiplier
140
+ : marketTracker.longBaseMultiplier) / position.baseMultiplier;
141
+ var lastPriceCoefficient = 1 - baseMultiplier;
142
+ var initialPrice = lastPriceCoefficient * position.lastPrice;
143
+ adlCashFlow = (adlUnwindPrice - initialPrice) * position.base;
144
+ }
145
+ var unrealizedPnl = (((_a = assetPrices.get(tokenInfo.quoteTokenId)) !== null && _a !== void 0 ? _a : 0) - position.lastPrice) *
146
+ position.base;
147
+ pnl.set(tokenInfo.underlyingAssetId, ((_b = pnl.get(tokenInfo.underlyingAssetId)) !== null && _b !== void 0 ? _b : 0) +
148
+ position.realizedPnl +
149
+ fundingCashFlow +
150
+ adlCashFlow +
151
+ unrealizedPnl);
152
+ });
153
+ return Array.from(accountBalances.entries()).reduce(function (sum, _a) {
154
+ var _b, _c;
155
+ var address = _a[0], balance = _a[1];
156
+ return sum +
157
+ (balance + ((_b = pnl.get(address)) !== null && _b !== void 0 ? _b : 0)) * ((_c = assetPrices.get(address)) !== null && _c !== void 0 ? _c : 0);
158
+ }, 0);
159
+ };
160
+ exports.calculateTotalMargin = calculateTotalMargin;
161
+ //# sourceMappingURL=calculate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"calculate.js","sourceRoot":"/","sources":["utils/calculate.ts"],"names":[],"mappings":"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","sourcesContent":["import { mergeMap } from './struct';\n\nconst POOL_IMR = 9.1;\n\ntype MarketId = string;\ntype AccountId = string;\ntype Address = string;\n\nexport const calculateMaxExposure = ({\n poolBalance,\n riskFactor,\n poolIMR = POOL_IMR,\n}: {\n poolBalance: number;\n poolIMR?: number;\n riskFactor: number;\n}) => poolBalance / (poolIMR * Math.sqrt(riskFactor));\n\nexport const calculateEstimatedExecutionPrice = (\n poolPrice: number,\n size: number,\n oraclePrice: number,\n maxExposure: number,\n depth: number,\n) =>\n Math.max(0, poolPrice * (1 + (size * oraclePrice) / (depth * maxExposure)));\n\nexport const calculateTradeFee = ({\n feeRate,\n tradeNotional,\n}: {\n feeRate: number;\n tradeNotional: number;\n}) => feeRate * Math.abs(tradeNotional);\n\nexport const calculateSpread = ({\n depthFactor,\n maxExposure,\n oraclePrice,\n poolPrice,\n tradeNotional,\n}: {\n depthFactor: number;\n maxExposure: number;\n oraclePrice: number;\n poolPrice: number;\n tradeNotional: number;\n}) =>\n (poolPrice / oraclePrice) *\n (1 + tradeNotional / (depthFactor * maxExposure) - 1) *\n tradeNotional;\n\nexport const calculateEstimatedLiquidationPrice = ({\n LMR,\n accountBalance,\n isShort,\n notional,\n oraclePrice,\n}: {\n LMR: number;\n accountBalance: number;\n isShort: boolean;\n notional: number;\n oraclePrice: number;\n}) =>\n Math.max(\n 0,\n oraclePrice *\n (1 - ((accountBalance - LMR) / notional) * (isShort ? -1 : 1)),\n );\n\nexport const calculateLeverage = ({\n imrMultiplier,\n riskFactor,\n}: {\n imrMultiplier: number;\n riskFactor: number;\n}) => 1 / (imrMultiplier * Math.sqrt(riskFactor));\n\nexport const calculateRequiredMargin = ({\n currIMR,\n currentNotional,\n leverage,\n tradeNotional,\n}: {\n currIMR: number;\n currentNotional: number;\n leverage: number;\n tradeNotional: number;\n}) =>\n currIMR +\n (Math.abs(currentNotional + tradeNotional) - Math.abs(currentNotional)) /\n leverage;\n\nexport const calculateMaxOrderSize = ({\n currIMR,\n currNodeBalance,\n currNotional,\n depthFactor,\n extendingPosition,\n feeRate,\n isShortTrade,\n leverage,\n maxExposure,\n oraclePrice,\n poolPrice,\n}: {\n currIMR: number;\n currNodeBalance: number;\n currNotional: number;\n depthFactor: number;\n extendingPosition: boolean;\n feeRate: number;\n isShortTrade: boolean;\n leverage: number;\n maxExposure: number;\n oraclePrice: number;\n poolPrice: number;\n}) => {\n const a = poolPrice / oraclePrice;\n const c = 1 / (depthFactor * maxExposure);\n const R = a - 1 - feeRate * (isShortTrade ? -1 : 1);\n const SN = currNotional < 0 ? -1 : 1;\n const Q = R - (SN / leverage) * (extendingPosition ? 1 : -1);\n return Math.abs(\n (-1 * Q +\n Math.sqrt(\n Math.pow(Q, 2) -\n 4 *\n a *\n c *\n (currNodeBalance -\n currIMR +\n (extendingPosition ? 0 : ((2 * SN) / leverage) * currNotional)),\n ) *\n (isShortTrade ? 1 : -1)) /\n (2 * a * c),\n );\n};\n\nexport const calculateIMR = ({\n accountLeverages,\n marketLeverages,\n marketPrices,\n positions,\n}: {\n accountLeverages: Map<AccountId, number>;\n marketLeverages: Map<MarketId, number>;\n marketPrices: Map<MarketId, number>;\n positions: Map<MarketId, number>;\n}) => {\n return Array.from(positions.entries()).reduce(\n (sum, [marketId, positionSize]) => {\n const leverage =\n accountLeverages.get(marketId) || marketLeverages.get(marketId);\n return leverage\n ? sum +\n (Math.abs(positionSize) * (marketPrices.get(marketId) ?? 0)) /\n leverage\n : sum;\n },\n 0,\n );\n};\n\nexport const calculateLMR = ({\n marketPrices,\n positions,\n riskFactors,\n marketId,\n tradeSize,\n}: {\n marketId?: string;\n marketPrices: Map<MarketId, number>;\n positions: Map<MarketId, number>;\n riskFactors: Map<MarketId, number>;\n tradeSize?: number;\n}) =>\n Array.from(\n (marketId && tradeSize\n ? mergeMap(positions, [\n [marketId, (positions.get(marketId) ?? 0) + tradeSize],\n ])\n : positions\n ).entries(),\n ).reduce((sum, [marketId, positionSize]) => {\n const riskFactor = riskFactors.get(marketId);\n return riskFactor\n ? sum +\n Math.abs(positionSize) *\n (marketPrices.get(marketId) ?? 0) *\n Math.sqrt(riskFactor)\n : sum;\n }, 0);\n\n// if account balance is below LMR position is liquidable\n\nexport const calculateMarginRatio = ({\n LMR,\n totalBalance,\n tradeCost,\n}: {\n LMR: number;\n totalBalance: number;\n tradeCost: number;\n}) => {\n if (LMR === 0) {\n return 0;\n }\n if (tradeCost > totalBalance) {\n return 1;\n }\n if (totalBalance === tradeCost) {\n return Infinity;\n }\n return Math.min(1, LMR / (totalBalance - tradeCost));\n};\n\nexport const calculateTotalMargin = ({\n marketsTrackers,\n accountBalances,\n assetPrices,\n marketsTokenInfo,\n positions,\n}: {\n accountBalances: Map<Address, number>;\n assetPrices: Map<Address, number>;\n marketsTokenInfo: Map<\n MarketId,\n {\n quoteTokenId: string;\n underlyingAssetId: string;\n }\n >;\n marketsTrackers: Map<\n MarketId,\n {\n longADLUnwindPrice: number;\n longBaseMultiplier: number;\n longFundingValue: number;\n shortADLUnwindPrice: number;\n shortBaseMultiplier: number;\n shortFundingValue: number;\n }\n >;\n positions: {\n adlUnwindPrice: number;\n base: number;\n baseMultiplier: number;\n fundingValue: number;\n lastPrice: number;\n marketId: string;\n realizedPnl: number;\n }[];\n}) => {\n const pnl = new Map<Address, number>();\n positions.forEach((position) => {\n const marketTracker = marketsTrackers?.get(position.marketId);\n const tokenInfo = marketsTokenInfo.get(position.marketId);\n if (!tokenInfo) return;\n let fundingCashFlow = 0;\n let adlCashFlow = 0;\n\n if (marketTracker) {\n // fundingCashFlow\n const marketTrackerFundingValue =\n position.base < 0\n ? marketTracker.shortFundingValue\n : marketTracker.longFundingValue;\n const trackerDelta = marketTrackerFundingValue - position.fundingValue;\n fundingCashFlow =\n (trackerDelta / position.baseMultiplier) * -1 * position.base;\n\n // adlCashFlow\n const adlUnwindPrice =\n ((position.base < 0\n ? marketTracker.shortADLUnwindPrice\n : marketTracker.longADLUnwindPrice) -\n position.adlUnwindPrice) /\n position.baseMultiplier;\n const baseMultiplier =\n (position.base < 0\n ? marketTracker.shortBaseMultiplier\n : marketTracker.longBaseMultiplier) / position.baseMultiplier;\n const lastPriceCoefficient = 1 - baseMultiplier;\n const initialPrice = lastPriceCoefficient * position.lastPrice;\n adlCashFlow = (adlUnwindPrice - initialPrice) * position.base;\n }\n\n const unrealizedPnl =\n ((assetPrices.get(tokenInfo.quoteTokenId) ?? 0) - position.lastPrice) *\n position.base;\n\n pnl.set(\n tokenInfo.underlyingAssetId,\n (pnl.get(tokenInfo.underlyingAssetId) ?? 0) +\n position.realizedPnl +\n fundingCashFlow +\n adlCashFlow +\n unrealizedPnl,\n );\n });\n\n return Array.from(accountBalances.entries()).reduce(\n (sum, [address, balance]) =>\n sum +\n (balance + (pnl.get(address) ?? 0)) * (assetPrices.get(address) ?? 0),\n 0,\n );\n};\n"]}
@@ -15,6 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./consts"), exports);
18
+ __exportStar(require("./calculate"), exports);
19
+ __exportStar(require("./struct"), exports);
18
20
  __exportStar(require("./cooldown-interval"), exports);
19
21
  __exportStar(require("./network"), exports);
20
22
  __exportStar(require("./number"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,sDAAoC;AACpC,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,iDAA+B;AAC/B,wDAAsC;AACtC,8CAA4B;AAC5B,gDAA8B","sourcesContent":["export * from './consts';\nexport * from './cooldown-interval';\nexport * from './network';\nexport * from './number';\nexport * from './retry';\nexport * from './timestamp';\nexport * from './token';\nexport * from './task-wrapper';\nexport * from './whitelisted-wallets';\nexport * from './stringify';\nexport * from './sbt-helpers';\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,2CAAyB;AACzB,sDAAoC;AACpC,4CAA0B;AAC1B,2CAAyB;AACzB,0CAAwB;AACxB,8CAA4B;AAC5B,0CAAwB;AACxB,iDAA+B;AAC/B,wDAAsC;AACtC,8CAA4B;AAC5B,gDAA8B","sourcesContent":["export * from './consts';\nexport * from './calculate';\nexport * from './struct';\nexport * from './cooldown-interval';\nexport * from './network';\nexport * from './number';\nexport * from './retry';\nexport * from './timestamp';\nexport * from './token';\nexport * from './task-wrapper';\nexport * from './whitelisted-wallets';\nexport * from './stringify';\nexport * from './sbt-helpers';\n"]}
@@ -1,15 +1,21 @@
1
1
  "use strict";
2
- var _a;
2
+ var _a, _b;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.getSbtTokenId = exports.getLeaf = exports.SBT_MINT_DEADLINE = exports.getSbtRoot = exports.SBT_ROOT = void 0;
4
+ exports.getSbtTokenId = exports.getLeaf = exports.SBT_MINT_DEADLINE = exports.getSbtRoot = exports.SBT_ROOT_EXTRA_OGS = exports.SBT_ROOT = void 0;
5
5
  var ethers_1 = require("ethers");
6
6
  var types_1 = require("../types");
7
7
  exports.SBT_ROOT = (_a = {},
8
8
  _a[types_1.ReyaChainId.reyaNetwork] = '0x7d8254a884c4e1e8040d592fdbe3ce8986fb6c5c4f7dee3ce7b7f823fa127c52',
9
9
  _a[types_1.ReyaChainId.reyaCronos] = '0x01f4d29a3aca5cb40663851d2d40d605636dd6448f251d77765dd0e40c422136',
10
10
  _a);
11
- var getSbtRoot = function (reyaChainId) {
12
- return exports.SBT_ROOT[reyaChainId];
11
+ exports.SBT_ROOT_EXTRA_OGS = (_b = {},
12
+ _b[types_1.ReyaChainId.reyaNetwork] = '0x4befffbb84f3dc33b939b6a92600404ba3cc67a120549423864b6127772cedd7',
13
+ _b[types_1.ReyaChainId.reyaCronos] = '0x0b994b1d87eb7ee0090dcab536da2c603e37cfbcba5e7fe0602f6c3cc201c918',
14
+ _b);
15
+ var getSbtRoot = function (reyaChainId, isSpecialRoot) {
16
+ return isSpecialRoot
17
+ ? exports.SBT_ROOT_EXTRA_OGS[reyaChainId]
18
+ : exports.SBT_ROOT[reyaChainId];
13
19
  };
14
20
  exports.getSbtRoot = getSbtRoot;
15
21
  exports.SBT_MINT_DEADLINE = 1743508800; // Tue Apr 01 2025 12:00:00 GMT+0000
@@ -1 +1 @@
1
- {"version":3,"file":"sbt-helpers.js","sourceRoot":"/","sources":["utils/sbt-helpers.ts"],"names":[],"mappings":";;;;AAAA,iCAA8C;AAC9C,kCAAuC;AAE1B,QAAA,QAAQ;IACnB,GAAC,mBAAW,CAAC,WAAW,IACtB,oEAAoE;IACtE,GAAC,mBAAW,CAAC,UAAU,IACrB,oEAAoE;QACtE;AAEK,IAAM,UAAU,GAAG,UAAC,WAAwB;IACjD,OAAO,gBAAQ,CAAC,WAAW,CAAC,CAAC;AAC/B,CAAC,CAAC;AAFW,QAAA,UAAU,cAErB;AAEW,QAAA,iBAAiB,GAAG,UAAU,CAAC,CAAC,oCAAoC;AAO1E,IAAM,OAAO,GAAG,UAAC,OAAe,EAAE,gBAAwB;IAC/D,IAAM,WAAW,GAAG,eAAM,CAAC,SAAS,CAClC,eAAM,CAAC,cAAc,CACnB,CAAC,SAAS,EAAE,SAAS,CAAC,EACtB,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CACvC,CACF,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AARW,QAAA,OAAO,WAQlB;AAEK,IAAM,aAAa,GAAG,UAC3B,OAAe,EACf,UAAkB,EAClB,gBAAwB;IAExB,OAAO,eAAM,CAAC,QAAQ,CACpB,eAAM,CAAC,SAAS,CACd,eAAM,CAAC,cAAc,CACnB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CACnD,CACF,CACF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,aAAa,iBAaxB","sourcesContent":["import { ethers, BigNumberish } from 'ethers';\nimport { ReyaChainId } from '../types';\n\nexport const SBT_ROOT: Record<ReyaChainId, string> = {\n [ReyaChainId.reyaNetwork]:\n '0x7d8254a884c4e1e8040d592fdbe3ce8986fb6c5c4f7dee3ce7b7f823fa127c52',\n [ReyaChainId.reyaCronos]:\n '0x01f4d29a3aca5cb40663851d2d40d605636dd6448f251d77765dd0e40c422136',\n};\n\nexport const getSbtRoot = (reyaChainId: ReyaChainId) => {\n return SBT_ROOT[reyaChainId];\n};\n\nexport const SBT_MINT_DEADLINE = 1743508800; // Tue Apr 01 2025 12:00:00 GMT+0000\n\nexport type SbtLeafInfo = {\n account: string;\n tokenRootCounter: number;\n};\n\nexport const getLeaf = (address: string, tokenRootCounter: number): Buffer => {\n const messageHash = ethers.keccak256(\n ethers.solidityPacked(\n ['address', 'uint256'],\n [address, tokenRootCounter.toString()],\n ),\n );\n return Buffer.from(messageHash.slice(2), 'hex');\n};\n\nexport const getSbtTokenId = (\n account: string,\n merkleRoot: string,\n tokenRootCounter: number,\n): BigNumberish => {\n return ethers.toBigInt(\n ethers.keccak256(\n ethers.solidityPacked(\n ['address', 'bytes32', 'uint256'],\n [account, merkleRoot, tokenRootCounter.toString()],\n ),\n ),\n );\n};\n"]}
1
+ {"version":3,"file":"sbt-helpers.js","sourceRoot":"/","sources":["utils/sbt-helpers.ts"],"names":[],"mappings":";;;;AAAA,iCAA8C;AAC9C,kCAAuC;AAE1B,QAAA,QAAQ;IACnB,GAAC,mBAAW,CAAC,WAAW,IACtB,oEAAoE;IACtE,GAAC,mBAAW,CAAC,UAAU,IACrB,oEAAoE;QACtE;AAEW,QAAA,kBAAkB;IAC7B,GAAC,mBAAW,CAAC,WAAW,IACtB,oEAAoE;IACtE,GAAC,mBAAW,CAAC,UAAU,IACrB,oEAAoE;QACtE;AAEK,IAAM,UAAU,GAAG,UACxB,WAAwB,EACxB,aAAsB;IAEtB,OAAO,aAAa;QAClB,CAAC,CAAC,0BAAkB,CAAC,WAAW,CAAC;QACjC,CAAC,CAAC,gBAAQ,CAAC,WAAW,CAAC,CAAC;AAC5B,CAAC,CAAC;AAPW,QAAA,UAAU,cAOrB;AAEW,QAAA,iBAAiB,GAAG,UAAU,CAAC,CAAC,oCAAoC;AAO1E,IAAM,OAAO,GAAG,UAAC,OAAe,EAAE,gBAAwB;IAC/D,IAAM,WAAW,GAAG,eAAM,CAAC,SAAS,CAClC,eAAM,CAAC,cAAc,CACnB,CAAC,SAAS,EAAE,SAAS,CAAC,EACtB,CAAC,OAAO,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CACvC,CACF,CAAC;IACF,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;AAClD,CAAC,CAAC;AARW,QAAA,OAAO,WAQlB;AAEK,IAAM,aAAa,GAAG,UAC3B,OAAe,EACf,UAAkB,EAClB,gBAAwB;IAExB,OAAO,eAAM,CAAC,QAAQ,CACpB,eAAM,CAAC,SAAS,CACd,eAAM,CAAC,cAAc,CACnB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,EACjC,CAAC,OAAO,EAAE,UAAU,EAAE,gBAAgB,CAAC,QAAQ,EAAE,CAAC,CACnD,CACF,CACF,CAAC;AACJ,CAAC,CAAC;AAbW,QAAA,aAAa,iBAaxB","sourcesContent":["import { ethers, BigNumberish } from 'ethers';\nimport { ReyaChainId } from '../types';\n\nexport const SBT_ROOT: Record<ReyaChainId, string> = {\n [ReyaChainId.reyaNetwork]:\n '0x7d8254a884c4e1e8040d592fdbe3ce8986fb6c5c4f7dee3ce7b7f823fa127c52',\n [ReyaChainId.reyaCronos]:\n '0x01f4d29a3aca5cb40663851d2d40d605636dd6448f251d77765dd0e40c422136',\n};\n\nexport const SBT_ROOT_EXTRA_OGS: Record<ReyaChainId, string> = {\n [ReyaChainId.reyaNetwork]:\n '0x4befffbb84f3dc33b939b6a92600404ba3cc67a120549423864b6127772cedd7',\n [ReyaChainId.reyaCronos]:\n '0x0b994b1d87eb7ee0090dcab536da2c603e37cfbcba5e7fe0602f6c3cc201c918',\n};\n\nexport const getSbtRoot = (\n reyaChainId: ReyaChainId,\n isSpecialRoot: boolean,\n) => {\n return isSpecialRoot\n ? SBT_ROOT_EXTRA_OGS[reyaChainId]\n : SBT_ROOT[reyaChainId];\n};\n\nexport const SBT_MINT_DEADLINE = 1743508800; // Tue Apr 01 2025 12:00:00 GMT+0000\n\nexport type SbtLeafInfo = {\n account: string;\n tokenRootCounter: number;\n};\n\nexport const getLeaf = (address: string, tokenRootCounter: number): Buffer => {\n const messageHash = ethers.keccak256(\n ethers.solidityPacked(\n ['address', 'uint256'],\n [address, tokenRootCounter.toString()],\n ),\n );\n return Buffer.from(messageHash.slice(2), 'hex');\n};\n\nexport const getSbtTokenId = (\n account: string,\n merkleRoot: string,\n tokenRootCounter: number,\n): BigNumberish => {\n return ethers.toBigInt(\n ethers.keccak256(\n ethers.solidityPacked(\n ['address', 'bytes32', 'uint256'],\n [account, merkleRoot, tokenRootCounter.toString()],\n ),\n ),\n );\n};\n"]}
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ /* eslint-disable @typescript-eslint/no-shadow */
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.groupBy = exports.findBy = exports.filterBy = exports.mergeMap = exports.pluck = exports.createMap = void 0;
5
+ var createMap = function (a, k, m) {
6
+ return new Map(a.map(function (i) { return [k(i), m(i)]; }));
7
+ };
8
+ exports.createMap = createMap;
9
+ var pluck = function (m, k) {
10
+ return (0, exports.createMap)(Array.from(m.entries()), function (_a) {
11
+ var k = _a[0];
12
+ return k;
13
+ }, function (_a) {
14
+ var v = _a[1];
15
+ return v[k];
16
+ });
17
+ };
18
+ exports.pluck = pluck;
19
+ var mergeMap = function (m, o) {
20
+ return (0, exports.createMap)(Array.from(m.entries()).concat(o), function (_a) {
21
+ var k = _a[0];
22
+ return k;
23
+ }, function (_a) {
24
+ var v = _a[1];
25
+ return v;
26
+ });
27
+ };
28
+ exports.mergeMap = mergeMap;
29
+ var filterBy = function (a, k, v) {
30
+ return a.filter(function (a) { return a[k] === v; });
31
+ };
32
+ exports.filterBy = filterBy;
33
+ var findBy = function (a, k, v) {
34
+ return a.find(function (a) { return a[k] === v; });
35
+ };
36
+ exports.findBy = findBy;
37
+ var groupBy = function (items, key) {
38
+ var groupedItems = new Map();
39
+ items.forEach(function (item) {
40
+ var _a;
41
+ var keyValue = typeof key === 'function' ? key(item) : item[key];
42
+ if (!keyValue)
43
+ return;
44
+ if (!groupedItems.has(keyValue)) {
45
+ groupedItems.set(keyValue, []);
46
+ }
47
+ (_a = groupedItems.get(keyValue)) === null || _a === void 0 ? void 0 : _a.push(item);
48
+ });
49
+ return groupedItems;
50
+ };
51
+ exports.groupBy = groupBy;
52
+ /* eslint-enable @typescript-eslint/no-shadow */
53
+ //# sourceMappingURL=struct.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"struct.js","sourceRoot":"/","sources":["utils/struct.ts"],"names":[],"mappings":";AAAA,iDAAiD;;;AAE1C,IAAM,SAAS,GAAG,UAAU,CAAM,EAAE,CAAc,EAAE,CAAc;IACvE,OAAA,IAAI,GAAG,CAAO,CAAC,CAAC,GAAG,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAZ,CAAY,CAAC,CAAC;AAAzC,CAAyC,CAAC;AAD/B,QAAA,SAAS,aACsB;AAErC,IAAM,KAAK,GAAG,UAA2B,CAAa,EAAE,CAAI;IACjE,OAAA,IAAA,iBAAS,EACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EACvB,UAAC,EAAG;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC;IAAD,CAAC,EACV,UAAC,EAAK;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC,CAAC,CAAC,CAAC;IAAJ,CAAI,CAChB;AAJD,CAIC,CAAC;AALS,QAAA,KAAK,SAKd;AAEG,IAAM,QAAQ,GAAG,UAAO,CAAY,EAAE,CAAW;IACtD,OAAA,IAAA,iBAAS,EACP,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACjC,UAAC,EAAG;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC;IAAD,CAAC,EACV,UAAC,EAAK;YAAF,CAAC,QAAA;QAAM,OAAA,CAAC;IAAD,CAAC,CACb;AAJD,CAIC,CAAC;AALS,QAAA,QAAQ,YAKjB;AAEG,IAAM,QAAQ,GAAG,UAA0B,CAAM,EAAE,CAAI,EAAE,CAAI;IAClE,OAAA,CAAC,CAAC,MAAM,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAV,CAAU,CAAC;AAA3B,CAA2B,CAAC;AADjB,QAAA,QAAQ,YACS;AAEvB,IAAM,MAAM,GAAG,UAA0B,CAAM,EAAE,CAAI,EAAE,CAAI;IAChE,OAAA,CAAC,CAAC,IAAI,CAAC,UAAC,CAAC,IAAK,OAAA,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAV,CAAU,CAAC;AAAzB,CAAyB,CAAC;AADf,QAAA,MAAM,UACS;AAErB,IAAM,OAAO,GAAG,UAAO,KAAU,EAAE,GAAmB;IAC3D,IAAM,YAAY,GAAG,IAAI,GAAG,EAAU,CAAC;IACvC,KAAK,CAAC,OAAO,CAAC,UAAC,IAAI;;QACjB,IAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ;YAAE,OAAO;QACtB,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAS,CAAC,CAAC;QACxC,CAAC;QACD,MAAA,YAAY,CAAC,GAAG,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IACH,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAXW,QAAA,OAAO,WAWlB;AAEF,gDAAgD","sourcesContent":["/* eslint-disable @typescript-eslint/no-shadow */\n\nexport const createMap = <T, K, V>(a: T[], k: (v: T) => K, m: (v: T) => V) =>\n new Map<K, V>(a.map((i) => [k(i), m(i)]));\n\nexport const pluck = <T, K extends keyof T, OK>(m: Map<OK, T>, k: K) =>\n createMap(\n Array.from(m.entries()),\n ([k]) => k,\n ([, v]) => v[k],\n );\n\nexport const mergeMap = <T, K>(m: Map<K, T>, o: [K, T][]) =>\n createMap(\n Array.from(m.entries()).concat(o),\n ([k]) => k,\n ([, v]) => v,\n );\n\nexport const filterBy = <T, K extends keyof T, V>(a: T[], k: K, v: V) =>\n a.filter((a) => a[k] === v);\n\nexport const findBy = <T, K extends keyof T, V>(a: T[], k: K, v: V) =>\n a.find((a) => a[k] === v);\n\nexport const groupBy = <T, K>(items: T[], key: (item: T) => K) => {\n const groupedItems = new Map<K, T[]>();\n items.forEach((item) => {\n const keyValue = typeof key === 'function' ? key(item) : item[key];\n if (!keyValue) return;\n if (!groupedItems.has(keyValue)) {\n groupedItems.set(keyValue, [] as T[]);\n }\n groupedItems.get(keyValue)?.push(item);\n });\n return groupedItems;\n};\n\n/* eslint-enable @typescript-eslint/no-shadow */\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reyaxyz/common",
3
- "version": "0.258.4",
3
+ "version": "0.260.0",
4
4
  "publishConfig": {
5
5
  "access": "public",
6
6
  "registry": "https://registry.npmjs.org"
@@ -44,5 +44,5 @@
44
44
  "generate:coverage-badges": "npx istanbul-badges-readme --silent"
45
45
  },
46
46
  "packageManager": "pnpm@8.3.1",
47
- "gitHead": "b8fb11e567c5d65a55b8061a907373410ad5b6d6"
47
+ "gitHead": "ae08cbb9d37ec11403c56a699824aeb4e12febb5"
48
48
  }
@@ -14,7 +14,7 @@ export interface ServiceConfig {
14
14
  export const API_CLIENT_CONFIGS: Record<ServiceEnvironment, ServiceConfig> = {
15
15
  local: {
16
16
  chain: ReyaChainId.reyaCronos,
17
- apiEndpoint: 'http://localhost:3000',
17
+ apiEndpoint: 'http://localhost:8000',
18
18
  webSocketEndpoint: 'ws://localhost:8080',
19
19
  environment: 'local',
20
20
  timeout: API_TIMEOUT,
@@ -317,6 +317,17 @@ export type TradingApiSource = {
317
317
  meta: PaginatedQueryMeta;
318
318
  };
319
319
  };
320
+ WalletBalanceHistory: {
321
+ params: {
322
+ address: string;
323
+ timestamp?: string;
324
+ };
325
+ query: never;
326
+ response: {
327
+ timestamp: number;
328
+ balance: number;
329
+ }[];
330
+ };
320
331
  WalletOrders: {
321
332
  params: {
322
333
  address: string;
@@ -0,0 +1,310 @@
1
+ import { mergeMap } from './struct';
2
+
3
+ const POOL_IMR = 9.1;
4
+
5
+ type MarketId = string;
6
+ type AccountId = string;
7
+ type Address = string;
8
+
9
+ export const calculateMaxExposure = ({
10
+ poolBalance,
11
+ riskFactor,
12
+ poolIMR = POOL_IMR,
13
+ }: {
14
+ poolBalance: number;
15
+ poolIMR?: number;
16
+ riskFactor: number;
17
+ }) => poolBalance / (poolIMR * Math.sqrt(riskFactor));
18
+
19
+ export const calculateEstimatedExecutionPrice = (
20
+ poolPrice: number,
21
+ size: number,
22
+ oraclePrice: number,
23
+ maxExposure: number,
24
+ depth: number,
25
+ ) =>
26
+ Math.max(0, poolPrice * (1 + (size * oraclePrice) / (depth * maxExposure)));
27
+
28
+ export const calculateTradeFee = ({
29
+ feeRate,
30
+ tradeNotional,
31
+ }: {
32
+ feeRate: number;
33
+ tradeNotional: number;
34
+ }) => feeRate * Math.abs(tradeNotional);
35
+
36
+ export const calculateSpread = ({
37
+ depthFactor,
38
+ maxExposure,
39
+ oraclePrice,
40
+ poolPrice,
41
+ tradeNotional,
42
+ }: {
43
+ depthFactor: number;
44
+ maxExposure: number;
45
+ oraclePrice: number;
46
+ poolPrice: number;
47
+ tradeNotional: number;
48
+ }) =>
49
+ (poolPrice / oraclePrice) *
50
+ (1 + tradeNotional / (depthFactor * maxExposure) - 1) *
51
+ tradeNotional;
52
+
53
+ export const calculateEstimatedLiquidationPrice = ({
54
+ LMR,
55
+ accountBalance,
56
+ isShort,
57
+ notional,
58
+ oraclePrice,
59
+ }: {
60
+ LMR: number;
61
+ accountBalance: number;
62
+ isShort: boolean;
63
+ notional: number;
64
+ oraclePrice: number;
65
+ }) =>
66
+ Math.max(
67
+ 0,
68
+ oraclePrice *
69
+ (1 - ((accountBalance - LMR) / notional) * (isShort ? -1 : 1)),
70
+ );
71
+
72
+ export const calculateLeverage = ({
73
+ imrMultiplier,
74
+ riskFactor,
75
+ }: {
76
+ imrMultiplier: number;
77
+ riskFactor: number;
78
+ }) => 1 / (imrMultiplier * Math.sqrt(riskFactor));
79
+
80
+ export const calculateRequiredMargin = ({
81
+ currIMR,
82
+ currentNotional,
83
+ leverage,
84
+ tradeNotional,
85
+ }: {
86
+ currIMR: number;
87
+ currentNotional: number;
88
+ leverage: number;
89
+ tradeNotional: number;
90
+ }) =>
91
+ currIMR +
92
+ (Math.abs(currentNotional + tradeNotional) - Math.abs(currentNotional)) /
93
+ leverage;
94
+
95
+ export const calculateMaxOrderSize = ({
96
+ currIMR,
97
+ currNodeBalance,
98
+ currNotional,
99
+ depthFactor,
100
+ extendingPosition,
101
+ feeRate,
102
+ isShortTrade,
103
+ leverage,
104
+ maxExposure,
105
+ oraclePrice,
106
+ poolPrice,
107
+ }: {
108
+ currIMR: number;
109
+ currNodeBalance: number;
110
+ currNotional: number;
111
+ depthFactor: number;
112
+ extendingPosition: boolean;
113
+ feeRate: number;
114
+ isShortTrade: boolean;
115
+ leverage: number;
116
+ maxExposure: number;
117
+ oraclePrice: number;
118
+ poolPrice: number;
119
+ }) => {
120
+ const a = poolPrice / oraclePrice;
121
+ const c = 1 / (depthFactor * maxExposure);
122
+ const R = a - 1 - feeRate * (isShortTrade ? -1 : 1);
123
+ const SN = currNotional < 0 ? -1 : 1;
124
+ const Q = R - (SN / leverage) * (extendingPosition ? 1 : -1);
125
+ return Math.abs(
126
+ (-1 * Q +
127
+ Math.sqrt(
128
+ Math.pow(Q, 2) -
129
+ 4 *
130
+ a *
131
+ c *
132
+ (currNodeBalance -
133
+ currIMR +
134
+ (extendingPosition ? 0 : ((2 * SN) / leverage) * currNotional)),
135
+ ) *
136
+ (isShortTrade ? 1 : -1)) /
137
+ (2 * a * c),
138
+ );
139
+ };
140
+
141
+ export const calculateIMR = ({
142
+ accountLeverages,
143
+ marketLeverages,
144
+ marketPrices,
145
+ positions,
146
+ }: {
147
+ accountLeverages: Map<AccountId, number>;
148
+ marketLeverages: Map<MarketId, number>;
149
+ marketPrices: Map<MarketId, number>;
150
+ positions: Map<MarketId, number>;
151
+ }) => {
152
+ return Array.from(positions.entries()).reduce(
153
+ (sum, [marketId, positionSize]) => {
154
+ const leverage =
155
+ accountLeverages.get(marketId) || marketLeverages.get(marketId);
156
+ return leverage
157
+ ? sum +
158
+ (Math.abs(positionSize) * (marketPrices.get(marketId) ?? 0)) /
159
+ leverage
160
+ : sum;
161
+ },
162
+ 0,
163
+ );
164
+ };
165
+
166
+ export const calculateLMR = ({
167
+ marketPrices,
168
+ positions,
169
+ riskFactors,
170
+ marketId,
171
+ tradeSize,
172
+ }: {
173
+ marketId?: string;
174
+ marketPrices: Map<MarketId, number>;
175
+ positions: Map<MarketId, number>;
176
+ riskFactors: Map<MarketId, number>;
177
+ tradeSize?: number;
178
+ }) =>
179
+ Array.from(
180
+ (marketId && tradeSize
181
+ ? mergeMap(positions, [
182
+ [marketId, (positions.get(marketId) ?? 0) + tradeSize],
183
+ ])
184
+ : positions
185
+ ).entries(),
186
+ ).reduce((sum, [marketId, positionSize]) => {
187
+ const riskFactor = riskFactors.get(marketId);
188
+ return riskFactor
189
+ ? sum +
190
+ Math.abs(positionSize) *
191
+ (marketPrices.get(marketId) ?? 0) *
192
+ Math.sqrt(riskFactor)
193
+ : sum;
194
+ }, 0);
195
+
196
+ // if account balance is below LMR position is liquidable
197
+
198
+ export const calculateMarginRatio = ({
199
+ LMR,
200
+ totalBalance,
201
+ tradeCost,
202
+ }: {
203
+ LMR: number;
204
+ totalBalance: number;
205
+ tradeCost: number;
206
+ }) => {
207
+ if (LMR === 0) {
208
+ return 0;
209
+ }
210
+ if (tradeCost > totalBalance) {
211
+ return 1;
212
+ }
213
+ if (totalBalance === tradeCost) {
214
+ return Infinity;
215
+ }
216
+ return Math.min(1, LMR / (totalBalance - tradeCost));
217
+ };
218
+
219
+ export const calculateTotalMargin = ({
220
+ marketsTrackers,
221
+ accountBalances,
222
+ assetPrices,
223
+ marketsTokenInfo,
224
+ positions,
225
+ }: {
226
+ accountBalances: Map<Address, number>;
227
+ assetPrices: Map<Address, number>;
228
+ marketsTokenInfo: Map<
229
+ MarketId,
230
+ {
231
+ quoteTokenId: string;
232
+ underlyingAssetId: string;
233
+ }
234
+ >;
235
+ marketsTrackers: Map<
236
+ MarketId,
237
+ {
238
+ longADLUnwindPrice: number;
239
+ longBaseMultiplier: number;
240
+ longFundingValue: number;
241
+ shortADLUnwindPrice: number;
242
+ shortBaseMultiplier: number;
243
+ shortFundingValue: number;
244
+ }
245
+ >;
246
+ positions: {
247
+ adlUnwindPrice: number;
248
+ base: number;
249
+ baseMultiplier: number;
250
+ fundingValue: number;
251
+ lastPrice: number;
252
+ marketId: string;
253
+ realizedPnl: number;
254
+ }[];
255
+ }) => {
256
+ const pnl = new Map<Address, number>();
257
+ positions.forEach((position) => {
258
+ const marketTracker = marketsTrackers?.get(position.marketId);
259
+ const tokenInfo = marketsTokenInfo.get(position.marketId);
260
+ if (!tokenInfo) return;
261
+ let fundingCashFlow = 0;
262
+ let adlCashFlow = 0;
263
+
264
+ if (marketTracker) {
265
+ // fundingCashFlow
266
+ const marketTrackerFundingValue =
267
+ position.base < 0
268
+ ? marketTracker.shortFundingValue
269
+ : marketTracker.longFundingValue;
270
+ const trackerDelta = marketTrackerFundingValue - position.fundingValue;
271
+ fundingCashFlow =
272
+ (trackerDelta / position.baseMultiplier) * -1 * position.base;
273
+
274
+ // adlCashFlow
275
+ const adlUnwindPrice =
276
+ ((position.base < 0
277
+ ? marketTracker.shortADLUnwindPrice
278
+ : marketTracker.longADLUnwindPrice) -
279
+ position.adlUnwindPrice) /
280
+ position.baseMultiplier;
281
+ const baseMultiplier =
282
+ (position.base < 0
283
+ ? marketTracker.shortBaseMultiplier
284
+ : marketTracker.longBaseMultiplier) / position.baseMultiplier;
285
+ const lastPriceCoefficient = 1 - baseMultiplier;
286
+ const initialPrice = lastPriceCoefficient * position.lastPrice;
287
+ adlCashFlow = (adlUnwindPrice - initialPrice) * position.base;
288
+ }
289
+
290
+ const unrealizedPnl =
291
+ ((assetPrices.get(tokenInfo.quoteTokenId) ?? 0) - position.lastPrice) *
292
+ position.base;
293
+
294
+ pnl.set(
295
+ tokenInfo.underlyingAssetId,
296
+ (pnl.get(tokenInfo.underlyingAssetId) ?? 0) +
297
+ position.realizedPnl +
298
+ fundingCashFlow +
299
+ adlCashFlow +
300
+ unrealizedPnl,
301
+ );
302
+ });
303
+
304
+ return Array.from(accountBalances.entries()).reduce(
305
+ (sum, [address, balance]) =>
306
+ sum +
307
+ (balance + (pnl.get(address) ?? 0)) * (assetPrices.get(address) ?? 0),
308
+ 0,
309
+ );
310
+ };
@@ -1,4 +1,6 @@
1
1
  export * from './consts';
2
+ export * from './calculate';
3
+ export * from './struct';
2
4
  export * from './cooldown-interval';
3
5
  export * from './network';
4
6
  export * from './number';
@@ -8,8 +8,20 @@ export const SBT_ROOT: Record<ReyaChainId, string> = {
8
8
  '0x01f4d29a3aca5cb40663851d2d40d605636dd6448f251d77765dd0e40c422136',
9
9
  };
10
10
 
11
- export const getSbtRoot = (reyaChainId: ReyaChainId) => {
12
- return SBT_ROOT[reyaChainId];
11
+ export const SBT_ROOT_EXTRA_OGS: Record<ReyaChainId, string> = {
12
+ [ReyaChainId.reyaNetwork]:
13
+ '0x4befffbb84f3dc33b939b6a92600404ba3cc67a120549423864b6127772cedd7',
14
+ [ReyaChainId.reyaCronos]:
15
+ '0x0b994b1d87eb7ee0090dcab536da2c603e37cfbcba5e7fe0602f6c3cc201c918',
16
+ };
17
+
18
+ export const getSbtRoot = (
19
+ reyaChainId: ReyaChainId,
20
+ isSpecialRoot: boolean,
21
+ ) => {
22
+ return isSpecialRoot
23
+ ? SBT_ROOT_EXTRA_OGS[reyaChainId]
24
+ : SBT_ROOT[reyaChainId];
13
25
  };
14
26
 
15
27
  export const SBT_MINT_DEADLINE = 1743508800; // Tue Apr 01 2025 12:00:00 GMT+0000
@@ -0,0 +1,39 @@
1
+ /* eslint-disable @typescript-eslint/no-shadow */
2
+
3
+ export const createMap = <T, K, V>(a: T[], k: (v: T) => K, m: (v: T) => V) =>
4
+ new Map<K, V>(a.map((i) => [k(i), m(i)]));
5
+
6
+ export const pluck = <T, K extends keyof T, OK>(m: Map<OK, T>, k: K) =>
7
+ createMap(
8
+ Array.from(m.entries()),
9
+ ([k]) => k,
10
+ ([, v]) => v[k],
11
+ );
12
+
13
+ export const mergeMap = <T, K>(m: Map<K, T>, o: [K, T][]) =>
14
+ createMap(
15
+ Array.from(m.entries()).concat(o),
16
+ ([k]) => k,
17
+ ([, v]) => v,
18
+ );
19
+
20
+ export const filterBy = <T, K extends keyof T, V>(a: T[], k: K, v: V) =>
21
+ a.filter((a) => a[k] === v);
22
+
23
+ export const findBy = <T, K extends keyof T, V>(a: T[], k: K, v: V) =>
24
+ a.find((a) => a[k] === v);
25
+
26
+ export const groupBy = <T, K>(items: T[], key: (item: T) => K) => {
27
+ const groupedItems = new Map<K, T[]>();
28
+ items.forEach((item) => {
29
+ const keyValue = typeof key === 'function' ? key(item) : item[key];
30
+ if (!keyValue) return;
31
+ if (!groupedItems.has(keyValue)) {
32
+ groupedItems.set(keyValue, [] as T[]);
33
+ }
34
+ groupedItems.get(keyValue)?.push(item);
35
+ });
36
+ return groupedItems;
37
+ };
38
+
39
+ /* eslint-enable @typescript-eslint/no-shadow */