@1stdex/first-sdk 1.0.78 → 1.0.80

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.
@@ -16,12 +16,14 @@ const toTrade = (chainId, tradeDto) => {
16
16
  let inputAmount;
17
17
  let outputAmount;
18
18
  let usdAmount;
19
+ let trader;
19
20
  if ('inputToken' in tradeDto) {
20
21
  inputCurrency = toCurrency(tradeDto.inputToken);
21
22
  outputCurrency = toCurrency(tradeDto.outputToken);
22
23
  inputAmount = tradeDto.inputAmount;
23
24
  outputAmount = tradeDto.outputAmount;
24
25
  usdAmount = tradeDto.amountUSD;
26
+ trader = tradeDto.trader;
25
27
  }
26
28
  else {
27
29
  const isBid = BigInt(tradeDto.tick) < 0n;
@@ -40,6 +42,7 @@ const toTrade = (chainId, tradeDto) => {
40
42
  outputAmount = tradeDto.claimedQuoteAmount;
41
43
  }
42
44
  usdAmount = tradeDto.claimedAmountUSD;
45
+ trader = tradeDto.trader;
43
46
  }
44
47
  const quote = toCurrency(tradeDto.book.quote);
45
48
  const base = toCurrency(tradeDto.book.base);
@@ -66,12 +69,12 @@ const toTrade = (chainId, tradeDto) => {
66
69
  txHash: tradeDto.transaction.id,
67
70
  logIndex: Number(tradeDto.logIndex),
68
71
  bookId: tradeDto.book.id,
72
+ trader: (0, viem_1.getAddress)(trader),
69
73
  };
70
74
  };
71
75
  async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
72
76
  const limit = options?.limit || 50;
73
77
  const cursor = options?.cursor;
74
- let whereClause;
75
78
  const baseFilters = [];
76
79
  if (userAddress) {
77
80
  baseFilters.push(`{trader: "${userAddress.toLowerCase()}"}`);
@@ -79,27 +82,40 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
79
82
  if (cursor) {
80
83
  baseFilters.push(`{timestamp_lt: "${cursor}"}`);
81
84
  }
85
+ const takesFilters = [...baseFilters];
82
86
  if (options?.tokenAddresses && options.tokenAddresses.length > 0) {
83
87
  const lowercaseTokens = options.tokenAddresses.map((addr) => addr.toLowerCase());
84
88
  const tokenFilterConditions = lowercaseTokens
85
- .map((addr) => `{inputToken: "${addr}"}, {outputToken: "${addr}"}`)
89
+ .flatMap((addr) => [
90
+ `{inputToken: "${addr}"}`,
91
+ `{outputToken: "${addr}"}`,
92
+ ])
86
93
  .join(', ');
87
- baseFilters.push(`{or: [${tokenFilterConditions}]}`);
94
+ takesFilters.push(`{or: [${tokenFilterConditions}]}`);
88
95
  }
89
- if (baseFilters.length === 0) {
90
- whereClause = '{}';
91
- }
92
- else if (baseFilters.length === 1) {
93
- whereClause = baseFilters[0];
94
- }
95
- else {
96
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
96
+ const takesWhereClause = takesFilters.length === 0
97
+ ? '{}'
98
+ : takesFilters.length === 1
99
+ ? takesFilters[0]
100
+ : `{and: [${takesFilters.join(', ')}]}`;
101
+ const claimsFilters = [...baseFilters];
102
+ if (options?.tokenAddresses && options.tokenAddresses.length > 0) {
103
+ const lowercaseTokens = options.tokenAddresses.map((addr) => addr.toLowerCase());
104
+ const tokenFilterConditions = lowercaseTokens
105
+ .flatMap((addr) => [`{quote: "${addr}"}`, `{base: "${addr}"}`])
106
+ .join(', ');
107
+ claimsFilters.push(`{or: [${tokenFilterConditions}]}`);
97
108
  }
109
+ const claimsWhereClause = claimsFilters.length === 0
110
+ ? '{}'
111
+ : claimsFilters.length === 1
112
+ ? claimsFilters[0]
113
+ : `{and: [${claimsFilters.join(', ')}]}`;
98
114
  const fetchLimit = limit + 1;
99
115
  const query = `
100
116
  query getTradeHistory {
101
117
  takes(
102
- where: ${whereClause}
118
+ where: ${takesWhereClause}
103
119
  orderBy: timestamp
104
120
  orderDirection: desc
105
121
  first: ${fetchLimit}
@@ -119,9 +135,10 @@ async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
119
135
  outputAmount
120
136
  amountUSD
121
137
  type
138
+ trader
122
139
  }
123
140
  claims(
124
- where: ${whereClause}
141
+ where: ${claimsWhereClause}
125
142
  orderBy: timestamp
126
143
  orderDirection: desc
127
144
  first: ${fetchLimit}
@@ -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":";;;AAAA,+BAA+D;AAG/D,wEAAqE;AACrE,4DAA2D;AA6C3D,MAAM,UAAU,GAAG,CAAC,WAKnB,EAAY,EAAE,CAAC,CAAC;IACf,OAAO,EAAE,IAAA,iBAAU,EAAC,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,IAAI,aAAuB,CAAC;IAC5B,IAAI,cAAwB,CAAC;IAC7B,IAAI,WAAmB,CAAC;IACxB,IAAI,YAAoB,CAAC;IACzB,IAAI,SAAiB,CAAC;IACtB,IAAI,MAAc,CAAC;IAGnB,IAAI,YAAY,IAAI,QAAQ,EAAE,CAAC;QAE7B,aAAa,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;QAChD,cAAc,GAAG,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAClD,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;QACnC,YAAY,GAAG,QAAQ,CAAC,YAAY,CAAC;QACrC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QAC/B,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;SAAM,CAAC;QAGN,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAEvC,IAAI,KAAK,EAAE,CAAC;YAEV,aAAa,GAAG,KAAK,CAAC;YACtB,cAAc,GAAG,IAAI,CAAC;YACtB,WAAW,GAAG,QAAQ,CAAC,kBAAkB,CAAC;YAC1C,YAAY,GAAG,QAAQ,CAAC,iBAAiB,CAAC;QAC5C,CAAC;aAAM,CAAC;YAEN,aAAa,GAAG,IAAI,CAAC;YACrB,cAAc,GAAG,KAAK,CAAC;YACvB,WAAW,GAAG,QAAQ,CAAC,iBAAiB,CAAC;YACzC,YAAY,GAAG,QAAQ,CAAC,kBAAkB,CAAC;QAC7C,CAAC;QACD,SAAS,GAAG,QAAQ,CAAC,gBAAgB,CAAC;QACtC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,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;IAG5C,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,uBAAW,EAAC,OAAO,EAAE;QACjD,IAAI,CAAC,OAAO;QACZ,KAAK,CAAC,OAAO;KACd,CAAC,CAAC;IAKH,MAAM,KAAK,GAAG,IAAA,qBAAc,EAAC,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;QACT,KAAK,EAAE;YACL,QAAQ,EAAE,aAAa;YACvB,MAAM,EAAE,IAAA,kBAAW,EAAC,MAAM,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,QAAQ,CAAC;YAChE,SAAS,EAAE,KAAc;SAC1B;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc;YACxB,MAAM,EAAE,IAAA,kBAAW,EAAC,MAAM,CAAC,YAAY,CAAC,EAAE,cAAc,CAAC,QAAQ,CAAC;YAClE,SAAS,EAAE,IAAa;SACzB;QACD,SAAS,EAAE,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;QACrC,MAAM,EAAE,QAAQ,CAAC,WAAW,CAAC,EAAmB;QAChD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACnC,MAAM,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE;QACxB,MAAM,EAAE,IAAA,iBAAU,EAAC,MAAM,CAAkB;KAC5C,CAAC;AACJ,CAAC,CAAC;AASK,KAAK,UAAU,6BAA6B,CACjD,OAAkB,EAClB,WAA2B,EAC3B,OAIC;IAED,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,IAAI,EAAE,CAAC;IACnC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC;IAG/B,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,IAAI,WAAW,EAAE,CAAC;QAChB,WAAW,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,WAAW,CAAC,IAAI,CAAC,mBAAmB,MAAM,IAAI,CAAC,CAAC;IAClD,CAAC;IAGD,MAAM,YAAY,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACtC,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,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;YACjB,iBAAiB,IAAI,IAAI;YACzB,kBAAkB,IAAI,IAAI;SAC3B,CAAC;aACD,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,YAAY,CAAC,IAAI,CAAC,SAAS,qBAAqB,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,gBAAgB,GACpB,YAAY,CAAC,MAAM,KAAK,CAAC;QACvB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,YAAY,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,YAAY,CAAC,CAAC,CAAE;YAClB,CAAC,CAAC,UAAU,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAG9C,MAAM,aAAa,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC;IACvC,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,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,YAAY,IAAI,IAAI,EAAE,WAAW,IAAI,IAAI,CAAC,CAAC;aAC9D,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,aAAa,CAAC,IAAI,CAAC,SAAS,qBAAqB,IAAI,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,iBAAiB,GACrB,aAAa,CAAC,MAAM,KAAK,CAAC;QACxB,CAAC,CAAC,IAAI;QACN,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC;YAC1B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAE;YACnB,CAAC,CAAC,UAAU,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;IAI/C,MAAM,UAAU,GAAG,KAAK,GAAG,CAAC,CAAC;IAE7B,MAAM,KAAK,GAAG;;;iBAGC,gBAAgB;;;iBAGhB,UAAU;;;;;;;;;;;;;;;;;;;;iBAoBV,iBAAiB;;;iBAGjB,UAAU;;;;;;;;;;;;;;;;;;;;;GAqBxB,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,mBAAQ,CAAC,GAAG,CAGhC,OAAO,EAAE,iBAAiB,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;IAE1C,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,IAAI,KAAK,CACb,0BAA0B,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC;IAGxC,MAAM,SAAS,GAAe,CAAC,GAAG,KAAK,EAAE,GAAG,MAAM,CAAC,CAAC,IAAI,CACtD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CACpD,CAAC;IAGF,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;AA7JD,sEA6JC"}
@@ -13,6 +13,7 @@ const toTrade = (chainId, tradeDto) => {
13
13
  let inputAmount;
14
14
  let outputAmount;
15
15
  let usdAmount;
16
+ let trader;
16
17
  // Check if it's a Take or a Claim
17
18
  if ('inputToken' in tradeDto) {
18
19
  // Take entity
@@ -21,6 +22,7 @@ const toTrade = (chainId, tradeDto) => {
21
22
  inputAmount = tradeDto.inputAmount;
22
23
  outputAmount = tradeDto.outputAmount;
23
24
  usdAmount = tradeDto.amountUSD;
25
+ trader = tradeDto.trader;
24
26
  }
25
27
  else {
26
28
  // Claim entity
@@ -43,6 +45,7 @@ const toTrade = (chainId, tradeDto) => {
43
45
  outputAmount = tradeDto.claimedQuoteAmount;
44
46
  }
45
47
  usdAmount = tradeDto.claimedAmountUSD;
48
+ trader = tradeDto.trader;
46
49
  }
47
50
  const quote = toCurrency(tradeDto.book.quote);
48
51
  const base = toCurrency(tradeDto.book.base);
@@ -73,6 +76,7 @@ const toTrade = (chainId, tradeDto) => {
73
76
  txHash: tradeDto.transaction.id,
74
77
  logIndex: Number(tradeDto.logIndex),
75
78
  bookId: tradeDto.book.id,
79
+ trader: getAddress(trader),
76
80
  };
77
81
  };
78
82
  /**
@@ -85,8 +89,7 @@ const toTrade = (chainId, tradeDto) => {
85
89
  export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, options) {
86
90
  const limit = options?.limit || 50;
87
91
  const cursor = options?.cursor;
88
- // Build the where clause
89
- let whereClause;
92
+ // Build base filters (common to both takes and claims)
90
93
  const baseFilters = [];
91
94
  if (userAddress) {
92
95
  baseFilters.push(`{trader: "${userAddress.toLowerCase()}"}`);
@@ -94,32 +97,44 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
94
97
  if (cursor) {
95
98
  baseFilters.push(`{timestamp_lt: "${cursor}"}`);
96
99
  }
97
- // Build token filter if provided
100
+ // Build where clause for takes
101
+ const takesFilters = [...baseFilters];
98
102
  if (options?.tokenAddresses && options.tokenAddresses.length > 0) {
99
103
  const lowercaseTokens = options.tokenAddresses.map((addr) => addr.toLowerCase());
100
104
  const tokenFilterConditions = lowercaseTokens
101
- .map((addr) => `{inputToken: "${addr}"}, {outputToken: "${addr}"}`)
105
+ .flatMap((addr) => [
106
+ `{inputToken: "${addr}"}`,
107
+ `{outputToken: "${addr}"}`,
108
+ ])
102
109
  .join(', ');
103
- // Combine base filters with token filter using 'and'
104
- baseFilters.push(`{or: [${tokenFilterConditions}]}`);
110
+ takesFilters.push(`{or: [${tokenFilterConditions}]}`);
105
111
  }
106
- // Build the final where clause
107
- if (baseFilters.length === 0) {
108
- whereClause = '{}';
109
- }
110
- else if (baseFilters.length === 1) {
111
- whereClause = baseFilters[0];
112
- }
113
- else {
114
- whereClause = `{and: [${baseFilters.join(', ')}]}`;
112
+ const takesWhereClause = takesFilters.length === 0
113
+ ? '{}'
114
+ : takesFilters.length === 1
115
+ ? takesFilters[0]
116
+ : `{and: [${takesFilters.join(', ')}]}`;
117
+ // Build where clause for claims (uses quote/base instead of inputToken/outputToken)
118
+ const claimsFilters = [...baseFilters];
119
+ if (options?.tokenAddresses && options.tokenAddresses.length > 0) {
120
+ const lowercaseTokens = options.tokenAddresses.map((addr) => addr.toLowerCase());
121
+ const tokenFilterConditions = lowercaseTokens
122
+ .flatMap((addr) => [`{quote: "${addr}"}`, `{base: "${addr}"}`])
123
+ .join(', ');
124
+ claimsFilters.push(`{or: [${tokenFilterConditions}]}`);
115
125
  }
126
+ const claimsWhereClause = claimsFilters.length === 0
127
+ ? '{}'
128
+ : claimsFilters.length === 1
129
+ ? claimsFilters[0]
130
+ : `{and: [${claimsFilters.join(', ')}]}`;
116
131
  // Query both takes and claims
117
132
  // Note: We need to fetch more than limit to properly sort and paginate
118
133
  const fetchLimit = limit + 1; // Fetch one extra to determine hasNextPage
119
134
  const query = `
120
135
  query getTradeHistory {
121
136
  takes(
122
- where: ${whereClause}
137
+ where: ${takesWhereClause}
123
138
  orderBy: timestamp
124
139
  orderDirection: desc
125
140
  first: ${fetchLimit}
@@ -139,9 +154,10 @@ export async function fetchTradeHistoryFromSubgraph(chainId, userAddress, option
139
154
  outputAmount
140
155
  amountUSD
141
156
  type
157
+ trader
142
158
  }
143
159
  claims(
144
- where: ${whereClause}
160
+ where: ${claimsWhereClause}
145
161
  orderBy: timestamp
146
162
  orderDirection: desc
147
163
  first: ${fetchLimit}
@@ -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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"}