@1stdex/first-sdk 1.0.76 → 1.0.78

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.
@@ -11,8 +11,36 @@ const toCurrency = (currencyDto) => ({
11
11
  decimals: Number(currencyDto.decimals),
12
12
  });
13
13
  const toTrade = (chainId, tradeDto) => {
14
- const inputCurrency = toCurrency(tradeDto.inputToken);
15
- const outputCurrency = toCurrency(tradeDto.outputToken);
14
+ let inputCurrency;
15
+ let outputCurrency;
16
+ let inputAmount;
17
+ let outputAmount;
18
+ let usdAmount;
19
+ if ('inputToken' in tradeDto) {
20
+ inputCurrency = toCurrency(tradeDto.inputToken);
21
+ outputCurrency = toCurrency(tradeDto.outputToken);
22
+ inputAmount = tradeDto.inputAmount;
23
+ outputAmount = tradeDto.outputAmount;
24
+ usdAmount = tradeDto.amountUSD;
25
+ }
26
+ else {
27
+ const isBid = BigInt(tradeDto.tick) < 0n;
28
+ const quote = toCurrency(tradeDto.quote);
29
+ const base = toCurrency(tradeDto.base);
30
+ if (isBid) {
31
+ inputCurrency = quote;
32
+ outputCurrency = base;
33
+ inputAmount = tradeDto.claimedQuoteAmount;
34
+ outputAmount = tradeDto.claimedBaseAmount;
35
+ }
36
+ else {
37
+ inputCurrency = base;
38
+ outputCurrency = quote;
39
+ inputAmount = tradeDto.claimedBaseAmount;
40
+ outputAmount = tradeDto.claimedQuoteAmount;
41
+ }
42
+ usdAmount = tradeDto.claimedAmountUSD;
43
+ }
16
44
  const quote = toCurrency(tradeDto.book.quote);
17
45
  const base = toCurrency(tradeDto.book.base);
18
46
  const { quoteTokenAddress } = (0, market_id_1.getMarketId)(chainId, [
@@ -23,26 +51,31 @@ const toTrade = (chainId, tradeDto) => {
23
51
  return {
24
52
  id: tradeDto.id,
25
53
  type: isBuy ? 'buy' : 'sell',
26
- usdAmount: tradeDto.amountUSD,
54
+ usdAmount,
27
55
  spent: {
28
56
  currency: inputCurrency,
29
- amount: (0, viem_1.formatUnits)(BigInt(tradeDto.inputAmount), inputCurrency.decimals),
57
+ amount: (0, viem_1.formatUnits)(BigInt(inputAmount), inputCurrency.decimals),
30
58
  direction: 'out',
31
59
  },
32
60
  taken: {
33
61
  currency: outputCurrency,
34
- amount: (0, viem_1.formatUnits)(BigInt(tradeDto.outputAmount), outputCurrency.decimals),
62
+ amount: (0, viem_1.formatUnits)(BigInt(outputAmount), outputCurrency.decimals),
35
63
  direction: 'in',
36
64
  },
37
65
  timestamp: Number(tradeDto.timestamp),
38
66
  txHash: tradeDto.transaction.id,
67
+ logIndex: Number(tradeDto.logIndex),
68
+ bookId: tradeDto.book.id,
39
69
  };
40
70
  };
41
71
  async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
42
72
  const limit = options?.limit || 50;
43
73
  const cursor = options?.cursor;
44
74
  let whereClause;
45
- const baseFilters = [`{trader: "${userAddress.toLowerCase()}"}`];
75
+ const baseFilters = [];
76
+ if (userAddress) {
77
+ baseFilters.push(`{trader: "${userAddress.toLowerCase()}"}`);
78
+ }
46
79
  if (cursor) {
47
80
  baseFilters.push(`{timestamp_lt: "${cursor}"}`);
48
81
  }
@@ -52,15 +85,15 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
52
85
  .map((addr) => `{inputToken: "${addr}"}, {outputToken: "${addr}"}`)
53
86
  .join(', ');
54
87
  baseFilters.push(`{or: [${tokenFilterConditions}]}`);
55
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
88
+ }
89
+ if (baseFilters.length === 0) {
90
+ whereClause = '{}';
91
+ }
92
+ else if (baseFilters.length === 1) {
93
+ whereClause = baseFilters[0];
56
94
  }
57
95
  else {
58
- if (baseFilters.length > 1) {
59
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
60
- }
61
- else {
62
- whereClause = baseFilters[0];
63
- }
96
+ whereClause = `{and: [${baseFilters.join(', ')}]}`;
64
97
  }
65
98
  const fetchLimit = limit + 1;
66
99
  const query = `
@@ -73,6 +106,7 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
73
106
  ) {
74
107
  id
75
108
  timestamp
109
+ logIndex
76
110
  transaction { id }
77
111
  book {
78
112
  id
@@ -86,7 +120,7 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
86
120
  amountUSD
87
121
  type
88
122
  }
89
- makerFills(
123
+ claims(
90
124
  where: ${whereClause}
91
125
  orderBy: timestamp
92
126
  orderDirection: desc
@@ -94,23 +128,33 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
94
128
  ) {
95
129
  id
96
130
  timestamp
131
+ logIndex
97
132
  transaction { id }
98
133
  book {
99
134
  id
100
135
  quote { id name symbol decimals }
101
136
  base { id name symbol decimals }
102
137
  }
103
- inputToken { id name symbol decimals }
104
- outputToken { id name symbol decimals }
105
- inputAmount
106
- outputAmount
107
- amountUSD
138
+ quote { id name symbol decimals }
139
+ base { id name symbol decimals }
140
+ trader
141
+ tick
142
+ claimedBaseAmount
143
+ claimedQuoteAmount
144
+ claimedAmountUSD
108
145
  type
109
146
  }
110
147
  }
111
148
  `;
112
- const { data: { takes, makerFills }, } = await subgraph_1.Subgraph.get(chainId, 'getTradeHistory', query, {});
113
- const allTrades = [...takes, ...makerFills].sort((a, b) => Number(b.timestamp) - Number(a.timestamp));
149
+ const response = await subgraph_1.Subgraph.get(chainId, 'getTradeHistory', query, {});
150
+ if (response.errors) {
151
+ throw new Error(`Subgraph query failed: ${response.errors.map((e) => e.message).join(', ')}`);
152
+ }
153
+ if (!response.data) {
154
+ throw new Error('Subgraph returned no data');
155
+ }
156
+ const { takes, claims } = response.data;
157
+ const allTrades = [...takes, ...claims].sort((a, b) => Number(b.timestamp) - Number(a.timestamp));
114
158
  const hasNextPage = allTrades.length > limit;
115
159
  const trades = allTrades.slice(0, limit);
116
160
  const endCursor = trades.length > 0 ? trades[trades.length - 1].timestamp : null;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/trade/apis/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/trade/apis/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"trade-history.js","sourceRoot":"","sources":["../../../src/views/trade-history.ts"],"names":[],"mappings":";;;AAEA,iDAAuE;AAiChE,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,OAAO,EACP,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,GAOP,EAA+B,EAAE;IAChC,OAAO,IAAA,oCAA6B,EAAC,OAAO,EAAE,WAAW,EAAE;QACzD,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,KAAK;QACL,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B"}
1
+ {"version":3,"file":"trade-history.js","sourceRoot":"","sources":["../../../src/views/trade-history.ts"],"names":[],"mappings":";;;AAEA,iDAAuE;AAsChE,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,OAAO,EACP,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,GAOP,EAA+B,EAAE;IAChC,OAAO,IAAA,oCAA6B,EAAC,OAAO,EAAE,WAAW,EAAE;QACzD,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,KAAK;QACL,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC;AAlBW,QAAA,eAAe,mBAkB1B"}
@@ -8,8 +8,42 @@ const toCurrency = (currencyDto) => ({
8
8
  decimals: Number(currencyDto.decimals),
9
9
  });
10
10
  const toTrade = (chainId, tradeDto) => {
11
- const inputCurrency = toCurrency(tradeDto.inputToken);
12
- const outputCurrency = toCurrency(tradeDto.outputToken);
11
+ let inputCurrency;
12
+ let outputCurrency;
13
+ let inputAmount;
14
+ let outputAmount;
15
+ let usdAmount;
16
+ // Check if it's a Take or a Claim
17
+ if ('inputToken' in tradeDto) {
18
+ // Take entity
19
+ inputCurrency = toCurrency(tradeDto.inputToken);
20
+ outputCurrency = toCurrency(tradeDto.outputToken);
21
+ inputAmount = tradeDto.inputAmount;
22
+ outputAmount = tradeDto.outputAmount;
23
+ usdAmount = tradeDto.amountUSD;
24
+ }
25
+ else {
26
+ // Claim entity
27
+ // For claims: tick < 0 means bid (buy), tick >= 0 means ask (sell)
28
+ const isBid = BigInt(tradeDto.tick) < 0n;
29
+ const quote = toCurrency(tradeDto.quote);
30
+ const base = toCurrency(tradeDto.base);
31
+ if (isBid) {
32
+ // Bid order claim: spent quote, received base
33
+ inputCurrency = quote;
34
+ outputCurrency = base;
35
+ inputAmount = tradeDto.claimedQuoteAmount;
36
+ outputAmount = tradeDto.claimedBaseAmount;
37
+ }
38
+ else {
39
+ // Ask order claim: spent base, received quote
40
+ inputCurrency = base;
41
+ outputCurrency = quote;
42
+ inputAmount = tradeDto.claimedBaseAmount;
43
+ outputAmount = tradeDto.claimedQuoteAmount;
44
+ }
45
+ usdAmount = tradeDto.claimedAmountUSD;
46
+ }
13
47
  const quote = toCurrency(tradeDto.book.quote);
14
48
  const base = toCurrency(tradeDto.book.base);
15
49
  // Determine the market's quote token
@@ -24,25 +58,27 @@ const toTrade = (chainId, tradeDto) => {
24
58
  return {
25
59
  id: tradeDto.id,
26
60
  type: isBuy ? 'buy' : 'sell',
27
- usdAmount: tradeDto.amountUSD,
61
+ usdAmount,
28
62
  spent: {
29
63
  currency: inputCurrency,
30
- amount: formatUnits(BigInt(tradeDto.inputAmount), inputCurrency.decimals),
64
+ amount: formatUnits(BigInt(inputAmount), inputCurrency.decimals),
31
65
  direction: 'out',
32
66
  },
33
67
  taken: {
34
68
  currency: outputCurrency,
35
- amount: formatUnits(BigInt(tradeDto.outputAmount), outputCurrency.decimals),
69
+ amount: formatUnits(BigInt(outputAmount), outputCurrency.decimals),
36
70
  direction: 'in',
37
71
  },
38
72
  timestamp: Number(tradeDto.timestamp),
39
73
  txHash: tradeDto.transaction.id,
74
+ logIndex: Number(tradeDto.logIndex),
75
+ bookId: tradeDto.book.id,
40
76
  };
41
77
  };
42
78
  /**
43
- * Fetch trade history for a user from the subgraph
79
+ * Fetch trade history from the subgraph
44
80
  * @param chainId - chain id from {@link CHAIN_IDS}
45
- * @param userAddress - The Ethereum address of the user
81
+ * @param userAddress - Optional. The Ethereum address of the user. If provided, only returns trades for this user.
46
82
  * @param options - Optional parameters for filtering and pagination
47
83
  * @returns Trade history with pagination info
48
84
  */
@@ -51,7 +87,10 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
51
87
  const cursor = options?.cursor;
52
88
  // Build the where clause
53
89
  let whereClause;
54
- const baseFilters = [`{trader: "${userAddress.toLowerCase()}"}`];
90
+ const baseFilters = [];
91
+ if (userAddress) {
92
+ baseFilters.push(`{trader: "${userAddress.toLowerCase()}"}`);
93
+ }
55
94
  if (cursor) {
56
95
  baseFilters.push(`{timestamp_lt: "${cursor}"}`);
57
96
  }
@@ -63,18 +102,18 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
63
102
  .join(', ');
64
103
  // Combine base filters with token filter using 'and'
65
104
  baseFilters.push(`{or: [${tokenFilterConditions}]}`);
66
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
105
+ }
106
+ // Build the final where clause
107
+ if (baseFilters.length === 0) {
108
+ whereClause = '{}';
109
+ }
110
+ else if (baseFilters.length === 1) {
111
+ whereClause = baseFilters[0];
67
112
  }
68
113
  else {
69
- // If no token filter, combine base filters with 'and' if multiple, or use single filter
70
- if (baseFilters.length > 1) {
71
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
72
- }
73
- else {
74
- whereClause = baseFilters[0];
75
- }
114
+ whereClause = `{and: [${baseFilters.join(', ')}]}`;
76
115
  }
77
- // Query both takes and makerFills
116
+ // Query both takes and claims
78
117
  // Note: We need to fetch more than limit to properly sort and paginate
79
118
  const fetchLimit = limit + 1; // Fetch one extra to determine hasNextPage
80
119
  const query = `
@@ -87,6 +126,7 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
87
126
  ) {
88
127
  id
89
128
  timestamp
129
+ logIndex
90
130
  transaction { id }
91
131
  book {
92
132
  id
@@ -100,7 +140,7 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
100
140
  amountUSD
101
141
  type
102
142
  }
103
- makerFills(
143
+ claims(
104
144
  where: ${whereClause}
105
145
  orderBy: timestamp
106
146
  orderDirection: desc
@@ -108,24 +148,34 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
108
148
  ) {
109
149
  id
110
150
  timestamp
151
+ logIndex
111
152
  transaction { id }
112
153
  book {
113
154
  id
114
155
  quote { id name symbol decimals }
115
156
  base { id name symbol decimals }
116
157
  }
117
- inputToken { id name symbol decimals }
118
- outputToken { id name symbol decimals }
119
- inputAmount
120
- outputAmount
121
- amountUSD
158
+ quote { id name symbol decimals }
159
+ base { id name symbol decimals }
160
+ trader
161
+ tick
162
+ claimedBaseAmount
163
+ claimedQuoteAmount
164
+ claimedAmountUSD
122
165
  type
123
166
  }
124
167
  }
125
168
  `;
126
- const { data: { takes, makerFills }, } = await Subgraph.get(chainId, 'getTradeHistory', query, {});
169
+ const response = await Subgraph.get(chainId, 'getTradeHistory', query, {});
170
+ if (response.errors) {
171
+ throw new Error(`Subgraph query failed: ${response.errors.map((e) => e.message).join(', ')}`);
172
+ }
173
+ if (!response.data) {
174
+ throw new Error('Subgraph returned no data');
175
+ }
176
+ const { takes, claims } = response.data;
127
177
  // Combine and sort all trades by timestamp (most recent first)
128
- const allTrades = [...takes, ...makerFills].sort((a, b) => Number(b.timestamp) - Number(a.timestamp));
178
+ const allTrades = [...takes, ...claims].sort((a, b) => Number(b.timestamp) - Number(a.timestamp));
129
179
  // Apply pagination
130
180
  const hasNextPage = allTrades.length > limit;
131
181
  const trades = allTrades.slice(0, limit);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/trade/apis/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAG/D,OAAO,EAAE,QAAQ,EAAE,MAAM,2CAA2C,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAwC3D,MAAM,UAAU,GAAG,CAAC,WAKnB,EAAY,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;IACnC,IAAI,EAAE,WAAW,CAAC,IAAI;IACtB,MAAM,EAAE,WAAW,CAAC,MAAM;IAC1B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;CACvC,CAAC,CAAC;AAEH,MAAM,OAAO,GAAG,CAAC,OAAkB,EAAE,QAAkB,EAAS,EAAE;IAChE,MAAM,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtD,MAAM,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC9C,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAE5C,qCAAqC;IACrC,MAAM,EAAE,iBAAiB,EAAE,GAAG,WAAW,CAAC,OAAO,EAAE;QACjD,IAAI,CAAC,OAAO;QACZ,KAAK,CAAC,OAAO;KACd,CAAC,CAAC;IAEH,mEAAmE;IACnE,yDAAyD;IACzD,0DAA0D;IAC1D,MAAM,KAAK,GAAG,cAAc,CAAC,aAAa,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;IAEvE,OAAO;QACL,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM;QAC5B,SAAS,EAAE,QAAQ,CAAC,SAAS;QAC7B,KAAK,EAAE;YACL,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;YACzE,SAAS,EAAE,KAAc;SAC1B;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,WAAW,CACjB,MAAM,CAAC,QAAQ,CAAC,YAAY,CAAC,EAC7B,cAAc,CAAC,QAAQ,CACxB;YACD,SAAS,EAAE,IAAa;SACzB;QACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAmB;KACjD,CAAC;AACJ,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,OAAkB,EAClB,WAA0B,EAC1B,OAIC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAE/B,yBAAyB;IACzB,IAAI,WAAmB,CAAC;IAExB,MAAM,WAAW,GAAa,CAAC,aAAa,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAE3E,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,IAAI,CAAC,mBAAmB,MAAM,IAAI,CAAC,CAAC;IAClD,CAAC;IAED,iCAAiC;IACjC,IAAI,OAAO,EAAE,cAAc,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjE,MAAM,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAC1D,IAAI,CAAC,WAAW,EAAE,CACnB,CAAC;QACF,MAAM,qBAAqB,GAAG,eAAe;aAC1C,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,IAAI,sBAAsB,IAAI,IAAI,CAAC;aAClE,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,qDAAqD;QACrD,WAAW,CAAC,IAAI,CAAC,SAAS,qBAAqB,IAAI,CAAC,CAAC;QACrD,WAAW,GAAG,UAAU,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,wFAAwF;QACxF,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,WAAW,GAAG,UAAU,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;QACrD,CAAC;aAAM,CAAC;YACN,WAAW,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;QAChC,CAAC;IACH,CAAC;IAED,kCAAkC;IAClC,uEAAuE;IACvE,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,2CAA2C;IAEzE,MAAM,KAAK,GAAG;;;iBAGC,WAAW;;;iBAGX,UAAU;;;;;;;;;;;;;;;;;;iBAkBV,WAAW;;;iBAGX,UAAU;;;;;;;;;;;;;;;;;;GAkBxB,CAAC;IAEF,MAAM,EACJ,IAAI,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,GAC5B,GAAG,MAAM,QAAQ,CAAC,GAAG,CAEnB,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE1C,+DAA+D;IAC/D,MAAM,SAAS,GAAe,CAAC,GAAG,KAAK,EAAE,GAAG,UAAU,CAAC,CAAC,IAAI,CAC1D,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACpD,CAAC;IAEF,mBAAmB;IACnB,MAAM,WAAW,GAAG,SAAS,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACzC,MAAM,SAAS,GACb,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;IAElE,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACtD,QAAQ,EAAE;YACR,WAAW;YACX,SAAS;SACV;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/entities/trade/apis/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { fetchTradeHistoryFromSubgraph } from '../entities/trade/apis';
2
2
  /**
3
- * Retrieves trade history for the specified user on the given chain.
3
+ * Retrieves trade history on the given chain.
4
4
  *
5
5
  * @param {CHAIN_IDS} chainId The chain ID.
6
- * @param {`0x${string}`} userAddress The Ethereum address of the user.
6
+ * @param {`0x${string}`} userAddress Optional. The Ethereum address of the user. If provided, only returns trades for this user.
7
7
  * @param {`0x${string}`[]} tokenAddresses Optional. Filter trades where any of these addresses is either input or output token. If empty array or undefined, no filtering is applied.
8
8
  * @param {number} limit Optional. Maximum number of trades to return per page (default: 50).
9
9
  * @param {string} cursor Optional. Pagination cursor (timestamp) to fetch trades older than this cursor.
@@ -29,6 +29,11 @@ import { fetchTradeHistoryFromSubgraph } from '../entities/trade/apis';
29
29
  * userAddress: '0x5F79EE8f8fA862E98201120d83c4eC39D9468D49',
30
30
  * tokenAddresses: ['0x036CbD53842c5426634e7929541eC2318f3dCF7e']
31
31
  * })
32
+ *
33
+ * // Get all trades (no user filter)
34
+ * const allTrades = await getTradeHistory({
35
+ * chainId: 421614
36
+ * })
32
37
  */
33
38
  export const getTradeHistory = async ({ chainId, userAddress, tokenAddresses, limit, cursor, }) => {
34
39
  return fetchTradeHistoryFromSubgraph(chainId, userAddress, {
@@ -1 +1 @@
1
- {"version":3,"file":"trade-history.js","sourceRoot":"","sources":["../../../src/views/trade-history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,OAAO,EACP,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,GAOP,EAA+B,EAAE;IAChC,OAAO,6BAA6B,CAAC,OAAO,EAAE,WAAW,EAAE;QACzD,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,KAAK;QACL,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}
1
+ {"version":3,"file":"trade-history.js","sourceRoot":"","sources":["../../../src/views/trade-history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,wBAAwB,CAAC;AAEvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,KAAK,EAAE,EACpC,OAAO,EACP,WAAW,EACX,cAAc,EACd,KAAK,EACL,MAAM,GAOP,EAA+B,EAAE;IAChC,OAAO,6BAA6B,CAAC,OAAO,EAAE,WAAW,EAAE;QACzD,cAAc,EAAE,cAAc,IAAI,EAAE;QACpC,KAAK;QACL,MAAM;KACP,CAAC,CAAC;AACL,CAAC,CAAC"}