@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 +1 -1
- package/dist/rest/helpers/constants.js +1 -1
- package/dist/rest/helpers/constants.js.map +1 -1
- package/dist/trading-api-types.js.map +1 -1
- package/dist/types/trading-api-types.d.ts +11 -0
- package/dist/types/trading-api-types.d.ts.map +1 -1
- package/dist/types/utils/calculate.d.ts +95 -0
- package/dist/types/utils/calculate.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/index.d.ts.map +1 -1
- package/dist/types/utils/sbt-helpers.d.ts +2 -1
- package/dist/types/utils/sbt-helpers.d.ts.map +1 -1
- package/dist/types/utils/struct.d.ts +7 -0
- package/dist/types/utils/struct.d.ts.map +1 -0
- package/dist/utils/calculate.js +161 -0
- package/dist/utils/calculate.js.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/sbt-helpers.js +10 -4
- package/dist/utils/sbt-helpers.js.map +1 -1
- package/dist/utils/struct.js +53 -0
- package/dist/utils/struct.js.map +1 -0
- package/package.json +2 -2
- package/src/rest/helpers/constants.ts +1 -1
- package/src/trading-api-types.ts +11 -0
- package/src/utils/calculate.ts +310 -0
- package/src/utils/index.ts +2 -0
- package/src/utils/sbt-helpers.ts +14 -2
- package/src/utils/struct.ts +39 -0
package/README.md
CHANGED
|
@@ -6,5 +6,5 @@
|
|
|
6
6
|
|
|
7
7
|
| Statements | Branches | Functions | Lines |
|
|
8
8
|
| --------------------------- | ----------------------- | ------------------------- | ----------------- |
|
|
9
|
-
|  |  |  |  |
|
|
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:
|
|
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:
|
|
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 +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
|
|
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,
|
|
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"]}
|
package/dist/utils/index.js
CHANGED
|
@@ -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);
|
package/dist/utils/index.js.map
CHANGED
|
@@ -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
|
-
|
|
12
|
-
|
|
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,
|
|
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.
|
|
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": "
|
|
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:
|
|
17
|
+
apiEndpoint: 'http://localhost:8000',
|
|
18
18
|
webSocketEndpoint: 'ws://localhost:8080',
|
|
19
19
|
environment: 'local',
|
|
20
20
|
timeout: API_TIMEOUT,
|
package/src/trading-api-types.ts
CHANGED
|
@@ -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
|
+
};
|
package/src/utils/index.ts
CHANGED
package/src/utils/sbt-helpers.ts
CHANGED
|
@@ -8,8 +8,20 @@ export const SBT_ROOT: Record<ReyaChainId, string> = {
|
|
|
8
8
|
'0x01f4d29a3aca5cb40663851d2d40d605636dd6448f251d77765dd0e40c422136',
|
|
9
9
|
};
|
|
10
10
|
|
|
11
|
-
export const
|
|
12
|
-
|
|
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 */
|