@fenine/universal-router-sdk 1.0.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.
Files changed (163) hide show
  1. package/README.md +331 -0
  2. package/dist/cjs/src/entities/Command.d.ts +12 -0
  3. package/dist/cjs/src/entities/Command.js +9 -0
  4. package/dist/cjs/src/entities/Command.js.map +1 -0
  5. package/dist/cjs/src/entities/actions/across.d.ts +21 -0
  6. package/dist/cjs/src/entities/actions/across.js +7 -0
  7. package/dist/cjs/src/entities/actions/across.js.map +1 -0
  8. package/dist/cjs/src/entities/actions/index.d.ts +3 -0
  9. package/dist/cjs/src/entities/actions/index.js +7 -0
  10. package/dist/cjs/src/entities/actions/index.js.map +1 -0
  11. package/dist/cjs/src/entities/actions/uniswap.d.ts +38 -0
  12. package/dist/cjs/src/entities/actions/uniswap.js +545 -0
  13. package/dist/cjs/src/entities/actions/uniswap.js.map +1 -0
  14. package/dist/cjs/src/entities/actions/unwrapWETH.d.ts +12 -0
  15. package/dist/cjs/src/entities/actions/unwrapWETH.js +33 -0
  16. package/dist/cjs/src/entities/actions/unwrapWETH.js.map +1 -0
  17. package/dist/cjs/src/entities/index.d.ts +2 -0
  18. package/dist/cjs/src/entities/index.js +6 -0
  19. package/dist/cjs/src/entities/index.js.map +1 -0
  20. package/dist/cjs/src/index.d.ts +14 -0
  21. package/dist/cjs/src/index.js +36 -0
  22. package/dist/cjs/src/index.js.map +1 -0
  23. package/dist/cjs/src/swapRouter.d.ts +103 -0
  24. package/dist/cjs/src/swapRouter.js +338 -0
  25. package/dist/cjs/src/swapRouter.js.map +1 -0
  26. package/dist/cjs/src/types/encodeSwaps.d.ts +149 -0
  27. package/dist/cjs/src/types/encodeSwaps.js +3 -0
  28. package/dist/cjs/src/types/encodeSwaps.js.map +1 -0
  29. package/dist/cjs/src/utils/commandParser.d.ts +34 -0
  30. package/dist/cjs/src/utils/commandParser.js +145 -0
  31. package/dist/cjs/src/utils/commandParser.js.map +1 -0
  32. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  33. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js +47 -0
  34. package/dist/cjs/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  35. package/dist/cjs/src/utils/constants.d.ts +39 -0
  36. package/dist/cjs/src/utils/constants.js +560 -0
  37. package/dist/cjs/src/utils/constants.js.map +1 -0
  38. package/dist/cjs/src/utils/eip712.d.ts +17 -0
  39. package/dist/cjs/src/utils/eip712.js +43 -0
  40. package/dist/cjs/src/utils/eip712.js.map +1 -0
  41. package/dist/cjs/src/utils/encodeSwapStep.d.ts +4 -0
  42. package/dist/cjs/src/utils/encodeSwapStep.js +61 -0
  43. package/dist/cjs/src/utils/encodeSwapStep.js.map +1 -0
  44. package/dist/cjs/src/utils/encodeV4Action.d.ts +8 -0
  45. package/dist/cjs/src/utils/encodeV4Action.js +97 -0
  46. package/dist/cjs/src/utils/encodeV4Action.js.map +1 -0
  47. package/dist/cjs/src/utils/getCurrencyAddress.d.ts +2 -0
  48. package/dist/cjs/src/utils/getCurrencyAddress.js +9 -0
  49. package/dist/cjs/src/utils/getCurrencyAddress.js.map +1 -0
  50. package/dist/cjs/src/utils/inputTokens.d.ts +23 -0
  51. package/dist/cjs/src/utils/inputTokens.js +58 -0
  52. package/dist/cjs/src/utils/inputTokens.js.map +1 -0
  53. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  54. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js +18 -0
  55. package/dist/cjs/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  56. package/dist/cjs/src/utils/numbers.d.ts +7 -0
  57. package/dist/cjs/src/utils/numbers.js +27 -0
  58. package/dist/cjs/src/utils/numbers.js.map +1 -0
  59. package/dist/cjs/src/utils/pathCurrency.d.ts +3 -0
  60. package/dist/cjs/src/utils/pathCurrency.js +27 -0
  61. package/dist/cjs/src/utils/pathCurrency.js.map +1 -0
  62. package/dist/cjs/src/utils/routerCommands.d.ts +77 -0
  63. package/dist/cjs/src/utils/routerCommands.js +334 -0
  64. package/dist/cjs/src/utils/routerCommands.js.map +1 -0
  65. package/dist/cjs/src/utils/routerTradeAdapter.d.ts +73 -0
  66. package/dist/cjs/src/utils/routerTradeAdapter.js +139 -0
  67. package/dist/cjs/src/utils/routerTradeAdapter.js.map +1 -0
  68. package/dist/cjs/src/utils/validateEncodeSwaps.d.ts +2 -0
  69. package/dist/cjs/src/utils/validateEncodeSwaps.js +135 -0
  70. package/dist/cjs/src/utils/validateEncodeSwaps.js.map +1 -0
  71. package/dist/esm/src/entities/Command.d.ts +12 -0
  72. package/dist/esm/src/entities/Command.js +6 -0
  73. package/dist/esm/src/entities/Command.js.map +1 -0
  74. package/dist/esm/src/entities/actions/across.d.ts +21 -0
  75. package/dist/esm/src/entities/actions/across.js +3 -0
  76. package/dist/esm/src/entities/actions/across.js.map +1 -0
  77. package/dist/esm/src/entities/actions/index.d.ts +3 -0
  78. package/dist/esm/src/entities/actions/index.js +4 -0
  79. package/dist/esm/src/entities/actions/index.js.map +1 -0
  80. package/dist/esm/src/entities/actions/uniswap.d.ts +38 -0
  81. package/dist/esm/src/entities/actions/uniswap.js +541 -0
  82. package/dist/esm/src/entities/actions/uniswap.js.map +1 -0
  83. package/dist/esm/src/entities/actions/unwrapWETH.d.ts +12 -0
  84. package/dist/esm/src/entities/actions/unwrapWETH.js +28 -0
  85. package/dist/esm/src/entities/actions/unwrapWETH.js.map +1 -0
  86. package/dist/esm/src/entities/index.d.ts +2 -0
  87. package/dist/esm/src/entities/index.js +3 -0
  88. package/dist/esm/src/entities/index.js.map +1 -0
  89. package/dist/esm/src/index.d.ts +14 -0
  90. package/dist/esm/src/index.js +11 -0
  91. package/dist/esm/src/index.js.map +1 -0
  92. package/dist/esm/src/swapRouter.d.ts +103 -0
  93. package/dist/esm/src/swapRouter.js +333 -0
  94. package/dist/esm/src/swapRouter.js.map +1 -0
  95. package/dist/esm/src/types/encodeSwaps.d.ts +149 -0
  96. package/dist/esm/src/types/encodeSwaps.js +2 -0
  97. package/dist/esm/src/types/encodeSwaps.js.map +1 -0
  98. package/dist/esm/src/utils/commandParser.d.ts +34 -0
  99. package/dist/esm/src/utils/commandParser.js +137 -0
  100. package/dist/esm/src/utils/commandParser.js.map +1 -0
  101. package/dist/esm/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  102. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js +43 -0
  103. package/dist/esm/src/utils/computeEncodeSwapsAmounts.js.map +1 -0
  104. package/dist/esm/src/utils/constants.d.ts +39 -0
  105. package/dist/esm/src/utils/constants.js +552 -0
  106. package/dist/esm/src/utils/constants.js.map +1 -0
  107. package/dist/esm/src/utils/eip712.d.ts +17 -0
  108. package/dist/esm/src/utils/eip712.js +38 -0
  109. package/dist/esm/src/utils/eip712.js.map +1 -0
  110. package/dist/esm/src/utils/encodeSwapStep.d.ts +4 -0
  111. package/dist/esm/src/utils/encodeSwapStep.js +57 -0
  112. package/dist/esm/src/utils/encodeSwapStep.js.map +1 -0
  113. package/dist/esm/src/utils/encodeV4Action.d.ts +8 -0
  114. package/dist/esm/src/utils/encodeV4Action.js +92 -0
  115. package/dist/esm/src/utils/encodeV4Action.js.map +1 -0
  116. package/dist/esm/src/utils/getCurrencyAddress.d.ts +2 -0
  117. package/dist/esm/src/utils/getCurrencyAddress.js +5 -0
  118. package/dist/esm/src/utils/getCurrencyAddress.js.map +1 -0
  119. package/dist/esm/src/utils/inputTokens.d.ts +23 -0
  120. package/dist/esm/src/utils/inputTokens.js +51 -0
  121. package/dist/esm/src/utils/inputTokens.js.map +1 -0
  122. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  123. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js +14 -0
  124. package/dist/esm/src/utils/normalizeEncodeSwapsSpec.js.map +1 -0
  125. package/dist/esm/src/utils/numbers.d.ts +7 -0
  126. package/dist/esm/src/utils/numbers.js +19 -0
  127. package/dist/esm/src/utils/numbers.js.map +1 -0
  128. package/dist/esm/src/utils/pathCurrency.d.ts +3 -0
  129. package/dist/esm/src/utils/pathCurrency.js +23 -0
  130. package/dist/esm/src/utils/pathCurrency.js.map +1 -0
  131. package/dist/esm/src/utils/routerCommands.d.ts +77 -0
  132. package/dist/esm/src/utils/routerCommands.js +329 -0
  133. package/dist/esm/src/utils/routerCommands.js.map +1 -0
  134. package/dist/esm/src/utils/routerTradeAdapter.d.ts +73 -0
  135. package/dist/esm/src/utils/routerTradeAdapter.js +134 -0
  136. package/dist/esm/src/utils/routerTradeAdapter.js.map +1 -0
  137. package/dist/esm/src/utils/validateEncodeSwaps.d.ts +2 -0
  138. package/dist/esm/src/utils/validateEncodeSwaps.js +130 -0
  139. package/dist/esm/src/utils/validateEncodeSwaps.js.map +1 -0
  140. package/dist/types/src/entities/Command.d.ts +12 -0
  141. package/dist/types/src/entities/actions/across.d.ts +21 -0
  142. package/dist/types/src/entities/actions/index.d.ts +3 -0
  143. package/dist/types/src/entities/actions/uniswap.d.ts +38 -0
  144. package/dist/types/src/entities/actions/unwrapWETH.d.ts +12 -0
  145. package/dist/types/src/entities/index.d.ts +2 -0
  146. package/dist/types/src/index.d.ts +14 -0
  147. package/dist/types/src/swapRouter.d.ts +103 -0
  148. package/dist/types/src/types/encodeSwaps.d.ts +149 -0
  149. package/dist/types/src/utils/commandParser.d.ts +34 -0
  150. package/dist/types/src/utils/computeEncodeSwapsAmounts.d.ts +8 -0
  151. package/dist/types/src/utils/constants.d.ts +39 -0
  152. package/dist/types/src/utils/eip712.d.ts +17 -0
  153. package/dist/types/src/utils/encodeSwapStep.d.ts +4 -0
  154. package/dist/types/src/utils/encodeV4Action.d.ts +8 -0
  155. package/dist/types/src/utils/getCurrencyAddress.d.ts +2 -0
  156. package/dist/types/src/utils/inputTokens.d.ts +23 -0
  157. package/dist/types/src/utils/normalizeEncodeSwapsSpec.d.ts +2 -0
  158. package/dist/types/src/utils/numbers.d.ts +7 -0
  159. package/dist/types/src/utils/pathCurrency.d.ts +3 -0
  160. package/dist/types/src/utils/routerCommands.d.ts +77 -0
  161. package/dist/types/src/utils/routerTradeAdapter.d.ts +73 -0
  162. package/dist/types/src/utils/validateEncodeSwaps.d.ts +2 -0
  163. package/package.json +78 -0
@@ -0,0 +1,552 @@
1
+ import { BigNumber } from 'ethers';
2
+ export var UniversalRouterVersion;
3
+ (function (UniversalRouterVersion) {
4
+ UniversalRouterVersion["V1_2"] = "1.2";
5
+ UniversalRouterVersion["V2_0"] = "2.0";
6
+ UniversalRouterVersion["V2_1_1"] = "2.1.1";
7
+ })(UniversalRouterVersion || (UniversalRouterVersion = {}));
8
+ /**
9
+ * Check if a UniversalRouterVersion is at least V2_1_1.
10
+ * Duplicated from @uniswap/v4-sdk's isAtLeastV2_1_1 (which operates on URVersion)
11
+ * to avoid coupling universal-router-sdk's version logic to v4-sdk.
12
+ */
13
+ export function isAtLeastV2_1_1(version) {
14
+ return !!version && version.localeCompare(UniversalRouterVersion.V2_1_1, undefined, { numeric: true }) >= 0;
15
+ }
16
+ const WETH_NOT_SUPPORTED_ON_CHAIN = '0x0000000000000000000000000000000000000000';
17
+ const SWAP_PROXY_DEPLOY_ADDRESS = '0x02E5be68D46DAc0B524905bfF209cf47EE6dB2a9';
18
+ // Todo: Change `CHAIN_CONFIGS` to pull the UR address with v4
19
+ export const CHAIN_CONFIGS = {
20
+ // fenine
21
+ [920]: {
22
+ weth: '0x6F895942C4C6B557aBA977903e0efB341Bc7483A',
23
+ routerConfigs: {
24
+ [UniversalRouterVersion.V2_0]: {
25
+ address: '0x4c7E8438e55993D64E59A056Dec6f218D761b839',
26
+ creationBlock: 0,
27
+ },
28
+ },
29
+ },
30
+ // mainnet
31
+ [1]: {
32
+ weth: '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2',
33
+ routerConfigs: {
34
+ [UniversalRouterVersion.V1_2]: {
35
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
36
+ creationBlock: 17143817,
37
+ },
38
+ [UniversalRouterVersion.V2_0]: {
39
+ address: '0x66a9893cc07d91d95644aedd05d03f95e1dba8af',
40
+ creationBlock: 21689092,
41
+ },
42
+ [UniversalRouterVersion.V2_1_1]: {
43
+ address: '0x4C82D1fBFe28C977cBB58D8C7FF8FCF9F70a2cCA',
44
+ creationBlock: 24680568,
45
+ },
46
+ },
47
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
48
+ },
49
+ // goerli
50
+ [5]: {
51
+ weth: '0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6',
52
+ routerConfigs: {
53
+ [UniversalRouterVersion.V1_2]: {
54
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
55
+ creationBlock: 8940568,
56
+ },
57
+ [UniversalRouterVersion.V2_0]: {
58
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
59
+ creationBlock: 8940568,
60
+ },
61
+ },
62
+ },
63
+ // sepolia
64
+ [11155111]: {
65
+ weth: '0xfFf9976782d46CC05630D1f6eBAb18b2324d6B14',
66
+ routerConfigs: {
67
+ [UniversalRouterVersion.V1_2]: {
68
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
69
+ creationBlock: 3543575,
70
+ },
71
+ [UniversalRouterVersion.V2_0]: {
72
+ address: '0x3a9d48ab9751398bbfa63ad67599bb04e4bdf98b',
73
+ creationBlock: 7259601,
74
+ },
75
+ [UniversalRouterVersion.V2_1_1]: {
76
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
77
+ creationBlock: 10470160,
78
+ },
79
+ },
80
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
81
+ },
82
+ // polygon
83
+ [137]: {
84
+ weth: '0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270',
85
+ routerConfigs: {
86
+ [UniversalRouterVersion.V1_2]: {
87
+ address: '0xec7BE89e9d109e7e3Fec59c222CF297125FEFda2',
88
+ creationBlock: 52210153,
89
+ },
90
+ [UniversalRouterVersion.V2_0]: {
91
+ address: '0x1095692a6237d83c6a72f3f5efedb9a670c49223',
92
+ creationBlock: 66980401,
93
+ },
94
+ [UniversalRouterVersion.V2_1_1]: {
95
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
96
+ creationBlock: 84336468,
97
+ },
98
+ },
99
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
100
+ },
101
+ //polygon mumbai
102
+ [80001]: {
103
+ weth: '0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889',
104
+ routerConfigs: {
105
+ [UniversalRouterVersion.V1_2]: {
106
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
107
+ creationBlock: 35176052,
108
+ },
109
+ [UniversalRouterVersion.V2_0]: {
110
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
111
+ creationBlock: 35176052,
112
+ },
113
+ },
114
+ },
115
+ //optimism
116
+ [10]: {
117
+ weth: '0x4200000000000000000000000000000000000006',
118
+ routerConfigs: {
119
+ [UniversalRouterVersion.V1_2]: {
120
+ address: '0xCb1355ff08Ab38bBCE60111F1bb2B784bE25D7e8',
121
+ creationBlock: 114702266,
122
+ },
123
+ [UniversalRouterVersion.V2_0]: {
124
+ address: '0x851116d9223fabed8e56c0e6b8ad0c31d98b3507',
125
+ creationBlock: 130947687,
126
+ },
127
+ [UniversalRouterVersion.V2_1_1]: {
128
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
129
+ creationBlock: 149097062,
130
+ },
131
+ },
132
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
133
+ },
134
+ // optimism goerli
135
+ [420]: {
136
+ weth: '0x4200000000000000000000000000000000000006',
137
+ routerConfigs: {
138
+ [UniversalRouterVersion.V1_2]: {
139
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
140
+ creationBlock: 8887728,
141
+ },
142
+ [UniversalRouterVersion.V2_0]: {
143
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
144
+ creationBlock: 8887728,
145
+ },
146
+ },
147
+ },
148
+ // arbitrum
149
+ [42161]: {
150
+ weth: '0x82aF49447D8a07e3bd95BD0d56f35241523fBab1',
151
+ routerConfigs: {
152
+ [UniversalRouterVersion.V1_2]: {
153
+ address: '0x5E325eDA8064b456f4781070C0738d849c824258',
154
+ creationBlock: 169472836,
155
+ },
156
+ [UniversalRouterVersion.V2_0]: {
157
+ address: '0xa51afafe0263b40edaef0df8781ea9aa03e381a3',
158
+ creationBlock: 297842906,
159
+ },
160
+ [UniversalRouterVersion.V2_1_1]: {
161
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
162
+ creationBlock: 442902181,
163
+ },
164
+ },
165
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
166
+ },
167
+ // arbitrum goerli
168
+ [421613]: {
169
+ weth: '0xe39Ab88f8A4777030A534146A9Ca3B52bd5D43A3',
170
+ routerConfigs: {
171
+ [UniversalRouterVersion.V1_2]: {
172
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
173
+ creationBlock: 18815277,
174
+ },
175
+ [UniversalRouterVersion.V2_0]: {
176
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
177
+ creationBlock: 18815277,
178
+ },
179
+ },
180
+ },
181
+ // celo
182
+ [42220]: {
183
+ weth: WETH_NOT_SUPPORTED_ON_CHAIN,
184
+ routerConfigs: {
185
+ [UniversalRouterVersion.V1_2]: {
186
+ address: '0x643770e279d5d0733f21d6dc03a8efbabf3255b4',
187
+ creationBlock: 21407637,
188
+ },
189
+ [UniversalRouterVersion.V2_0]: {
190
+ address: '0xcb695bc5D3Aa22cAD1E6DF07801b061a05A0233A',
191
+ creationBlock: 47387857,
192
+ },
193
+ [UniversalRouterVersion.V2_1_1]: {
194
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
195
+ creationBlock: 61893766,
196
+ },
197
+ },
198
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
199
+ },
200
+ // celo alfajores
201
+ [44787]: {
202
+ weth: WETH_NOT_SUPPORTED_ON_CHAIN,
203
+ routerConfigs: {
204
+ [UniversalRouterVersion.V1_2]: {
205
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
206
+ creationBlock: 17566658,
207
+ },
208
+ [UniversalRouterVersion.V2_0]: {
209
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
210
+ creationBlock: 17566658,
211
+ },
212
+ },
213
+ },
214
+ // binance smart chain
215
+ [56]: {
216
+ weth: '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c',
217
+ routerConfigs: {
218
+ [UniversalRouterVersion.V1_2]: {
219
+ address: '0x4Dae2f939ACf50408e13d58534Ff8c2776d45265',
220
+ creationBlock: 35160263,
221
+ },
222
+ [UniversalRouterVersion.V2_0]: {
223
+ address: '0x1906c1d672b88cd1b9ac7593301ca990f94eae07',
224
+ creationBlock: 45970616,
225
+ },
226
+ [UniversalRouterVersion.V2_1_1]: {
227
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
228
+ creationBlock: 87208607,
229
+ },
230
+ },
231
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
232
+ },
233
+ // avalanche
234
+ [43114]: {
235
+ weth: '0xB31f66AA3C1e785363F0875A1B74E27b85FD66c7',
236
+ routerConfigs: {
237
+ [UniversalRouterVersion.V1_2]: {
238
+ address: '0x4Dae2f939ACf50408e13d58534Ff8c2776d45265',
239
+ creationBlock: 40237257,
240
+ },
241
+ [UniversalRouterVersion.V2_0]: {
242
+ address: '0x94b75331ae8d42c1b61065089b7d48fe14aa73b7',
243
+ creationBlock: 56195395,
244
+ },
245
+ [UniversalRouterVersion.V2_1_1]: {
246
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
247
+ creationBlock: 80616324,
248
+ },
249
+ },
250
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
251
+ },
252
+ // base goerli
253
+ [84531]: {
254
+ weth: '0x4200000000000000000000000000000000000006',
255
+ routerConfigs: {
256
+ [UniversalRouterVersion.V1_2]: {
257
+ address: '0xd0872d928672ae2ff74bdb2f5130ac12229cafaf',
258
+ creationBlock: 6915289,
259
+ },
260
+ [UniversalRouterVersion.V2_0]: {
261
+ address: '0xd0872d928672ae2ff74bdb2f5130ac12229cafaf',
262
+ creationBlock: 6915289,
263
+ },
264
+ },
265
+ },
266
+ // base mainnet
267
+ [8453]: {
268
+ weth: '0x4200000000000000000000000000000000000006',
269
+ routerConfigs: {
270
+ [UniversalRouterVersion.V1_2]: {
271
+ address: '0x3fC91A3afd70395Cd496C647d5a6CC9D4B2b7FAD',
272
+ creationBlock: 9107268,
273
+ },
274
+ [UniversalRouterVersion.V2_0]: {
275
+ address: '0x6ff5693b99212da76ad316178a184ab56d299b43',
276
+ creationBlock: 25350999,
277
+ },
278
+ [UniversalRouterVersion.V2_1_1]: {
279
+ address: '0xfdf682f51fe81aa4898f0ae2163d8a55c127fbc7',
280
+ creationBlock: 43501203,
281
+ },
282
+ },
283
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
284
+ },
285
+ // blast
286
+ [81457]: {
287
+ weth: '0x4300000000000000000000000000000000000004',
288
+ routerConfigs: {
289
+ [UniversalRouterVersion.V1_2]: {
290
+ address: '0x643770E279d5D0733F21d6DC03A8efbABf3255B4',
291
+ creationBlock: 1116444,
292
+ },
293
+ [UniversalRouterVersion.V2_0]: {
294
+ address: '0xeabbcb3e8e415306207ef514f660a3f820025be3',
295
+ creationBlock: 14377319,
296
+ },
297
+ [UniversalRouterVersion.V2_1_1]: {
298
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
299
+ creationBlock: 32492192,
300
+ },
301
+ },
302
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
303
+ },
304
+ // zora
305
+ [7777777]: {
306
+ weth: '0x4200000000000000000000000000000000000006',
307
+ routerConfigs: {
308
+ [UniversalRouterVersion.V1_2]: {
309
+ address: '0x2986d9721A49838ab4297b695858aF7F17f38014',
310
+ creationBlock: 11832155,
311
+ },
312
+ [UniversalRouterVersion.V2_0]: {
313
+ address: '0x3315ef7ca28db74abadc6c44570efdf06b04b020',
314
+ creationBlock: 25434544,
315
+ },
316
+ [UniversalRouterVersion.V2_1_1]: {
317
+ address: '0xFdf682F51FE81Aa4898F0AE2163d8A55c127fbC7',
318
+ creationBlock: 43550401,
319
+ },
320
+ },
321
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
322
+ },
323
+ // zksync
324
+ [324]: {
325
+ weth: '0x5aea5775959fbc2557cc8789bc1bf90a239d9a91',
326
+ routerConfigs: {
327
+ [UniversalRouterVersion.V1_2]: {
328
+ address: '0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06',
329
+ creationBlock: 12640979,
330
+ },
331
+ [UniversalRouterVersion.V2_0]: {
332
+ address: '0x28731BCC616B5f51dD52CF2e4dF0E78dD1136C06',
333
+ creationBlock: 12640979,
334
+ },
335
+ },
336
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
337
+ },
338
+ // worldchain
339
+ [480]: {
340
+ weth: '0x4200000000000000000000000000000000000006',
341
+ routerConfigs: {
342
+ [UniversalRouterVersion.V1_2]: {
343
+ address: '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D',
344
+ creationBlock: 4063979,
345
+ },
346
+ [UniversalRouterVersion.V2_0]: {
347
+ address: '0x8ac7bee993bb44dab564ea4bc9ea67bf9eb5e743',
348
+ creationBlock: 9111895,
349
+ },
350
+ [UniversalRouterVersion.V2_1_1]: {
351
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
352
+ creationBlock: 27228771,
353
+ },
354
+ },
355
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
356
+ },
357
+ // unichain sepolia
358
+ [1301]: {
359
+ weth: '0x4200000000000000000000000000000000000006',
360
+ routerConfigs: {
361
+ [UniversalRouterVersion.V1_2]: {
362
+ address: '0x8909Dc15e40173Ff4699343b6eB8132c65e18eC6',
363
+ creationBlock: 1241811,
364
+ },
365
+ [UniversalRouterVersion.V2_0]: {
366
+ address: '0xf70536b3bcc1bd1a972dc186a2cf84cc6da6be5d',
367
+ creationBlock: 7100543,
368
+ },
369
+ [UniversalRouterVersion.V2_1_1]: {
370
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
371
+ creationBlock: 46987997,
372
+ },
373
+ },
374
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
375
+ },
376
+ // unichain mainnet
377
+ [130]: {
378
+ weth: '0x4200000000000000000000000000000000000006',
379
+ routerConfigs: {
380
+ [UniversalRouterVersion.V1_2]: {
381
+ address: '0x4D73A4411CA1c660035e4AECC8270E5DdDEC8C17',
382
+ creationBlock: 23678,
383
+ },
384
+ [UniversalRouterVersion.V2_0]: {
385
+ address: '0xef740bf23acae26f6492b10de645d6b98dc8eaf3',
386
+ creationBlock: 6819690,
387
+ },
388
+ [UniversalRouterVersion.V2_1_1]: {
389
+ address: '0xFdf682F51FE81Aa4898F0AE2163d8A55c127fbC7',
390
+ creationBlock: 43044663,
391
+ },
392
+ },
393
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
394
+ },
395
+ // monad testnet
396
+ [10143]: {
397
+ weth: '0x760AfE86e5de5fa0Ee542fc7B7B713e1c5425701',
398
+ routerConfigs: {
399
+ [UniversalRouterVersion.V1_2]: {
400
+ address: '0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893',
401
+ creationBlock: 23678,
402
+ },
403
+ [UniversalRouterVersion.V2_0]: {
404
+ address: '0x3ae6d8a282d67893e17aa70ebffb33ee5aa65893',
405
+ creationBlock: 23678,
406
+ },
407
+ },
408
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
409
+ },
410
+ // base sepolia
411
+ [84532]: {
412
+ weth: '0x4200000000000000000000000000000000000006',
413
+ routerConfigs: {
414
+ [UniversalRouterVersion.V1_2]: {
415
+ address: '0x492e6456d9528771018deb9e87ef7750ef184104',
416
+ creationBlock: 20216585,
417
+ },
418
+ [UniversalRouterVersion.V2_0]: {
419
+ address: '0x492e6456d9528771018deb9e87ef7750ef184104',
420
+ creationBlock: 20216585,
421
+ },
422
+ [UniversalRouterVersion.V2_1_1]: {
423
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
424
+ creationBlock: 39035624,
425
+ },
426
+ },
427
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
428
+ },
429
+ // soneium
430
+ [1868]: {
431
+ weth: '0x4200000000000000000000000000000000000006',
432
+ routerConfigs: {
433
+ [UniversalRouterVersion.V1_2]: {
434
+ address: '0x0e2850543f69f678257266e0907ff9a58b3f13de',
435
+ creationBlock: 3254782,
436
+ },
437
+ [UniversalRouterVersion.V2_0]: {
438
+ address: '0x0e2850543f69f678257266e0907ff9a58b3f13de',
439
+ creationBlock: 3254782,
440
+ },
441
+ [UniversalRouterVersion.V2_1_1]: {
442
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
443
+ creationBlock: 20352508,
444
+ },
445
+ },
446
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
447
+ },
448
+ // monad
449
+ [143]: {
450
+ weth: '0x3bd359C1119dA7Da1D913D1C4D2B7c461115433A',
451
+ routerConfigs: {
452
+ [UniversalRouterVersion.V1_2]: {
453
+ address: '0x0d97dc33264bfc1c226207428a79b26757fb9dc3',
454
+ creationBlock: 29255937,
455
+ },
456
+ [UniversalRouterVersion.V2_0]: {
457
+ address: '0x0d97dc33264bfc1c226207428a79b26757fb9dc3',
458
+ creationBlock: 29255937,
459
+ },
460
+ [UniversalRouterVersion.V2_1_1]: {
461
+ address: '0xFdf682F51FE81Aa4898F0AE2163d8A55c127fbC7',
462
+ creationBlock: 62239835,
463
+ },
464
+ },
465
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
466
+ },
467
+ // linea
468
+ [59144]: {
469
+ weth: '0xe5D7C2a44FfDDf6b295A15c148167daaAf5Cf34f',
470
+ routerConfigs: {
471
+ [UniversalRouterVersion.V2_0]: {
472
+ address: '0x661e93cca42afacb172121ef892830ca3b70f08d',
473
+ creationBlock: 28974980,
474
+ },
475
+ [UniversalRouterVersion.V2_1_1]: {
476
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
477
+ creationBlock: 29782392,
478
+ },
479
+ },
480
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
481
+ },
482
+ // tempo
483
+ [4217]: {
484
+ weth: WETH_NOT_SUPPORTED_ON_CHAIN,
485
+ routerConfigs: {
486
+ [UniversalRouterVersion.V2_0]: {
487
+ address: '0x1febb76be10aaf3a1402f04e8e835f2c382f7914',
488
+ creationBlock: 6458546,
489
+ },
490
+ [UniversalRouterVersion.V2_1_1]: {
491
+ address: '0xFdf682F51FE81Aa4898F0AE2163d8A55c127fbC7',
492
+ creationBlock: 10065560,
493
+ },
494
+ },
495
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
496
+ },
497
+ // xlayer
498
+ [196]: {
499
+ weth: '0xe538905cf8410324e03A5A23C1c177a474D59b2b',
500
+ routerConfigs: {
501
+ [UniversalRouterVersion.V2_0]: {
502
+ address: '0x5507749f2c558bb3e162c6e90c314c092e7372ff',
503
+ creationBlock: 47680350,
504
+ },
505
+ [UniversalRouterVersion.V2_1_1]: {
506
+ address: '0x8B844f885672f333Bc0042cB669255f93a4C1E6b',
507
+ creationBlock: 55072165,
508
+ },
509
+ },
510
+ swapProxy: SWAP_PROXY_DEPLOY_ADDRESS,
511
+ },
512
+ };
513
+ export const UNIVERSAL_ROUTER_ADDRESS = (version, chainId) => {
514
+ if (!(chainId in CHAIN_CONFIGS))
515
+ throw new Error(`Universal Router not deployed on chain ${chainId}`);
516
+ const config = CHAIN_CONFIGS[chainId].routerConfigs[version];
517
+ if (!config)
518
+ throw new Error(`Universal Router version ${version} not deployed on chain ${chainId}`);
519
+ return config.address;
520
+ };
521
+ export const SWAP_PROXY_ADDRESS = (chainId) => {
522
+ if (!(chainId in CHAIN_CONFIGS))
523
+ throw new Error(`SwapProxy not deployed on chain ${chainId}`);
524
+ const proxy = CHAIN_CONFIGS[chainId].swapProxy;
525
+ if (!proxy)
526
+ throw new Error(`SwapProxy not configured for chain ${chainId}`);
527
+ return proxy;
528
+ };
529
+ export const UNIVERSAL_ROUTER_CREATION_BLOCK = (version, chainId) => {
530
+ if (!(chainId in CHAIN_CONFIGS))
531
+ throw new Error(`Universal Router not deployed on chain ${chainId}`);
532
+ const config = CHAIN_CONFIGS[chainId].routerConfigs[version];
533
+ if (!config)
534
+ throw new Error(`Universal Router version ${version} not deployed on chain ${chainId}`);
535
+ return config.creationBlock;
536
+ };
537
+ export const WETH_ADDRESS = (chainId) => {
538
+ if (!(chainId in CHAIN_CONFIGS))
539
+ throw new Error(`Universal Router not deployed on chain ${chainId}`);
540
+ if (CHAIN_CONFIGS[chainId].weth == WETH_NOT_SUPPORTED_ON_CHAIN)
541
+ throw new Error(`Chain ${chainId} does not have WETH`);
542
+ return CHAIN_CONFIGS[chainId].weth;
543
+ };
544
+ export const CONTRACT_BALANCE = BigNumber.from(2).pow(255);
545
+ export const ETH_ADDRESS = '0x0000000000000000000000000000000000000000';
546
+ export const E_ETH_ADDRESS = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee';
547
+ export const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000';
548
+ export const MAX_UINT256 = BigNumber.from(2).pow(256).sub(1);
549
+ export const MAX_UINT160 = BigNumber.from(2).pow(160).sub(1);
550
+ export const SENDER_AS_RECIPIENT = '0x0000000000000000000000000000000000000001';
551
+ export const ROUTER_AS_RECIPIENT = '0x0000000000000000000000000000000000000002';
552
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/utils/constants.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import { TypedDataDomain, TypedDataField } from '@ethersproject/abstract-signer';
2
+ export declare const EIP712_DOMAIN_NAME = "UniversalRouter";
3
+ export declare const EIP712_DOMAIN_VERSION = "2";
4
+ export declare const EXECUTE_SIGNED_TYPES: Record<string, TypedDataField[]>;
5
+ /**
6
+ * Generate EIP712 domain for Universal Router
7
+ */
8
+ export declare function getUniversalRouterDomain(chainId: number, verifyingContract: string): TypedDataDomain;
9
+ /**
10
+ * Generate a random nonce for signed execution
11
+ * Uses ethers.utils.randomBytes for secure randomness
12
+ */
13
+ export declare function generateNonce(): string;
14
+ /**
15
+ * Sentinel value to skip nonce checking (allows signature replay)
16
+ */
17
+ export declare const NONCE_SKIP_CHECK: string;
@@ -0,0 +1,38 @@
1
+ import { ethers } from 'ethers';
2
+ export const EIP712_DOMAIN_NAME = 'UniversalRouter';
3
+ export const EIP712_DOMAIN_VERSION = '2';
4
+ export const EXECUTE_SIGNED_TYPES = {
5
+ ExecuteSigned: [
6
+ { name: 'commands', type: 'bytes' },
7
+ { name: 'inputs', type: 'bytes[]' },
8
+ { name: 'intent', type: 'bytes32' },
9
+ { name: 'data', type: 'bytes32' },
10
+ { name: 'sender', type: 'address' },
11
+ { name: 'nonce', type: 'bytes32' },
12
+ { name: 'deadline', type: 'uint256' },
13
+ ],
14
+ };
15
+ /**
16
+ * Generate EIP712 domain for Universal Router
17
+ */
18
+ export function getUniversalRouterDomain(chainId, verifyingContract) {
19
+ return {
20
+ name: EIP712_DOMAIN_NAME,
21
+ version: EIP712_DOMAIN_VERSION,
22
+ chainId,
23
+ verifyingContract,
24
+ };
25
+ }
26
+ /**
27
+ * Generate a random nonce for signed execution
28
+ * Uses ethers.utils.randomBytes for secure randomness
29
+ */
30
+ export function generateNonce() {
31
+ const randomBytes = ethers.utils.randomBytes(32);
32
+ return ethers.utils.hexlify(randomBytes);
33
+ }
34
+ /**
35
+ * Sentinel value to skip nonce checking (allows signature replay)
36
+ */
37
+ export const NONCE_SKIP_CHECK = '0x' + 'f'.repeat(64); // bytes32(type(uint256).max)
38
+ //# sourceMappingURL=eip712.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip712.js","sourceRoot":"","sources":["../../../../src/utils/eip712.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAE/B,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAA;AACnD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAExC,MAAM,CAAC,MAAM,oBAAoB,GAAqC;IACpE,aAAa,EAAE;QACb,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,OAAO,EAAE;QACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;KACtC;CACF,CAAA;AAED;;GAEG;AACH,MAAM,UAAU,wBAAwB,CAAC,OAAe,EAAE,iBAAyB;IACjF,OAAO;QACL,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,qBAAqB;QAC9B,OAAO;QACP,iBAAiB;KAClB,CAAA;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA,CAAC,6BAA6B"}
@@ -0,0 +1,4 @@
1
+ import { UniversalRouterVersion } from './constants';
2
+ import { RoutePlanner } from './routerCommands';
3
+ import { SwapStep } from '../types/encodeSwaps';
4
+ export declare function encodeSwapStep(planner: RoutePlanner, step: SwapStep, urVersion?: UniversalRouterVersion): void;