@1stdex/first-sdk 1.0.92-beta.2 → 1.0.92-beta.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/dist/cjs/entities/book/apis/index.js +79 -80
  2. package/dist/cjs/entities/book/apis/index.js.map +1 -1
  3. package/dist/cjs/entities/book/apis/position.js +3 -47
  4. package/dist/cjs/entities/book/apis/position.js.map +1 -1
  5. package/dist/cjs/entities/market/apis/index.js +2 -2
  6. package/dist/cjs/entities/market/apis/index.js.map +1 -1
  7. package/dist/cjs/views/book.js +32 -13
  8. package/dist/cjs/views/book.js.map +1 -1
  9. package/dist/cjs/views/index.js +2 -4
  10. package/dist/cjs/views/index.js.map +1 -1
  11. package/dist/esm/entities/book/apis/index.js +79 -78
  12. package/dist/esm/entities/book/apis/index.js.map +1 -1
  13. package/dist/esm/entities/book/apis/position.js +1 -60
  14. package/dist/esm/entities/book/apis/position.js.map +1 -1
  15. package/dist/esm/entities/market/apis/index.js +2 -2
  16. package/dist/esm/entities/market/apis/index.js.map +1 -1
  17. package/dist/esm/views/book.js +45 -61
  18. package/dist/esm/views/book.js.map +1 -1
  19. package/dist/esm/views/index.js +1 -1
  20. package/dist/esm/views/index.js.map +1 -1
  21. package/dist/tsconfig.build.tsbuildinfo +1 -1
  22. package/dist/types/entities/book/apis/index.d.ts +2 -9
  23. package/dist/types/entities/book/apis/index.d.ts.map +1 -1
  24. package/dist/types/entities/book/apis/position.d.ts +0 -9
  25. package/dist/types/entities/book/apis/position.d.ts.map +1 -1
  26. package/dist/types/entities/market/apis/index.d.ts.map +1 -1
  27. package/dist/types/views/book.d.ts +18 -72
  28. package/dist/types/views/book.d.ts.map +1 -1
  29. package/dist/types/views/index.d.ts +1 -1
  30. package/dist/types/views/index.d.ts.map +1 -1
  31. package/package.json +1 -1
@@ -1,11 +1,7 @@
1
1
  import { getAddress, isAddressEqual } from 'viem';
2
- import BigNumber from 'bignumber.js';
3
2
  import { Subgraph } from '../../../constants/chain-configs/subgraph';
4
- import { quoteToBase, baseToQuote } from '../../../utils';
3
+ import { quoteToBase } from '../../../utils';
5
4
  import { getMarketId } from '../../market/utils/market-id';
6
- BigNumber.config({
7
- DECIMAL_PLACES: 100,
8
- });
9
5
  export const fetchBookPositionValue = async ({ chainId, bookId, tick, units, }) => {
10
6
  // Fetch book data from subgraph
11
7
  const { data: { book }, } = await Subgraph.get(chainId, 'getBookForPositionValue', 'query getBookForPositionValue($bookId: ID!) { book(id: $bookId) { id unitSize base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } } }', {
@@ -55,59 +51,4 @@ export const fetchBookPositionValue = async ({ chainId, bookId, tick, units, })
55
51
  usdValue,
56
52
  };
57
53
  };
58
- export const fetchBookUnitsFromUsdValue = async ({ chainId, bookId, tick, usdValue, }) => {
59
- // Fetch book data from subgraph
60
- const { data: { book }, } = await Subgraph.get(chainId, 'getBookForPositionValue', 'query getBookForPositionValue($bookId: ID!) { book(id: $bookId) { id unitSize base { id name symbol decimals priceUSD } quote { id name symbol decimals priceUSD } } }', {
61
- bookId: bookId.toString(),
62
- });
63
- if (!book) {
64
- throw new Error(`Book not found: ${bookId}`);
65
- }
66
- const baseAddress = getAddress(book.base.id);
67
- const quoteAddress = getAddress(book.quote.id);
68
- const unitSize = BigInt(book.unitSize);
69
- // Determine market quote token
70
- const { quoteTokenAddress: marketQuoteAddress } = getMarketId(chainId, [
71
- baseAddress,
72
- quoteAddress,
73
- ]);
74
- // Check if this is a bid book (book.quote == marketQuote) or ask book (book.base == marketQuote)
75
- const isBidBook = isAddressEqual(quoteAddress, marketQuoteAddress);
76
- let units;
77
- let bookType;
78
- if (isBidBook) {
79
- // Bid book: buying base with quote
80
- // book.quote = market.quote, book.base = market.base
81
- // Reverse: USD value -> base amount -> quote amount -> units
82
- // USD value -> base amount
83
- const baseAmount = new BigNumber(usdValue).div(book.base.priceUSD);
84
- // Convert to raw base amount
85
- const totalBaseAmount = baseAmount
86
- .times(new BigNumber(10).pow(Number(book.base.decimals)))
87
- .integerValue(BigNumber.ROUND_DOWN);
88
- // Convert base to quote using the tick price
89
- const totalQuoteAmount = baseToQuote(tick, BigInt(totalBaseAmount.toFixed()), false);
90
- // Divide by unitSize to get units
91
- units = totalQuoteAmount / unitSize;
92
- bookType = 'bids';
93
- }
94
- else {
95
- // Ask book: selling base for quote
96
- // book.quote = market.base, book.base = market.quote (swapped!)
97
- // Reverse: USD value -> base amount (book.quote is market.base) -> units
98
- // USD value -> base amount (book.quote is market.base)
99
- const baseAmount = new BigNumber(usdValue).div(book.quote.priceUSD);
100
- // Convert to raw base amount (book.quote is market.base)
101
- const totalBaseAmount = baseAmount
102
- .times(new BigNumber(10).pow(Number(book.quote.decimals)))
103
- .integerValue(BigNumber.ROUND_DOWN);
104
- // Divide by unitSize to get units
105
- units = BigInt(totalBaseAmount.toFixed()) / unitSize;
106
- bookType = 'asks';
107
- }
108
- return {
109
- bookType,
110
- units,
111
- };
112
- };
113
54
  //# sourceMappingURL=position.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/position.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"position.js","sourceRoot":"","sources":["../../../../../src/entities/book/apis/position.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAE3D,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAAE,EAC3C,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,GAMN,EAA4D,EAAE;IAC7D,gCAAgC;IAChC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,GACf,GAAG,MAAM,QAAQ,CAAC,GAAG,CAsBpB,OAAO,EACP,yBAAyB,EACzB,wKAAwK,EACxK;QACE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;KAC1B,CACF,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,YAAY,GAAG,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/C,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvC,+BAA+B;IAC/B,MAAM,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE;QACrE,WAAW;QACX,YAAY;KACb,CAAC,CAAC;IAEH,iGAAiG;IACjG,MAAM,SAAS,GAAG,cAAc,CAAC,YAAY,EAAE,kBAAkB,CAAC,CAAC;IAEnE,IAAI,QAAgB,CAAC;IACrB,IAAI,QAAyB,CAAC;IAE9B,IAAI,SAAS,EAAE,CAAC;QACd,mCAAmC;QACnC,qDAAqD;QACrD,wDAAwD;QACxD,MAAM,gBAAgB,GAAG,KAAK,GAAG,QAAQ,CAAC;QAE1C,6CAA6C;QAC7C,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,CAAC,CAAC;QAEnE,wCAAwC;QACxC,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAC9D,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAClD,CAAC;QAEF,2CAA2C;QAC3C,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC1D,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,mCAAmC;QACnC,gEAAgE;QAChE,wEAAwE;QACxE,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;QAEzC,oEAAoE;QACpE,MAAM,UAAU,GAAG,IAAI,SAAS,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG,CAC9D,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CACnD,CAAC;QAEF,uEAAuE;QACvE,QAAQ,GAAG,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC;QAC3D,QAAQ,GAAG,MAAM,CAAC;IACpB,CAAC;IAED,OAAO;QACL,QAAQ;QACR,QAAQ;KACT,CAAC;AACJ,CAAC,CAAC"}
@@ -16,8 +16,8 @@ export async function fetchMarket(publicClient, chainId, tokenAddresses, useSubg
16
16
  currencyMap[baseTokenAddress],
17
17
  ];
18
18
  const [bidBook, askBook] = await Promise.all([
19
- fetchBook(publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph),
20
- fetchBook(publicClient, chainId, baseCurrency, quoteCurrency, useSubgraph),
19
+ fetchBook(publicClient, chainId, quoteCurrency, baseCurrency, useSubgraph, true),
20
+ fetchBook(publicClient, chainId, baseCurrency, quoteCurrency, useSubgraph, true),
21
21
  ]);
22
22
  return new MarketModel({
23
23
  chainId,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/market/apis/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAA0B,EAC1B,OAAkB,EAClB,cAA+B,EAC/B,WAAoB;IAEpB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE;QACnE,cAAc,CAAC,CAAC,CAAE;QAClB,cAAc,CAAC,CAAC,CAAE;KACnB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,gBAAgB,CACxC,YAAY,EACZ,OAAO,EACP,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EACrC,WAAW,CACZ,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG;QACpC,WAAW,CAAC,iBAAiB,CAAC;QAC9B,WAAW,CAAC,gBAAgB,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,CAAC;QAC1E,SAAS,CAAC,YAAY,EAAE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,WAAW,CAAC;KAC3E,CAAC,CAAC;IAEH,OAAO,IAAI,WAAW,CAAC;QACrB,OAAO;QACP,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;QACrC,OAAO;QACP,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/market/apis/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,YAA0B,EAC1B,OAAkB,EAClB,cAA+B,EAC/B,WAAoB;IAEpB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACxC,CAAC;IAED,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE;QACnE,cAAc,CAAC,CAAC,CAAE;QAClB,cAAc,CAAC,CAAC,CAAE;KACnB,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,MAAM,gBAAgB,CACxC,YAAY,EACZ,OAAO,EACP,CAAC,iBAAiB,EAAE,gBAAgB,CAAC,EACrC,WAAW,CACZ,CAAC;IACF,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,GAAG;QACpC,WAAW,CAAC,iBAAiB,CAAC;QAC9B,WAAW,CAAC,gBAAgB,CAAC;KAC9B,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QAC3C,SAAS,CACP,YAAY,EACZ,OAAO,EACP,aAAa,EACb,YAAY,EACZ,WAAW,EACX,IAAI,CACL;QACD,SAAS,CACP,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,WAAW,EACX,IAAI,CACL;KACF,CAAC,CAAC;IAEH,OAAO,IAAI,WAAW,CAAC;QACrB,OAAO;QACP,MAAM,EAAE,CAAC,aAAa,EAAE,YAAY,CAAC;QACrC,OAAO;QACP,OAAO;KACR,CAAC,CAAC;AACL,CAAC"}
@@ -1,76 +1,60 @@
1
- import { fetchBookPositionValue, fetchBookUnitsFromUsdValue, fetchBookTokens, } from '../entities/book/apis';
1
+ import { Subgraph } from '../constants/chain-configs/subgraph';
2
+ import { quoteToBase } from '../utils';
2
3
  /**
3
- * Gets the USD value for a book position at a specific tick with given units.
4
+ * Gets trade information for a specific book, tick and quote units.
4
5
  *
5
6
  * @param {CHAIN_IDS} chainId - chain id from {@link CHAIN_IDS}
6
7
  * @param {string} bookId - The book ID as a string
7
- * @param {bigint} tick - The tick for the order
8
- * @param {bigint} units - The number of units
8
+ * @param {bigint} tick - The tick for the trade
9
+ * @param {bigint} quoteUnits - The number of quote units
9
10
  *
10
- * @returns {Promise<{ bookType: 'bids' | 'asks'; usdValue: string }>} An object containing:
11
- * - bookType: 'bids' for bid books, 'asks' for ask books
12
- * - usdValue: The USD value of the position as a string
11
+ * @returns {Promise<{ quoteCurrency: Currency; quoteAmount: bigint; baseCurrency: Currency; baseAmount: bigint }>} An object containing:
12
+ * - quoteCurrency: The quote currency information
13
+ * - quoteAmount: The raw quote token amount
14
+ * - baseCurrency: The base currency information
15
+ * - baseAmount: The raw base token amount
13
16
  *
14
17
  * @example
15
- * import { getBookPositionValue } from '@1stdex/first-sdk'
18
+ * import { getTradeInfo } from '@1stdex/first-sdk'
16
19
  *
17
- * const result = await getBookPositionValue({
20
+ * const result = await getTradeInfo({
18
21
  * chainId: 421614,
19
22
  * bookId: '123456789',
20
23
  * tick: 1000n,
21
- * units: 5n,
24
+ * quoteUnits: 5n,
22
25
  * })
23
- * // returns { bookType: 'bids', usdValue: '1234.56' }
26
+ * // returns { quoteCurrency, quoteAmount, baseCurrency, baseAmount }
24
27
  */
25
- export const getBookPositionValue = async ({ chainId, bookId, tick, units, }) => {
26
- return fetchBookPositionValue({ chainId, bookId, tick, units });
27
- };
28
- /**
29
- * Gets the token units needed for a book position at a specific tick to achieve a target USD value.
30
- *
31
- * @param {CHAIN_IDS} chainId - chain id from {@link CHAIN_IDS}
32
- * @param {string} bookId - The book ID as a string
33
- * @param {bigint} tick - The tick for the order
34
- * @param {string} usdValue - The target USD value as a string
35
- *
36
- * @returns {Promise<{ bookType: 'bids' | 'asks'; units: bigint }>} An object containing:
37
- * - bookType: 'bids' for bid books, 'asks' for ask books
38
- * - units: The number of units needed to achieve the target USD value
39
- *
40
- * @example
41
- * import { getBookUnitsFromUsdValue } from '@1stdex/first-sdk'
42
- *
43
- * const result = await getBookUnitsFromUsdValue({
44
- * chainId: 421614,
45
- * bookId: '123456789',
46
- * tick: 1000n,
47
- * usdValue: '1234.56',
48
- * })
49
- * // returns { bookType: 'bids', units: 5n }
50
- */
51
- export const getBookUnitsFromUsdValue = async ({ chainId, bookId, tick, usdValue, }) => {
52
- return fetchBookUnitsFromUsdValue({ chainId, bookId, tick, usdValue });
53
- };
54
- /**
55
- * Gets the quote and base tokens for a book.
56
- *
57
- * @param {CHAIN_IDS} chainId - chain id from {@link CHAIN_IDS}
58
- * @param {string} bookId - The book ID as a string
59
- *
60
- * @returns {Promise<{ quote: Currency; base: Currency }>} An object containing:
61
- * - quote: The quote token currency details
62
- * - base: The base token currency details
63
- *
64
- * @example
65
- * import { getBookTokens } from '@1stdex/first-sdk'
66
- *
67
- * const result = await getBookTokens({
68
- * chainId: 421614,
69
- * bookId: '123456789',
70
- * })
71
- * // returns { quote: { address: '0x...', name: 'USDC', symbol: 'USDC', decimals: 6 }, base: { address: '0x...', name: 'Wrapped Ether', symbol: 'WETH', decimals: 18 } }
72
- */
73
- export const getBookTokens = async ({ chainId, bookId, }) => {
74
- return fetchBookTokens({ chainId, bookId });
28
+ export const getTradeInfo = async ({ chainId, bookId, tick, quoteUnits, }) => {
29
+ // Fetch book data from subgraph
30
+ const { data: { book }, } = await Subgraph.get(chainId, 'getTradeInfo', 'query getTradeInfo($bookId: ID!) { book(id: $bookId) { id unitSize base { id name symbol decimals } quote { id name symbol decimals } } }', {
31
+ bookId: bookId.toString(),
32
+ });
33
+ if (!book) {
34
+ throw new Error(`Book not found: ${bookId}`);
35
+ }
36
+ const unitSize = BigInt(book.unitSize);
37
+ // Calculate amounts
38
+ const quoteAmount = quoteUnits * unitSize;
39
+ const baseAmount = quoteToBase(tick, quoteAmount, false);
40
+ // Build currency objects
41
+ const quoteCurrency = {
42
+ address: book.quote.id,
43
+ name: book.quote.name,
44
+ symbol: book.quote.symbol,
45
+ decimals: Number(book.quote.decimals),
46
+ };
47
+ const baseCurrency = {
48
+ address: book.base.id,
49
+ name: book.base.name,
50
+ symbol: book.base.symbol,
51
+ decimals: Number(book.base.decimals),
52
+ };
53
+ return {
54
+ quoteCurrency,
55
+ quoteAmount,
56
+ baseCurrency,
57
+ baseAmount,
58
+ };
75
59
  };
76
60
  //# sourceMappingURL=book.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"book.js","sourceRoot":"","sources":["../../../src/views/book.ts"],"names":[],"mappings":"AACA,OAAO,EACL,sBAAsB,EACtB,0BAA0B,EAC1B,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAG/B;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,KAAK,EAAE,EACzC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,KAAK,GAMN,EAA4D,EAAE;IAC7D,OAAO,sBAAsB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAClE,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,EAAE,EAC7C,OAAO,EACP,MAAM,EACN,IAAI,EACJ,QAAQ,GAMT,EAAyD,EAAE;IAC1D,OAAO,0BAA0B,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;AACzE,CAAC,CAAC;AAEF;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,EAAE,EAClC,OAAO,EACP,MAAM,GAIP,EAAgD,EAAE;IACjD,OAAO,eAAe,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9C,CAAC,CAAC"}
1
+ {"version":3,"file":"book.js","sourceRoot":"","sources":["../../../src/views/book.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,KAAK,EAAE,EACjC,OAAO,EACP,MAAM,EACN,IAAI,EACJ,UAAU,GAMX,EAKE,EAAE;IACH,gCAAgC;IAChC,MAAM,EACJ,IAAI,EAAE,EAAE,IAAI,EAAE,GACf,GAAG,MAAM,QAAQ,CAAC,GAAG,CAoBpB,OAAO,EACP,cAAc,EACd,2IAA2I,EAC3I;QACE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;KAC1B,CACF,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEvC,oBAAoB;IACpB,MAAM,WAAW,GAAG,UAAU,GAAG,QAAQ,CAAC;IAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAEzD,yBAAyB;IACzB,MAAM,aAAa,GAAa;QAC9B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,EAAmB;QACvC,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;QACrB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;QACzB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KACtC,CAAC;IAEF,MAAM,YAAY,GAAa;QAC7B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,EAAmB;QACtC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI;QACpB,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM;QACxB,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;KACrC,CAAC;IAEF,OAAO;QACL,aAAa;QACb,WAAW;QACX,YAAY;QACZ,UAAU;KACX,CAAC;AACJ,CAAC,CAAC"}
@@ -8,7 +8,7 @@ export { getProtocolAnalytics, getUserDailyVolumes, getTopUsersByNativeVolume, g
8
8
  export { getVault } from './vault';
9
9
  export { getTradingBalance, getPortfolioBalance, getAllBalances, getRealTokenBalance, } from './balance';
10
10
  export { checkTokenAllowances, needsVaultDeposit, getOrderSetupStatus, } from './setup';
11
- export { getBookPositionValue, getBookUnitsFromUsdValue, getBookTokens, } from './book';
11
+ export { getTradeInfo } from './book';
12
12
  export { getOrder, getOrderPositionValue } from './order';
13
13
  export { getTradeHistory } from './trade-history';
14
14
  export { getUserVolumeUSD } from './user-volume';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,oBAAoB,EACpB,wBAAwB,EACxB,aAAa,GACd,MAAM,QAAQ,CAAC;AAChB,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/views/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,iBAAiB,EACjB,aAAa,EACb,4BAA4B,EAC5B,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EACL,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,mBAAmB,EACnB,sBAAsB,EACtB,gBAAgB,GACjB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACjD,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,mBAAmB,EACnB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,mBAAmB,GACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,+BAA+B,EAAE,MAAM,cAAc,CAAC"}