@paraswap/dex-lib 4.7.14-multi-route.0 → 4.7.14-multi-route.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/abi/pharaoh-v3/PharaohV3Factory.abi.json +39 -0
- package/build/abi/pharaoh-v3/PharaohV3Pool.abi.json +802 -0
- package/build/abi/pharaoh-v3/PharaohV3StateMulticall.abi.json +781 -0
- package/build/abi/uniswap-v4/hooks/arena/arena-fee-helper.abi.json +476 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.d.ts +7 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js +20 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.d.ts +12 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js +139 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.d.ts +11 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js +128 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3.js.map +1 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.d.ts +4 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js +56 -0
- package/build/dex/uniswap-v3/forks/pharaoh-v3/utils.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.d.ts +36 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js +125 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-fee-helper.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.d.ts +21 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.js +93 -0
- package/build/dex/uniswap-v4/hooks/arena/arena-hook.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/config.d.ts +3 -0
- package/build/dex/uniswap-v4/hooks/arena/config.js +11 -0
- package/build/dex/uniswap-v4/hooks/arena/config.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/arena/types.d.ts +5 -0
- package/build/dex/uniswap-v4/hooks/arena/types.js +3 -0
- package/build/dex/uniswap-v4/hooks/arena/types.js.map +1 -0
- package/build/dex/uniswap-v4/hooks/types.d.ts +60 -0
- package/build/dex/uniswap-v4/hooks/types.js +3 -0
- package/build/dex/uniswap-v4/hooks/types.js.map +1 -0
- package/build/executor/types.d.ts +3 -3
- package/build/generic-swap-transaction-builder.d.ts +3 -2
- package/build/generic-swap-transaction-builder.js +61 -50
- package/build/generic-swap-transaction-builder.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"inputs": [
|
|
4
|
+
{ "internalType": "address", "name": "_owner", "type": "address" },
|
|
5
|
+
{
|
|
6
|
+
"internalType": "address",
|
|
7
|
+
"name": "_referralRegistry",
|
|
8
|
+
"type": "address"
|
|
9
|
+
},
|
|
10
|
+
{ "internalType": "uint16", "name": "_protocolFeePpm", "type": "uint16" },
|
|
11
|
+
{
|
|
12
|
+
"internalType": "address",
|
|
13
|
+
"name": "_protocolFeeRecipient",
|
|
14
|
+
"type": "address"
|
|
15
|
+
},
|
|
16
|
+
{ "internalType": "uint16", "name": "_referralFeePpm", "type": "uint16" }
|
|
17
|
+
],
|
|
18
|
+
"stateMutability": "nonpayable",
|
|
19
|
+
"type": "constructor"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"inputs": [],
|
|
23
|
+
"name": "FeeArrayLengthExceedsMaxFeeArrayLength",
|
|
24
|
+
"type": "error"
|
|
25
|
+
},
|
|
26
|
+
{ "inputs": [], "name": "FeeRecipientNotFound", "type": "error" },
|
|
27
|
+
{ "inputs": [], "name": "FeeSetterOnly", "type": "error" },
|
|
28
|
+
{ "inputs": [], "name": "FeesAlreadyInitialized", "type": "error" },
|
|
29
|
+
{
|
|
30
|
+
"inputs": [
|
|
31
|
+
{ "internalType": "address", "name": "owner", "type": "address" }
|
|
32
|
+
],
|
|
33
|
+
"name": "OwnableInvalidOwner",
|
|
34
|
+
"type": "error"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"inputs": [
|
|
38
|
+
{ "internalType": "address", "name": "account", "type": "address" }
|
|
39
|
+
],
|
|
40
|
+
"name": "OwnableUnauthorizedAccount",
|
|
41
|
+
"type": "error"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"inputs": [],
|
|
45
|
+
"name": "ProtocolFeePpmMustBeGreaterThanReferralFeePpm",
|
|
46
|
+
"type": "error"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"inputs": [],
|
|
50
|
+
"name": "ProtocolFeePpmMustBeGreaterThanZero",
|
|
51
|
+
"type": "error"
|
|
52
|
+
},
|
|
53
|
+
{ "inputs": [], "name": "RecipientCantBeZeroAddress", "type": "error" },
|
|
54
|
+
{
|
|
55
|
+
"inputs": [],
|
|
56
|
+
"name": "RecipientIndexDoesNotMatchRecipient",
|
|
57
|
+
"type": "error"
|
|
58
|
+
},
|
|
59
|
+
{ "inputs": [], "name": "RecipientIndexOutOfBounds", "type": "error" },
|
|
60
|
+
{ "inputs": [], "name": "TotalFeePpmBelowMinFeePpm", "type": "error" },
|
|
61
|
+
{ "inputs": [], "name": "TotalFeePpmExceedsMaxFeePpm", "type": "error" },
|
|
62
|
+
{
|
|
63
|
+
"anonymous": false,
|
|
64
|
+
"inputs": [
|
|
65
|
+
{
|
|
66
|
+
"indexed": true,
|
|
67
|
+
"internalType": "PoolId",
|
|
68
|
+
"name": "poolId",
|
|
69
|
+
"type": "bytes32"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"components": [
|
|
73
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
74
|
+
{ "internalType": "uint16", "name": "feePpm", "type": "uint16" }
|
|
75
|
+
],
|
|
76
|
+
"indexed": false,
|
|
77
|
+
"internalType": "struct IArenaFeeHelperMinimal.Fee[]",
|
|
78
|
+
"name": "fees",
|
|
79
|
+
"type": "tuple[]"
|
|
80
|
+
}
|
|
81
|
+
],
|
|
82
|
+
"name": "FeeArraySet",
|
|
83
|
+
"type": "event"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"anonymous": false,
|
|
87
|
+
"inputs": [
|
|
88
|
+
{
|
|
89
|
+
"indexed": true,
|
|
90
|
+
"internalType": "address",
|
|
91
|
+
"name": "feeSetter",
|
|
92
|
+
"type": "address"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"indexed": false,
|
|
96
|
+
"internalType": "bool",
|
|
97
|
+
"name": "isFeeSetter",
|
|
98
|
+
"type": "bool"
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
"name": "FeeSetterSet",
|
|
102
|
+
"type": "event"
|
|
103
|
+
},
|
|
104
|
+
{
|
|
105
|
+
"anonymous": false,
|
|
106
|
+
"inputs": [
|
|
107
|
+
{
|
|
108
|
+
"indexed": true,
|
|
109
|
+
"internalType": "address",
|
|
110
|
+
"name": "previousOwner",
|
|
111
|
+
"type": "address"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"indexed": true,
|
|
115
|
+
"internalType": "address",
|
|
116
|
+
"name": "newOwner",
|
|
117
|
+
"type": "address"
|
|
118
|
+
}
|
|
119
|
+
],
|
|
120
|
+
"name": "OwnershipTransferStarted",
|
|
121
|
+
"type": "event"
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"anonymous": false,
|
|
125
|
+
"inputs": [
|
|
126
|
+
{
|
|
127
|
+
"indexed": true,
|
|
128
|
+
"internalType": "address",
|
|
129
|
+
"name": "previousOwner",
|
|
130
|
+
"type": "address"
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
"indexed": true,
|
|
134
|
+
"internalType": "address",
|
|
135
|
+
"name": "newOwner",
|
|
136
|
+
"type": "address"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"name": "OwnershipTransferred",
|
|
140
|
+
"type": "event"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"anonymous": false,
|
|
144
|
+
"inputs": [
|
|
145
|
+
{
|
|
146
|
+
"components": [
|
|
147
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
148
|
+
{
|
|
149
|
+
"internalType": "uint16",
|
|
150
|
+
"name": "protocolFeePpm",
|
|
151
|
+
"type": "uint16"
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"internalType": "uint16",
|
|
155
|
+
"name": "referralFeePpm",
|
|
156
|
+
"type": "uint16"
|
|
157
|
+
}
|
|
158
|
+
],
|
|
159
|
+
"indexed": false,
|
|
160
|
+
"internalType": "struct ArenaFeeHelper.ProtocolFeeSettings",
|
|
161
|
+
"name": "settings",
|
|
162
|
+
"type": "tuple"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"name": "ProtocolFeeSettingsSet",
|
|
166
|
+
"type": "event"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"anonymous": false,
|
|
170
|
+
"inputs": [
|
|
171
|
+
{
|
|
172
|
+
"indexed": false,
|
|
173
|
+
"internalType": "address",
|
|
174
|
+
"name": "referralRegistry",
|
|
175
|
+
"type": "address"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"name": "ReferralRegistrySet",
|
|
179
|
+
"type": "event"
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"inputs": [],
|
|
183
|
+
"name": "MAX_FEE_ARRAY_LENGTH",
|
|
184
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
185
|
+
"stateMutability": "view",
|
|
186
|
+
"type": "function"
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
"inputs": [],
|
|
190
|
+
"name": "MAX_POOL_FEE_PPM",
|
|
191
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
192
|
+
"stateMutability": "view",
|
|
193
|
+
"type": "function"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"inputs": [],
|
|
197
|
+
"name": "MAX_PROTOCOL_FEE_PPM",
|
|
198
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
199
|
+
"stateMutability": "view",
|
|
200
|
+
"type": "function"
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"inputs": [],
|
|
204
|
+
"name": "acceptOwnership",
|
|
205
|
+
"outputs": [],
|
|
206
|
+
"stateMutability": "nonpayable",
|
|
207
|
+
"type": "function"
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"inputs": [
|
|
211
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
212
|
+
{ "internalType": "address", "name": "_recipient", "type": "address" },
|
|
213
|
+
{ "internalType": "uint16", "name": "_feePpm", "type": "uint16" }
|
|
214
|
+
],
|
|
215
|
+
"name": "addFeeRecipient",
|
|
216
|
+
"outputs": [],
|
|
217
|
+
"stateMutability": "nonpayable",
|
|
218
|
+
"type": "function"
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"inputs": [
|
|
222
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" }
|
|
223
|
+
],
|
|
224
|
+
"name": "getFeesForPool",
|
|
225
|
+
"outputs": [
|
|
226
|
+
{
|
|
227
|
+
"components": [
|
|
228
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
229
|
+
{ "internalType": "uint16", "name": "feePpm", "type": "uint16" }
|
|
230
|
+
],
|
|
231
|
+
"internalType": "struct IArenaFeeHelperMinimal.Fee[]",
|
|
232
|
+
"name": "feeRecipients",
|
|
233
|
+
"type": "tuple[]"
|
|
234
|
+
}
|
|
235
|
+
],
|
|
236
|
+
"stateMutability": "view",
|
|
237
|
+
"type": "function"
|
|
238
|
+
},
|
|
239
|
+
{
|
|
240
|
+
"inputs": [],
|
|
241
|
+
"name": "getProtocolFeeSettings",
|
|
242
|
+
"outputs": [
|
|
243
|
+
{
|
|
244
|
+
"components": [
|
|
245
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
246
|
+
{
|
|
247
|
+
"internalType": "uint16",
|
|
248
|
+
"name": "protocolFeePpm",
|
|
249
|
+
"type": "uint16"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"internalType": "uint16",
|
|
253
|
+
"name": "referralFeePpm",
|
|
254
|
+
"type": "uint16"
|
|
255
|
+
}
|
|
256
|
+
],
|
|
257
|
+
"internalType": "struct ArenaFeeHelper.ProtocolFeeSettings",
|
|
258
|
+
"name": "",
|
|
259
|
+
"type": "tuple"
|
|
260
|
+
}
|
|
261
|
+
],
|
|
262
|
+
"stateMutability": "view",
|
|
263
|
+
"type": "function"
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
"inputs": [
|
|
267
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" }
|
|
268
|
+
],
|
|
269
|
+
"name": "getTotalFeePpm",
|
|
270
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
271
|
+
"stateMutability": "view",
|
|
272
|
+
"type": "function"
|
|
273
|
+
},
|
|
274
|
+
{
|
|
275
|
+
"inputs": [
|
|
276
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
277
|
+
{
|
|
278
|
+
"components": [
|
|
279
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
280
|
+
{ "internalType": "uint16", "name": "feePpm", "type": "uint16" }
|
|
281
|
+
],
|
|
282
|
+
"internalType": "struct IArenaFeeHelperMinimal.Fee[]",
|
|
283
|
+
"name": "_fees",
|
|
284
|
+
"type": "tuple[]"
|
|
285
|
+
}
|
|
286
|
+
],
|
|
287
|
+
"name": "initializeFeesForPool",
|
|
288
|
+
"outputs": [],
|
|
289
|
+
"stateMutability": "nonpayable",
|
|
290
|
+
"type": "function"
|
|
291
|
+
},
|
|
292
|
+
{
|
|
293
|
+
"inputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
294
|
+
"name": "isFeeSetter",
|
|
295
|
+
"outputs": [{ "internalType": "bool", "name": "", "type": "bool" }],
|
|
296
|
+
"stateMutability": "view",
|
|
297
|
+
"type": "function"
|
|
298
|
+
},
|
|
299
|
+
{
|
|
300
|
+
"inputs": [],
|
|
301
|
+
"name": "owner",
|
|
302
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
303
|
+
"stateMutability": "view",
|
|
304
|
+
"type": "function"
|
|
305
|
+
},
|
|
306
|
+
{
|
|
307
|
+
"inputs": [],
|
|
308
|
+
"name": "pendingOwner",
|
|
309
|
+
"outputs": [{ "internalType": "address", "name": "", "type": "address" }],
|
|
310
|
+
"stateMutability": "view",
|
|
311
|
+
"type": "function"
|
|
312
|
+
},
|
|
313
|
+
{
|
|
314
|
+
"inputs": [
|
|
315
|
+
{ "internalType": "PoolId", "name": "", "type": "bytes32" },
|
|
316
|
+
{ "internalType": "uint256", "name": "", "type": "uint256" }
|
|
317
|
+
],
|
|
318
|
+
"name": "poolIdToFees",
|
|
319
|
+
"outputs": [
|
|
320
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
321
|
+
{ "internalType": "uint16", "name": "feePpm", "type": "uint16" }
|
|
322
|
+
],
|
|
323
|
+
"stateMutability": "view",
|
|
324
|
+
"type": "function"
|
|
325
|
+
},
|
|
326
|
+
{
|
|
327
|
+
"inputs": [{ "internalType": "PoolId", "name": "", "type": "bytes32" }],
|
|
328
|
+
"name": "poolIdToTotalFeePpm",
|
|
329
|
+
"outputs": [{ "internalType": "uint256", "name": "", "type": "uint256" }],
|
|
330
|
+
"stateMutability": "view",
|
|
331
|
+
"type": "function"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"inputs": [],
|
|
335
|
+
"name": "protocolFeeSettings",
|
|
336
|
+
"outputs": [
|
|
337
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
338
|
+
{ "internalType": "uint16", "name": "protocolFeePpm", "type": "uint16" },
|
|
339
|
+
{ "internalType": "uint16", "name": "referralFeePpm", "type": "uint16" }
|
|
340
|
+
],
|
|
341
|
+
"stateMutability": "view",
|
|
342
|
+
"type": "function"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"inputs": [],
|
|
346
|
+
"name": "referralRegistry",
|
|
347
|
+
"outputs": [
|
|
348
|
+
{
|
|
349
|
+
"internalType": "contract IArenaReferralRegistry",
|
|
350
|
+
"name": "",
|
|
351
|
+
"type": "address"
|
|
352
|
+
}
|
|
353
|
+
],
|
|
354
|
+
"stateMutability": "view",
|
|
355
|
+
"type": "function"
|
|
356
|
+
},
|
|
357
|
+
{
|
|
358
|
+
"inputs": [
|
|
359
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
360
|
+
{ "internalType": "address", "name": "_recipient", "type": "address" },
|
|
361
|
+
{
|
|
362
|
+
"internalType": "uint256",
|
|
363
|
+
"name": "_recipientIndex",
|
|
364
|
+
"type": "uint256"
|
|
365
|
+
}
|
|
366
|
+
],
|
|
367
|
+
"name": "removeFeeRecipient",
|
|
368
|
+
"outputs": [],
|
|
369
|
+
"stateMutability": "nonpayable",
|
|
370
|
+
"type": "function"
|
|
371
|
+
},
|
|
372
|
+
{
|
|
373
|
+
"inputs": [],
|
|
374
|
+
"name": "renounceOwnership",
|
|
375
|
+
"outputs": [],
|
|
376
|
+
"stateMutability": "nonpayable",
|
|
377
|
+
"type": "function"
|
|
378
|
+
},
|
|
379
|
+
{
|
|
380
|
+
"inputs": [
|
|
381
|
+
{ "internalType": "address", "name": "_feeSetter", "type": "address" },
|
|
382
|
+
{ "internalType": "bool", "name": "_isFeeSetter", "type": "bool" }
|
|
383
|
+
],
|
|
384
|
+
"name": "setFeeSetter",
|
|
385
|
+
"outputs": [],
|
|
386
|
+
"stateMutability": "nonpayable",
|
|
387
|
+
"type": "function"
|
|
388
|
+
},
|
|
389
|
+
{
|
|
390
|
+
"inputs": [
|
|
391
|
+
{ "internalType": "address", "name": "_recipient", "type": "address" },
|
|
392
|
+
{ "internalType": "uint16", "name": "_protocolFeePpm", "type": "uint16" },
|
|
393
|
+
{ "internalType": "uint16", "name": "_referralFeePpm", "type": "uint16" }
|
|
394
|
+
],
|
|
395
|
+
"name": "setProtocolFeeSettings",
|
|
396
|
+
"outputs": [],
|
|
397
|
+
"stateMutability": "nonpayable",
|
|
398
|
+
"type": "function"
|
|
399
|
+
},
|
|
400
|
+
{
|
|
401
|
+
"inputs": [
|
|
402
|
+
{
|
|
403
|
+
"internalType": "address",
|
|
404
|
+
"name": "_referralRegistry",
|
|
405
|
+
"type": "address"
|
|
406
|
+
}
|
|
407
|
+
],
|
|
408
|
+
"name": "setReferralRegistry",
|
|
409
|
+
"outputs": [],
|
|
410
|
+
"stateMutability": "nonpayable",
|
|
411
|
+
"type": "function"
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"inputs": [
|
|
415
|
+
{ "internalType": "address", "name": "newOwner", "type": "address" }
|
|
416
|
+
],
|
|
417
|
+
"name": "transferOwnership",
|
|
418
|
+
"outputs": [],
|
|
419
|
+
"stateMutability": "nonpayable",
|
|
420
|
+
"type": "function"
|
|
421
|
+
},
|
|
422
|
+
{
|
|
423
|
+
"inputs": [
|
|
424
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
425
|
+
{
|
|
426
|
+
"components": [
|
|
427
|
+
{ "internalType": "address", "name": "recipient", "type": "address" },
|
|
428
|
+
{ "internalType": "uint16", "name": "feePpm", "type": "uint16" }
|
|
429
|
+
],
|
|
430
|
+
"internalType": "struct IArenaFeeHelperMinimal.Fee[]",
|
|
431
|
+
"name": "_fees",
|
|
432
|
+
"type": "tuple[]"
|
|
433
|
+
}
|
|
434
|
+
],
|
|
435
|
+
"name": "updateFeesForPool",
|
|
436
|
+
"outputs": [],
|
|
437
|
+
"stateMutability": "nonpayable",
|
|
438
|
+
"type": "function"
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"inputs": [
|
|
442
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
443
|
+
{
|
|
444
|
+
"internalType": "address",
|
|
445
|
+
"name": "_recipientToReplace",
|
|
446
|
+
"type": "address"
|
|
447
|
+
},
|
|
448
|
+
{ "internalType": "address", "name": "_newRecipient", "type": "address" },
|
|
449
|
+
{
|
|
450
|
+
"internalType": "uint256",
|
|
451
|
+
"name": "_recipientIndex",
|
|
452
|
+
"type": "uint256"
|
|
453
|
+
}
|
|
454
|
+
],
|
|
455
|
+
"name": "updateRecipientAddress",
|
|
456
|
+
"outputs": [],
|
|
457
|
+
"stateMutability": "nonpayable",
|
|
458
|
+
"type": "function"
|
|
459
|
+
},
|
|
460
|
+
{
|
|
461
|
+
"inputs": [
|
|
462
|
+
{ "internalType": "PoolId", "name": "poolId", "type": "bytes32" },
|
|
463
|
+
{ "internalType": "address", "name": "_recipient", "type": "address" },
|
|
464
|
+
{ "internalType": "uint16", "name": "_feePpm", "type": "uint16" },
|
|
465
|
+
{
|
|
466
|
+
"internalType": "uint256",
|
|
467
|
+
"name": "_recipientIndex",
|
|
468
|
+
"type": "uint256"
|
|
469
|
+
}
|
|
470
|
+
],
|
|
471
|
+
"name": "updateRecipientFeePpm",
|
|
472
|
+
"outputs": [],
|
|
473
|
+
"stateMutability": "nonpayable",
|
|
474
|
+
"type": "function"
|
|
475
|
+
}
|
|
476
|
+
]
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { UniswapV3Factory } from '../../uniswap-v3-factory';
|
|
2
|
+
import { LogDescription } from 'ethers/lib/utils';
|
|
3
|
+
import { Interface } from '@ethersproject/abi';
|
|
4
|
+
export declare class PharaohV3Factory extends UniswapV3Factory {
|
|
5
|
+
readonly factoryIface: Interface;
|
|
6
|
+
handleNewPool(event: LogDescription): Promise<void>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,20 @@
|
|
|
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.PharaohV3Factory = void 0;
|
|
7
|
+
const uniswap_v3_factory_1 = require("../../uniswap-v3-factory");
|
|
8
|
+
const abi_1 = require("@ethersproject/abi");
|
|
9
|
+
const PharaohV3Factory_abi_json_1 = __importDefault(require("../../../../abi/pharaoh-v3/PharaohV3Factory.abi.json"));
|
|
10
|
+
class PharaohV3Factory extends uniswap_v3_factory_1.UniswapV3Factory {
|
|
11
|
+
factoryIface = new abi_1.Interface(PharaohV3Factory_abi_json_1.default);
|
|
12
|
+
async handleNewPool(event) {
|
|
13
|
+
const token0 = event.args.token0.toLowerCase();
|
|
14
|
+
const token1 = event.args.token1.toLowerCase();
|
|
15
|
+
const tickSpacing = event.args.tickSpacing;
|
|
16
|
+
await this.onPoolCreated({ token0, token1, fee: tickSpacing });
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
exports.PharaohV3Factory = PharaohV3Factory;
|
|
20
|
+
//# sourceMappingURL=pharaoh-v3-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pharaoh-v3-factory.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-factory.ts"],"names":[],"mappings":";;;;;;AAAA,iEAA4D;AAE5D,4CAA+C;AAC/C,qHAA8E;AAE9E,MAAa,gBAAiB,SAAQ,qCAAgB;IACpC,YAAY,GAAG,IAAI,eAAS,CAAC,mCAAU,CAAC,CAAC;IAEzD,KAAK,CAAC,aAAa,CAAC,KAAqB;QACvC,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QAC/C,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC;QAE3C,MAAM,IAAI,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,CAAC,CAAC;IACjE,CAAC;CACF;AAVD,4CAUC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ethers } from 'ethers';
|
|
2
|
+
import { VelodromeSlipstreamEventPool } from '../velodrome-slipstream/velodrome-slipstream-pool';
|
|
3
|
+
import { MultiCallParams } from '../../../../lib/multi-wrapper';
|
|
4
|
+
import { DecodedStateMultiCallResultWithRelativeBitmaps, PoolState } from '../../types';
|
|
5
|
+
export declare class PharaohV3EventPool extends VelodromeSlipstreamEventPool {
|
|
6
|
+
readonly poolIface: ethers.utils.Interface;
|
|
7
|
+
readonly factoryIface: ethers.utils.Interface;
|
|
8
|
+
protected getCurrentFee(blockNumber: number): Promise<bigint>;
|
|
9
|
+
protected _getStateRequestCallData(): MultiCallParams<bigint | DecodedStateMultiCallResultWithRelativeBitmaps>[];
|
|
10
|
+
generateState(blockNumber: number): Promise<Readonly<PoolState>>;
|
|
11
|
+
protected predictDeterministicAddress(factory: string, implementation: string, salt: string): string;
|
|
12
|
+
}
|
|
@@ -0,0 +1,139 @@
|
|
|
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.PharaohV3EventPool = void 0;
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const velodrome_slipstream_pool_1 = require("../velodrome-slipstream/velodrome-slipstream-pool");
|
|
9
|
+
const decoders_1 = require("../../../../lib/decoders");
|
|
10
|
+
const utils_1 = require("./utils");
|
|
11
|
+
const abi_1 = require("@ethersproject/abi");
|
|
12
|
+
const PharaohV3Pool_abi_json_1 = __importDefault(require("../../../../abi/pharaoh-v3/PharaohV3Pool.abi.json"));
|
|
13
|
+
const PharaohV3Factory_abi_json_1 = __importDefault(require("../../../../abi/pharaoh-v3/PharaohV3Factory.abi.json"));
|
|
14
|
+
const ts_essentials_1 = require("ts-essentials");
|
|
15
|
+
const utils_2 = require("../../contract-math/utils");
|
|
16
|
+
const TickBitMap_1 = require("../../contract-math/TickBitMap");
|
|
17
|
+
const utils_3 = require("../../../../utils");
|
|
18
|
+
const PHARAOH_V3_POOL_INIT_CODE_HASH = '0x892f127ed4b26ca352056c8fb54585a3268f76f97fdd84d5836ef4bda8d8c685';
|
|
19
|
+
class PharaohV3EventPool extends velodrome_slipstream_pool_1.VelodromeSlipstreamEventPool {
|
|
20
|
+
poolIface = new abi_1.Interface(PharaohV3Pool_abi_json_1.default);
|
|
21
|
+
factoryIface = new abi_1.Interface(PharaohV3Factory_abi_json_1.default);
|
|
22
|
+
async getCurrentFee(blockNumber) {
|
|
23
|
+
try {
|
|
24
|
+
const [result] = await this.dexHelper.multiWrapper.tryAggregate(false, [
|
|
25
|
+
{
|
|
26
|
+
target: this.poolAddress,
|
|
27
|
+
callData: this.poolIface.encodeFunctionData('fee', []),
|
|
28
|
+
decodeFunction: decoders_1.uint24ToBigInt,
|
|
29
|
+
},
|
|
30
|
+
], blockNumber);
|
|
31
|
+
if (result.success) {
|
|
32
|
+
return result.returnData;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
catch (error) {
|
|
36
|
+
this.logger.error(`PharaohV3: Failed to fetch fee for pool ${this.poolAddress}:`, error);
|
|
37
|
+
}
|
|
38
|
+
return this.feeCode;
|
|
39
|
+
}
|
|
40
|
+
_getStateRequestCallData() {
|
|
41
|
+
if (!this._stateRequestCallData) {
|
|
42
|
+
const callData = [
|
|
43
|
+
{
|
|
44
|
+
target: this.token0,
|
|
45
|
+
callData: this.erc20Interface.encodeFunctionData('balanceOf', [
|
|
46
|
+
this.poolAddress,
|
|
47
|
+
]),
|
|
48
|
+
decodeFunction: decoders_1.uint256ToBigInt,
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
target: this.token1,
|
|
52
|
+
callData: this.erc20Interface.encodeFunctionData('balanceOf', [
|
|
53
|
+
this.poolAddress,
|
|
54
|
+
]),
|
|
55
|
+
decodeFunction: decoders_1.uint256ToBigInt,
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
target: this.poolAddress,
|
|
59
|
+
callData: this.poolIface.encodeFunctionData('fee', []),
|
|
60
|
+
decodeFunction: decoders_1.uint24ToBigInt,
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
target: this.stateMultiContract.options.address,
|
|
64
|
+
callData: this.stateMultiContract.methods
|
|
65
|
+
.getFullStateWithRelativeBitmaps(this.factoryAddress, this.token0, this.token1, this.tickSpacing, this.getBitmapRangeToRequest(), this.getBitmapRangeToRequest())
|
|
66
|
+
.encodeABI(),
|
|
67
|
+
decodeFunction: this.decodeStateMultiCallResultWithRelativeBitmaps !== undefined
|
|
68
|
+
? this.decodeStateMultiCallResultWithRelativeBitmaps
|
|
69
|
+
: utils_1.decodeStateMultiCallResultWithRelativeBitmaps,
|
|
70
|
+
},
|
|
71
|
+
];
|
|
72
|
+
this._stateRequestCallData = callData;
|
|
73
|
+
}
|
|
74
|
+
return this._stateRequestCallData;
|
|
75
|
+
}
|
|
76
|
+
async generateState(blockNumber) {
|
|
77
|
+
const callData = this._getStateRequestCallData();
|
|
78
|
+
const [resBalance0, resBalance1, resSwapFee, resState] = await this.dexHelper.multiWrapper.tryAggregate(false, callData, blockNumber, this.dexHelper.multiWrapper.defaultBatchSize, false);
|
|
79
|
+
(0, ts_essentials_1.assert)(resState.success, 'Pool does not exist');
|
|
80
|
+
const [balance0, balance1, fee, _state] = [
|
|
81
|
+
resBalance0.returnData,
|
|
82
|
+
resBalance1.returnData,
|
|
83
|
+
resSwapFee.returnData,
|
|
84
|
+
resState.returnData,
|
|
85
|
+
];
|
|
86
|
+
this._assertActivePool(_state);
|
|
87
|
+
const tickBitmap = {};
|
|
88
|
+
const ticks = {};
|
|
89
|
+
(0, utils_2._reduceTickBitmap)(tickBitmap, _state.tickBitmap);
|
|
90
|
+
(0, utils_2._reduceTicks)(ticks, _state.ticks);
|
|
91
|
+
const observations = {
|
|
92
|
+
[_state.slot0.observationIndex]: {
|
|
93
|
+
blockTimestamp: (0, utils_3.bigIntify)(_state.observation.blockTimestamp),
|
|
94
|
+
tickCumulative: (0, utils_3.bigIntify)(_state.observation.tickCumulative),
|
|
95
|
+
secondsPerLiquidityCumulativeX128: (0, utils_3.bigIntify)(_state.observation.secondsPerLiquidityCumulativeX128),
|
|
96
|
+
initialized: _state.observation.initialized,
|
|
97
|
+
},
|
|
98
|
+
};
|
|
99
|
+
const currentTick = (0, utils_3.bigIntify)(_state.slot0.tick);
|
|
100
|
+
const tickSpacing = (0, utils_3.bigIntify)(_state.tickSpacing);
|
|
101
|
+
const startTickBitmap = TickBitMap_1.TickBitMap.position(currentTick / tickSpacing)[0];
|
|
102
|
+
const requestedRange = this.getBitmapRangeToRequest();
|
|
103
|
+
return {
|
|
104
|
+
networkId: this.dexHelper.config.data.network,
|
|
105
|
+
pool: _state.pool,
|
|
106
|
+
fee,
|
|
107
|
+
blockTimestamp: (0, utils_3.bigIntify)(_state.blockTimestamp),
|
|
108
|
+
slot0: {
|
|
109
|
+
sqrtPriceX96: (0, utils_3.bigIntify)(_state.slot0.sqrtPriceX96),
|
|
110
|
+
tick: currentTick,
|
|
111
|
+
observationIndex: +_state.slot0.observationIndex,
|
|
112
|
+
observationCardinality: +_state.slot0.observationCardinality,
|
|
113
|
+
observationCardinalityNext: +_state.slot0.observationCardinalityNext,
|
|
114
|
+
feeProtocol: (0, utils_3.bigIntify)(_state.slot0.feeProtocol),
|
|
115
|
+
},
|
|
116
|
+
liquidity: (0, utils_3.bigIntify)(_state.liquidity),
|
|
117
|
+
tickSpacing,
|
|
118
|
+
maxLiquidityPerTick: (0, utils_3.bigIntify)(_state.maxLiquidityPerTick),
|
|
119
|
+
tickBitmap,
|
|
120
|
+
ticks,
|
|
121
|
+
observations,
|
|
122
|
+
isValid: true,
|
|
123
|
+
startTickBitmap,
|
|
124
|
+
lowestKnownTick: (BigInt.asIntN(24, startTickBitmap - requestedRange) << 8n) *
|
|
125
|
+
tickSpacing,
|
|
126
|
+
highestKnownTick: ((BigInt.asIntN(24, startTickBitmap + requestedRange) << 8n) +
|
|
127
|
+
BigInt.asIntN(24, 255n)) *
|
|
128
|
+
tickSpacing,
|
|
129
|
+
balance0,
|
|
130
|
+
balance1,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
predictDeterministicAddress(factory, implementation, salt) {
|
|
134
|
+
const address = ethers_1.ethers.utils.getCreate2Address(this.deployer ?? '', salt, PHARAOH_V3_POOL_INIT_CODE_HASH);
|
|
135
|
+
return address;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.PharaohV3EventPool = PharaohV3EventPool;
|
|
139
|
+
//# sourceMappingURL=pharaoh-v3-pool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pharaoh-v3-pool.js","sourceRoot":"","sources":["../../../../../src/dex/uniswap-v3/forks/pharaoh-v3/pharaoh-v3-pool.ts"],"names":[],"mappings":"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"}
|