@paraswap/dex-lib 4.8.25 → 4.8.26

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 (236) hide show
  1. package/build/abi/BProtocol.json +1155 -0
  2. package/build/abi/Jarvis.json +1172 -0
  3. package/build/abi/MStableAsset.json +1545 -0
  4. package/build/abi/OneInchLp.json +1304 -0
  5. package/build/abi/Onebit.json +736 -0
  6. package/build/abi/Shell.json +1294 -0
  7. package/build/abi/TraderJoeV2Router.json +50 -0
  8. package/build/abi/idle-dao/idle-cdo-factory.json +38 -0
  9. package/build/abi/idle-dao/idle-cdo.json +1245 -0
  10. package/build/abi/infusion/InfusionFactory.json +147 -0
  11. package/build/abi/infusion/InfusionPair.json +658 -0
  12. package/build/abi/infusion/InfusionRouter.json +442 -0
  13. package/build/abi/maker-psm/pot.json +322 -0
  14. package/build/abi/maker-psm/psm.json +243 -0
  15. package/build/abi/maker-psm/vat.json +363 -0
  16. package/build/abi/nomiswap-v2/nomiswap-v2-pool.json +773 -0
  17. package/build/abi/quick-perps/fast-price-events.json +70 -0
  18. package/build/abi/quick-perps/fast-price-feed.json +741 -0
  19. package/build/abi/quick-perps/reader.json +313 -0
  20. package/build/abi/quick-perps/vault-price-feed.json +323 -0
  21. package/build/abi/quick-perps/vault.json +1953 -0
  22. package/build/abi/uniswap-v2/excalibur-pool.json +881 -0
  23. package/build/abi/uniswap-v2/mdex-factory.json +759 -0
  24. package/build/abi/wUSDM.json +757 -0
  25. package/build/abi/zrx.v2.json +1967 -0
  26. package/build/abi/zrx.v3.json +3454 -0
  27. package/build/abi/zrx.v4.json +2193 -0
  28. package/build/config.js +12 -12
  29. package/build/dex/OneInchLp.d.ts +24 -0
  30. package/build/dex/OneInchLp.js +43 -0
  31. package/build/dex/OneInchLp.js.map +1 -0
  32. package/build/dex/bProtocol/bProtocol.d.ts +15 -0
  33. package/build/dex/bProtocol/bProtocol.js +56 -0
  34. package/build/dex/bProtocol/bProtocol.js.map +1 -0
  35. package/build/dex/bProtocol/types.d.ts +11 -0
  36. package/build/dex/bProtocol/types.js +8 -0
  37. package/build/dex/bProtocol/types.js.map +1 -0
  38. package/build/dex/ekubo/pools/base-pool.d.ts +47 -0
  39. package/build/dex/ekubo/pools/base-pool.js +184 -0
  40. package/build/dex/ekubo/pools/base-pool.js.map +1 -0
  41. package/build/dex/ekubo/pools/iface.d.ts +46 -0
  42. package/build/dex/ekubo/pools/iface.js +75 -0
  43. package/build/dex/ekubo/pools/iface.js.map +1 -0
  44. package/build/dex/ekubo/pools/math/price.d.ts +7 -0
  45. package/build/dex/ekubo/pools/math/price.js +112 -0
  46. package/build/dex/ekubo/pools/math/price.js.map +1 -0
  47. package/build/dex/ekubo/pools/oracle-pool.d.ts +10 -0
  48. package/build/dex/ekubo/pools/oracle-pool.js +19 -0
  49. package/build/dex/ekubo/pools/oracle-pool.js.map +1 -0
  50. package/build/dex/ekubo/pools/pool-utils.d.ts +44 -0
  51. package/build/dex/ekubo/pools/pool-utils.js +240 -0
  52. package/build/dex/ekubo/pools/pool-utils.js.map +1 -0
  53. package/build/dex/ekubo-v3/ekubo-v3.js +1 -0
  54. package/build/dex/ekubo-v3/ekubo-v3.js.map +1 -1
  55. package/build/dex/idle-dao/config.d.ts +5 -0
  56. package/build/dex/idle-dao/config.js +24 -0
  57. package/build/dex/idle-dao/config.js.map +1 -0
  58. package/build/dex/idle-dao/idle-dao.d.ts +42 -0
  59. package/build/dex/idle-dao/idle-dao.js +279 -0
  60. package/build/dex/idle-dao/idle-dao.js.map +1 -0
  61. package/build/dex/idle-dao/token_list.d.ts +4 -0
  62. package/build/dex/idle-dao/token_list.js +289 -0
  63. package/build/dex/idle-dao/token_list.js.map +1 -0
  64. package/build/dex/idle-dao/tokens.d.ts +9 -0
  65. package/build/dex/idle-dao/tokens.js +68 -0
  66. package/build/dex/idle-dao/tokens.js.map +1 -0
  67. package/build/dex/idle-dao/types.d.ts +35 -0
  68. package/build/dex/idle-dao/types.js +11 -0
  69. package/build/dex/idle-dao/types.js.map +1 -0
  70. package/build/dex/idle-dao/utils.d.ts +8 -0
  71. package/build/dex/idle-dao/utils.js +149 -0
  72. package/build/dex/idle-dao/utils.js.map +1 -0
  73. package/build/dex/infusion/config.d.ts +3 -0
  74. package/build/dex/infusion/config.js +20 -0
  75. package/build/dex/infusion/config.js.map +1 -0
  76. package/build/dex/infusion/infusion-stable-pool.d.ts +4 -0
  77. package/build/dex/infusion/infusion-stable-pool.js +74 -0
  78. package/build/dex/infusion/infusion-stable-pool.js.map +1 -0
  79. package/build/dex/infusion/infusion.d.ts +51 -0
  80. package/build/dex/infusion/infusion.js +500 -0
  81. package/build/dex/infusion/infusion.js.map +1 -0
  82. package/build/dex/infusion/types.d.ts +45 -0
  83. package/build/dex/infusion/types.js +3 -0
  84. package/build/dex/infusion/types.js.map +1 -0
  85. package/build/dex/infusion/utils/isStablePair.d.ts +2 -0
  86. package/build/dex/infusion/utils/isStablePair.js +18 -0
  87. package/build/dex/infusion/utils/isStablePair.js.map +1 -0
  88. package/build/dex/jarvis.d.ts +56 -0
  89. package/build/dex/jarvis.js +163 -0
  90. package/build/dex/jarvis.js.map +1 -0
  91. package/build/dex/mStable.d.ts +44 -0
  92. package/build/dex/mStable.js +75 -0
  93. package/build/dex/mStable.js.map +1 -0
  94. package/build/dex/maker-psm/config.d.ts +11 -0
  95. package/build/dex/maker-psm/config.js +53 -0
  96. package/build/dex/maker-psm/config.js.map +1 -0
  97. package/build/dex/maker-psm/maker-psm.d.ts +103 -0
  98. package/build/dex/maker-psm/maker-psm.js +493 -0
  99. package/build/dex/maker-psm/maker-psm.js.map +1 -0
  100. package/build/dex/maker-psm/types.d.ts +39 -0
  101. package/build/dex/maker-psm/types.js +3 -0
  102. package/build/dex/maker-psm/types.js.map +1 -0
  103. package/build/dex/onebit/onebit.d.ts +16 -0
  104. package/build/dex/onebit/onebit.js +61 -0
  105. package/build/dex/onebit/onebit.js.map +1 -0
  106. package/build/dex/onebit/types.d.ts +14 -0
  107. package/build/dex/onebit/types.js +8 -0
  108. package/build/dex/onebit/types.js.map +1 -0
  109. package/build/dex/quick-perps/config.d.ts +11 -0
  110. package/build/dex/quick-perps/config.js +27 -0
  111. package/build/dex/quick-perps/config.js.map +1 -0
  112. package/build/dex/quick-perps/fast-price-feed.d.ts +26 -0
  113. package/build/dex/quick-perps/fast-price-feed.js +184 -0
  114. package/build/dex/quick-perps/fast-price-feed.js.map +1 -0
  115. package/build/dex/quick-perps/pool.d.ts +21 -0
  116. package/build/dex/quick-perps/pool.js +229 -0
  117. package/build/dex/quick-perps/pool.js.map +1 -0
  118. package/build/dex/quick-perps/quick-perps.d.ts +53 -0
  119. package/build/dex/quick-perps/quick-perps.js +247 -0
  120. package/build/dex/quick-perps/quick-perps.js.map +1 -0
  121. package/build/dex/quick-perps/types.d.ts +98 -0
  122. package/build/dex/quick-perps/types.js +3 -0
  123. package/build/dex/quick-perps/types.js.map +1 -0
  124. package/build/dex/quick-perps/usdq.d.ts +15 -0
  125. package/build/dex/quick-perps/usdq.js +62 -0
  126. package/build/dex/quick-perps/usdq.js.map +1 -0
  127. package/build/dex/quick-perps/vault-price-feed.d.ts +43 -0
  128. package/build/dex/quick-perps/vault-price-feed.js +203 -0
  129. package/build/dex/quick-perps/vault-price-feed.js.map +1 -0
  130. package/build/dex/quick-perps/vault-utils.d.ts +8 -0
  131. package/build/dex/quick-perps/vault-utils.js +42 -0
  132. package/build/dex/quick-perps/vault-utils.js.map +1 -0
  133. package/build/dex/quick-perps/vault.d.ts +46 -0
  134. package/build/dex/quick-perps/vault.js +182 -0
  135. package/build/dex/quick-perps/vault.js.map +1 -0
  136. package/build/dex/se-vlr/config.d.ts +3 -0
  137. package/build/dex/se-vlr/config.js +24 -0
  138. package/build/dex/se-vlr/config.js.map +1 -0
  139. package/build/dex/se-vlr/se-vlr-pool.d.ts +39 -0
  140. package/build/dex/se-vlr/se-vlr-pool.js +70 -0
  141. package/build/dex/se-vlr/se-vlr-pool.js.map +1 -0
  142. package/build/dex/se-vlr/se-vlr.d.ts +35 -0
  143. package/build/dex/se-vlr/se-vlr.js +131 -0
  144. package/build/dex/se-vlr/se-vlr.js.map +1 -0
  145. package/build/dex/se-vlr/types.d.ts +6 -0
  146. package/build/dex/se-vlr/types.js +3 -0
  147. package/build/dex/se-vlr/types.js.map +1 -0
  148. package/build/dex/shell.d.ts +25 -0
  149. package/build/dex/shell.js +41 -0
  150. package/build/dex/shell.js.map +1 -0
  151. package/build/dex/solidly/forks-override/aerodrome.d.ts +14 -0
  152. package/build/dex/solidly/forks-override/aerodrome.js +46 -0
  153. package/build/dex/solidly/forks-override/aerodrome.js.map +1 -0
  154. package/build/dex/solidly/forks-override/chronos.d.ts +23 -0
  155. package/build/dex/solidly/forks-override/chronos.js +141 -0
  156. package/build/dex/solidly/forks-override/chronos.js.map +1 -0
  157. package/build/dex/solidly/forks-override/usdfi.d.ts +8 -0
  158. package/build/dex/solidly/forks-override/usdfi.js +15 -0
  159. package/build/dex/solidly/forks-override/usdfi.js.map +1 -0
  160. package/build/dex/solidly/forks-override/velocimeter.d.ts +23 -0
  161. package/build/dex/solidly/forks-override/velocimeter.js +77 -0
  162. package/build/dex/solidly/forks-override/velocimeter.js.map +1 -0
  163. package/build/dex/trader-joe-v2.d.ts +40 -0
  164. package/build/dex/trader-joe-v2.js +74 -0
  165. package/build/dex/trader-joe-v2.js.map +1 -0
  166. package/build/dex/uniswap-v2/dfyn.d.ts +19 -0
  167. package/build/dex/uniswap-v2/dfyn.js +61 -0
  168. package/build/dex/uniswap-v2/dfyn.js.map +1 -0
  169. package/build/dex/uniswap-v2/excalibur.d.ts +24 -0
  170. package/build/dex/uniswap-v2/excalibur.js +47 -0
  171. package/build/dex/uniswap-v2/excalibur.js.map +1 -0
  172. package/build/dex/uniswap-v2/mdex.d.ts +24 -0
  173. package/build/dex/uniswap-v2/mdex.js +50 -0
  174. package/build/dex/uniswap-v2/mdex.js.map +1 -0
  175. package/build/dex/uniswap-v2/nomiswap-v2.d.ts +24 -0
  176. package/build/dex/uniswap-v2/nomiswap-v2.js +57 -0
  177. package/build/dex/uniswap-v2/nomiswap-v2.js.map +1 -0
  178. package/build/dex/uniswap-v3/uniswap-v3-new.d.ts +94 -0
  179. package/build/dex/uniswap-v3/uniswap-v3-new.js +923 -0
  180. package/build/dex/uniswap-v3/uniswap-v3-new.js.map +1 -0
  181. package/build/dex/uniswap-v4/contract-math/Position.d.ts +3 -0
  182. package/build/dex/uniswap-v4/contract-math/Position.js +10 -0
  183. package/build/dex/uniswap-v4/contract-math/Position.js.map +1 -0
  184. package/build/dex/usual-bond/config.d.ts +3 -0
  185. package/build/dex/usual-bond/config.js +13 -0
  186. package/build/dex/usual-bond/config.js.map +1 -0
  187. package/build/dex/usual-bond/types.d.ts +7 -0
  188. package/build/dex/usual-bond/types.js +3 -0
  189. package/build/dex/usual-bond/types.js.map +1 -0
  190. package/build/dex/usual-bond/usual-bond.d.ts +35 -0
  191. package/build/dex/usual-bond/usual-bond.js +176 -0
  192. package/build/dex/usual-bond/usual-bond.js.map +1 -0
  193. package/build/dex/wusdm/config.d.ts +3 -0
  194. package/build/dex/wusdm/config.js +43 -0
  195. package/build/dex/wusdm/config.js.map +1 -0
  196. package/build/dex/wusdm/constants.d.ts +2 -0
  197. package/build/dex/wusdm/constants.js +6 -0
  198. package/build/dex/wusdm/constants.js.map +1 -0
  199. package/build/dex/wusdm/types.d.ts +18 -0
  200. package/build/dex/wusdm/types.js +11 -0
  201. package/build/dex/wusdm/types.js.map +1 -0
  202. package/build/dex/wusdm/wusdm-pool.d.ts +21 -0
  203. package/build/dex/wusdm/wusdm-pool.js +74 -0
  204. package/build/dex/wusdm/wusdm-pool.js.map +1 -0
  205. package/build/dex/wusdm/wusdm.d.ts +46 -0
  206. package/build/dex/wusdm/wusdm.js +243 -0
  207. package/build/dex/wusdm/wusdm.js.map +1 -0
  208. package/build/dex/zerox/config.d.ts +2 -0
  209. package/build/dex/zerox/config.js +33 -0
  210. package/build/dex/zerox/config.js.map +1 -0
  211. package/build/dex/zerox/index.d.ts +22 -0
  212. package/build/dex/zerox/index.js +225 -0
  213. package/build/dex/zerox/index.js.map +1 -0
  214. package/build/dex/zerox/order.d.ts +88 -0
  215. package/build/dex/zerox/order.js +53 -0
  216. package/build/dex/zerox/order.js.map +1 -0
  217. package/build/dex/zerox/types.d.ts +73 -0
  218. package/build/dex/zerox/types.js +21 -0
  219. package/build/dex/zerox/types.js.map +1 -0
  220. package/build/executor/Executor03BytecodeBuilder.d.ts +15 -0
  221. package/build/executor/Executor03BytecodeBuilder.js +67 -6
  222. package/build/executor/Executor03BytecodeBuilder.js.map +1 -1
  223. package/build/types.d.ts +1 -0
  224. package/package.json +1 -1
  225. package/build/dex/uniswap-v4/api-go/compare-pricing.d.ts +0 -1
  226. package/build/dex/uniswap-v4/api-go/compare-pricing.js +0 -187
  227. package/build/dex/uniswap-v4/api-go/compare-pricing.js.map +0 -1
  228. package/build/dex/uniswap-v4/api-go/compare-states.d.ts +0 -1
  229. package/build/dex/uniswap-v4/api-go/compare-states.js +0 -149
  230. package/build/dex/uniswap-v4/api-go/compare-states.js.map +0 -1
  231. package/build/dex/uniswap-v4/api-go/fetch-pool-key.d.ts +0 -0
  232. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js +0 -140
  233. package/build/dex/uniswap-v4/api-go/fetch-pool-key.js.map +0 -1
  234. package/build/tenderly-simulation.d.ts +0 -221
  235. package/build/tenderly-simulation.js +0 -517
  236. package/build/tenderly-simulation.js.map +0 -1
@@ -1,149 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const dotenv_1 = __importDefault(require("dotenv"));
7
- dotenv_1.default.config();
8
- const axios_1 = __importDefault(require("axios"));
9
- const fs_1 = __importDefault(require("fs"));
10
- const path_1 = __importDefault(require("path"));
11
- // eslint-disable-next-line @typescript-eslint/no-var-requires
12
- const { diffString } = require('json-diff');
13
- const constants_1 = require("../../../constants");
14
- const config_1 = require("../config");
15
- const uniswap_v4_pool_1 = require("../uniswap-v4-pool");
16
- const dex_helper_1 = require("../../../dex-helper");
17
- const POOL_ID = '0x54c72c46df32f2cc455e84e41e191b26ed73a29452cdd3d82f511097af9f427e';
18
- const CHAIN_ID = constants_1.Network.MAINNET;
19
- const DEX_KEY = 'UniswapV4';
20
- const API_DEX_KEY = 'uniswapv4'; // cspell:disable-line
21
- const CONFIG = config_1.UniswapV4Config[DEX_KEY][CHAIN_ID];
22
- const POOL_KEY_CACHE_FILE = path_1.default.join(__dirname, 'pool_key_cache.json');
23
- function loadPoolKeyFromCache() {
24
- try {
25
- const raw = fs_1.default.readFileSync(POOL_KEY_CACHE_FILE, 'utf-8');
26
- const cache = JSON.parse(raw);
27
- return cache[CHAIN_ID]?.[POOL_ID] ?? null;
28
- }
29
- catch {
30
- return null;
31
- }
32
- }
33
- async function generatePoolState(poolKey, blockNumber) {
34
- const dexHelper = new dex_helper_1.DummyDexHelper(CHAIN_ID);
35
- const logger = dexHelper.getLogger(DEX_KEY);
36
- const pool = new uniswap_v4_pool_1.UniswapV4Pool(dexHelper, DEX_KEY, CHAIN_ID, CONFIG, logger, '', POOL_ID, poolKey.token0.id.toLowerCase(), poolKey.token1.id.toLowerCase(), poolKey.feeTier, poolKey.hooks, poolKey.tickSpacing);
37
- return pool.generateState(blockNumber);
38
- }
39
- function serializePoolState(state) {
40
- const ticks = {};
41
- for (const [idx, tick] of Object.entries(state.ticks)) {
42
- ticks[idx] = {
43
- liquidityGross: tick.liquidityGross.toString(),
44
- liquidityNet: tick.liquidityNet.toString(),
45
- };
46
- }
47
- const tickBitmap = {};
48
- for (const [idx, val] of Object.entries(state.tickBitmap)) {
49
- tickBitmap[idx] = val.toString();
50
- }
51
- return {
52
- id: state.id,
53
- token0: state.token0,
54
- token1: state.token1,
55
- fee: state.fee,
56
- hooks: state.hooks,
57
- liquidity: state.liquidity.toString(),
58
- slot0: {
59
- sqrtPriceX96: state.slot0.sqrtPriceX96.toString(),
60
- tick: state.slot0.tick.toString(),
61
- protocolFee: state.slot0.protocolFee.toString(),
62
- lpFee: state.slot0.lpFee.toString(),
63
- },
64
- tickSpacing: state.tickSpacing,
65
- ticks,
66
- tickBitmap,
67
- };
68
- }
69
- function adaptApiToSerializedState(api) {
70
- const ticks = {};
71
- for (const [idx, tick] of Object.entries(api.dexData.ticks)) {
72
- ticks[idx] = {
73
- liquidityGross: tick.liquidityGross,
74
- liquidityNet: tick.liquidityNet,
75
- };
76
- }
77
- // Filter tickBitmap: only keep non-zero entries
78
- const tickBitmap = {};
79
- for (const [idx, val] of Object.entries(api.dexData.tickBitmap)) {
80
- if (val !== '0') {
81
- tickBitmap[idx] = val;
82
- }
83
- }
84
- return {
85
- id: api.poolId,
86
- token0: api.tokens[0],
87
- token1: api.tokens[1],
88
- fee: String(api.swapFee),
89
- hooks: api.dexData.hooks,
90
- liquidity: String(api.liquidity),
91
- slot0: {
92
- sqrtPriceX96: String(api.dexData.sqrtPriceX96),
93
- tick: String(api.dexData.tick),
94
- protocolFee: String(api.dexData.protocolFee),
95
- lpFee: String(api.swapFee),
96
- },
97
- tickSpacing: api.dexData.tickSpacing,
98
- ticks,
99
- tickBitmap,
100
- };
101
- }
102
- /* eslint-disable no-console */
103
- async function main() {
104
- const poolKey = loadPoolKeyFromCache();
105
- if (!poolKey) {
106
- console.error('Pool key not found in cache. Run fetch-pool-key.ts first to populate the cache.');
107
- process.exit(1);
108
- }
109
- console.log('Loaded pool key from cache');
110
- const dexHelper = new dex_helper_1.DummyDexHelper(CHAIN_ID);
111
- const latestBlock = await dexHelper.provider.getBlockNumber();
112
- console.log(`Latest block: ${latestBlock}`);
113
- const apiPoolId = `${CHAIN_ID}:${API_DEX_KEY}:${POOL_ID}`;
114
- const apiGenerateUrl = `http://api-go.staging.paraswap.io/api/v1/pool/generate-state?poolId=${apiPoolId}`;
115
- const apiCachedUrl = `http://api-go.staging.paraswap.io/api/v1/pool/state?poolId=${apiPoolId}`;
116
- console.log('\nFetching all states...');
117
- const [apiGenResp, apiCachedResp, rpcState] = await Promise.all([
118
- axios_1.default.get(apiGenerateUrl, { timeout: 30_000 }),
119
- axios_1.default.get(apiCachedUrl, { timeout: 30_000 }),
120
- generatePoolState(poolKey, latestBlock),
121
- ]);
122
- const apiGenData = apiGenResp.data;
123
- const apiCachedData = apiCachedResp.data;
124
- console.log(`Blocks — RPC: ${latestBlock}, API generate: ${apiGenData.blockNumber}, API cached: ${apiCachedData.blockNumber}`);
125
- const serializedRpc = serializePoolState(rpcState);
126
- const serializedApiGen = adaptApiToSerializedState(apiGenData);
127
- const serializedApiCached = adaptApiToSerializedState(apiCachedData);
128
- // RPC vs API generated
129
- console.log('\n=== RPC state vs API generated state ===\n');
130
- const diff1 = diffString(serializedRpc, serializedApiGen, { color: true });
131
- console.log(diff1 || 'States are identical.');
132
- // RPC vs API cached
133
- console.log('\n=== RPC state vs API cached state ===\n');
134
- const diff2 = diffString(serializedRpc, serializedApiCached, { color: true });
135
- console.log(diff2 || 'States are identical.');
136
- // API generated vs API cached
137
- console.log('\n=== API generated vs API cached ===\n');
138
- const diff3 = diffString(serializedApiGen, serializedApiCached, {
139
- color: true,
140
- });
141
- console.log(diff3 || 'States are identical.');
142
- }
143
- /* eslint-enable no-console */
144
- main().catch(err => {
145
- // eslint-disable-next-line no-console
146
- console.error('Error:', err.message);
147
- process.exit(1);
148
- });
149
- //# sourceMappingURL=compare-states.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compare-states.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/api-go/compare-states.ts"],"names":[],"mappings":"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"}
File without changes
@@ -1,140 +0,0 @@
1
- "use strict";
2
- // import dotenv from 'dotenv';
3
- // dotenv.config();
4
- // import axios from 'axios';
5
- // import fs from 'fs';
6
- // import path from 'path';
7
- // import { UniswapV4Config } from '../config';
8
- // import { Network } from '../../../constants';
9
- // import { UniswapV4Pool } from '../uniswap-v4-pool';
10
- // import { DummyDexHelper } from '../../../dex-helper';
11
- // import { PoolState } from '../types';
12
- // const POOL_ID =
13
- // '0x54c72c46df32f2cc455e84e41e191b26ed73a29452cdd3d82f511097af9f427e';
14
- // const CHAIN_ID = Network.MAINNET;
15
- // const DEX_KEY = 'UniswapV4';
16
- // const CONFIG = UniswapV4Config[DEX_KEY][CHAIN_ID];
17
- // const SUBGRAPH_ID = CONFIG.subgraphURL;
18
- // const POOL_KEY_CACHE_FILE = path.join(__dirname, 'pool_key_cache.json');
19
- // interface PoolKey {
20
- // id: string;
21
- // token0: { id: string };
22
- // token1: { id: string };
23
- // feeTier: string;
24
- // tickSpacing: string;
25
- // hooks: string;
26
- // }
27
- // type PoolKeyCache = Record<string, Record<string, PoolKey>>;
28
- // interface GraphQLResponse {
29
- // data: { pool: PoolKey | null };
30
- // errors?: { message: string }[];
31
- // }
32
- // function loadCache(): PoolKeyCache {
33
- // try {
34
- // const raw = fs.readFileSync(POOL_KEY_CACHE_FILE, 'utf-8');
35
- // return JSON.parse(raw) as PoolKeyCache;
36
- // } catch {
37
- // return {};
38
- // }
39
- // }
40
- // function loadPoolKeyFromCache(): PoolKey | null {
41
- // const cache = loadCache();
42
- // return cache[CHAIN_ID]?.[POOL_ID] ?? null;
43
- // }
44
- // function savePoolKeyToCache(pool: PoolKey): void {
45
- // const cache = loadCache();
46
- // if (!cache[CHAIN_ID]) {
47
- // cache[CHAIN_ID] = {};
48
- // }
49
- // cache[CHAIN_ID][POOL_ID] = pool;
50
- // fs.writeFileSync(POOL_KEY_CACHE_FILE, JSON.stringify(cache, null, 2));
51
- // }
52
- // async function fetchPoolKey(apiKey: string): Promise<PoolKey> {
53
- // const url = `https://gateway-arbitrum.network.thegraph.com/api/${apiKey}/subgraphs/id/${SUBGRAPH_ID}`;
54
- // const query = `{
55
- // pool(id: "${POOL_ID}") {
56
- // id
57
- // token0 {
58
- // id
59
- // }
60
- // token1 {
61
- // id
62
- // }
63
- // feeTier
64
- // tickSpacing
65
- // hooks
66
- // }
67
- // }`;
68
- // const resp = await axios.post<GraphQLResponse>(
69
- // url,
70
- // { query },
71
- // { timeout: 30_000 },
72
- // );
73
- // if (resp.data.errors?.length) {
74
- // throw new Error(`Subgraph error: ${resp.data.errors[0].message}`);
75
- // }
76
- // if (!resp.data.data.pool) {
77
- // throw new Error(`Pool ${POOL_ID} not found`);
78
- // }
79
- // return resp.data.data.pool;
80
- // }
81
- // function bigintReplacer(_key: string, value: unknown): unknown {
82
- // return typeof value === 'bigint' ? value.toString() : value;
83
- // }
84
- // function saveState(state: PoolState, blockNumber: number): void {
85
- // const filename = `${CHAIN_ID}-${POOL_ID}-${blockNumber}.json`;
86
- // const filepath = path.join(__dirname, filename);
87
- // fs.writeFileSync(filepath, JSON.stringify(state, bigintReplacer, 2));
88
- // console.log('State saved to:', filepath);
89
- // }
90
- // async function generatePoolState(
91
- // poolKey: PoolKey,
92
- // blockNumber: number,
93
- // ): Promise<PoolState> {
94
- // const dexHelper = new DummyDexHelper(CHAIN_ID);
95
- // const logger = dexHelper.getLogger(DEX_KEY);
96
- // const pool = new UniswapV4Pool(
97
- // dexHelper,
98
- // DEX_KEY,
99
- // CHAIN_ID,
100
- // CONFIG,
101
- // logger,
102
- // '',
103
- // POOL_ID,
104
- // poolKey.token0.id.toLowerCase(),
105
- // poolKey.token1.id.toLowerCase(),
106
- // poolKey.feeTier,
107
- // poolKey.hooks,
108
- // poolKey.tickSpacing,
109
- // );
110
- // return pool.generateState(blockNumber);
111
- // }
112
- // async function main() {
113
- // const apiKey = 'b2f021e3ecdb7de925add6d3563e753e';
114
- // if (!apiKey) {
115
- // console.error('Error: THEGRAPH_API_KEY environment variable is required');
116
- // process.exit(1);
117
- // }
118
- // // Step 1: Get pool key (from cache or subgraph)
119
- // let poolKey = loadPoolKeyFromCache();
120
- // if (poolKey) {
121
- // console.log('Loaded pool key from cache:', POOL_KEY_CACHE_FILE);
122
- // } else {
123
- // console.log(`Fetching pool key for ${POOL_ID} from subgraph...`);
124
- // poolKey = await fetchPoolKey(apiKey);
125
- // savePoolKeyToCache(poolKey);
126
- // console.log('Pool key cached to:', POOL_KEY_CACHE_FILE);
127
- // }
128
- // console.log(poolKey);
129
- // // Step 2: Get latest block number and generate state
130
- // const dexHelper = new DummyDexHelper(CHAIN_ID);
131
- // const latestBlock = await dexHelper.provider.getBlockNumber();
132
- // console.log(`\nGenerating state at block ${latestBlock}...`);
133
- // const state = await generatePoolState(poolKey, latestBlock);
134
- // saveState(state, latestBlock);
135
- // }
136
- // main().catch(err => {
137
- // console.error('Error:', err.message);
138
- // process.exit(1);
139
- // });
140
- //# sourceMappingURL=fetch-pool-key.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"fetch-pool-key.js","sourceRoot":"","sources":["../../../../src/dex/uniswap-v4/api-go/fetch-pool-key.ts"],"names":[],"mappings":";AAAA,+BAA+B;AAC/B,mBAAmB;AAEnB,6BAA6B;AAC7B,uBAAuB;AACvB,2BAA2B;AAC3B,+CAA+C;AAC/C,gDAAgD;AAChD,sDAAsD;AACtD,wDAAwD;AACxD,wCAAwC;AAExC,kBAAkB;AAClB,0EAA0E;AAE1E,oCAAoC;AACpC,+BAA+B;AAC/B,qDAAqD;AACrD,0CAA0C;AAE1C,2EAA2E;AAE3E,sBAAsB;AACtB,gBAAgB;AAChB,4BAA4B;AAC5B,4BAA4B;AAC5B,qBAAqB;AACrB,yBAAyB;AACzB,mBAAmB;AACnB,IAAI;AAEJ,+DAA+D;AAE/D,8BAA8B;AAC9B,oCAAoC;AACpC,oCAAoC;AACpC,IAAI;AAEJ,uCAAuC;AACvC,UAAU;AACV,iEAAiE;AACjE,8CAA8C;AAC9C,cAAc;AACd,iBAAiB;AACjB,MAAM;AACN,IAAI;AAEJ,oDAAoD;AACpD,+BAA+B;AAC/B,+CAA+C;AAC/C,IAAI;AAEJ,qDAAqD;AACrD,+BAA+B;AAC/B,4BAA4B;AAC5B,4BAA4B;AAC5B,MAAM;AACN,qCAAqC;AACrC,2EAA2E;AAC3E,IAAI;AAEJ,kEAAkE;AAClE,2GAA2G;AAE3G,qBAAqB;AACrB,6BAA6B;AAC7B,SAAS;AACT,eAAe;AACf,WAAW;AACX,QAAQ;AACR,eAAe;AACf,WAAW;AACX,QAAQ;AACR,cAAc;AACd,kBAAkB;AAClB,YAAY;AACZ,MAAM;AACN,MAAM;AAEN,oDAAoD;AACpD,WAAW;AACX,iBAAiB;AACjB,2BAA2B;AAC3B,OAAO;AAEP,oCAAoC;AACpC,yEAAyE;AACzE,MAAM;AAEN,gCAAgC;AAChC,oDAAoD;AACpD,MAAM;AAEN,gCAAgC;AAChC,IAAI;AAEJ,mEAAmE;AACnE,iEAAiE;AACjE,IAAI;AAEJ,oEAAoE;AACpE,mEAAmE;AACnE,qDAAqD;AACrD,0EAA0E;AAC1E,8CAA8C;AAC9C,IAAI;AAEJ,oCAAoC;AACpC,sBAAsB;AACtB,yBAAyB;AACzB,0BAA0B;AAC1B,oDAAoD;AACpD,iDAAiD;AAEjD,oCAAoC;AACpC,iBAAiB;AACjB,eAAe;AACf,gBAAgB;AAChB,cAAc;AACd,cAAc;AACd,UAAU;AACV,eAAe;AACf,uCAAuC;AACvC,uCAAuC;AACvC,uBAAuB;AACvB,qBAAqB;AACrB,2BAA2B;AAC3B,OAAO;AAEP,4CAA4C;AAC5C,IAAI;AAEJ,0BAA0B;AAC1B,uDAAuD;AACvD,mBAAmB;AACnB,iFAAiF;AACjF,uBAAuB;AACvB,MAAM;AAEN,qDAAqD;AACrD,0CAA0C;AAC1C,mBAAmB;AACnB,uEAAuE;AACvE,aAAa;AACb,wEAAwE;AACxE,4CAA4C;AAC5C,mCAAmC;AACnC,+DAA+D;AAC/D,MAAM;AACN,0BAA0B;AAE1B,0DAA0D;AAC1D,oDAAoD;AACpD,mEAAmE;AACnE,kEAAkE;AAElE,iEAAiE;AACjE,mCAAmC;AACnC,IAAI;AAEJ,wBAAwB;AACxB,0CAA0C;AAC1C,qBAAqB;AACrB,MAAM"}
@@ -1,221 +0,0 @@
1
- import 'dotenv/config';
2
- import { ICache } from './dex-helper/icache';
3
- interface StateObject {
4
- storage?: Record<string, string>;
5
- balance?: string;
6
- nonce?: number;
7
- code?: string;
8
- }
9
- export type StateOverride = Record<string, StateObject>;
10
- interface TokenStorageSlots {
11
- balanceSlot: string;
12
- allowanceSlot: string;
13
- isVyper?: boolean;
14
- stateProxy?: string;
15
- additionalOverrides?: StateOverride;
16
- }
17
- interface SimulateTransactionRequest {
18
- from: string | null;
19
- to: string | null;
20
- value?: string;
21
- data: string;
22
- chainId: number;
23
- timestamp?: number;
24
- blockNumber?: number;
25
- stateOverride?: StateOverride;
26
- }
27
- interface SimulatedTransactionCall {
28
- hash: string;
29
- contract_name: string;
30
- function_name: string;
31
- function_pc: number;
32
- function_op: string;
33
- function_file_index: number;
34
- function_code_start: number;
35
- function_line_number: number;
36
- function_code_length: number;
37
- absolute_position: number;
38
- caller_pc: number;
39
- caller_op: string;
40
- call_type: string;
41
- address: string;
42
- from: string;
43
- from_balance: string;
44
- to: string;
45
- to_balance: string;
46
- value: string | null;
47
- caller: {
48
- address: string;
49
- balance: string;
50
- };
51
- block_timestamp: string;
52
- gas: number;
53
- gas_used: number;
54
- intrinsic_gas: number;
55
- storage_address: string;
56
- input: string;
57
- output: string;
58
- storage_slot: string[] | undefined;
59
- calls: SimulatedTransactionCall[] | null;
60
- }
61
- type SimulatedTransactionCallWithParent = SimulatedTransactionCall & {
62
- parentCall: SimulatedTransactionCall | null;
63
- };
64
- interface Simulation {
65
- id: string;
66
- project_id: string;
67
- owner_id: string;
68
- network_id: string;
69
- block_number: number;
70
- transaction_index: number;
71
- from: string;
72
- to: string;
73
- input: string;
74
- gas: number;
75
- gas_price: string;
76
- gas_used: number;
77
- value: string;
78
- method: string;
79
- status: boolean;
80
- }
81
- interface SimulatedTransactionDetails {
82
- transaction: {
83
- hash: string;
84
- block_hash: string;
85
- block_number: number;
86
- from: string;
87
- gas: number;
88
- gas_price: number;
89
- gas_fee_cap: number;
90
- gas_tip_cap: number;
91
- cumulative_gas_used: number;
92
- gas_used: number;
93
- effective_gas_price: number;
94
- input: string;
95
- nonce: number;
96
- to: string;
97
- index: number;
98
- value: string;
99
- access_list: null;
100
- status: boolean;
101
- transaction_info: {
102
- call_trace: SimulatedTransactionCall;
103
- };
104
- call_trace: SimulatedTransactionCall[];
105
- };
106
- }
107
- export type SimulatedTransaction = Pick<SimulatedTransactionDetails['transaction'], 'transaction_info' | 'call_trace'>;
108
- export type SimulationResult = {
109
- transaction: SimulatedTransaction;
110
- simulation: Simulation;
111
- };
112
- export declare class TenderlySimulator {
113
- static readonly DEFAULT_OWNER = "0xaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
114
- static readonly DEFAULT_SPENDER = "0xbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
115
- private static instance;
116
- private constructor();
117
- static getInstance(cache?: ICache, tenderlyToken?: string, tenderlyProject?: string, tenderlyAccountId?: string): TenderlySimulator;
118
- simulateTransaction(request: SimulateTransactionRequest, forceSimulationAPI?: boolean): Promise<SimulationResult>;
119
- private simulateWithTenderlySimulationAPI;
120
- private simulateWithTenderlyVNet;
121
- getSimulatedTransactionDetails(id: string): Promise<SimulatedTransactionDetails | null>;
122
- getSLOADCalls: (callTrace: SimulatedTransactionCall, parentCall?: SimulatedTransactionCall | null) => SimulatedTransactionCallWithParent[];
123
- /**
124
- *
125
- * @param balanceOfSlot storage slot of `balanceOf` mapping
126
- * @param owner account's address
127
- * @param isVyper `true` if contract is written in Vyper
128
- */
129
- calculateAddressBalanceSlot(balanceOfSlot: string, owner: string, isVyper?: boolean): string;
130
- /**
131
- *
132
- * @param balanceOfSlot storage slot of `balanceOf` mapping
133
- * @param owner account's address
134
- */
135
- calculateSolidityAddressBalanceSlot(balanceOfSlot: string, owner: string): string;
136
- /**
137
- *
138
- * @param balanceOfSlot storage slot of `balanceOf` mapping
139
- * @param owner account's address
140
- */
141
- calculateVyperAddressBalanceSlot(balanceOfSlot: string, owner: string): string;
142
- /**
143
- *
144
- * @param allowanceSlot storage slot of `allowance` mapping
145
- * @param owner account's address
146
- * @param spender spender's address
147
- * @param isVyper `true` if contract is written in Vyper
148
- */
149
- calculateAddressAllowanceSlot(allowanceSlot: string, owner: string, spender: string, isVyper?: boolean): string;
150
- /**
151
- *
152
- * @param allowanceSlot storage slot of `allowance` mapping
153
- * @param owner account's address
154
- * @param spender spender's address
155
- */
156
- calculateSolidityAddressAllowanceSlot(allowanceSlot: string, owner: string, spender: string): string;
157
- /**
158
- *
159
- * @param allowanceSlot storage slot of `allowance` mapping
160
- * @param owner account's address
161
- * @param spender spender's address
162
- */
163
- calculateVyperAddressAllowanceSlot(allowanceSlot: string, owner: string, spender: string): string;
164
- buildBalanceOfSimulationRequest(chainId: number, token: string, owner: string): SimulateTransactionRequest;
165
- buildAllowanceSimulationRequest(chainId: number, token: string, owner: string, spender: string): SimulateTransactionRequest;
166
- /**
167
- * Finds the slot of the `balanceOf` mapping in given token contract's storage.
168
- * Supports `Solidity` and `Vyper` contracts
169
- * @param chainId token chain id
170
- * @param token token address
171
- */
172
- findTokenBalanceOfSlot(chainId: number, token: string): Promise<{
173
- slot: string;
174
- isVyper?: boolean;
175
- stateProxy?: string;
176
- }>;
177
- /**
178
- * Finds the slot of the `allowance` mapping in given token contract's storage
179
- * Supports `Solidity` and `Vyper` contracts
180
- * @param chainId token chain id
181
- * @param token token address
182
- */
183
- findTokenAllowanceSlot(chainId: number, token: string): Promise<{
184
- slot: string;
185
- isVyper?: boolean;
186
- stateProxy?: string;
187
- }>;
188
- /**
189
- * Returns storage slots for the given token contract.
190
- * @param chainId Token chain ID
191
- * @param token Token address. Doesn't have to be normalized
192
- */
193
- getTokenStorageSlots(chainId: number, token: string): Promise<TokenStorageSlots>;
194
- /**
195
- * Adds native balance override to an existing `StateOverride` object
196
- * @param stateOverride object to add the override to
197
- * @param account address to be given the balance
198
- * @param amount token amount in wei
199
- */
200
- addBalanceOverride(stateOverride: StateOverride, account: string, amount: bigint): void;
201
- /**
202
- * Adds token balance override to an existing `StateOverride` object
203
- * @param stateOverride object to add the override to
204
- * @param chainId token chain ID
205
- * @param token token address
206
- * @param account address to be given the balance
207
- * @param amount token amount in wei
208
- */
209
- addTokenBalanceOverride(stateOverride: StateOverride, chainId: number, token: string, account: string, amount: bigint): Promise<void>;
210
- /**
211
- * Adds token allowance override to an existing `StateOverride` object
212
- * @param stateOverride object to add the override to
213
- * @param chainId token chain ID
214
- * @param token token address
215
- * @param account owner address
216
- * @param spender spender address
217
- * @param amount token amount in wei
218
- */
219
- addAllowanceOverride(stateOverride: StateOverride, chainId: number, token: string, account: string, spender: string, amount: bigint): Promise<void>;
220
- }
221
- export {};