@1stdex/first-sdk 1.0.92-beta.3 → 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 -30
  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 +0 -30
  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 +17 -71
  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
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,30 +51,4 @@ export const fetchBookPositionValue = async ({ chainId, bookId, tick, units, })
55
51
  usdValue,
56
52
  };
57
53
  };
58
- export const fetchBaseFromQuoteAmount = async ({ chainId, bookId, tick, quoteAmount, }) => {
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
- // Determine market quote token
69
- const { quoteTokenAddress: marketQuoteAddress } = getMarketId(chainId, [
70
- baseAddress,
71
- quoteAddress,
72
- ]);
73
- // Check if this is a bid book (book.quote == marketQuote) or ask book (book.base == marketQuote)
74
- const isBidBook = isAddressEqual(quoteAddress, marketQuoteAddress);
75
- const bookType = isBidBook ? 'bids' : 'asks';
76
- const totalQuoteAmount = BigInt(quoteAmount) * BigInt(book.unitSize);
77
- // For ask books, invert the tick first (same as market display logic)
78
- const baseAmount = quoteToBase(tick, totalQuoteAmount, false);
79
- return {
80
- bookType,
81
- baseAmount,
82
- };
83
- };
84
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, fetchBaseFromQuoteAmount, 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
- * Converts base token amount to quote token amount at a specific tick price.
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 conversion
34
- * @param {string} baseAmount - The base token amount (raw) as a string
35
- *
36
- * @returns {Promise<{ bookType: 'bids' | 'asks'; quoteAmount: bigint }>} An object containing:
37
- * - bookType: 'bids' for bid books, 'asks' for ask books
38
- * - quoteAmount: The quote token amount at the given tick price
39
- *
40
- * @example
41
- * import { getQuoteFromBaseAmount } from '@1stdex/first-sdk'
42
- *
43
- * const result = await getQuoteFromBaseAmount({
44
- * chainId: 421614,
45
- * bookId: '123456789',
46
- * tick: -283255n,
47
- * baseAmount: '970871980108393703474280',
48
- * })
49
- * // returns { bookType: 'bids', quoteAmount: 485477000000n }
50
- */
51
- export const getBaseFromQuoteAmount = async ({ chainId, bookId, tick, quoteAmount, }) => {
52
- return fetchBaseFromQuoteAmount({ chainId, bookId, tick, quoteAmount });
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,wBAAwB,EACxB,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,sBAAsB,GAAG,KAAK,EAAE,EAC3C,OAAO,EACP,MAAM,EACN,IAAI,EACJ,WAAW,GAMZ,EAA8D,EAAE;IAC/D,OAAO,wBAAwB,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC1E,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, getBaseFromQuoteAmount, 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,sBAAsB,EACtB,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"}