genius-intents 0.24.3-develop.0 → 0.25.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/CHANGELOG.md CHANGED
@@ -1,3 +1,30 @@
1
+ ## [0.25.0] - 2025-12-01 (Beta)
2
+
3
+ 🧪 **This is a beta release for testing purposes.**
4
+
5
+ ## [0.25.0](https://github.com/Genius-Foundation/genius-intents/compare/v0.24.2...v0.25.0) (2025-12-01)
6
+
7
+
8
+ ### Features
9
+
10
+ * improve erc20 transfer tax detection ([#189](https://github.com/Genius-Foundation/genius-intents/issues/189)) ([2175b02](https://github.com/Genius-Foundation/genius-intents/commit/2175b020b93e632c3d74032143a960421c67a345))
11
+
12
+
13
+ ### Documentation
14
+
15
+ * update CHANGELOG.md for v0.24.3-develop.0 (beta) ([0facab6](https://github.com/Genius-Foundation/genius-intents/commit/0facab68520577c7f9c25692dfa2aa8387a5d674))
16
+
17
+
18
+
19
+ ⚠️ **Beta Release Notes:**
20
+ - This version is intended for testing and development
21
+ - May contain experimental features
22
+ - Not recommended for production use
23
+ - Feedback and bug reports are welcome
24
+
25
+ ---
26
+
27
+
1
28
  ## [0.24.3-develop.0] - 2025-11-28 (Beta)
2
29
 
3
30
  🧪 **This is a beta release for testing purposes.**
@@ -1,3 +1,5 @@
1
1
  import { DetermineERC20TransferTax, ERC20TransferTaxResult } from './erc20-taxes.types';
2
- export declare function determineTokenInTransferTax(params: DetermineERC20TransferTax): Promise<ERC20TransferTaxResult>;
2
+ export declare function determineTokenInTransferTax(params: DetermineERC20TransferTax & {
3
+ enableDebugLogging?: boolean;
4
+ }): Promise<ERC20TransferTaxResult>;
3
5
  //# sourceMappingURL=erc20-tokenIn-taxes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"erc20-tokenIn-taxes.d.ts","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-tokenIn-taxes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAwIxF,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,sBAAsB,CAAC,CA8DjC"}
1
+ {"version":3,"file":"erc20-tokenIn-taxes.d.ts","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-tokenIn-taxes.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AA2SxF,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,yBAAyB,GAAG;IAAE,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAAE,GACnE,OAAO,CAAC,sBAAsB,CAAC,CAsGjC"}
@@ -7,7 +7,6 @@ const is_native_1 = require("../../utils/is-native");
7
7
  const wrapped_native_1 = require("../../utils/wrapped-native");
8
8
  /* ----------------- constants & helpers ----------------- */
9
9
  const TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
10
- const SWAP_TOPIC = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822';
11
10
  const KNOWN_SINKS = new Set([
12
11
  constants_1.ZERO_ADDRESS.toLowerCase(),
13
12
  '0x000000000000000000000000000000000000dead',
@@ -20,6 +19,9 @@ function toBps(n, d) {
20
19
  return 0;
21
20
  return Number((n * 10000n) / d);
22
21
  }
22
+ /**
23
+ * Parse all Transfer events for a specific token from the transaction receipt
24
+ */
23
25
  function parseTokenTransfersFor(receipt, token) {
24
26
  const tokenLc = token.toLowerCase();
25
27
  const out = [];
@@ -34,9 +36,7 @@ function parseTokenTransfersFor(receipt, token) {
34
36
  continue;
35
37
  if (log.topics.length < 3)
36
38
  continue;
37
- if (!log.topics[1])
38
- continue;
39
- if (!log.topics[2])
39
+ if (!log.topics[1] || !log.topics[2])
40
40
  continue;
41
41
  const from = `0x${log.topics[1].slice(26)}`.toLowerCase();
42
42
  const to = `0x${log.topics[2].slice(26)}`.toLowerCase();
@@ -47,80 +47,198 @@ function parseTokenTransfersFor(receipt, token) {
47
47
  }
48
48
  return out;
49
49
  }
50
- const pairAbi = [
51
- 'function token0() view returns (address)',
52
- 'function token1() view returns (address)',
53
- 'event Swap(address indexed sender,uint256 amount0In,uint256 amount1In,uint256 amount0Out,uint256 amount1Out,address indexed to)',
54
- ];
55
50
  /**
56
- * Find and decode the Swap for this pair in this receipt.
57
- * Returns the log index and decoded amounts.
51
+ * Analyze token flow through the transaction, focusing ONLY on the maker's flow path.
52
+ * This prevents counting unrelated transfers to the pair.
53
+ *
54
+ * @param transfers - Array of parsed transfer events
55
+ * @param maker - Address of the user initiating the transaction
56
+ * @param pair - Address of the DEX pair
57
+ * @param tokenAddr - Address of the token being analyzed
58
+ * @returns TokenFlowAnalysis object containing flow metrics and intermediaries
58
59
  */
59
- function hasSwapEvent(receipt, pair) {
60
- const iface = new ethers_1.ethers.Interface(pairAbi);
61
- for (const log of receipt.logs) {
62
- if (log.address.toLowerCase() !== pair.toLowerCase())
63
- continue;
64
- if (!log?.topics[0])
65
- continue;
66
- if (log.topics[0].toLowerCase() !== SWAP_TOPIC)
60
+ function analyzeTokenFlow(transfers, maker, pair, tokenAddr) {
61
+ const makerLc = maker.toLowerCase();
62
+ const pairLc = pair.toLowerCase();
63
+ const tokenLc = tokenAddr.toLowerCase();
64
+ let totalFromMaker = 0n;
65
+ let makerDirectToPair = 0n;
66
+ let makerDirectToSinks = 0n;
67
+ // Track which addresses are part of the maker's flow
68
+ const partOfMakerFlow = new Set();
69
+ partOfMakerFlow.add(makerLc);
70
+ // First pass: Track all outflows from maker
71
+ for (const t of transfers) {
72
+ if (t.from === makerLc) {
73
+ totalFromMaker += t.value;
74
+ const isSink = KNOWN_SINKS.has(t.to) || t.to === tokenLc;
75
+ if (t.to === pairLc) {
76
+ makerDirectToPair += t.value;
77
+ }
78
+ else if (isSink) {
79
+ makerDirectToSinks += t.value;
80
+ }
81
+ else if (t.to) {
82
+ // Mark receiver as part of maker's flow (potential intermediary)
83
+ // Guard: only add non-empty addresses
84
+ partOfMakerFlow.add(t.to);
85
+ }
86
+ }
87
+ }
88
+ // Second pass: Identify intermediaries and extend flow set
89
+ // FIX: Use array-based queue to handle items added during iteration
90
+ // JavaScript Set iteration doesn't include newly added items!
91
+ const intermediaries = new Set();
92
+ // Pre-compute which addresses send to pair for O(n) instead of O(n*m)
93
+ const addressesToPair = new Set();
94
+ for (const t of transfers) {
95
+ if (t.to === pairLc && t.from) {
96
+ addressesToPair.add(t.from);
97
+ }
98
+ }
99
+ // Use queue-based BFS to traverse all reachable addresses from maker
100
+ const queue = Array.from(partOfMakerFlow);
101
+ for (let i = 0; i < queue.length; i++) {
102
+ const addr = queue[i];
103
+ // Guard against undefined or empty addresses
104
+ if (!addr || addr === makerLc)
67
105
  continue;
68
- const parsed = iface.parseLog({ topics: log.topics, data: log.data });
69
- if (!parsed)
106
+ // Check if this address sends to pair
107
+ const sendsToPair = addressesToPair.has(addr);
108
+ if (sendsToPair) {
109
+ intermediaries.add(addr);
110
+ }
111
+ // Mark all recipients of this address as part of flow
112
+ for (const t of transfers) {
113
+ if (t.from === addr && t.to && !partOfMakerFlow.has(t.to)) {
114
+ partOfMakerFlow.add(t.to);
115
+ queue.push(t.to);
116
+ }
117
+ }
118
+ }
119
+ // Third pass: Calculate flows ONLY from maker's flow path
120
+ let totalToPairFromMakerFlow = 0n;
121
+ let totalToSinksFromMakerFlow = 0n;
122
+ let totalToOtherFromMakerFlow = 0n;
123
+ for (const t of transfers) {
124
+ // Only count transfers that are part of maker's flow
125
+ // Guard: ensure t.from exists and is in the flow
126
+ if (!t.from || !partOfMakerFlow.has(t.from))
70
127
  continue;
71
- return true;
128
+ const isSink = KNOWN_SINKS.has(t.to) || t.to === tokenLc;
129
+ if (t.to === pairLc) {
130
+ totalToPairFromMakerFlow += t.value;
131
+ }
132
+ else if (isSink) {
133
+ totalToSinksFromMakerFlow += t.value;
134
+ }
135
+ else if (t.to && !partOfMakerFlow.has(t.to)) {
136
+ // Going to an address outside the flow (potential tax recipient)
137
+ totalToOtherFromMakerFlow += t.value;
138
+ }
72
139
  }
73
- return false;
140
+ return {
141
+ totalFromMaker,
142
+ totalToPairFromMakerFlow,
143
+ totalToSinksFromMakerFlow,
144
+ totalToOtherFromMakerFlow,
145
+ intermediaries,
146
+ makerDirectToPair,
147
+ makerDirectToSinks,
148
+ };
74
149
  }
75
150
  /**
76
- * Sell tax (tokenIn): fee burned/redirected when user sells tokenIn tokens
77
- * taxBps = feeToSinks / (userSentToPair + feeToSinks)
151
+ * Calculate sell tax based on token flow analysis.
152
+ *
153
+ * Tax is calculated as the difference between what maker sent and what reached the pair.
154
+ * This captures:
155
+ * 1. Tokens burned/sent to sinks
156
+ * 2. Tokens sent to treasury/fee addresses
157
+ * 3. Any other tokens that "disappeared" from the flow
158
+ *
159
+ * @param analysis - The token flow analysis results
160
+ * @param enableDebugLogging - Whether to output debug information
161
+ * @returns Tax rate in basis points (bps)
78
162
  */
79
- function computeSellTaxBpsFromTx(tokenOutTransfers, pair, tokenOutAddr, userEoa) {
80
- const pairLc = pair.toLowerCase();
81
- const tokenLc = tokenOutAddr.toLowerCase();
82
- const userEoaLc = userEoa.toLowerCase();
83
- // console.log(`\n=== SELL TAX DEBUG ===`);
84
- // console.log(`Token: ${tokenOutAddr}`);
85
- // console.log(`Pair: ${pair}`);
86
- // console.log(`UserEOA: ${userEoa}`);
87
- // console.log(`SwapIndex: ${swapIndex}`);
88
- // console.log(`Total transfers: ${tokenOutTransfers.length}`);
89
- let userSentToPair = 0n;
90
- let feeToSinks = 0n;
91
- // Look for transfers from user (both before and after swap)
92
- for (const t of tokenOutTransfers) {
93
- if (t.from !== userEoaLc)
94
- continue; // only transfers from the user
95
- const isPairReceiving = t.to === pairLc;
96
- const isSink = KNOWN_SINKS.has(t.to) || t.to === tokenLc;
97
- // console.log(
98
- // `User transfer: from=${t.from} to=${t.to} value=${t.value} index=${t.index} isPair=${isPairReceiving} isSink=${isSink}`,
99
- // );
100
- if (isPairReceiving) {
101
- userSentToPair += t.value;
163
+ function computeSellTaxFromFlow(analysis, enableDebugLogging = false) {
164
+ const { totalFromMaker, totalToPairFromMakerFlow, totalToSinksFromMakerFlow, totalToOtherFromMakerFlow, } = analysis;
165
+ if (enableDebugLogging) {
166
+ const { intermediaries, makerDirectToPair, makerDirectToSinks } = analysis;
167
+ console.log(`\n=== TOKEN FLOW ANALYSIS (REVISED) ===`);
168
+ console.log(`Total from maker: ${totalFromMaker}`);
169
+ console.log(`Maker direct to pair: ${makerDirectToPair}`);
170
+ console.log(`Maker direct to sinks: ${makerDirectToSinks}`);
171
+ console.log(`Total to pair (from maker flow): ${totalToPairFromMakerFlow}`);
172
+ console.log(`Total to sinks (from maker flow): ${totalToSinksFromMakerFlow}`);
173
+ console.log(`Total to other addresses (from maker flow): ${totalToOtherFromMakerFlow}`);
174
+ console.log(`Intermediaries found: ${intermediaries.size}`);
175
+ if (intermediaries.size > 0) {
176
+ console.log(`Intermediary addresses: ${Array.from(intermediaries).join(', ')}`);
102
177
  }
103
- else if (isSink) {
104
- feeToSinks += t.value;
178
+ }
179
+ if (totalFromMaker === 0n) {
180
+ if (enableDebugLogging) {
181
+ console.log(`No tokens from maker - cannot calculate tax`);
105
182
  }
106
- // Ignore other transfers from user (might be approvals, etc.)
183
+ return 0;
184
+ }
185
+ // Calculate what was "lost" in the flow (the tax)
186
+ // Tax = what left maker - what reached pair
187
+ const taxAmount = totalFromMaker - totalToPairFromMakerFlow;
188
+ if (enableDebugLogging) {
189
+ console.log(`\nTax calculation:`);
190
+ console.log(` Sent by maker: ${totalFromMaker}`);
191
+ console.log(` Reached pair: ${totalToPairFromMakerFlow}`);
192
+ console.log(` Tax amount: ${taxAmount}`);
193
+ console.log(` Breakdown:`);
194
+ console.log(` - To sinks: ${totalToSinksFromMakerFlow}`);
195
+ console.log(` - To other addresses: ${totalToOtherFromMakerFlow}`);
196
+ console.log(` - Unaccounted: ${taxAmount - totalToSinksFromMakerFlow - totalToOtherFromMakerFlow}`);
107
197
  }
108
- // console.log(`UserSentToPair: ${userSentToPair}`);
109
- // console.log(`FeeToSinks: ${feeToSinks}`);
110
- const totalUserSent = userSentToPair + feeToSinks;
111
- // console.log(`TotalUserSent: ${totalUserSent}`);
112
- if (totalUserSent === 0n)
198
+ // Validation: tax should not be negative
199
+ if (taxAmount < 0n) {
200
+ if (enableDebugLogging) {
201
+ console.log(`⚠️ Warning: Negative tax detected (more reached pair than left maker)`);
202
+ console.log(`This suggests counting unrelated transfers. Returning 0% tax.`);
203
+ }
113
204
  return 0;
114
- // Tax rate = fee / (amount to pair + fee)
115
- const taxBps = toBps(feeToSinks, totalUserSent);
116
- // console.log(`Sell Tax BPS: ${taxBps}`);
205
+ }
206
+ const taxBps = toBps(taxAmount, totalFromMaker);
207
+ if (enableDebugLogging) {
208
+ console.log(`\nCalculated sell tax: ${taxBps} bps (${taxBps / 100}%)`);
209
+ }
117
210
  return taxBps;
118
211
  }
212
+ /**
213
+ * Validate that the tax calculation has sufficient data to be trusted.
214
+ *
215
+ * @param analysis - The token flow analysis to validate
216
+ * @param enableDebugLogging - Whether to output debug information
217
+ * @returns Object with isValid boolean and optional reason string
218
+ */
219
+ function validateTaxCalculation(analysis, enableDebugLogging = false) {
220
+ const { totalFromMaker, totalToPairFromMakerFlow, totalToSinksFromMakerFlow, totalToOtherFromMakerFlow, } = analysis;
221
+ // Must have some outflow from maker
222
+ if (totalFromMaker === 0n) {
223
+ return { isValid: false, reason: 'No transfers from maker found' };
224
+ }
225
+ // Calculate total accounted for
226
+ const totalAccountedFor = totalToPairFromMakerFlow + totalToSinksFromMakerFlow + totalToOtherFromMakerFlow;
227
+ // Should not have significantly more accounted for than sent
228
+ // Allow 5% variance for rounding/precision issues
229
+ const flowRatio = totalFromMaker > 0n ? Number((totalAccountedFor * 1000n) / totalFromMaker) : 0;
230
+ if (flowRatio > 1050) {
231
+ if (enableDebugLogging) {
232
+ console.log(`⚠️ Flow validation failed: ${flowRatio / 10}% accounted (expected <= 105%)`);
233
+ }
234
+ return { isValid: false, reason: `Too much accounted: ${flowRatio / 10}%` };
235
+ }
236
+ return { isValid: true };
237
+ }
119
238
  /* ----------------- public entry ----------------- */
120
239
  async function determineTokenInTransferTax(params) {
121
- const { tokenIn, tokenOut, network, client, sellTxHash, pairAddress, sellTxEoa } = params;
240
+ const { tokenIn, network, client, sellTxHash, pairAddress, sellTxEoa, enableDebugLogging = false, } = params;
122
241
  const tokenInIsNative = (0, is_native_1.isNative)(tokenIn);
123
- const tokenOutIsNative = (0, is_native_1.isNative)(tokenOut);
124
242
  const wNative = wrapped_native_1.wrappedNativeTokens[network];
125
243
  try {
126
244
  // If tokenIn is native, no sell tax applies - return 0 immediately
@@ -135,24 +253,53 @@ async function determineTokenInTransferTax(params) {
135
253
  if (!pairAddress) {
136
254
  throw new Error('pairAddress is required for EVM transfer-tax detection');
137
255
  }
138
- if (tokenInIsNative && tokenOutIsNative)
139
- throw new Error('Both tokenIn and tokenOut cannot be native tokens');
140
256
  const pair = toChecksum(pairAddress);
141
- // Only calculate sell tax for tokenIn since that's what we care about
142
- let tokenInSellTax = 0;
257
+ const tokenInAddr = toChecksum(tokenIn);
258
+ if (enableDebugLogging) {
259
+ console.log(`\n=== TRANSFER TAX DETECTION ===`);
260
+ console.log(`Token: ${tokenInAddr}`);
261
+ console.log(`Pair: ${pair}`);
262
+ console.log(`Maker: ${sellTxEoa}`);
263
+ console.log(`TX Hash: ${sellTxHash}`);
264
+ }
265
+ // Fetch transaction receipt
143
266
  const receipt = await client.getTransactionReceipt(sellTxHash);
144
- if (!receipt)
145
- throw new Error(`Sell transaction ${sellTxHash} not found`);
146
- const swap = hasSwapEvent(receipt, pair);
147
- if (swap) {
148
- // For sell tax we measure fee on tokenIn (the token being sold)
149
- const tokenInForTax = toChecksum(tokenIn);
150
- const transfersIn = parseTokenTransfersFor(receipt, tokenInForTax);
151
- tokenInSellTax = computeSellTaxBpsFromTx(transfersIn, pair.toLowerCase(), tokenInForTax, sellTxEoa);
267
+ if (!receipt) {
268
+ throw new Error(`Transaction ${sellTxHash} not found`);
269
+ }
270
+ // Parse all Transfer events for tokenIn
271
+ const transfers = parseTokenTransfersFor(receipt, tokenInAddr);
272
+ if (enableDebugLogging) {
273
+ console.log(`Total Transfer events found: ${transfers.length}`);
274
+ }
275
+ if (transfers.length === 0) {
276
+ if (enableDebugLogging) {
277
+ console.log(`No transfers found - assuming 0% tax`);
278
+ }
279
+ return {
280
+ address: tokenInAddr,
281
+ sellTaxBps: 0,
282
+ };
152
283
  }
284
+ // Analyze token flow
285
+ const flowAnalysis = analyzeTokenFlow(transfers, sellTxEoa, pair.toLowerCase(), tokenInAddr.toLowerCase());
286
+ // Validate the analysis
287
+ const validation = validateTaxCalculation(flowAnalysis, enableDebugLogging);
288
+ if (!validation.isValid) {
289
+ if (enableDebugLogging) {
290
+ console.log(`Validation failed: ${validation.reason}`);
291
+ }
292
+ // Return 0 tax if we can't reliably calculate
293
+ return {
294
+ address: tokenInAddr,
295
+ sellTaxBps: 0,
296
+ };
297
+ }
298
+ // Calculate tax from flow
299
+ const sellTaxBps = computeSellTaxFromFlow(flowAnalysis, enableDebugLogging);
153
300
  return {
154
- address: toChecksum(tokenIn),
155
- sellTaxBps: tokenInSellTax,
301
+ address: tokenInAddr,
302
+ sellTaxBps,
156
303
  };
157
304
  }
158
305
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"erc20-tokenIn-taxes.js","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-tokenIn-taxes.ts"],"names":[],"mappings":";;AA4IA,kEAgEC;AA5MD,mCAAgC;AAChC,qDAAqD;AACrD,qDAAiD;AACjD,+DAAiE;AAGjE,6DAA6D;AAE7D,MAAM,cAAc,GAAG,oEAAoE,CAAC;AAC5F,MAAM,UAAU,GAAG,oEAAoE,CAAC;AAExF,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC;IAC1B,wBAAY,CAAC,WAAW,EAAE;IAC1B,4CAA4C;CAC7C,CAAC,CAAC;AAIH,SAAS,UAAU,CAAC,IAAY;IAC9B,OAAO,eAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;AACjC,CAAC;AAED,SAAS,KAAK,CAAC,CAAS,EAAE,CAAS;IACjC,IAAI,CAAC,IAAI,EAAE;QAAE,OAAO,CAAC,CAAC;IACtB,OAAO,MAAM,CAAC,CAAC,CAAC,GAAG,MAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACnC,CAAC;AAED,SAAS,sBAAsB,CAAC,OAAkC,EAAE,KAAa;IAC/E,MAAM,OAAO,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,GAAW,EAAE,CAAC;IAEvB,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM;YAAE,SAAS;QAC1C,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,OAAO;YAAE,SAAS;QAEpD,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QAE9B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,cAAc;YAAE,SAAS;QAC7D,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,SAAS;QACpC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QAE7B,MAAM,IAAI,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1D,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACxD,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE/B,aAAa;QACb,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;QAE7C,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,MAAM,OAAO,GAAG;IACd,0CAA0C;IAC1C,0CAA0C;IAC1C,iIAAiI;CAClI,CAAC;AAEF;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAkC,EAAE,IAAY;IACpE,MAAM,KAAK,GAAG,IAAI,eAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAE5C,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;QAC/B,IAAI,GAAG,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC,WAAW,EAAE;YAAE,SAAS;QAC/D,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;YAAE,SAAS;QAC9B,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,UAAU;YAAE,SAAS;QACzD,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAEtE,IAAI,CAAC,MAAM;YAAE,SAAS;QAEtB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,SAAS,uBAAuB,CAC9B,iBAAyB,EACzB,IAAY,EACZ,YAAoB,EACpB,OAAe;IAEf,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;IAClC,MAAM,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,CAAC;IAC3C,MAAM,SAAS,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAExC,2CAA2C;IAC3C,yCAAyC;IACzC,gCAAgC;IAChC,sCAAsC;IACtC,0CAA0C;IAC1C,+DAA+D;IAE/D,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,UAAU,GAAG,EAAE,CAAC;IAEpB,4DAA4D;IAC5D,KAAK,MAAM,CAAC,IAAI,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS,CAAC,+BAA+B;QAEnE,MAAM,eAAe,GAAG,CAAC,CAAC,EAAE,KAAK,MAAM,CAAC;QACxC,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;QAEzD,eAAe;QACf,6HAA6H;QAC7H,KAAK;QAEL,IAAI,eAAe,EAAE,CAAC;YACpB,cAAc,IAAI,CAAC,CAAC,KAAK,CAAC;QAC5B,CAAC;aAAM,IAAI,MAAM,EAAE,CAAC;YAClB,UAAU,IAAI,CAAC,CAAC,KAAK,CAAC;QACxB,CAAC;QACD,8DAA8D;IAChE,CAAC;IAED,oDAAoD;IACpD,4CAA4C;IAE5C,MAAM,aAAa,GAAG,cAAc,GAAG,UAAU,CAAC;IAClD,kDAAkD;IAElD,IAAI,aAAa,KAAK,EAAE;QAAE,OAAO,CAAC,CAAC;IAEnC,0CAA0C;IAC1C,MAAM,MAAM,GAAG,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;IAChD,0CAA0C;IAC1C,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,sDAAsD;AAE/C,KAAK,UAAU,2BAA2B,CAC/C,MAAiC;IAEjC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC;IAE1F,MAAM,eAAe,GAAG,IAAA,oBAAQ,EAAC,OAAO,CAAC,CAAC;IAC1C,MAAM,gBAAgB,GAAG,IAAA,oBAAQ,EAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,OAAO,GAAG,oCAAmB,CAAC,OAAO,CAAC,CAAC;IAE7C,IAAI,CAAC;QACH,mEAAmE;QACnE,IAAI,eAAe,EAAE,CAAC;YACpB,IAAI,CAAC,OAAO;gBAAE,MAAM,IAAI,KAAK,CAAC,kDAAkD,OAAO,EAAE,CAAC,CAAC;YAE3F,OAAO;gBACL,OAAO,EAAE,OAAO;gBAChB,UAAU,EAAE,CAAC;aACd,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;QAC5E,CAAC;QAED,IAAI,eAAe,IAAI,gBAAgB;YACrC,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEvE,MAAM,IAAI,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;QAErC,sEAAsE;QACtE,IAAI,cAAc,GAAG,CAAC,CAAC;QAEvB,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC/D,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,UAAU,YAAY,CAAC,CAAC;QAE1E,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QACzC,IAAI,IAAI,EAAE,CAAC;YACT,gEAAgE;YAChE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,WAAW,GAAG,sBAAsB,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;YAEnE,cAAc,GAAG,uBAAuB,CACtC,WAAW,EACX,IAAI,CAAC,WAAW,EAAE,EAClB,aAAa,EACb,SAAS,CACV,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5B,UAAU,EAAE,cAAc;SAC3B,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,GAAG,CACT,8CAA8C,OAAO,eAAe,OAAO,GAAG,EAC9E,KAAK,CACN,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5B,UAAU,EAAE,CAAC;SACd,CAAC;IACJ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"erc20-tokenIn-taxes.js","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-tokenIn-taxes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "genius-intents",
3
- "version": "0.24.3-develop.0",
3
+ "version": "0.25.0",
4
4
  "description": "A unified SDK for interacting with intents-based protocols across multiple blockchains including Solana, Ethereum, and Sui",
5
5
  "license": "GNU",
6
6
  "author": "Samuel Videau <samuel@videau.io>, AltLoot <@altloot>, Satyam Kumar <skdbsp123@gmail.com>",