@shapeshiftoss/contracts 1.0.0 → 1.0.2

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 (130) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -0
  2. package/dist/cjs/abis/arbOutbox.js +229 -0
  3. package/dist/cjs/abis/arbProxy.js +69 -0
  4. package/dist/cjs/abis/arbRetryableTx.js +116 -0
  5. package/dist/cjs/abis/arbSys.js +142 -0
  6. package/dist/cjs/abis/evergreenFarming.js +655 -0
  7. package/dist/cjs/abis/farming.js +459 -0
  8. package/dist/cjs/abis/foxy.js +678 -0
  9. package/dist/cjs/abis/foxyStaking.js +720 -0
  10. package/dist/cjs/abis/iBep20.js +128 -0
  11. package/dist/cjs/abis/iUniswapV2Pair.js +710 -0
  12. package/dist/cjs/abis/iUniswapV3Pool.js +986 -0
  13. package/dist/cjs/abis/index.js +40 -0
  14. package/dist/cjs/abis/l1ArbitrumGateway.js +259 -0
  15. package/dist/cjs/abis/l1OrbitCustomGateway.js +378 -0
  16. package/dist/cjs/abis/l2ArbitrumGateway.js +172 -0
  17. package/dist/cjs/abis/liquidityReserve.js +550 -0
  18. package/dist/cjs/abis/rfox.js +558 -0
  19. package/dist/cjs/abis/thorchainRouter.js +445 -0
  20. package/dist/cjs/abis/tokeManager.js +511 -0
  21. package/dist/cjs/abis/tokePool.js +311 -0
  22. package/dist/cjs/abis/tokeRewardHash.js +74 -0
  23. package/dist/cjs/abis/uniV2StakingRewards.js +414 -0
  24. package/dist/cjs/abis/uniswapV2Router02.js +956 -0
  25. package/dist/cjs/abis/uniswapV3Quoter.js +196 -0
  26. package/dist/cjs/abis/weth.js +282 -0
  27. package/dist/cjs/constants.js +108 -0
  28. package/dist/cjs/contractManager.js +77 -0
  29. package/dist/cjs/ethersProviderSingleton.js +75 -0
  30. package/dist/cjs/index.js +22 -0
  31. package/dist/cjs/package.json +1 -0
  32. package/dist/cjs/types.js +9 -0
  33. package/dist/cjs/viemClient.js +95 -0
  34. package/dist/esm/.tsbuildinfo +1 -0
  35. package/dist/esm/abis/arbOutbox.d.ts +413 -0
  36. package/dist/esm/abis/arbProxy.d.ts +102 -0
  37. package/dist/esm/abis/arbRetryableTx.d.ts +230 -0
  38. package/dist/esm/abis/arbSys.d.ts +278 -0
  39. package/dist/esm/abis/evergreenFarming.d.ts +517 -0
  40. package/dist/esm/abis/farming.d.ts +361 -0
  41. package/dist/esm/abis/foxy.d.ts +519 -0
  42. package/dist/esm/abis/foxyStaking.d.ts +556 -0
  43. package/dist/esm/abis/iBep20.d.ts +201 -0
  44. package/dist/esm/abis/iUniswapV2Pair.d.ts +560 -0
  45. package/dist/esm/abis/iUniswapV3Pool.d.ts +770 -0
  46. package/dist/esm/abis/index.d.ts +24 -0
  47. package/dist/esm/abis/index.js +24 -0
  48. package/dist/esm/abis/l1ArbitrumGateway.d.ts +494 -0
  49. package/dist/esm/abis/l1OrbitCustomGateway.d.ts +769 -0
  50. package/dist/esm/abis/l2ArbitrumGateway.d.ts +308 -0
  51. package/dist/esm/abis/liquidityReserve.d.ts +421 -0
  52. package/dist/esm/abis/rfox.d.ts +680 -0
  53. package/dist/esm/abis/thorchainRouter.d.ts +349 -0
  54. package/dist/esm/abis/tokeManager.d.ts +774 -0
  55. package/dist/esm/abis/tokePool.d.ts +502 -0
  56. package/dist/esm/abis/tokeRewardHash.d.ts +112 -0
  57. package/dist/esm/abis/uniV2StakingRewards.d.ts +316 -0
  58. package/dist/esm/abis/uniswapV2Router02.d.ts +737 -0
  59. package/dist/esm/abis/uniswapV3Quoter.d.ts +147 -0
  60. package/dist/esm/abis/weth.d.ts +213 -0
  61. package/dist/esm/constants.d.ts +6640 -0
  62. package/dist/{constants.js → esm/constants.js} +6 -6
  63. package/dist/esm/contractManager.d.ts +11 -0
  64. package/dist/{contractManager.js → esm/contractManager.js} +4 -4
  65. package/dist/esm/ethersProviderSingleton.d.ts +6 -0
  66. package/dist/{ethersProviderSingleton.js → esm/ethersProviderSingleton.js} +9 -9
  67. package/dist/esm/index.d.ts +6 -0
  68. package/dist/esm/index.js +6 -0
  69. package/dist/esm/types.d.ts +21 -0
  70. package/dist/esm/viemClient.d.ts +28338 -0
  71. package/dist/{viemClient.js → esm/viemClient.js} +13 -32
  72. package/package.json +21 -9
  73. package/dist/abis/index.js +0 -24
  74. package/dist/index.js +0 -6
  75. /package/dist/{abis → cjs/abis}/arbOutbox.d.ts +0 -0
  76. /package/dist/{abis → cjs/abis}/arbProxy.d.ts +0 -0
  77. /package/dist/{abis → cjs/abis}/arbRetryableTx.d.ts +0 -0
  78. /package/dist/{abis → cjs/abis}/arbSys.d.ts +0 -0
  79. /package/dist/{abis → cjs/abis}/evergreenFarming.d.ts +0 -0
  80. /package/dist/{abis → cjs/abis}/farming.d.ts +0 -0
  81. /package/dist/{abis → cjs/abis}/foxy.d.ts +0 -0
  82. /package/dist/{abis → cjs/abis}/foxyStaking.d.ts +0 -0
  83. /package/dist/{abis → cjs/abis}/iBep20.d.ts +0 -0
  84. /package/dist/{abis → cjs/abis}/iUniswapV2Pair.d.ts +0 -0
  85. /package/dist/{abis → cjs/abis}/iUniswapV3Pool.d.ts +0 -0
  86. /package/dist/{abis → cjs/abis}/index.d.ts +0 -0
  87. /package/dist/{abis → cjs/abis}/l1ArbitrumGateway.d.ts +0 -0
  88. /package/dist/{abis → cjs/abis}/l1OrbitCustomGateway.d.ts +0 -0
  89. /package/dist/{abis → cjs/abis}/l2ArbitrumGateway.d.ts +0 -0
  90. /package/dist/{abis → cjs/abis}/liquidityReserve.d.ts +0 -0
  91. /package/dist/{abis → cjs/abis}/rfox.d.ts +0 -0
  92. /package/dist/{abis → cjs/abis}/thorchainRouter.d.ts +0 -0
  93. /package/dist/{abis → cjs/abis}/tokeManager.d.ts +0 -0
  94. /package/dist/{abis → cjs/abis}/tokePool.d.ts +0 -0
  95. /package/dist/{abis → cjs/abis}/tokeRewardHash.d.ts +0 -0
  96. /package/dist/{abis → cjs/abis}/uniV2StakingRewards.d.ts +0 -0
  97. /package/dist/{abis → cjs/abis}/uniswapV2Router02.d.ts +0 -0
  98. /package/dist/{abis → cjs/abis}/uniswapV3Quoter.d.ts +0 -0
  99. /package/dist/{abis → cjs/abis}/weth.d.ts +0 -0
  100. /package/dist/{constants.d.ts → cjs/constants.d.ts} +0 -0
  101. /package/dist/{contractManager.d.ts → cjs/contractManager.d.ts} +0 -0
  102. /package/dist/{ethersProviderSingleton.d.ts → cjs/ethersProviderSingleton.d.ts} +0 -0
  103. /package/dist/{index.d.ts → cjs/index.d.ts} +0 -0
  104. /package/dist/{types.d.ts → cjs/types.d.ts} +0 -0
  105. /package/dist/{viemClient.d.ts → cjs/viemClient.d.ts} +0 -0
  106. /package/dist/{abis → esm/abis}/arbOutbox.js +0 -0
  107. /package/dist/{abis → esm/abis}/arbProxy.js +0 -0
  108. /package/dist/{abis → esm/abis}/arbRetryableTx.js +0 -0
  109. /package/dist/{abis → esm/abis}/arbSys.js +0 -0
  110. /package/dist/{abis → esm/abis}/evergreenFarming.js +0 -0
  111. /package/dist/{abis → esm/abis}/farming.js +0 -0
  112. /package/dist/{abis → esm/abis}/foxy.js +0 -0
  113. /package/dist/{abis → esm/abis}/foxyStaking.js +0 -0
  114. /package/dist/{abis → esm/abis}/iBep20.js +0 -0
  115. /package/dist/{abis → esm/abis}/iUniswapV2Pair.js +0 -0
  116. /package/dist/{abis → esm/abis}/iUniswapV3Pool.js +0 -0
  117. /package/dist/{abis → esm/abis}/l1ArbitrumGateway.js +0 -0
  118. /package/dist/{abis → esm/abis}/l1OrbitCustomGateway.js +0 -0
  119. /package/dist/{abis → esm/abis}/l2ArbitrumGateway.js +0 -0
  120. /package/dist/{abis → esm/abis}/liquidityReserve.js +0 -0
  121. /package/dist/{abis → esm/abis}/rfox.js +0 -0
  122. /package/dist/{abis → esm/abis}/thorchainRouter.js +0 -0
  123. /package/dist/{abis → esm/abis}/tokeManager.js +0 -0
  124. /package/dist/{abis → esm/abis}/tokePool.js +0 -0
  125. /package/dist/{abis → esm/abis}/tokeRewardHash.js +0 -0
  126. /package/dist/{abis → esm/abis}/uniV2StakingRewards.js +0 -0
  127. /package/dist/{abis → esm/abis}/uniswapV2Router02.js +0 -0
  128. /package/dist/{abis → esm/abis}/uniswapV3Quoter.js +0 -0
  129. /package/dist/{abis → esm/abis}/weth.js +0 -0
  130. /package/dist/{types.js → esm/types.js} +0 -0
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.UNISWAP_V3_QUOTER_ABI = void 0;
4
+ exports.UNISWAP_V3_QUOTER_ABI = [
5
+ {
6
+ inputs: [
7
+ {
8
+ internalType: 'address',
9
+ name: '_factory',
10
+ type: 'address',
11
+ },
12
+ {
13
+ internalType: 'address',
14
+ name: '_WETH9',
15
+ type: 'address',
16
+ },
17
+ ],
18
+ stateMutability: 'nonpayable',
19
+ type: 'constructor',
20
+ },
21
+ {
22
+ inputs: [],
23
+ name: 'WETH9',
24
+ outputs: [
25
+ {
26
+ internalType: 'address',
27
+ name: '',
28
+ type: 'address',
29
+ },
30
+ ],
31
+ stateMutability: 'view',
32
+ type: 'function',
33
+ },
34
+ {
35
+ inputs: [],
36
+ name: 'factory',
37
+ outputs: [
38
+ {
39
+ internalType: 'address',
40
+ name: '',
41
+ type: 'address',
42
+ },
43
+ ],
44
+ stateMutability: 'view',
45
+ type: 'function',
46
+ },
47
+ {
48
+ inputs: [
49
+ {
50
+ internalType: 'bytes',
51
+ name: 'path',
52
+ type: 'bytes',
53
+ },
54
+ {
55
+ internalType: 'uint256',
56
+ name: 'amountIn',
57
+ type: 'uint256',
58
+ },
59
+ ],
60
+ name: 'quoteExactInput',
61
+ outputs: [
62
+ {
63
+ internalType: 'uint256',
64
+ name: 'amountOut',
65
+ type: 'uint256',
66
+ },
67
+ ],
68
+ stateMutability: 'nonpayable',
69
+ type: 'function',
70
+ },
71
+ {
72
+ inputs: [
73
+ {
74
+ internalType: 'address',
75
+ name: 'tokenIn',
76
+ type: 'address',
77
+ },
78
+ {
79
+ internalType: 'address',
80
+ name: 'tokenOut',
81
+ type: 'address',
82
+ },
83
+ {
84
+ internalType: 'uint24',
85
+ name: 'fee',
86
+ type: 'uint24',
87
+ },
88
+ {
89
+ internalType: 'uint256',
90
+ name: 'amountIn',
91
+ type: 'uint256',
92
+ },
93
+ {
94
+ internalType: 'uint160',
95
+ name: 'sqrtPriceLimitX96',
96
+ type: 'uint160',
97
+ },
98
+ ],
99
+ name: 'quoteExactInputSingle',
100
+ outputs: [
101
+ {
102
+ internalType: 'uint256',
103
+ name: 'amountOut',
104
+ type: 'uint256',
105
+ },
106
+ ],
107
+ stateMutability: 'nonpayable',
108
+ type: 'function',
109
+ },
110
+ {
111
+ inputs: [
112
+ {
113
+ internalType: 'bytes',
114
+ name: 'path',
115
+ type: 'bytes',
116
+ },
117
+ {
118
+ internalType: 'uint256',
119
+ name: 'amountOut',
120
+ type: 'uint256',
121
+ },
122
+ ],
123
+ name: 'quoteExactOutput',
124
+ outputs: [
125
+ {
126
+ internalType: 'uint256',
127
+ name: 'amountIn',
128
+ type: 'uint256',
129
+ },
130
+ ],
131
+ stateMutability: 'nonpayable',
132
+ type: 'function',
133
+ },
134
+ {
135
+ inputs: [
136
+ {
137
+ internalType: 'address',
138
+ name: 'tokenIn',
139
+ type: 'address',
140
+ },
141
+ {
142
+ internalType: 'address',
143
+ name: 'tokenOut',
144
+ type: 'address',
145
+ },
146
+ {
147
+ internalType: 'uint24',
148
+ name: 'fee',
149
+ type: 'uint24',
150
+ },
151
+ {
152
+ internalType: 'uint256',
153
+ name: 'amountOut',
154
+ type: 'uint256',
155
+ },
156
+ {
157
+ internalType: 'uint160',
158
+ name: 'sqrtPriceLimitX96',
159
+ type: 'uint160',
160
+ },
161
+ ],
162
+ name: 'quoteExactOutputSingle',
163
+ outputs: [
164
+ {
165
+ internalType: 'uint256',
166
+ name: 'amountIn',
167
+ type: 'uint256',
168
+ },
169
+ ],
170
+ stateMutability: 'nonpayable',
171
+ type: 'function',
172
+ },
173
+ {
174
+ inputs: [
175
+ {
176
+ internalType: 'int256',
177
+ name: 'amount0Delta',
178
+ type: 'int256',
179
+ },
180
+ {
181
+ internalType: 'int256',
182
+ name: 'amount1Delta',
183
+ type: 'int256',
184
+ },
185
+ {
186
+ internalType: 'bytes',
187
+ name: 'path',
188
+ type: 'bytes',
189
+ },
190
+ ],
191
+ name: 'uniswapV3SwapCallback',
192
+ outputs: [],
193
+ stateMutability: 'view',
194
+ type: 'function',
195
+ },
196
+ ];
@@ -0,0 +1,282 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.WETH_ABI = void 0;
4
+ exports.WETH_ABI = [
5
+ {
6
+ constant: true,
7
+ inputs: [],
8
+ name: 'name',
9
+ outputs: [
10
+ {
11
+ name: '',
12
+ type: 'string',
13
+ },
14
+ ],
15
+ payable: false,
16
+ stateMutability: 'view',
17
+ type: 'function',
18
+ },
19
+ {
20
+ constant: false,
21
+ inputs: [
22
+ {
23
+ name: 'guy',
24
+ type: 'address',
25
+ },
26
+ {
27
+ name: 'wad',
28
+ type: 'uint256',
29
+ },
30
+ ],
31
+ name: 'approve',
32
+ outputs: [
33
+ {
34
+ name: '',
35
+ type: 'bool',
36
+ },
37
+ ],
38
+ payable: false,
39
+ stateMutability: 'nonpayable',
40
+ type: 'function',
41
+ },
42
+ {
43
+ constant: true,
44
+ inputs: [],
45
+ name: 'totalSupply',
46
+ outputs: [
47
+ {
48
+ name: '',
49
+ type: 'uint256',
50
+ },
51
+ ],
52
+ payable: false,
53
+ stateMutability: 'view',
54
+ type: 'function',
55
+ },
56
+ {
57
+ constant: false,
58
+ inputs: [
59
+ {
60
+ name: 'src',
61
+ type: 'address',
62
+ },
63
+ {
64
+ name: 'dst',
65
+ type: 'address',
66
+ },
67
+ {
68
+ name: 'wad',
69
+ type: 'uint256',
70
+ },
71
+ ],
72
+ name: 'transferFrom',
73
+ outputs: [
74
+ {
75
+ name: '',
76
+ type: 'bool',
77
+ },
78
+ ],
79
+ payable: false,
80
+ stateMutability: 'nonpayable',
81
+ type: 'function',
82
+ },
83
+ {
84
+ constant: false,
85
+ inputs: [
86
+ {
87
+ name: 'wad',
88
+ type: 'uint256',
89
+ },
90
+ ],
91
+ name: 'withdraw',
92
+ outputs: [],
93
+ payable: false,
94
+ stateMutability: 'nonpayable',
95
+ type: 'function',
96
+ },
97
+ {
98
+ constant: true,
99
+ inputs: [],
100
+ name: 'decimals',
101
+ outputs: [
102
+ {
103
+ name: '',
104
+ type: 'uint8',
105
+ },
106
+ ],
107
+ payable: false,
108
+ stateMutability: 'view',
109
+ type: 'function',
110
+ },
111
+ {
112
+ constant: true,
113
+ inputs: [
114
+ {
115
+ name: '',
116
+ type: 'address',
117
+ },
118
+ ],
119
+ name: 'balanceOf',
120
+ outputs: [
121
+ {
122
+ name: '',
123
+ type: 'uint256',
124
+ },
125
+ ],
126
+ payable: false,
127
+ stateMutability: 'view',
128
+ type: 'function',
129
+ },
130
+ {
131
+ constant: true,
132
+ inputs: [],
133
+ name: 'symbol',
134
+ outputs: [
135
+ {
136
+ name: '',
137
+ type: 'string',
138
+ },
139
+ ],
140
+ payable: false,
141
+ stateMutability: 'view',
142
+ type: 'function',
143
+ },
144
+ {
145
+ constant: false,
146
+ inputs: [
147
+ {
148
+ name: 'dst',
149
+ type: 'address',
150
+ },
151
+ {
152
+ name: 'wad',
153
+ type: 'uint256',
154
+ },
155
+ ],
156
+ name: 'transfer',
157
+ outputs: [
158
+ {
159
+ name: '',
160
+ type: 'bool',
161
+ },
162
+ ],
163
+ payable: false,
164
+ stateMutability: 'nonpayable',
165
+ type: 'function',
166
+ },
167
+ {
168
+ constant: false,
169
+ inputs: [],
170
+ name: 'deposit',
171
+ outputs: [],
172
+ payable: true,
173
+ stateMutability: 'payable',
174
+ type: 'function',
175
+ },
176
+ {
177
+ constant: true,
178
+ inputs: [
179
+ {
180
+ name: '',
181
+ type: 'address',
182
+ },
183
+ {
184
+ name: '',
185
+ type: 'address',
186
+ },
187
+ ],
188
+ name: 'allowance',
189
+ outputs: [
190
+ {
191
+ name: '',
192
+ type: 'uint256',
193
+ },
194
+ ],
195
+ payable: false,
196
+ stateMutability: 'view',
197
+ type: 'function',
198
+ },
199
+ {
200
+ payable: true,
201
+ stateMutability: 'payable',
202
+ type: 'fallback',
203
+ },
204
+ {
205
+ anonymous: false,
206
+ inputs: [
207
+ {
208
+ indexed: true,
209
+ name: 'src',
210
+ type: 'address',
211
+ },
212
+ {
213
+ indexed: true,
214
+ name: 'guy',
215
+ type: 'address',
216
+ },
217
+ {
218
+ indexed: false,
219
+ name: 'wad',
220
+ type: 'uint256',
221
+ },
222
+ ],
223
+ name: 'Approval',
224
+ type: 'event',
225
+ },
226
+ {
227
+ anonymous: false,
228
+ inputs: [
229
+ {
230
+ indexed: true,
231
+ name: 'src',
232
+ type: 'address',
233
+ },
234
+ {
235
+ indexed: true,
236
+ name: 'dst',
237
+ type: 'address',
238
+ },
239
+ {
240
+ indexed: false,
241
+ name: 'wad',
242
+ type: 'uint256',
243
+ },
244
+ ],
245
+ name: 'Transfer',
246
+ type: 'event',
247
+ },
248
+ {
249
+ anonymous: false,
250
+ inputs: [
251
+ {
252
+ indexed: true,
253
+ name: 'dst',
254
+ type: 'address',
255
+ },
256
+ {
257
+ indexed: false,
258
+ name: 'wad',
259
+ type: 'uint256',
260
+ },
261
+ ],
262
+ name: 'Deposit',
263
+ type: 'event',
264
+ },
265
+ {
266
+ anonymous: false,
267
+ inputs: [
268
+ {
269
+ indexed: true,
270
+ name: 'src',
271
+ type: 'address',
272
+ },
273
+ {
274
+ indexed: false,
275
+ name: 'wad',
276
+ type: 'uint256',
277
+ },
278
+ ],
279
+ name: 'Withdrawal',
280
+ type: 'event',
281
+ },
282
+ ];
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PERMIT2_CONTRACT = exports.UNI_V2_FOX_STAKING_REWARDS_CONTRACTS = exports.UNI_V2_FOX_STAKING_REWARDS_V5_CONTRACT = exports.UNI_V2_FOX_STAKING_REWARDS_V4_CONTRACT = exports.UNI_V2_FOX_STAKING_REWARDS_V3_CONTRACT = exports.UNI_V2_FOX_STAKING_REWARDS_V2_CONTRACT = exports.UNI_V2_FOX_STAKING_REWARDS_V1_CONTRACT = exports.FOXY_STAKING_CONTRACT = exports.SHAPE_SHIFT_ROUTER_CONTRACT = exports.L1_ORBIT_CUSTOM_GATEWAY_CONTRACT = exports.L1_ARBITRUM_GATEWAY_CONTRACT = exports.L2_ARBITRUM_GATEWAY_CONTRACT = exports.L2_ARBITRUM_CUSTOM_GATEWAY_CONTRACT = exports.ARB_RETRYABLE_TX_CONTRACT = exports.ARBITRUM_L2_ERC20_GATEWAY_PROXY_CONTRACT = exports.ARB_SYS_CONTRACT = exports.ARB_OUTBOX_CONTRACT = exports.COWSWAP_SETTLEMENT_CONTRACT_MAINNET = exports.ZRX_OPTIMISM_PROXY_CONTRACT = exports.ZRX_ETHEREUM_PROXY_CONTRACT = exports.CONTRACT_TYPE_TO_ABI = exports.CONTRACT_ADDRESS_TO_ABI = exports.RFOX_WAD = exports.RFOX_REWARD_RATE = exports.RFOX_UNI_V2_ETH_FOX_PROXY_CONTRACT = exports.RFOX_PROXY_CONTRACT = exports.TS_AGGREGATOR_TOKEN_TRANSFER_PROXY_CONTRACT_MAINNET = exports.THOR_ROUTER_CONTRACT_MAINNET = exports.UNISWAP_V3_POOL_FACTORY_CONTRACT_MAINNET = exports.UNISWAP_V3_QUOTER_CONTRACT_MAINNET = exports.UNISWAP_V2_FACTORY_CONTRACT_MAINNET = exports.UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET = exports.ETH_FOX_POOL_CONTRACT = exports.foxEthStakingContractAddresses = exports.ETH_FOX_STAKING_EVERGREEN_CONTRACT = exports.ETH_FOX_STAKING_V9_CONTRACT = exports.ETH_FOX_STAKING_V8_CONTRACT = exports.ETH_FOX_STAKING_V7_CONTRACT = exports.ETH_FOX_STAKING_V6_CONTRACT = exports.ETH_FOX_STAKING_V5_CONTRACT = exports.ETH_FOX_STAKING_V4_CONTRACT = exports.ETH_FOX_STAKING_V3_CONTRACT = exports.ETH_FOX_STAKING_V2_CONTRACT = exports.ETH_FOX_STAKING_V1_CONTRACT = exports.FOX_TOKEN_CONTRACT = exports.WETH_TOKEN_CONTRACT = void 0;
4
+ const viem_1 = require("viem");
5
+ const evergreenFarming_1 = require("./abis/evergreenFarming");
6
+ const farming_1 = require("./abis/farming");
7
+ const iUniswapV2Pair_1 = require("./abis/iUniswapV2Pair");
8
+ const thorchainRouter_1 = require("./abis/thorchainRouter");
9
+ const uniswapV2Router02_1 = require("./abis/uniswapV2Router02");
10
+ const types_1 = require("./types");
11
+ exports.WETH_TOKEN_CONTRACT = '0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2';
12
+ exports.FOX_TOKEN_CONTRACT = '0xc770EEfAd204B5180dF6a14Ee197D99d808ee52d';
13
+ // Staking contract addresses as string literals
14
+ exports.ETH_FOX_STAKING_V1_CONTRACT = '0xdd80e21669a664bce83e3ad9a0d74f8dad5d9e72';
15
+ exports.ETH_FOX_STAKING_V2_CONTRACT = '0xc54b9f82c1c54e9d4d274d633c7523f2299c42a0';
16
+ exports.ETH_FOX_STAKING_V3_CONTRACT = '0x212ebf9fd3c10f371557b08e993eaab385c3932b';
17
+ exports.ETH_FOX_STAKING_V4_CONTRACT = '0x24fd7fb95dc742e23dc3829d3e656feeb5f67fa0';
18
+ exports.ETH_FOX_STAKING_V5_CONTRACT = '0xc14eaa8284feff79edc118e06cadbf3813a7e555';
19
+ exports.ETH_FOX_STAKING_V6_CONTRACT = '0xebb1761ad43034fd7faa64d84e5bbd8cb5c40b68';
20
+ exports.ETH_FOX_STAKING_V7_CONTRACT = '0x5939783dbf3e9f453a69bc9ddc1e492efac1fbcb';
21
+ exports.ETH_FOX_STAKING_V8_CONTRACT = '0x662da6c777a258382f08b979d9489c3fbbbd8ac3';
22
+ exports.ETH_FOX_STAKING_V9_CONTRACT = '0x721720784b76265aa3e34c1c7ba02a6027bcd3e5';
23
+ exports.ETH_FOX_STAKING_EVERGREEN_CONTRACT = '0xe7e16e2b05440c2e484c5c41ac3e5a4d15da2744';
24
+ exports.foxEthStakingContractAddresses = [
25
+ exports.ETH_FOX_STAKING_V9_CONTRACT,
26
+ exports.ETH_FOX_STAKING_V8_CONTRACT,
27
+ exports.ETH_FOX_STAKING_V7_CONTRACT,
28
+ exports.ETH_FOX_STAKING_V6_CONTRACT,
29
+ exports.ETH_FOX_STAKING_V5_CONTRACT,
30
+ exports.ETH_FOX_STAKING_V4_CONTRACT,
31
+ exports.ETH_FOX_STAKING_V3_CONTRACT,
32
+ exports.ETH_FOX_STAKING_V2_CONTRACT,
33
+ exports.ETH_FOX_STAKING_V1_CONTRACT,
34
+ exports.ETH_FOX_STAKING_EVERGREEN_CONTRACT,
35
+ ];
36
+ // Exported as a string literal for contract address discrimination purposes
37
+ exports.ETH_FOX_POOL_CONTRACT = '0x470e8de2eBaef52014A47Cb5E6aF86884947F08c';
38
+ // Uniswap V2
39
+ exports.UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET = '0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D';
40
+ exports.UNISWAP_V2_FACTORY_CONTRACT_MAINNET = '0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f';
41
+ // Uniswap V3
42
+ exports.UNISWAP_V3_QUOTER_CONTRACT_MAINNET = '0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6';
43
+ exports.UNISWAP_V3_POOL_FACTORY_CONTRACT_MAINNET = '0x1F98431c8aD98523631AE4a59f267346ea31F984';
44
+ // THORChain Contracts
45
+ exports.THOR_ROUTER_CONTRACT_MAINNET = '0xd37bbe5744d730a1d98d8dc97c42f0ca46ad7146';
46
+ exports.TS_AGGREGATOR_TOKEN_TRANSFER_PROXY_CONTRACT_MAINNET = '0xF892Fef9dA200d9E84c9b0647ecFF0F34633aBe8';
47
+ // RFOX on Arbitrum ERC1967Proxy contract address
48
+ // Uncomment me if you want to test RFOX with a shorter cooldown period
49
+ // export const RFOX_PROXY_CONTRACT: Address = '0x1094c4a99fce60e69ffe75849309408f1262d304'
50
+ // export const RFOX_UNI_V2_ETH_FOX_PROXY_CONTRACT: Address = '0x4843373F380aDf80C779cD4dEDC6452E414f7634'
51
+ exports.RFOX_PROXY_CONTRACT = '0xaC2a4fD70BCD8Bab0662960455c363735f0e2b56';
52
+ exports.RFOX_UNI_V2_ETH_FOX_PROXY_CONTRACT = '0x83B51B7605d2E277E03A7D6451B1efc0e5253A2F';
53
+ exports.RFOX_REWARD_RATE = 1n * 10n ** 27n;
54
+ exports.RFOX_WAD = 1n * 10n ** 18n;
55
+ exports.CONTRACT_ADDRESS_TO_ABI = {
56
+ [exports.ETH_FOX_POOL_CONTRACT]: iUniswapV2Pair_1.I_UNISWAP_V2_PAIR_ABI,
57
+ [exports.ETH_FOX_STAKING_V1_CONTRACT]: farming_1.FARMING_ABI,
58
+ [exports.ETH_FOX_STAKING_V2_CONTRACT]: farming_1.FARMING_ABI,
59
+ [exports.ETH_FOX_STAKING_V3_CONTRACT]: farming_1.FARMING_ABI,
60
+ [exports.ETH_FOX_STAKING_V4_CONTRACT]: farming_1.FARMING_ABI,
61
+ [exports.ETH_FOX_STAKING_V5_CONTRACT]: farming_1.FARMING_ABI,
62
+ [exports.ETH_FOX_STAKING_V6_CONTRACT]: farming_1.FARMING_ABI,
63
+ [exports.ETH_FOX_STAKING_V7_CONTRACT]: farming_1.FARMING_ABI,
64
+ [exports.ETH_FOX_STAKING_V8_CONTRACT]: farming_1.FARMING_ABI,
65
+ [exports.ETH_FOX_STAKING_V9_CONTRACT]: farming_1.FARMING_ABI,
66
+ [exports.ETH_FOX_STAKING_EVERGREEN_CONTRACT]: evergreenFarming_1.EVERGREEN_FARMING_ABI,
67
+ [exports.FOX_TOKEN_CONTRACT]: viem_1.erc20Abi,
68
+ [exports.UNISWAP_V2_ROUTER_02_CONTRACT_MAINNET]: uniswapV2Router02_1.UNISWAP_V2_ROUTER_02_ABI,
69
+ // THOR Router Mainnet
70
+ [exports.THOR_ROUTER_CONTRACT_MAINNET]: thorchainRouter_1.THORCHAIN_ROUTER_ABI,
71
+ };
72
+ exports.CONTRACT_TYPE_TO_ABI = {
73
+ [types_1.ContractType.UniV2Pair]: iUniswapV2Pair_1.I_UNISWAP_V2_PAIR_ABI,
74
+ [types_1.ContractType.ERC20]: viem_1.erc20Abi,
75
+ [types_1.ContractType.ThorRouter]: thorchainRouter_1.THORCHAIN_ROUTER_ABI,
76
+ };
77
+ // 0x proxy contracts - all EVM chains except Optimism have the same address
78
+ exports.ZRX_ETHEREUM_PROXY_CONTRACT = '0xDef1C0ded9bec7F1a1670819833240f027b25EfF';
79
+ exports.ZRX_OPTIMISM_PROXY_CONTRACT = '0xDEF1ABE32c034e558Cdd535791643C58a13aCC10';
80
+ // Cowswap
81
+ exports.COWSWAP_SETTLEMENT_CONTRACT_MAINNET = '0x9008D19f58AAbD9eD0D60971565AA8510560ab41';
82
+ // Arbitrum Bridge contracts
83
+ exports.ARB_OUTBOX_CONTRACT = '0x0B9857ae2D4A3DBe74ffE1d7DF045bb7F96E4840';
84
+ exports.ARB_SYS_CONTRACT = '0x0000000000000000000000000000000000000064';
85
+ exports.ARBITRUM_L2_ERC20_GATEWAY_PROXY_CONTRACT = '0x09e9222E96E7B4AE2a407B98d48e330053351EEe';
86
+ exports.ARB_RETRYABLE_TX_CONTRACT = '0x000000000000000000000000000000000000006e';
87
+ exports.L2_ARBITRUM_CUSTOM_GATEWAY_CONTRACT = '0x096760F208390250649E3e8763348E783AEF5562';
88
+ exports.L2_ARBITRUM_GATEWAY_CONTRACT = '0x5288c571Fd7aD117beA99bF60FE0846C4E84F933';
89
+ exports.L1_ARBITRUM_GATEWAY_CONTRACT = '0x72ce9c846789fdb6fc1f34ac4ad25dd9ef7031ef';
90
+ exports.L1_ORBIT_CUSTOM_GATEWAY_CONTRACT = '0x4Dbd4fc535Ac27206064B68FfCf827b0A60BAB3f';
91
+ exports.SHAPE_SHIFT_ROUTER_CONTRACT = '0x6a1e73f12018D8e5f966ce794aa2921941feB17E';
92
+ exports.FOXY_STAKING_CONTRACT = '0xee77aa3Fd23BbeBaf94386dD44b548e9a785ea4b';
93
+ // Fox Staking Contracts
94
+ exports.UNI_V2_FOX_STAKING_REWARDS_V1_CONTRACT = '0xDd80E21669A664Bce83E3AD9a0d74f8Dad5D9E72';
95
+ exports.UNI_V2_FOX_STAKING_REWARDS_V2_CONTRACT = '0xc54B9F82C1c54E9D4d274d633c7523f2299c42A0';
96
+ exports.UNI_V2_FOX_STAKING_REWARDS_V3_CONTRACT = '0x212ebf9FD3c10F371557b08E993eAaB385c3932b';
97
+ exports.UNI_V2_FOX_STAKING_REWARDS_V4_CONTRACT = '0x24FD7FB95dc742e23Dc3829d3e656FEeb5f67fa0';
98
+ exports.UNI_V2_FOX_STAKING_REWARDS_V5_CONTRACT = '0xC14eaA8284feFF79EDc118E06caDBf3813a7e555';
99
+ exports.UNI_V2_FOX_STAKING_REWARDS_CONTRACTS = [
100
+ exports.UNI_V2_FOX_STAKING_REWARDS_V1_CONTRACT,
101
+ exports.UNI_V2_FOX_STAKING_REWARDS_V2_CONTRACT,
102
+ exports.UNI_V2_FOX_STAKING_REWARDS_V3_CONTRACT,
103
+ exports.UNI_V2_FOX_STAKING_REWARDS_V4_CONTRACT,
104
+ exports.UNI_V2_FOX_STAKING_REWARDS_V5_CONTRACT,
105
+ ];
106
+ // Permit2 is deployed here across all chains.
107
+ // https://0x.org/docs/introduction/0x-cheat-sheet#permit2-contract
108
+ exports.PERMIT2_CONTRACT = '0x000000000022D473030F116dDEE9F6B43aC78BA3';
@@ -0,0 +1,77 @@
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
+ exports.fetchUniV2PairData = exports.getOrCreateContractByType = exports.getOrCreateContractByAddress = void 0;
7
+ const caip_1 = require("@shapeshiftoss/caip");
8
+ const types_1 = require("@shapeshiftoss/types");
9
+ const sdk_1 = require("@uniswap/sdk");
10
+ const assert_1 = __importDefault(require("assert"));
11
+ const memoize_1 = __importDefault(require("lodash/memoize"));
12
+ const viem_1 = require("viem");
13
+ const constants_1 = require("./constants");
14
+ const ethersProviderSingleton_1 = require("./ethersProviderSingleton");
15
+ const types_2 = require("./types");
16
+ const viemClient_1 = require("./viemClient");
17
+ const definedContracts = {};
18
+ const getOrCreateContractByAddress = (address) => {
19
+ const checksumAddress = (0, viem_1.getAddress)(address);
20
+ const definedContract = definedContracts[checksumAddress];
21
+ if (definedContract !== undefined) {
22
+ return definedContract;
23
+ }
24
+ const contractAbi = constants_1.CONTRACT_ADDRESS_TO_ABI[address];
25
+ const contract = (0, viem_1.getContract)({
26
+ abi: contractAbi,
27
+ address: checksumAddress,
28
+ client: viemClient_1.viemEthMainnetClient,
29
+ });
30
+ definedContracts[checksumAddress] = contract;
31
+ return contract;
32
+ };
33
+ exports.getOrCreateContractByAddress = getOrCreateContractByAddress;
34
+ const getOrCreateContractByType = ({ address, type, chainId, }) => {
35
+ const checksumAddress = (0, viem_1.getAddress)(address);
36
+ const definedContract = definedContracts[checksumAddress];
37
+ if (definedContract !== undefined) {
38
+ return definedContract;
39
+ }
40
+ const publicClient = viemClient_1.viemClientByChainId[chainId];
41
+ (0, assert_1.default)(publicClient !== undefined, `no public client found for chainId '${chainId}'`);
42
+ const contract = (0, viem_1.getContract)({
43
+ abi: constants_1.CONTRACT_TYPE_TO_ABI[type],
44
+ address: checksumAddress,
45
+ client: publicClient,
46
+ });
47
+ definedContracts[checksumAddress] = contract;
48
+ return contract;
49
+ };
50
+ exports.getOrCreateContractByType = getOrCreateContractByType;
51
+ exports.fetchUniV2PairData = (0, memoize_1.default)(async (pairAssetId) => {
52
+ const { assetReference, chainId } = (0, caip_1.fromAssetId)(pairAssetId);
53
+ const checksumAddress = (0, viem_1.getAddress)(assetReference);
54
+ const pair = (0, exports.getOrCreateContractByType)({
55
+ address: checksumAddress,
56
+ type: types_2.ContractType.UniV2Pair,
57
+ chainId: types_1.KnownChainIds.EthereumMainnet,
58
+ });
59
+ const ethersV5Provider = (0, ethersProviderSingleton_1.getEthersV5Provider)();
60
+ const token0Address = await pair.read.token0();
61
+ const token1Address = await pair.read.token1();
62
+ const token0AssetId = (0, caip_1.toAssetId)({
63
+ chainId,
64
+ assetNamespace: 'erc20',
65
+ assetReference: token0Address,
66
+ });
67
+ const token1AssetId = (0, caip_1.toAssetId)({
68
+ chainId,
69
+ assetNamespace: 'erc20',
70
+ assetReference: token1Address,
71
+ });
72
+ const { chainReference: asset0EvmChainId, assetReference: asset0Address } = (0, caip_1.fromAssetId)(token0AssetId);
73
+ const { chainReference: asset1EvmChainId, assetReference: asset1Address } = (0, caip_1.fromAssetId)(token1AssetId);
74
+ const token0 = await sdk_1.Fetcher.fetchTokenData(Number(asset0EvmChainId), asset0Address, ethersV5Provider);
75
+ const token1 = await sdk_1.Fetcher.fetchTokenData(Number(asset1EvmChainId), asset1Address, ethersV5Provider);
76
+ return sdk_1.Fetcher.fetchPairData(token0, token1, ethersV5Provider);
77
+ });