genius-intents 0.20.2 → 0.20.3-develop.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.20.3-develop.0] - 2025-11-10 (Beta)
2
+
3
+ 🧪 **This is a beta release for testing purposes.**
4
+
5
+ ### [0.20.3-develop.0](https://github.com/Genius-Foundation/genius-intents/compare/v0.20.2...v0.20.3-develop.0) (2025-11-10)
6
+
7
+
8
+ ### Features
9
+
10
+ * Transfer Tax Detection for TokenIn ([#148](https://github.com/Genius-Foundation/genius-intents/issues/148)) ([19dbcb7](https://github.com/Genius-Foundation/genius-intents/commit/19dbcb7a991f8dd46207df37c10def1726afdbe2))
11
+
12
+
13
+ ### Documentation
14
+
15
+ * update CHANGELOG.md for v0.20.2 (beta) ([6bb0550](https://github.com/Genius-Foundation/genius-intents/commit/6bb0550e3aff7c92a59ae980ce6e8b88953d319e))
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.20.2] - 2025-11-07 (Beta)
2
29
 
3
30
  🧪 **This is a beta release for testing purposes.**
@@ -10,6 +10,10 @@ export declare class EvmPairDiscoveryService {
10
10
  dexes: SupportedEvmDexes[];
11
11
  chains: ChainIdEnum[];
12
12
  private _adapters;
13
+ /**
14
+ * Utilized to determine the sell tax of an ERC20 token
15
+ */
16
+ private _clients;
13
17
  constructor(config: DexPairDiscoveryConfig);
14
18
  getPairInfo(params: GetEvmDexPairParams): Promise<EvmPairCandidate>;
15
19
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pair-discovery.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAiBjE,qBAAa,uBAAuB;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAwB/B;IAEK,MAAM,EAAE,WAAW,EAAE,CAS1B;IAEF,OAAO,CAAC,SAAS,CAAyB;gBAE9B,MAAM,EAAE,sBAAsB;IAW7B,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CAyCjF"}
1
+ {"version":3,"file":"pair-discovery.service.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EAEnB,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC;;GAEG;AACH,OAAO,EAAE,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AAoBjE,qBAAa,uBAAuB;IAC3B,KAAK,EAAE,iBAAiB,EAAE,CAuC/B;IAEK,MAAM,EAAE,WAAW,EAAE,CAS1B;IAEF,OAAO,CAAC,SAAS,CAAyB;IAE1C;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAgC;gBAEpC,MAAM,EAAE,sBAAsB;IAyB7B,WAAW,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC;CA8FjF"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.EvmPairDiscoveryService = void 0;
4
+ const ethers_1 = require("ethers");
4
5
  /**
5
6
  * Enumerations for various supported DEX protocols and chains
6
7
  */
@@ -19,13 +20,24 @@ const v3_dex_pair_discovery_adapter_1 = require("./adapters/v3-dex-pair-discover
19
20
  const ve33_dex_pair_discovery_adapter_1 = require("./adapters/ve33-dex-pair-discovery.adapter");
20
21
  const fourmeme_dex_pair_discovery_adapter_1 = require("./adapters/fourmeme-dex-pair-discovery.adapter");
21
22
  const norm_dex_token_1 = require("../../../utils/norm-dex-token");
23
+ const erc20_tokenIn_taxes_1 = require("../../transfer-taxes/erc20-tokenIn-taxes");
24
+ const chainId_to_chain_1 = require("../../../utils/chainId-to-chain");
22
25
  class EvmPairDiscoveryService {
23
26
  constructor(config) {
24
27
  this.dexes = [
28
+ /**
29
+ * Protocol Specific
30
+ */
25
31
  enums_1.ProtocolEnum.LFJ,
26
32
  enums_1.ProtocolEnum.FOUR_MEME,
33
+ /**
34
+ * Algebra
35
+ */
27
36
  algebra_types_1.AlgebraDexTagEnum.BLACKHOLE,
28
37
  algebra_types_1.AlgebraDexTagEnum.QUICKSWAP_CLMM,
38
+ /**
39
+ * Uniswap V2 Style DEXes
40
+ */
29
41
  v2_dex_types_1.UniswapV2StyleDexEnum.UNISWAP_V2,
30
42
  v2_dex_types_1.UniswapV2StyleDexEnum.SUSHISWAP_V2,
31
43
  v2_dex_types_1.UniswapV2StyleDexEnum.PANCAKESWAP_V2,
@@ -33,6 +45,9 @@ class EvmPairDiscoveryService {
33
45
  v2_dex_types_1.UniswapV2StyleDexEnum.TRADERJOE_V2,
34
46
  v2_dex_types_1.UniswapV2StyleDexEnum.PANGOLIN_V2,
35
47
  v2_dex_types_1.UniswapV2StyleDexEnum.HYPERSWAP_V2,
48
+ /**
49
+ * Uniswap V3 Style DEXes
50
+ */
36
51
  v3_dex_types_1.UniswapV3StyleDexEnum.UNISWAP_V3,
37
52
  v3_dex_types_1.UniswapV3StyleDexEnum.PANCAKESWAP_V3,
38
53
  v3_dex_types_1.UniswapV3StyleDexEnum.PANGOLIN_V3,
@@ -41,6 +56,9 @@ class EvmPairDiscoveryService {
41
56
  v3_dex_types_1.UniswapV3StyleDexEnum.VELODROME_CLMM,
42
57
  v3_dex_types_1.UniswapV3StyleDexEnum.AERODROME_CLMM,
43
58
  v3_dex_types_1.UniswapV3StyleDexEnum.RAMSES_CLMM,
59
+ /**
60
+ * Ve33 Style Deployments
61
+ */
44
62
  ve33_types_1.Ve33StyleDeploymentEnum.AERODROME,
45
63
  ve33_types_1.Ve33StyleDeploymentEnum.VELODROME,
46
64
  ve33_types_1.Ve33StyleDeploymentEnum.BLACKHOLE,
@@ -57,6 +75,10 @@ class EvmPairDiscoveryService {
57
75
  enums_1.ChainIdEnum.HYPEREVM,
58
76
  ];
59
77
  this._adapters = [];
78
+ /**
79
+ * Utilized to determine the sell tax of an ERC20 token
80
+ */
81
+ this._clients = [];
60
82
  this._adapters = [
61
83
  new lfj_v3_dex_pair_doscovery_adapter_1.LfjPairAdapter(config),
62
84
  new algebra_dex_pair_discovery_adapter_1.AlgebraPairAdapter(config),
@@ -65,38 +87,92 @@ class EvmPairDiscoveryService {
65
87
  new ve33_dex_pair_discovery_adapter_1.Ve33PairAdapter(config),
66
88
  new fourmeme_dex_pair_discovery_adapter_1.FourMemePairAdapter(config),
67
89
  ];
90
+ for (const [chainIdStr, rpcUrl] of Object.entries(config.rpcs)) {
91
+ const network = Number(chainIdStr);
92
+ const chainConfig = chainId_to_chain_1.chainIdToChain[network];
93
+ const supportsNetwork = this.chains.includes(network);
94
+ if (!chainConfig || !supportsNetwork) {
95
+ continue;
96
+ }
97
+ const client = new ethers_1.ethers.JsonRpcProvider(rpcUrl, network);
98
+ this._clients[network] = client;
99
+ }
68
100
  }
69
101
  async getPairInfo(params) {
70
- return new Promise((resolve, reject) => {
71
- let resolvedCount = 0;
72
- const totalAdapters = this._adapters.length;
73
- const { tokenIn, tokenOut } = (0, norm_dex_token_1.normalizeDexTokens)({
74
- tokenIn: params.tokenIn,
75
- tokenOut: params.tokenOut,
102
+ const supportedAdapters = this._adapters.filter(adapter => adapter.chains.includes(params.network));
103
+ if (supportedAdapters.length === 0) {
104
+ throw new Error(`EvmPairDiscoveryService: No supported adapters found for network ${params.network}`);
105
+ }
106
+ const { tokenIn, tokenOut } = (0, norm_dex_token_1.normalizeDexTokens)({
107
+ tokenIn: params.tokenIn,
108
+ tokenOut: params.tokenOut,
109
+ network: params.network,
110
+ });
111
+ const adapterErrors = [];
112
+ const promises = supportedAdapters.map(async (adapter) => {
113
+ try {
114
+ const pairInfo = await adapter.getPairInfo({ ...params, tokenIn, tokenOut });
115
+ if (pairInfo) {
116
+ return { success: true, adapter: adapter.constructor.name, pairInfo };
117
+ }
118
+ return {
119
+ success: false,
120
+ adapter: adapter.constructor.name,
121
+ error: new Error('No matching pair found'),
122
+ };
123
+ }
124
+ catch (error) {
125
+ return {
126
+ success: false,
127
+ adapter: adapter.constructor.name,
128
+ error: error instanceof Error ? error : new Error(String(error)),
129
+ };
130
+ }
131
+ });
132
+ let transferTaxPromise = undefined;
133
+ if (params.sellTxHash && params.sellerEOA) {
134
+ const client = this._clients[params.network];
135
+ if (!client) {
136
+ throw new Error(`EvmPairDiscoveryService: No RPC client available for network ${params.network} to determine transfer tax`);
137
+ }
138
+ transferTaxPromise = (0, erc20_tokenIn_taxes_1.determineTokenInTransferTax)({
139
+ tokenIn,
140
+ tokenOut,
141
+ pairAddress: params.pair,
76
142
  network: params.network,
143
+ client,
144
+ /**
145
+ * We know that these are defined due to the outer if condition
146
+ */
147
+ sellTxHash: params.sellTxHash,
148
+ sellTxEoa: params.sellerEOA,
77
149
  });
78
- this._adapters.forEach(adapter => {
79
- adapter
80
- .getPairInfo({ ...params, tokenIn, tokenOut })
81
- .then(pairInfo => {
82
- if (pairInfo) {
83
- resolve(pairInfo);
84
- }
85
- else {
86
- resolvedCount++;
87
- if (resolvedCount === totalAdapters) {
88
- reject(new Error(`EvmPairDiscoveryService: No matching pair found for tokens ${params.tokenIn} and ${params.tokenOut} on network ${params.network}`));
89
- }
90
- }
91
- })
92
- .catch(() => {
93
- resolvedCount++;
94
- if (resolvedCount === totalAdapters) {
95
- reject(new Error(`EvmPairDiscoveryService: No matching pair found for tokens ${params.tokenIn} and ${params.tokenOut} on network ${params.network}`));
96
- }
97
- });
150
+ }
151
+ const [transferTaxInfo, results] = await Promise.all([
152
+ transferTaxPromise,
153
+ Promise.all(promises),
154
+ ]);
155
+ for (const result of results) {
156
+ if (result.success && result.pairInfo) {
157
+ // Add transfer tax information if available
158
+ if (transferTaxInfo) {
159
+ return {
160
+ ...result.pairInfo,
161
+ tokenInTransferTax: transferTaxInfo,
162
+ };
163
+ }
164
+ return result.pairInfo;
165
+ }
166
+ adapterErrors.push({
167
+ adapter: result.adapter,
168
+ error: result?.error instanceof Error ? result.error : new Error(String(result.error)),
98
169
  });
99
- });
170
+ }
171
+ // If we reach here, all adapters failed
172
+ const errorDetails = adapterErrors
173
+ .map(({ adapter, error }) => `${adapter}: ${error.message}`)
174
+ .join('; ');
175
+ throw new Error(`EvmPairDiscoveryService: All adapters failed for tokens ${params.tokenIn} and ${params.tokenOut} on network ${params.network}. Errors: ${errorDetails}`);
100
176
  }
101
177
  }
102
178
  exports.EvmPairDiscoveryService = EvmPairDiscoveryService;
@@ -1 +1 @@
1
- {"version":3,"file":"pair-discovery.service.js","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair-discovery.service.js","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.service.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,28 @@ import { UniswapV2StyleDexEnum, V2DexDeployment } from '../../../protocols/v2-de
5
5
  import { UniswapV3StyleDexEnum, UniV3Deployment } from '../../../protocols/v3-dex/v3-dex.types';
6
6
  import { ChainIdEnum, ProtocolEnum } from '../../../types/enums';
7
7
  import { LFJDeployment } from '../../../protocols/lfj/lfj.types';
8
+ import { ERC20TransferTaxResult } from '../../transfer-taxes/erc20-taxes.types';
8
9
  export type SupportedEvmDexes = UniswapV3StyleDexEnum | UniswapV2StyleDexEnum | AlgebraDexTagEnum | Ve33StyleDeploymentEnum | ProtocolEnum.LFJ | ProtocolEnum.FOUR_MEME;
9
10
  export type EvmDirectPoolAmountOutResponse = EvmDirectLegacyPoolAmountOutResponse | EvmDirectCLMMPoolAmountOutResponse | EvmDirectFourMemePoolAmountOutResponse;
10
11
  export type UnifiedPoolAmountOutParams = EvmDirectPoolAmountOutParams | AlgebraPoolAmountOutParams | V2PoolAmountOutParams | Ve33PoolAmountOutParams | V3PoolAmountOutParams | LFJPoolAmountOutParams | FourMemePoolAmountOutParams;
11
12
  export type EvmDexPairResponse = V2PairCandidate | V3PairCandidate | Ve33PairCandidate | FourMemePairCandidate | LfjV22PairCandidate;
12
13
  export type GetEvmDexPairParams = {
14
+ /**
15
+ * The network to search for the pair on
16
+ */
13
17
  network: ChainIdEnum;
18
+ /**
19
+ * The input token address
20
+ */
14
21
  tokenIn: string;
22
+ /**
23
+ * The output token address
24
+ */
15
25
  tokenOut: string;
26
+ /**
27
+ * The expected pair for the tokenIn and tokenOut values. This
28
+ * value is validated by using the deterministic CREATE2 address calculations
29
+ */
16
30
  pair: string;
17
31
  /**
18
32
  * If amountIn is specified, slippage must be specified as well
@@ -30,6 +44,14 @@ export type GetEvmDexPairParams = {
30
44
  * The price of the Quote Token for the Four.meme pair, in case the quote token is not BNB
31
45
  */
32
46
  quoteTokenPrice?: number;
47
+ /**
48
+ * A sell transaction hash for the given token pair
49
+ */
50
+ sellTxHash?: string;
51
+ /**
52
+ * (Optional) EOA that executed the sell transaction
53
+ */
54
+ sellerEOA?: string;
33
55
  };
34
56
  export type EvmDirectPoolKey = `${SupportedEvmDexes}:${Address}:${ChainIdEnum}`;
35
57
  export type EvmPairCandidate = {
@@ -47,6 +69,10 @@ export type EvmPairCandidate = {
47
69
  * Only given if amountIn and slippage were provided in the request
48
70
  */
49
71
  amountOutMin?: string;
72
+ /**
73
+ * Only given if a valid TxHash and EOA were provided for transfer-tax calculation
74
+ */
75
+ tokenInTransferTax?: ERC20TransferTaxResult;
50
76
  };
51
77
  export type EvmDirectPoolAmountOutParams = {
52
78
  network: ChainIdEnum;
@@ -1 +1 @@
1
- {"version":3,"file":"pair-discovery.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pair-discovery.types.d.ts","sourceRoot":"","sources":["../../../../src/lib/dex/pair-discovery/pair-discovery.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { ethers } from 'ethers';
2
+ import { ChainIdEnum } from '../..';
3
+ export type DetermineERC20TransferTax = {
4
+ tokenIn: string;
5
+ tokenOut: string;
6
+ pairAddress: string;
7
+ network: ChainIdEnum;
8
+ client: ethers.JsonRpcProvider;
9
+ /**
10
+ * Sell transaction hash is required for tax calculation
11
+ */
12
+ sellTxHash: string;
13
+ /**
14
+ * EOA address that executed the sell transaction - needed for accurate tax calculation
15
+ */
16
+ sellTxEoa: string;
17
+ };
18
+ export type ERC20TransferTaxResult = {
19
+ address: string;
20
+ sellTaxBps: number;
21
+ };
22
+ export type ERC20TransferLog = {
23
+ from: string;
24
+ to: string;
25
+ value: bigint;
26
+ };
27
+ export type ERC20DirectionalTax = {
28
+ sellTaxBps: number;
29
+ };
30
+ //# sourceMappingURL=erc20-taxes.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-taxes.types.d.ts","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-taxes.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAEpC,MAAM,MAAM,yBAAyB,GAAG;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC;IAC/B;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB;;OAEG;IACH,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAC3E,MAAM,MAAM,mBAAmB,GAAG;IAChC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=erc20-taxes.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"erc20-taxes.types.js","sourceRoot":"","sources":["../../../src/lib/transfer-taxes/erc20-taxes.types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ import { DetermineERC20TransferTax, ERC20TransferTaxResult } from './erc20-taxes.types';
2
+ export declare function determineTokenInTransferTax(params: DetermineERC20TransferTax): Promise<ERC20TransferTaxResult>;
3
+ //# sourceMappingURL=erc20-tokenIn-taxes.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.determineTokenInTransferTax = determineTokenInTransferTax;
4
+ const ethers_1 = require("ethers");
5
+ const constants_1 = require("../../utils/constants");
6
+ const is_native_1 = require("../../utils/is-native");
7
+ const wrapped_native_1 = require("../../utils/wrapped-native");
8
+ /* ----------------- constants & helpers ----------------- */
9
+ const TRANSFER_TOPIC = '0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef';
10
+ const SWAP_TOPIC = '0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822';
11
+ const KNOWN_SINKS = new Set([
12
+ constants_1.ZERO_ADDRESS.toLowerCase(),
13
+ '0x000000000000000000000000000000000000dead',
14
+ ]);
15
+ function toChecksum(addr) {
16
+ return ethers_1.ethers.getAddress(addr);
17
+ }
18
+ function toBps(n, d) {
19
+ if (d <= 0n)
20
+ return 0;
21
+ return Number((n * 10000n) / d);
22
+ }
23
+ function parseTokenTransfersFor(receipt, token) {
24
+ const tokenLc = token.toLowerCase();
25
+ const out = [];
26
+ for (const log of receipt.logs) {
27
+ if (!log || !log.topics?.length)
28
+ continue;
29
+ if (log.address.toLowerCase() !== tokenLc)
30
+ continue;
31
+ if (!log?.topics[0])
32
+ continue;
33
+ if (log.topics[0].toLowerCase() !== TRANSFER_TOPIC)
34
+ continue;
35
+ if (log.topics.length < 3)
36
+ continue;
37
+ if (!log.topics[1])
38
+ continue;
39
+ if (!log.topics[2])
40
+ continue;
41
+ const from = `0x${log.topics[1].slice(26)}`.toLowerCase();
42
+ const to = `0x${log.topics[2].slice(26)}`.toLowerCase();
43
+ const value = BigInt(log.data);
44
+ // @ts-ignore
45
+ const index = log.index ?? log.logIndex ?? 0;
46
+ out.push({ from, to, value, index });
47
+ }
48
+ return out;
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
+ /**
56
+ * Find and decode the Swap for this pair in this receipt.
57
+ * Returns the log index and decoded amounts.
58
+ */
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)
67
+ continue;
68
+ const parsed = iface.parseLog({ topics: log.topics, data: log.data });
69
+ if (!parsed)
70
+ continue;
71
+ return true;
72
+ }
73
+ return false;
74
+ }
75
+ /**
76
+ * Sell tax (tokenIn): fee burned/redirected when user sells tokenIn tokens
77
+ * taxBps = feeToSinks / (userSentToPair + feeToSinks)
78
+ */
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;
102
+ }
103
+ else if (isSink) {
104
+ feeToSinks += t.value;
105
+ }
106
+ // Ignore other transfers from user (might be approvals, etc.)
107
+ }
108
+ // console.log(`UserSentToPair: ${userSentToPair}`);
109
+ // console.log(`FeeToSinks: ${feeToSinks}`);
110
+ const totalUserSent = userSentToPair + feeToSinks;
111
+ // console.log(`TotalUserSent: ${totalUserSent}`);
112
+ if (totalUserSent === 0n)
113
+ return 0;
114
+ // Tax rate = fee / (amount to pair + fee)
115
+ const taxBps = toBps(feeToSinks, totalUserSent);
116
+ // console.log(`Sell Tax BPS: ${taxBps}`);
117
+ return taxBps;
118
+ }
119
+ /* ----------------- public entry ----------------- */
120
+ async function determineTokenInTransferTax(params) {
121
+ const { tokenIn, tokenOut, network, client, sellTxHash, pairAddress, sellTxEoa } = params;
122
+ const tokenInIsNative = (0, is_native_1.isNative)(tokenIn);
123
+ const tokenOutIsNative = (0, is_native_1.isNative)(tokenOut);
124
+ const wNative = wrapped_native_1.wrappedNativeTokens[network];
125
+ try {
126
+ // If tokenIn is native, no sell tax applies - return 0 immediately
127
+ if (tokenInIsNative) {
128
+ if (!wNative)
129
+ throw new Error(`No wrapped native token configured for network ${network}`);
130
+ return {
131
+ address: wNative,
132
+ sellTaxBps: 0,
133
+ };
134
+ }
135
+ if (!pairAddress) {
136
+ throw new Error('pairAddress is required for EVM transfer-tax detection');
137
+ }
138
+ if (tokenInIsNative && tokenOutIsNative)
139
+ throw new Error('Both tokenIn and tokenOut cannot be native tokens');
140
+ const pair = toChecksum(pairAddress);
141
+ // Only calculate sell tax for tokenIn since that's what we care about
142
+ let tokenInSellTax = 0;
143
+ 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);
152
+ }
153
+ return {
154
+ address: toChecksum(tokenIn),
155
+ sellTaxBps: tokenInSellTax,
156
+ };
157
+ }
158
+ catch (error) {
159
+ console.log(`Error determining transfer tax for tokenIn ${tokenIn} on network ${network}:`, error);
160
+ return {
161
+ address: toChecksum(tokenIn),
162
+ sellTaxBps: 0,
163
+ };
164
+ }
165
+ }
166
+ //# sourceMappingURL=erc20-tokenIn-taxes.js.map
@@ -0,0 +1 @@
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.20.2",
3
+ "version": "0.20.3-develop.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>",