-
Notifications
You must be signed in to change notification settings - Fork 0
/
simulate_test.go
445 lines (418 loc) · 345 KB
/
simulate_test.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
package simulate_tx_api
import (
"encoding/json"
"fmt"
"github.com/ThreeAndTwo/simulate-tx-api/providers"
"os"
"testing"
)
type actionTy int
const (
actionAddProject actionTy = iota
actionRenameProject
actionSimulate
actionAddEnv
actionRenameEnv
actionDeleteEnv
actionForkSimulate
actionJsonRpc
)
type testSimulate struct {
name string
action actionTy
account string
token string
project string
tps int
params string
}
func TestTenderlySimulate(t *testing.T) {
params := "{\"transaction\":{\"hash\":\"0xcec4137280bdb736a3e36a2d8057c1c6abd710f8950383d545c6e83e79de83d4\",\"block_hash\":\"\",\"block_number\":16527769,\"from\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"gas\":138864,\"gas_price\":32909736476,\"gas_fee_cap\":0,\"gas_tip_cap\":0,\"cumulative_gas_used\":0,\"gas_used\":127576,\"effective_gas_price\":0,\"input\":\"0x8803dbee00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000c65a511800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae380000000000000000000000000000000000000000000000000000000063d9ac890000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f\",\"nonce\":351,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"index\":42,\"value\":\"0x\",\"access_list\":[],\"status\":true,\"addresses\":[\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"0x6b175474e89094c44da98b954eedeac495271d0f\"],\"contract_ids\":[\"eth:1:0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"eth:1:0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"eth:1:0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"eth:1:0xdac17f958d2ee523a2206206994597c13d831ec7\",\"eth:1:0x6b175474e89094c44da98b954eedeac495271d0f\"],\"network_id\":\"1\",\"timestamp\":\"2023-01-31T15:41:47Z\",\"function_selector\":\"\",\"l1_block_number\":0,\"l1_timestamp\":0,\"deposit_tx\":false,\"system_tx\":false,\"mint\":null,\"sig\":{\"v\":\"0x0\",\"r\":\"0x0\",\"s\":\"0x0\"},\"transaction_info\":{\"contract_id\":\"eth:1:0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"block_number\":16527769,\"transaction_id\":\"0xcec4137280bdb736a3e36a2d8057c1c6abd710f8950383d545c6e83e79de83d4\",\"contract_address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"method\":\"swapTokensForExactTokens\",\"parameters\":null,\"intrinsic_gas\":23012,\"refund_gas\":2800,\"call_trace\":{\"hash\":\"0xcec4137280bdb736a3e36a2d8057c1c6abd710f8950383d545c6e83e79de83d4\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"swapTokensForExactTokens\",\"function_pc\":9522,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":18181,\"function_line_number\":453,\"function_code_length\":593,\"absolute_position\":127,\"caller_pc\":0,\"caller_op\":\"CALL\",\"call_type\":\"CALL\",\"from\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"from_balance\":\"178649986537506409\",\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":\"25000000000000000\",\"value\":\"0\",\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":115852,\"gas_used\":107364,\"intrinsic_gas\":23012,\"refund_gas\":2800,\"input\":\"0x8803dbee00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000c65a511800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae380000000000000000000000000000000000000000000000000000000063d9ac890000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f\",\"decoded_input\":[{\"soltype\":{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"amountInMax\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3327807768\"},{\"soltype\":{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},\"value\":[\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"0x6b175474e89094c44da98b954eedeac495271d0f\"]},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1675209865\"}],\"balance_diff\":[{\"address\":\"0x1cf5cd427d0a968379BD6b5BefcE28d8e157AE38\",\"original\":\"178649986537506409\",\"dirty\":\"174451493996844233\",\"is_miner\":false},{\"address\":\"0xC0E1b256DE232262134c22f73b21F756072Bfb73\",\"original\":\"4913764247259774380\",\"dirty\":\"4913891833847051468\",\"is_miner\":true}],\"nonce_diff\":[{\"address\":\"0x1cf5cd427d0a968379BD6b5BefcE28d8e157AE38\",\"original\":\"351\",\"dirty\":\"352\"}],\"state_diff\":[{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"soltype\":{\"name\":\"balanceOf\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},\"original\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"0\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3409403885911049757769865\"},\"dirty\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"2914031999999999475712\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3406489853911049758294153\"},\"raw\":[{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"key\":\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"original\":\"0x00000000000000000000000000000000000000000002d1f827ae08220273c089\",\"dirty\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c089\"},{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"key\":\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\",\"original\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"dirty\":\"0x00000000000000000000000000000000000000000000009df85158cbf9100000\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":112,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"3410182381931\",\"dirty\":\"3413108350557\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"3409403885911049757769865\",\"dirty\":\"3406489853911049758294153\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"storage\",\"components\":null,\"offset\":224,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":1675177403,\"dirty\":1675179707,\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"price0CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"441576621729456416380537755631\",\"dirty\":\"441588587513036279679286478575\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"original\":\"0x000000000000000000000000000000000000000592cf9ed5e4f25272458357ef\",\"dirty\":\"0x000000000000000000000000000000000000000592d984b0526c119e70b386ef\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"price1CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"439308598518790202534497963032180663370642780076827973\",\"dirty\":\"439320558839758057121212644076286195263865870112652613\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"original\":\"0x00000000000000000004962b240f029b8fc1b9f67a79b3c8b0a37b1f3186e545\",\"dirty\":\"0x000000000000000000049633530e59e4e5c93c1f55dba9a56bd4c18e0455fd45\"}]},{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"soltype\":{\"name\":\"balances\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},\"original\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"22963773121\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3410182381931\"},\"dirty\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"20037804495\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3413108350557\"},\"raw\":[{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"key\":\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"original\":\"0x00000000000000000000000000000000000000000000000000000319feb5a16b\",\"dirty\":\"0x0000000000000000000000000000000000000000000000000000031aad1c5e5d\"},{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"key\":\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\",\"original\":\"0x0000000000000000000000000000000000000000000000000000000558bf5ec1\",\"dirty\":\"0x00000000000000000000000000000000000000000000000000000004aa58a1cf\"}]}],\"logs\":[{\"name\":\"Transfer\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"raw\":{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"topics\":[\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"0x000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\"],\"data\":\"0x00000000000000000000000000000000000000000000000000000000ae66bcf2\"}},{\"name\":\"Transfer\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"raw\":{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"topics\":[\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\"0x000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\"],\"data\":\"0x00000000000000000000000000000000000000000000009df85158cbf9100000\"}},{\"name\":\"Sync\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"},{\"soltype\":{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"}],\"raw\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"topics\":[\"0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1\"],\"data\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c0890000000000000000000000000000000000000000000000000000031aad1c5e5d\"}},{\"name\":\"Swap\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"sender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\"},{\"soltype\":{\"name\":\"amount0In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"amount1In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"},{\"soltype\":{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"}],\"raw\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"topics\":[\"0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822\",\"0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\"],\"data\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ae66bcf200000000000000000000000000000000000000000000009df85158cbf91000000000000000000000000000000000000000000000000000000000000000000000\"}}],\"output\":\"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000ae66bcf200000000000000000000000000000000000000000000009df85158cbf9100000\",\"decoded_output\":[{\"soltype\":{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}},\"value\":[\"2925968626\",\"2914031999999999475712\"]}],\"network_id\":\"1\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"getAmountsIn\",\"function_pc\":17928,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":31217,\"function_line_number\":745,\"function_code_length\":524,\"function_variables\":[{\"soltype\":{\"name\":\"reserveIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"reserveOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"}],\"absolute_position\":187,\"caller_pc\":9729,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":460,\"caller_code_start\":18442,\"caller_code_length\":55,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":115201,\"gas_used\":7733,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f\"},{\"soltype\":{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},\"value\":[\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"0x6b175474e89094c44da98b954eedeac495271d0f\"]}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}},\"value\":[\"2925968626\",\"2914031999999999475712\"]}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"getReserves\",\"function_pc\":21227,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":28530,\"function_line_number\":701,\"function_code_length\":387,\"function_variables\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"reserve0\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"reserve1\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"}],\"absolute_position\":314,\"caller_pc\":16503,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":739,\"caller_code_start\":31002,\"caller_code_length\":42,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":114765,\"gas_used\":6361,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f\"},{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"reserveA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"reserveB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sortTokens\",\"function_pc\":19871,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27571,\"function_line_number\":683,\"function_code_length\":345,\"absolute_position\":323,\"caller_pc\":21241,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":702,\"caller_code_start\":28683,\"caller_code_length\":26,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":114735,\"gas_used\":154,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"pairFor\",\"function_pc\":16582,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":28005,\"function_line_number\":690,\"function_code_length\":470,\"function_variables\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x0000000000000000000000000000000000000000\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"absolute_position\":380,\"caller_pc\":21258,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":703,\"caller_code_start\":28768,\"caller_code_length\":32,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":114544,\"gas_used\":623,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f\"},{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"pair\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sortTokens\",\"function_pc\":19871,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27571,\"function_line_number\":683,\"function_code_length\":345,\"absolute_position\":389,\"caller_pc\":16596,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":691,\"caller_code_start\":28153,\"caller_code_length\":26,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":114514,\"gas_used\":154,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"}],\"network_id\":\"\",\"calls\":null}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"getReserves\",\"function_pc\":3472,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":11803,\"function_line_number\":333,\"function_code_length\":227,\"absolute_position\":693,\"caller_pc\":21331,\"caller_op\":\"STATICCALL\",\"caller_file_index\":0,\"caller_line_number\":703,\"caller_code_start\":28753,\"caller_code_length\":62,\"call_type\":\"STATICCALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":\"25000000000000000\",\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":\"0\",\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":109380,\"gas_used\":2504,\"refund_gas\":1736,\"input\":\"0x0902f1ac\",\"output\":\"0x00000000000000000000000000000000000000000002d1f827ae08220273c08900000000000000000000000000000000000000000000000000000319feb5a16b0000000000000000000000000000000000000000000000000000000063d92dbb\",\"decoded_output\":[{\"soltype\":{\"name\":\"_reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"_reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"_blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":1675177403}],\"network_id\":\"\",\"calls\":null}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"getAmountIn\",\"function_pc\":19355,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":30091,\"function_line_number\":725,\"function_code_length\":466,\"function_variables\":[{\"soltype\":{\"name\":\"denominator\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3396270384349316609019270541\"},{\"soltype\":{\"name\":\"numerator\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"9937380586783154004082299342159872000\"}],\"absolute_position\":784,\"caller_pc\":18258,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":751,\"caller_code_start\":31678,\"caller_code_length\":46,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":108321,\"gas_used\":718,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"reserveIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"reserveOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"mul\",\"function_pc\":20979,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27266,\"function_line_number\":674,\"function_code_length\":140,\"absolute_position\":817,\"caller_pc\":19569,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":728,\"caller_code_start\":30400,\"caller_code_length\":24,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":108205,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"9937380586783154004082299342159872\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"mul\",\"function_pc\":20979,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27266,\"function_line_number\":674,\"function_code_length\":140,\"absolute_position\":853,\"caller_pc\":19581,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":728,\"caller_code_start\":30400,\"caller_code_length\":34,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":108076,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"9937380586783154004082299342159872\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1000\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"9937380586783154004082299342159872000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sub\",\"function_pc\":19241,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27133,\"function_line_number\":670,\"function_code_length\":127,\"absolute_position\":896,\"caller_pc\":19607,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":729,\"caller_code_start\":30463,\"caller_code_length\":25,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":107927,\"gas_used\":54,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"mul\",\"function_pc\":20979,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27266,\"function_line_number\":674,\"function_code_length\":140,\"absolute_position\":918,\"caller_pc\":19581,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":728,\"caller_code_start\":30400,\"caller_code_length\":34,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":107852,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"997\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3396270384349316609019270541\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"add\",\"function_pc\":21113,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27001,\"function_line_number\":666,\"function_code_length\":126,\"absolute_position\":965,\"caller_pc\":19636,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":730,\"caller_code_start\":30518,\"caller_code_length\":32,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":107684,\"gas_used\":54,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968625\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"network_id\":\"\",\"calls\":null}]}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"pairFor\",\"function_pc\":16582,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":28005,\"function_line_number\":690,\"function_code_length\":470,\"function_variables\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x0000000000000000000000000000000000000000\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"absolute_position\":1113,\"caller_pc\":4668,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":510,\"caller_code_start\":20861,\"caller_code_length\":51,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":107194,\"gas_used\":614,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f\"},{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"pair\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sortTokens\",\"function_pc\":19871,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27571,\"function_line_number\":683,\"function_code_length\":345,\"absolute_position\":1122,\"caller_pc\":16596,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":691,\"caller_code_start\":28153,\"caller_code_length\":26,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":107164,\"gas_used\":154,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"}],\"network_id\":\"\",\"calls\":null}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"safeTransferFrom\",\"function_pc\":16817,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":32608,\"function_line_number\":770,\"function_code_length\":398,\"function_variables\":[{\"soltype\":{\"name\":\"success\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},\"value\":false},{\"soltype\":{\"name\":\"data\",\"type\":\"bytes\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},\"value\":\"0x\"}],\"absolute_position\":1298,\"caller_pc\":4694,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":509,\"caller_code_start\":20795,\"caller_code_length\":139,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":106516,\"gas_used\":29949,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"output\":\"0x\",\"decoded_output\":[],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"transferFrom\",\"function_pc\":8619,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4977,\"function_line_number\":167,\"function_code_length\":880,\"absolute_position\":2047,\"caller_pc\":17090,\"caller_op\":\"CALL\",\"caller_file_index\":0,\"caller_line_number\":772,\"caller_code_start\":32820,\"caller_code_length\":63,\"call_type\":\"CALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":\"25000000000000000\",\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":\"1\",\"value\":\"0\",\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":101625,\"gas_used\":26530,\"refund_gas\":1613,\"input\":\"0x23b872dd0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b83640500000000000000000000000000000000000000000000000000000000ae66bcf2\",\"decoded_input\":[{\"soltype\":{\"name\":\"_from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"_to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"_value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"output\":\"0x\",\"decoded_output\":null,\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"TetherToken\",\"function_name\":\"mul\",\"function_pc\":10755,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":139,\"function_line_number\":8,\"function_code_length\":201,\"function_variables\":[{\"soltype\":{\"name\":\"c\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"absolute_position\":1725,\"caller_pc\":8801,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":173,\"caller_code_start\":5302,\"caller_code_length\":27,\"call_type\":\"JUMPDEST\",\"from\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"from_balance\":null,\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":90100,\"gas_used\":138,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"a\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"},{\"soltype\":{\"name\":\"b\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"TetherToken\",\"function_name\":\"div\",\"function_pc\":10949,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":346,\"function_line_number\":17,\"function_code_length\":283,\"function_variables\":[{\"soltype\":{\"name\":\"c\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"absolute_position\":1774,\"caller_pc\":8815,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":173,\"caller_code_start\":5301,\"caller_code_length\":40,\"call_type\":\"JUMPDEST\",\"from\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"from_balance\":null,\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":89935,\"gas_used\":74,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"a\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"b\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"10000\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"TetherToken\",\"function_name\":\"sub\",\"function_pc\":10976,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":635,\"function_line_number\":24,\"function_code_length\":120,\"absolute_position\":1825,\"caller_pc\":9040,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":180,\"caller_code_start\":5553,\"caller_code_length\":15,\"call_type\":\"JUMPDEST\",\"from\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"from_balance\":null,\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":87668,\"gas_used\":68,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"a\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"},{\"soltype\":{\"name\":\"b\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"TetherToken\",\"function_name\":\"sub\",\"function_pc\":10976,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":635,\"function_line_number\":24,\"function_code_length\":120,\"absolute_position\":1877,\"caller_pc\":9124,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":181,\"caller_code_start\":5596,\"caller_code_length\":27,\"call_type\":\"JUMPDEST\",\"from\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"from_balance\":null,\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":85369,\"gas_used\":68,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"a\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"22963773121\"},{\"soltype\":{\"name\":\"b\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"20037804495\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"TetherToken\",\"function_name\":\"add\",\"function_pc\":11001,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":761,\"function_line_number\":29,\"function_code_length\":143,\"function_variables\":[{\"soltype\":{\"name\":\"c\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"}],\"absolute_position\":1949,\"caller_pc\":9273,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":182,\"caller_code_start\":5649,\"caller_code_length\":29,\"call_type\":\"JUMPDEST\",\"from\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"from_balance\":null,\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":80074,\"gas_used\":81,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"a\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"b\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"}],\"network_id\":\"\",\"calls\":null}]}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"_swap\",\"function_pc\":17281,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":16832,\"function_line_number\":427,\"function_code_length\":724,\"function_variables\":[{\"soltype\":{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"input\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x0000000000000000000000000000000000004384\"},{\"soltype\":{\"name\":\"output\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"absolute_position\":2142,\"caller_pc\":5736,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":451,\"caller_code_start\":18145,\"caller_code_length\":24,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":76402,\"gas_used\":67583,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}},\"value\":[\"2925968626\",\"2914031999999999475712\"]},{\"soltype\":{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},\"value\":[\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"0x6b175474e89094c44da98b954eedeac495271d0f\"]},{\"soltype\":{\"name\":\"_to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"}],\"output\":\"0x\",\"decoded_output\":[],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sortTokens\",\"function_pc\":19871,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27571,\"function_line_number\":683,\"function_code_length\":345,\"absolute_position\":2198,\"caller_pc\":17357,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":430,\"caller_code_start\":17076,\"caller_code_length\":42,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":76214,\"gas_used\":154,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"pairFor\",\"function_pc\":16582,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":28005,\"function_line_number\":690,\"function_code_length\":470,\"function_variables\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x0000000000000000000000000000000000000000\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"absolute_position\":2308,\"caller_pc\":17586,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":434,\"caller_code_start\":17413,\"caller_code_length\":48,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":75841,\"gas_used\":621,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x5c69bee701ef814a2b6a3edd4b1652cb9cc5aa6f\"},{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"pair\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"sortTokens\",\"function_pc\":19871,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":27571,\"function_line_number\":683,\"function_code_length\":345,\"absolute_position\":2317,\"caller_pc\":16596,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":691,\"caller_code_start\":28153,\"caller_code_length\":26,\"call_type\":\"JUMPDEST\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":null,\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"balance\":\"174080008891503145\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":75811,\"gas_used\":154,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"},{\"soltype\":{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\"}],\"network_id\":\"\",\"calls\":null}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Router02\",\"function_name\":\"swap\",\"function_pc\":1667,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":17866,\"function_line_number\":454,\"function_code_length\":1861,\"absolute_position\":4637,\"caller_pc\":17882,\"caller_op\":\"CALL\",\"caller_file_index\":0,\"caller_line_number\":434,\"caller_code_start\":17398,\"caller_code_length\":141,\"call_type\":\"CALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"from_balance\":\"25000000000000000\",\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":\"0\",\"value\":\"0\",\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":73411,\"gas_used\":65630,\"refund_gas\":1165,\"input\":\"0x022c0d9f00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae3800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000\",\"decoded_input\":[{\"soltype\":{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"data\",\"type\":\"bytes\",\"storage_location\":\"calldata\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},\"value\":\"0x\"}],\"output\":\"0x\",\"decoded_output\":null,\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"getReserves\",\"function_pc\":3472,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":11803,\"function_line_number\":333,\"function_code_length\":227,\"absolute_position\":2773,\"caller_pc\":1894,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":456,\"caller_code_start\":18105,\"caller_code_length\":13,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":67875,\"gas_used\":170,\"input\":\"0x\",\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"_reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"_reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"},{\"soltype\":{\"name\":\"_blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":1675177403}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"_safeTransfer\",\"function_pc\":8155,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":12036,\"function_line_number\":339,\"function_code_length\":284,\"function_variables\":[{\"soltype\":{\"name\":\"success\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},\"value\":false},{\"soltype\":{\"name\":\"data\",\"type\":\"bytes\",\"storage_location\":\"memory\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},\"value\":\"0x\"}],\"absolute_position\":2869,\"caller_pc\":2255,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":465,\"caller_code_start\":18521,\"caller_code_length\":38,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":63264,\"gas_used\":33662,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x6b175474e89094c44da98b954eedeac495271d0f\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"transfer\",\"function_pc\":7668,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4790,\"function_line_number\":118,\"function_code_length\":123,\"absolute_position\":3371,\"caller_pc\":8468,\"caller_op\":\"CALL\",\"caller_file_index\":0,\"caller_line_number\":340,\"caller_code_start\":12152,\"caller_code_length\":55,\"call_type\":\"CALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":\"0\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"to_balance\":\"0\",\"value\":\"0\",\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":59098,\"gas_used\":30174,\"refund_gas\":938,\"input\":\"0xa9059cbb0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae3800000000000000000000000000000000000000000000009df85158cbf9100000\",\"decoded_input\":[{\"soltype\":{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},\"value\":true}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"Dai\",\"function_name\":\"transferFrom\",\"function_pc\":2597,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4918,\"function_line_number\":121,\"function_code_length\":578,\"absolute_position\":3131,\"caller_pc\":7680,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":119,\"caller_code_start\":4872,\"caller_code_length\":34,\"call_type\":\"JUMPDEST\",\"from\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"from_balance\":null,\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":58800,\"gas_used\":29791,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"src\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},\"value\":true}],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"Dai\",\"function_name\":\"sub\",\"function_pc\":7799,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":3960,\"function_line_number\":97,\"function_code_length\":102,\"absolute_position\":3198,\"caller_pc\":3578,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":129,\"caller_code_start\":5355,\"caller_code_length\":24,\"call_type\":\"JUMPDEST\",\"from\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"from_balance\":null,\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":56310,\"gas_used\":62,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"Dai\",\"function_name\":\"add\",\"function_pc\":7825,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":3853,\"function_line_number\":94,\"function_code_length\":102,\"absolute_position\":3263,\"caller_pc\":3718,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":130,\"caller_code_start\":5406,\"caller_code_length\":24,\"call_type\":\"JUMPDEST\",\"from\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"from_balance\":null,\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":51036,\"gas_used\":62,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"network_id\":\"\",\"calls\":null}]}]}]},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"balanceOf\",\"function_pc\":16,\"function_op\":\"JUMPDEST\",\"function_file_index\":-1,\"function_code_start\":5,\"function_line_number\":0,\"function_code_length\":2,\"absolute_position\":3636,\"caller_pc\":2610,\"caller_op\":\"STATICCALL\",\"caller_file_index\":0,\"caller_line_number\":468,\"caller_code_start\":18823,\"caller_code_length\":40,\"call_type\":\"STATICCALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":\"0\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"to_balance\":\"0\",\"value\":null,\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":28775,\"gas_used\":602,\"refund_gas\":456,\"input\":\"0x70a08231000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"decoded_input\":[{\"soltype\":{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"output\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c089\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"balanceOf\",\"function_pc\":9810,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4149,\"function_line_number\":142,\"function_code_length\":114,\"absolute_position\":3905,\"caller_pc\":2766,\"caller_op\":\"STATICCALL\",\"caller_file_index\":0,\"caller_line_number\":469,\"caller_code_start\":18884,\"caller_code_length\":40,\"call_type\":\"STATICCALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":\"0\",\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"to_balance\":\"1\",\"value\":null,\"caller\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"0\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":27777,\"gas_used\":1031,\"refund_gas\":440,\"input\":\"0x70a08231000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"decoded_input\":[{\"soltype\":{\"name\":\"_owner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"}],\"output\":\"0x0000000000000000000000000000000000000000000000000000031aad1c5e5d\",\"decoded_output\":[{\"soltype\":{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":3993,\"caller_pc\":3050,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":475,\"caller_code_start\":19358,\"caller_code_length\":16,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26895,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4031,\"caller_pc\":3068,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":475,\"caller_code_start\":19335,\"caller_code_length\":18,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26760,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1000\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"sub\",\"function_pc\":8814,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4005,\"function_line_number\":93,\"function_code_length\":127,\"absolute_position\":4067,\"caller_pc\":3080,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":475,\"caller_code_start\":19335,\"caller_code_length\":40,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26631,\"gas_used\":54,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153000\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4095,\"caller_pc\":3104,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":476,\"caller_code_start\":19432,\"caller_code_length\":16,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26539,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"8777905878\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4133,\"caller_pc\":3068,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":475,\"caller_code_start\":19335,\"caller_code_length\":18,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26404,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1000\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"sub\",\"function_pc\":8814,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4005,\"function_line_number\":93,\"function_code_length\":127,\"absolute_position\":4169,\"caller_pc\":3080,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":475,\"caller_code_start\":19335,\"caller_code_length\":40,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26275,\"gas_used\":54,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557000\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"8777905878\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413099572651122\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4202,\"caller_pc\":3148,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":477,\"caller_code_start\":19509,\"caller_code_length\":30,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26168,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"11626689064620951034944298800232309315\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4238,\"caller_pc\":3160,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":477,\"caller_code_start\":19509,\"caller_code_length\":43,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":26039,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"11626689064620951034944298800232309315\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"1000000\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"11626689064620951034944298800232309315000000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"mul\",\"function_pc\":8680,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":4138,\"function_line_number\":97,\"function_code_length\":140,\"absolute_position\":4276,\"caller_pc\":3176,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":477,\"caller_code_start\":19467,\"caller_code_length\":38,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":25904,\"gas_used\":108,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153000\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413099572651122\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"11626689064624186942762747595122521489666000\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"_update\",\"function_pc\":8928,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":13123,\"function_line_number\":368,\"function_code_length\":847,\"absolute_position\":4321,\"caller_pc\":3299,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":480,\"caller_code_start\":19590,\"caller_code_length\":49,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":25745,\"gas_used\":15178,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"balance0\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"},{\"soltype\":{\"name\":\"balance1\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"},{\"soltype\":{\"name\":\"_reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"},{\"soltype\":{\"name\":\"_reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"}],\"output\":\"0x\",\"decoded_output\":[],\"network_id\":\"\",\"calls\":[{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"encode\",\"function_pc\":10839,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":8649,\"function_line_number\":237,\"function_code_length\":118,\"absolute_position\":4392,\"caller_pc\":9210,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":374,\"caller_code_start\":13632,\"caller_code_length\":27,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":25407,\"gas_used\":26,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"y\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"17706679268731147028982636025253438932832485376\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"uqdiv\",\"function_pc\":10875,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":8835,\"function_line_number\":242,\"function_code_length\":106,\"absolute_position\":4407,\"caller_pc\":9252,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":374,\"caller_code_start\":13632,\"caller_code_length\":44,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":25354,\"gas_used\":64,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"17706679268731147028982636025253438932832485376\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"5193482456537890081911\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"encode\",\"function_pc\":10839,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":8649,\"function_line_number\":237,\"function_code_length\":118,\"absolute_position\":4451,\"caller_pc\":9316,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":375,\"caller_code_start\":13734,\"caller_code_length\":27,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":20216,\"gas_used\":26,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"y\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3409403885911049757769865\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"17702637086292377519754596733826744342536951016811701207040\"}],\"network_id\":\"\",\"calls\":null},{\"hash\":\"\",\"contract_name\":\"UniswapV2Pair\",\"function_name\":\"uqdiv\",\"function_pc\":10875,\"function_op\":\"JUMPDEST\",\"function_file_index\":0,\"function_code_start\":8835,\"function_line_number\":242,\"function_code_length\":106,\"absolute_position\":4466,\"caller_pc\":9252,\"caller_op\":\"JUMP\",\"caller_file_index\":0,\"caller_line_number\":374,\"caller_code_start\":13632,\"caller_code_length\":44,\"call_type\":\"JUMPDEST\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"from_balance\":null,\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to_balance\":null,\"value\":null,\"caller\":{\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"25000000000000000\"},\"block_timestamp\":\"0001-01-01T00:00:00Z\",\"gas\":20163,\"gas_used\":64,\"input\":\"0x\",\"decoded_input\":[{\"soltype\":{\"name\":\"x\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"17702637086292377519754596733826744342536951016811701207040\"},{\"soltype\":{\"name\":\"y\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3410182381931\"}],\"output\":\"0x\",\"decoded_output\":[{\"soltype\":{\"name\":\"z\",\"type\":\"uint224\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"5191111531186886594913647615248217544743939160\"}],\"network_id\":\"\",\"calls\":null}]}]}]}]},\"stack_trace\":null,\"logs\":[{\"name\":\"Transfer\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"}],\"raw\":{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"topics\":[\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"0x000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\"],\"data\":\"0x00000000000000000000000000000000000000000000000000000000ae66bcf2\"}},{\"name\":\"Transfer\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"},{\"soltype\":{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"}],\"raw\":{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"topics\":[\"0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef\",\"0x000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\"],\"data\":\"0x00000000000000000000000000000000000000000000009df85158cbf9100000\"}},{\"name\":\"Sync\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3406489853911049758294153\"},{\"soltype\":{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"3413108350557\"}],\"raw\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"topics\":[\"0x1c411e9a96e071241c2f21f7726b17ae89e3cab4c78be50e062b03a9fffbbad1\"],\"data\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c0890000000000000000000000000000000000000000000000000000031aad1c5e5d\"}},{\"name\":\"Swap\",\"anonymous\":false,\"inputs\":[{\"soltype\":{\"name\":\"sender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\"},{\"soltype\":{\"name\":\"amount0In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"amount1In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2925968626\"},{\"soltype\":{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"2914031999999999475712\"},{\"soltype\":{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"value\":\"0\"},{\"soltype\":{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},\"value\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\"}],\"raw\":{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"topics\":[\"0xd78ad95fa46c994b6551d0da85fc275fe613ce37657fb8d5e3d130840159d822\",\"0x0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0x0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38\"],\"data\":\"0x000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ae66bcf200000000000000000000000000000000000000000000009df85158cbf91000000000000000000000000000000000000000000000000000000000000000000000\"}}],\"balance_diff\":[{\"address\":\"0x1cf5cd427d0a968379BD6b5BefcE28d8e157AE38\",\"original\":\"178649986537506409\",\"dirty\":\"174451493996844233\",\"is_miner\":false},{\"address\":\"0xC0E1b256DE232262134c22f73b21F756072Bfb73\",\"original\":\"4913764247259774380\",\"dirty\":\"4913891833847051468\",\"is_miner\":true}],\"nonce_diff\":[{\"address\":\"0x1cf5cd427d0a968379BD6b5BefcE28d8e157AE38\",\"original\":\"351\",\"dirty\":\"352\"}],\"state_diff\":[{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"soltype\":{\"name\":\"balanceOf\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},\"original\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"0\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3409403885911049757769865\"},\"dirty\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"2914031999999999475712\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3406489853911049758294153\"},\"raw\":[{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"key\":\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"original\":\"0x00000000000000000000000000000000000000000002d1f827ae08220273c089\",\"dirty\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c089\"},{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"key\":\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\",\"original\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"dirty\":\"0x00000000000000000000000000000000000000000000009df85158cbf9100000\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":112,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"3410182381931\",\"dirty\":\"3413108350557\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"3409403885911049757769865\",\"dirty\":\"3406489853911049758294153\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"storage\",\"components\":null,\"offset\":224,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":1675177403,\"dirty\":1675179707,\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"original\":\"0x63d92dbb00000000000000000319feb5a16b00000002d1f827ae08220273c089\",\"dirty\":\"0x63d936bb0000000000000000031aad1c5e5d00000002d15a2f5caf560963c089\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"price0CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"441576621729456416380537755631\",\"dirty\":\"441588587513036279679286478575\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"original\":\"0x000000000000000000000000000000000000000592cf9ed5e4f25272458357ef\",\"dirty\":\"0x000000000000000000000000000000000000000592d984b0526c119e70b386ef\"}]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"soltype\":{\"name\":\"price1CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},\"original\":\"439308598518790202534497963032180663370642780076827973\",\"dirty\":\"439320558839758057121212644076286195263865870112652613\",\"raw\":[{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"key\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"original\":\"0x00000000000000000004962b240f029b8fc1b9f67a79b3c8b0a37b1f3186e545\",\"dirty\":\"0x000000000000000000049633530e59e4e5c93c1f55dba9a56bd4c18e0455fd45\"}]},{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"soltype\":{\"name\":\"balances\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},\"original\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"22963773121\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3410182381931\"},\"dirty\":{\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\":\"20037804495\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\":\"3413108350557\"},\"raw\":[{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"key\":\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"original\":\"0x00000000000000000000000000000000000000000000000000000319feb5a16b\",\"dirty\":\"0x0000000000000000000000000000000000000000000000000000031aad1c5e5d\"},{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"key\":\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\",\"original\":\"0x0000000000000000000000000000000000000000000000000000000558bf5ec1\",\"dirty\":\"0x00000000000000000000000000000000000000000000000000000004aa58a1cf\"}]}],\"raw_state_diff\":null,\"console_logs\":null,\"created_at\":\"2023-01-31T15:41:47Z\"},\"method\":\"\",\"decoded_input\":null,\"call_trace\":[{\"call_type\":\"CALL\",\"from\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"gas\":115852,\"gas_used\":107364,\"subtraces\":3,\"type\":\"CALL\",\"input\":\"0x8803dbee00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000c65a511800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae380000000000000000000000000000000000000000000000000000000063d9ac890000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f\",\"output\":\"0x0000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000ae66bcf200000000000000000000000000000000000000000000009df85158cbf9100000\",\"fromBalance\":\"0x027ab1375ab24669\",\"toBalance\":\"0x58d15e17628000\"},{\"call_type\":\"STATICCALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"gas\":109380,\"gas_used\":2504,\"trace_address\":[0],\"type\":\"CALL\",\"input\":\"0x0902f1ac\",\"output\":\"0x00000000000000000000000000000000000000000002d1f827ae08220273c08900000000000000000000000000000000000000000000000000000319feb5a16b0000000000000000000000000000000000000000000000000000000063d92dbb\",\"outOff\":509,\"outLen\":96,\"gas_in\":111222,\"gas_cost\":109486,\"fromBalance\":\"0x58d15e17628000\"},{\"call_type\":\"CALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"gas\":101625,\"gas_used\":26530,\"trace_address\":[1],\"type\":\"CALL\",\"input\":\"0x23b872dd0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae38000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b83640500000000000000000000000000000000000000000000000000000000ae66bcf2\",\"outOff\":830,\"gas_in\":105838,\"gas_cost\":104225,\"fromBalance\":\"0x58d15e17628000\",\"toBalance\":\"0x01\"},{\"call_type\":\"CALL\",\"from\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"to\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"gas\":73411,\"gas_used\":65630,\"subtraces\":3,\"trace_address\":[2],\"type\":\"CALL\",\"input\":\"0x022c0d9f00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae3800000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000\",\"outOff\":1147,\"gas_in\":74676,\"gas_cost\":73511,\"fromBalance\":\"0x58d15e17628000\"},{\"call_type\":\"CALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"gas\":59098,\"gas_used\":30174,\"trace_address\":[2,0],\"type\":\"CALL\",\"input\":\"0xa9059cbb0000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae3800000000000000000000000000000000000000000000009df85158cbf9100000\",\"output\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"outOff\":292,\"gas_in\":62636,\"gas_cost\":61698},{\"call_type\":\"STATICCALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"gas\":28775,\"gas_used\":602,\"trace_address\":[2,1],\"type\":\"CALL\",\"input\":\"0x70a08231000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"output\":\"0x00000000000000000000000000000000000000000002d15a2f5caf560963c089\",\"outOff\":356,\"outLen\":32,\"gas_in\":29331,\"gas_cost\":28875},{\"call_type\":\"STATICCALL\",\"from\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"to\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"gas\":27777,\"gas_used\":1031,\"trace_address\":[2,2],\"type\":\"CALL\",\"input\":\"0x70a08231000000000000000000000000b20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"output\":\"0x0000000000000000000000000000000000000000000000000000031aad1c5e5d\",\"outOff\":356,\"outLen\":32,\"gas_in\":28317,\"gas_cost\":27877,\"toBalance\":\"0x01\"}]},\"simulation\":{\"id\":\"bdbe7205-d841-4afb-8f94-17e3aacf5e9d\",\"project_id\":\"feeaed2f-c9e2-4f62-b7ae-77dfa4aee75d\",\"owner_id\":\"01a4dac2-89c9-414c-aa00-d277e0a46ecb\",\"network_id\":\"1\",\"block_number\":16527769,\"transaction_index\":42,\"from\":\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"to\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"input\":\"0x8803dbee00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000c65a511800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae380000000000000000000000000000000000000000000000000000000063d9ac890000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f\",\"gas\":138864,\"gas_price\":\"32909736476\",\"gas_used\":127576,\"value\":\"0\",\"method\":\"swapTokensForExactTokens\",\"status\":true,\"access_list\":null,\"queue_origin\":\"\",\"block_header\":{\"number\":\"0xfc3199\",\"hash\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"stateRoot\":\"0xbea2cf95956946038176be2862a2883ccc0c1a4b35ed050829acec38ca512f50\",\"parentHash\":\"0x488d1827ce2907a51d0605282c708c132a2ef72e4ab2b499b9cfc8cc0a0f1b5a\",\"sha3Uncles\":\"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347\",\"transactionsRoot\":\"0xcc52b493d25343decc167e41465b4e8cf2fe0fb01f98e386748c9eae0b85025c\",\"receiptsRoot\":\"0xf5a23faeaba2ef60d58d6c3675dd2eb0f6002b4594229a60072d70a600d19378\",\"logsBloom\":\"0x0d322080c515d0719a5299c8830144ab49005284098815882881298474828d18b3ab11a0e633850b86303b10480bc950821042941eca78650274321286b2a91401011415300628c8283f01995a3824e43e44008443480132041004498008a800d61808102e0284024042d642084c0825208a604d37590606522a02d324787ab0134013104a26556725d0364049d200a580880c95090aaa486130a056813241208a48415614097c95843189d040d6a48ca3c4a480a00128b696a50a02138c04e06360a60b121105443528051a800b1010546522ce1c8a84f969969892b11070521d30302820b280410fd491c0c4015440228126800c2c85c02000a80d8102dd13\",\"timestamp\":\"0x63d936bb\",\"difficulty\":\"0x0\",\"gasLimit\":\"0x1c9c380\",\"gasUsed\":\"0x9afe1b\",\"miner\":\"0xc0e1b256de232262134c22f73b21f756072bfb73\",\"extraData\":\"0x\",\"mixHash\":\"0xeb3edcb7c6b94eef7528cd0fa4ab2134f67e5e7524a82982099b73027509e9ad\",\"nonce\":\"0x0000000000000000\",\"baseFeePerGas\":\"0x76df6abf0\",\"size\":\"0x0\",\"totalDifficulty\":\"0x0\",\"uncles\":null,\"transactions\":null},\"mint\":null,\"deposit_tx\":false,\"system_tx\":false,\"nonce\":351,\"addresses\":[\"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"0x6b175474e89094c44da98b954eedeac495271d0f\"],\"contract_ids\":[\"eth:1:0x1cf5cd427d0a968379bd6b5befce28d8e157ae38\",\"eth:1:0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"eth:1:0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"eth:1:0xdac17f958d2ee523a2206206994597c13d831ec7\",\"eth:1:0x6b175474e89094c44da98b954eedeac495271d0f\"],\"created_at\":\"2023-02-22T05:16:19.621158454Z\"},\"contracts\":[{\"id\":\"eth:1:0x6b175474e89094c44da98b954eedeac495271d0f\",\"contract_id\":\"eth:1:0x6b175474e89094c44da98b954eedeac495271d0f\",\"balance\":\"\",\"network_id\":\"1\",\"public\":true,\"export\":false,\"verified_by\":\"etherscan\",\"verification_date\":null,\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"contract_name\":\"Dai\",\"ens_domain\":null,\"type\":\"contract\",\"standard\":\"erc20\",\"standards\":[\"erc20\"],\"token_data\":{\"symbol\":\"DAI\",\"name\":\"Dai Stablecoin\",\"decimals\":18,\"main\":true},\"evm_version\":\"default\",\"compiler_version\":\"v0.5.12+commit.7709ece9\",\"optimizations_used\":false,\"optimization_runs\":200,\"libraries\":null,\"data\":{\"main_contract\":0,\"contract_info\":[{\"id\":0,\"path\":\"Dai.sol\",\"name\":\"Dai.sol\",\"source\":\"// hevm: flattened sources of /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/dai.sol\\npragma solidity =0.5.12;\\n\\n////// /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/lib.sol\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU General Public License for more details.\\n\\n// You should have received a copy of the GNU General Public License\\n// along with this program. If not, see \\u003chttp://www.gnu.org/licenses/\\u003e.\\n\\n/* pragma solidity 0.5.12; */\\n\\ncontract LibNote {\\n event LogNote(\\n bytes4 indexed sig,\\n address indexed usr,\\n bytes32 indexed arg1,\\n bytes32 indexed arg2,\\n bytes data\\n ) anonymous;\\n\\n modifier note {\\n _;\\n assembly {\\n // log an 'anonymous' event with a constant 6 words of calldata\\n // and four indexed topics: selector, caller, arg1 and arg2\\n let mark := msize // end of memory ensures zero\\n mstore(0x40, add(mark, 288)) // update free memory pointer\\n mstore(mark, 0x20) // bytes type data offset\\n mstore(add(mark, 0x20), 224) // bytes size (padded)\\n calldatacopy(add(mark, 0x40), 0, 224) // bytes payload\\n log4(mark, 288, // calldata\\n shl(224, shr(224, calldataload(0))), // msg.sig\\n caller, // msg.sender\\n calldataload(4), // arg1\\n calldataload(36) // arg2\\n )\\n }\\n }\\n}\\n\\n////// /nix/store/8xb41r4qd0cjb63wcrxf1qmfg88p0961-dss-6fd7de0/src/dai.sol\\n// Copyright (C) 2017, 2018, 2019 dbrock, rain, mrchico\\n\\n// This program is free software: you can redistribute it and/or modify\\n// it under the terms of the GNU Affero General Public License as published by\\n// the Free Software Foundation, either version 3 of the License, or\\n// (at your option) any later version.\\n//\\n// This program is distributed in the hope that it will be useful,\\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\\n// GNU Affero General Public License for more details.\\n//\\n// You should have received a copy of the GNU Affero General Public License\\n// along with this program. If not, see \\u003chttps://www.gnu.org/licenses/\\u003e.\\n\\n/* pragma solidity 0.5.12; */\\n\\n/* import \\\"./lib.sol\\\"; */\\n\\ncontract Dai is LibNote {\\n // --- Auth ---\\n mapping (address =\\u003e uint) public wards;\\n function rely(address guy) external note auth { wards[guy] = 1; }\\n function deny(address guy) external note auth { wards[guy] = 0; }\\n modifier auth {\\n require(wards[msg.sender] == 1, \\\"Dai/not-authorized\\\");\\n _;\\n }\\n\\n // --- ERC20 Data ---\\n string public constant name = \\\"Dai Stablecoin\\\";\\n string public constant symbol = \\\"DAI\\\";\\n string public constant version = \\\"1\\\";\\n uint8 public constant decimals = 18;\\n uint256 public totalSupply;\\n\\n mapping (address =\\u003e uint) public balanceOf;\\n mapping (address =\\u003e mapping (address =\\u003e uint)) public allowance;\\n mapping (address =\\u003e uint) public nonces;\\n\\n event Approval(address indexed src, address indexed guy, uint wad);\\n event Transfer(address indexed src, address indexed dst, uint wad);\\n\\n // --- Math ---\\n function add(uint x, uint y) internal pure returns (uint z) {\\n require((z = x + y) \\u003e= x);\\n }\\n function sub(uint x, uint y) internal pure returns (uint z) {\\n require((z = x - y) \\u003c= x);\\n }\\n\\n // --- EIP712 niceties ---\\n bytes32 public DOMAIN_SEPARATOR;\\n // bytes32 public constant PERMIT_TYPEHASH = keccak256(\\\"Permit(address holder,address spender,uint256 nonce,uint256 expiry,bool allowed)\\\");\\n bytes32 public constant PERMIT_TYPEHASH = 0xea2aa0a1be11a07ed86d755c93467f4f82362b452371d1ba94d1715123511acb;\\n\\n constructor(uint256 chainId_) public {\\n wards[msg.sender] = 1;\\n DOMAIN_SEPARATOR = keccak256(abi.encode(\\n keccak256(\\\"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\\\"),\\n keccak256(bytes(name)),\\n keccak256(bytes(version)),\\n chainId_,\\n address(this)\\n ));\\n }\\n\\n // --- Token ---\\n function transfer(address dst, uint wad) external returns (bool) {\\n return transferFrom(msg.sender, dst, wad);\\n }\\n function transferFrom(address src, address dst, uint wad)\\n public returns (bool)\\n {\\n require(balanceOf[src] \\u003e= wad, \\\"Dai/insufficient-balance\\\");\\n if (src != msg.sender \\u0026\\u0026 allowance[src][msg.sender] != uint(-1)) {\\n require(allowance[src][msg.sender] \\u003e= wad, \\\"Dai/insufficient-allowance\\\");\\n allowance[src][msg.sender] = sub(allowance[src][msg.sender], wad);\\n }\\n balanceOf[src] = sub(balanceOf[src], wad);\\n balanceOf[dst] = add(balanceOf[dst], wad);\\n emit Transfer(src, dst, wad);\\n return true;\\n }\\n function mint(address usr, uint wad) external auth {\\n balanceOf[usr] = add(balanceOf[usr], wad);\\n totalSupply = add(totalSupply, wad);\\n emit Transfer(address(0), usr, wad);\\n }\\n function burn(address usr, uint wad) external {\\n require(balanceOf[usr] \\u003e= wad, \\\"Dai/insufficient-balance\\\");\\n if (usr != msg.sender \\u0026\\u0026 allowance[usr][msg.sender] != uint(-1)) {\\n require(allowance[usr][msg.sender] \\u003e= wad, \\\"Dai/insufficient-allowance\\\");\\n allowance[usr][msg.sender] = sub(allowance[usr][msg.sender], wad);\\n }\\n balanceOf[usr] = sub(balanceOf[usr], wad);\\n totalSupply = sub(totalSupply, wad);\\n emit Transfer(usr, address(0), wad);\\n }\\n function approve(address usr, uint wad) external returns (bool) {\\n allowance[msg.sender][usr] = wad;\\n emit Approval(msg.sender, usr, wad);\\n return true;\\n }\\n\\n // --- Alias ---\\n function push(address usr, uint wad) external {\\n transferFrom(msg.sender, usr, wad);\\n }\\n function pull(address usr, uint wad) external {\\n transferFrom(usr, msg.sender, wad);\\n }\\n function move(address src, address dst, uint wad) external {\\n transferFrom(src, dst, wad);\\n }\\n\\n // --- Approve by signature ---\\n function permit(address holder, address spender, uint256 nonce, uint256 expiry,\\n bool allowed, uint8 v, bytes32 r, bytes32 s) external\\n {\\n bytes32 digest =\\n keccak256(abi.encodePacked(\\n \\\"\\\\x19\\\\x01\\\",\\n DOMAIN_SEPARATOR,\\n keccak256(abi.encode(PERMIT_TYPEHASH,\\n holder,\\n spender,\\n nonce,\\n expiry,\\n allowed))\\n ));\\n\\n require(holder != address(0), \\\"Dai/invalid-address-0\\\");\\n require(holder == ecrecover(digest, v, r, s), \\\"Dai/invalid-permit\\\");\\n require(expiry == 0 || now \\u003c= expiry, \\\"Dai/permit-expired\\\");\\n require(nonce == nonces[holder]++, \\\"Dai/invalid-nonce\\\");\\n uint wad = allowed ? uint(-1) : 0;\\n allowance[holder][spender] = wad;\\n emit Approval(holder, spender, wad);\\n }\\n}\"}],\"abi\":[{\"type\":\"constructor\",\"name\":\"\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"chainId_\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"function\",\"name\":\"symbol\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"allowance\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"decimals\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"mint\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"burn\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"name\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"balanceOf\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"wards\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"PERMIT_TYPEHASH\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}]},{\"type\":\"function\",\"name\":\"deny\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"rely\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"guy\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"move\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}]},{\"type\":\"function\",\"name\":\"transferFrom\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"approve\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"nonces\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"push\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"permit\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"holder\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"nonce\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"expiry\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"allowed\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"v\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"r\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"s\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"pull\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"version\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"totalSupply\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"event\",\"name\":\"Approval\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"guy\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"LogNote\",\"constant\":false,\"anonymous\":true,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"sig\",\"type\":\"bytes4\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"usr\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"arg1\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"arg2\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"data\",\"type\":\"bytes\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"src\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"dst\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"wad\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null}],\"raw_abi\":null,\"states\":[{\"name\":\"totalSupply\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"balanceOf\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},{\"name\":\"allowance\",\"type\":\"mapping (address =\\u003e mapping (address =\\u003e uint256))\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000003\",\"indexed\":false},{\"name\":\"nonces\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"indexed\":false},{\"name\":\"DOMAIN_SEPARATOR\",\"type\":\"bytes32\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000005\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"wards\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false}]},\"creation_block\":0,\"creation_tx\":\"\",\"creator_address\":\"\",\"created_at\":\"2022-12-16T09:10:37Z\",\"number_of_watches\":null,\"language\":\"solidity\",\"in_project\":false,\"number_of_files\":1},{\"id\":\"eth:1:0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"contract_id\":\"eth:1:0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"balance\":\"\",\"network_id\":\"1\",\"public\":true,\"export\":false,\"verified_by\":\"etherscan\",\"verification_date\":null,\"address\":\"0x7a250d5630b4cf539739df2c5dacb4c659f2488d\",\"contract_name\":\"UniswapV2Router02\",\"ens_domain\":null,\"type\":\"contract\",\"standard\":\"custom_proxy_function\",\"standards\":[\"custom_proxy_function\"],\"evm_version\":\"istanbul\",\"compiler_version\":\"v0.6.6+commit.6c089d02\",\"optimizations_used\":true,\"optimization_runs\":999999,\"libraries\":null,\"data\":{\"main_contract\":0,\"contract_info\":[{\"id\":0,\"path\":\"UniswapV2Router02.sol\",\"name\":\"UniswapV2Router02.sol\",\"source\":\"pragma solidity =0.6.6;\\n\\ninterface IUniswapV2Factory {\\n event PairCreated(address indexed token0, address indexed token1, address pair, uint);\\n\\n function feeTo() external view returns (address);\\n function feeToSetter() external view returns (address);\\n\\n function getPair(address tokenA, address tokenB) external view returns (address pair);\\n function allPairs(uint) external view returns (address pair);\\n function allPairsLength() external view returns (uint);\\n\\n function createPair(address tokenA, address tokenB) external returns (address pair);\\n\\n function setFeeTo(address) external;\\n function setFeeToSetter(address) external;\\n}\\n\\ninterface IUniswapV2Pair {\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n function name() external pure returns (string memory);\\n function symbol() external pure returns (string memory);\\n function decimals() external pure returns (uint8);\\n function totalSupply() external view returns (uint);\\n function balanceOf(address owner) external view returns (uint);\\n function allowance(address owner, address spender) external view returns (uint);\\n\\n function approve(address spender, uint value) external returns (bool);\\n function transfer(address to, uint value) external returns (bool);\\n function transferFrom(address from, address to, uint value) external returns (bool);\\n\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n function PERMIT_TYPEHASH() external pure returns (bytes32);\\n function nonces(address owner) external view returns (uint);\\n\\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\\n\\n event Mint(address indexed sender, uint amount0, uint amount1);\\n event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\\n event Swap(\\n address indexed sender,\\n uint amount0In,\\n uint amount1In,\\n uint amount0Out,\\n uint amount1Out,\\n address indexed to\\n );\\n event Sync(uint112 reserve0, uint112 reserve1);\\n\\n function MINIMUM_LIQUIDITY() external pure returns (uint);\\n function factory() external view returns (address);\\n function token0() external view returns (address);\\n function token1() external view returns (address);\\n function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\\n function price0CumulativeLast() external view returns (uint);\\n function price1CumulativeLast() external view returns (uint);\\n function kLast() external view returns (uint);\\n\\n function mint(address to) external returns (uint liquidity);\\n function burn(address to) external returns (uint amount0, uint amount1);\\n function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\\n function skim(address to) external;\\n function sync() external;\\n\\n function initialize(address, address) external;\\n}\\n\\ninterface IUniswapV2Router01 {\\n function factory() external pure returns (address);\\n function WETH() external pure returns (address);\\n\\n function addLiquidity(\\n address tokenA,\\n address tokenB,\\n uint amountADesired,\\n uint amountBDesired,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline\\n ) external returns (uint amountA, uint amountB, uint liquidity);\\n function addLiquidityETH(\\n address token,\\n uint amountTokenDesired,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) external payable returns (uint amountToken, uint amountETH, uint liquidity);\\n function removeLiquidity(\\n address tokenA,\\n address tokenB,\\n uint liquidity,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline\\n ) external returns (uint amountA, uint amountB);\\n function removeLiquidityETH(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) external returns (uint amountToken, uint amountETH);\\n function removeLiquidityWithPermit(\\n address tokenA,\\n address tokenB,\\n uint liquidity,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external returns (uint amountA, uint amountB);\\n function removeLiquidityETHWithPermit(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external returns (uint amountToken, uint amountETH);\\n function swapExactTokensForTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external returns (uint[] memory amounts);\\n function swapTokensForExactTokens(\\n uint amountOut,\\n uint amountInMax,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external returns (uint[] memory amounts);\\n function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\\n external\\n payable\\n returns (uint[] memory amounts);\\n function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\\n external\\n returns (uint[] memory amounts);\\n function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\\n external\\n returns (uint[] memory amounts);\\n function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\\n external\\n payable\\n returns (uint[] memory amounts);\\n\\n function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB);\\n function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut);\\n function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn);\\n function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts);\\n function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts);\\n}\\n\\ninterface IUniswapV2Router02 is IUniswapV2Router01 {\\n function removeLiquidityETHSupportingFeeOnTransferTokens(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) external returns (uint amountETH);\\n function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external returns (uint amountETH);\\n\\n function swapExactTokensForTokensSupportingFeeOnTransferTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external;\\n function swapExactETHForTokensSupportingFeeOnTransferTokens(\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external payable;\\n function swapExactTokensForETHSupportingFeeOnTransferTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external;\\n}\\n\\ninterface IERC20 {\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n function name() external view returns (string memory);\\n function symbol() external view returns (string memory);\\n function decimals() external view returns (uint8);\\n function totalSupply() external view returns (uint);\\n function balanceOf(address owner) external view returns (uint);\\n function allowance(address owner, address spender) external view returns (uint);\\n\\n function approve(address spender, uint value) external returns (bool);\\n function transfer(address to, uint value) external returns (bool);\\n function transferFrom(address from, address to, uint value) external returns (bool);\\n}\\n\\ninterface IWETH {\\n function deposit() external payable;\\n function transfer(address to, uint value) external returns (bool);\\n function withdraw(uint) external;\\n}\\n\\ncontract UniswapV2Router02 is IUniswapV2Router02 {\\n using SafeMath for uint;\\n\\n address public immutable override factory;\\n address public immutable override WETH;\\n\\n modifier ensure(uint deadline) {\\n require(deadline \\u003e= block.timestamp, 'UniswapV2Router: EXPIRED');\\n _;\\n }\\n\\n constructor(address _factory, address _WETH) public {\\n factory = _factory;\\n WETH = _WETH;\\n }\\n\\n receive() external payable {\\n assert(msg.sender == WETH); // only accept ETH via fallback from the WETH contract\\n }\\n\\n // **** ADD LIQUIDITY ****\\n function _addLiquidity(\\n address tokenA,\\n address tokenB,\\n uint amountADesired,\\n uint amountBDesired,\\n uint amountAMin,\\n uint amountBMin\\n ) internal virtual returns (uint amountA, uint amountB) {\\n // create the pair if it doesn't exist yet\\n if (IUniswapV2Factory(factory).getPair(tokenA, tokenB) == address(0)) {\\n IUniswapV2Factory(factory).createPair(tokenA, tokenB);\\n }\\n (uint reserveA, uint reserveB) = UniswapV2Library.getReserves(factory, tokenA, tokenB);\\n if (reserveA == 0 \\u0026\\u0026 reserveB == 0) {\\n (amountA, amountB) = (amountADesired, amountBDesired);\\n } else {\\n uint amountBOptimal = UniswapV2Library.quote(amountADesired, reserveA, reserveB);\\n if (amountBOptimal \\u003c= amountBDesired) {\\n require(amountBOptimal \\u003e= amountBMin, 'UniswapV2Router: INSUFFICIENT_B_AMOUNT');\\n (amountA, amountB) = (amountADesired, amountBOptimal);\\n } else {\\n uint amountAOptimal = UniswapV2Library.quote(amountBDesired, reserveB, reserveA);\\n assert(amountAOptimal \\u003c= amountADesired);\\n require(amountAOptimal \\u003e= amountAMin, 'UniswapV2Router: INSUFFICIENT_A_AMOUNT');\\n (amountA, amountB) = (amountAOptimal, amountBDesired);\\n }\\n }\\n }\\n function addLiquidity(\\n address tokenA,\\n address tokenB,\\n uint amountADesired,\\n uint amountBDesired,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline\\n ) external virtual override ensure(deadline) returns (uint amountA, uint amountB, uint liquidity) {\\n (amountA, amountB) = _addLiquidity(tokenA, tokenB, amountADesired, amountBDesired, amountAMin, amountBMin);\\n address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);\\n TransferHelper.safeTransferFrom(tokenA, msg.sender, pair, amountA);\\n TransferHelper.safeTransferFrom(tokenB, msg.sender, pair, amountB);\\n liquidity = IUniswapV2Pair(pair).mint(to);\\n }\\n function addLiquidityETH(\\n address token,\\n uint amountTokenDesired,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) external virtual override payable ensure(deadline) returns (uint amountToken, uint amountETH, uint liquidity) {\\n (amountToken, amountETH) = _addLiquidity(\\n token,\\n WETH,\\n amountTokenDesired,\\n msg.value,\\n amountTokenMin,\\n amountETHMin\\n );\\n address pair = UniswapV2Library.pairFor(factory, token, WETH);\\n TransferHelper.safeTransferFrom(token, msg.sender, pair, amountToken);\\n IWETH(WETH).deposit{value: amountETH}();\\n assert(IWETH(WETH).transfer(pair, amountETH));\\n liquidity = IUniswapV2Pair(pair).mint(to);\\n // refund dust eth, if any\\n if (msg.value \\u003e amountETH) TransferHelper.safeTransferETH(msg.sender, msg.value - amountETH);\\n }\\n\\n // **** REMOVE LIQUIDITY ****\\n function removeLiquidity(\\n address tokenA,\\n address tokenB,\\n uint liquidity,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline\\n ) public virtual override ensure(deadline) returns (uint amountA, uint amountB) {\\n address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);\\n IUniswapV2Pair(pair).transferFrom(msg.sender, pair, liquidity); // send liquidity to pair\\n (uint amount0, uint amount1) = IUniswapV2Pair(pair).burn(to);\\n (address token0,) = UniswapV2Library.sortTokens(tokenA, tokenB);\\n (amountA, amountB) = tokenA == token0 ? (amount0, amount1) : (amount1, amount0);\\n require(amountA \\u003e= amountAMin, 'UniswapV2Router: INSUFFICIENT_A_AMOUNT');\\n require(amountB \\u003e= amountBMin, 'UniswapV2Router: INSUFFICIENT_B_AMOUNT');\\n }\\n function removeLiquidityETH(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) public virtual override ensure(deadline) returns (uint amountToken, uint amountETH) {\\n (amountToken, amountETH) = removeLiquidity(\\n token,\\n WETH,\\n liquidity,\\n amountTokenMin,\\n amountETHMin,\\n address(this),\\n deadline\\n );\\n TransferHelper.safeTransfer(token, to, amountToken);\\n IWETH(WETH).withdraw(amountETH);\\n TransferHelper.safeTransferETH(to, amountETH);\\n }\\n function removeLiquidityWithPermit(\\n address tokenA,\\n address tokenB,\\n uint liquidity,\\n uint amountAMin,\\n uint amountBMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external virtual override returns (uint amountA, uint amountB) {\\n address pair = UniswapV2Library.pairFor(factory, tokenA, tokenB);\\n uint value = approveMax ? uint(-1) : liquidity;\\n IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\\n (amountA, amountB) = removeLiquidity(tokenA, tokenB, liquidity, amountAMin, amountBMin, to, deadline);\\n }\\n function removeLiquidityETHWithPermit(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external virtual override returns (uint amountToken, uint amountETH) {\\n address pair = UniswapV2Library.pairFor(factory, token, WETH);\\n uint value = approveMax ? uint(-1) : liquidity;\\n IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\\n (amountToken, amountETH) = removeLiquidityETH(token, liquidity, amountTokenMin, amountETHMin, to, deadline);\\n }\\n\\n // **** REMOVE LIQUIDITY (supporting fee-on-transfer tokens) ****\\n function removeLiquidityETHSupportingFeeOnTransferTokens(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline\\n ) public virtual override ensure(deadline) returns (uint amountETH) {\\n (, amountETH) = removeLiquidity(\\n token,\\n WETH,\\n liquidity,\\n amountTokenMin,\\n amountETHMin,\\n address(this),\\n deadline\\n );\\n TransferHelper.safeTransfer(token, to, IERC20(token).balanceOf(address(this)));\\n IWETH(WETH).withdraw(amountETH);\\n TransferHelper.safeTransferETH(to, amountETH);\\n }\\n function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens(\\n address token,\\n uint liquidity,\\n uint amountTokenMin,\\n uint amountETHMin,\\n address to,\\n uint deadline,\\n bool approveMax, uint8 v, bytes32 r, bytes32 s\\n ) external virtual override returns (uint amountETH) {\\n address pair = UniswapV2Library.pairFor(factory, token, WETH);\\n uint value = approveMax ? uint(-1) : liquidity;\\n IUniswapV2Pair(pair).permit(msg.sender, address(this), value, deadline, v, r, s);\\n amountETH = removeLiquidityETHSupportingFeeOnTransferTokens(\\n token, liquidity, amountTokenMin, amountETHMin, to, deadline\\n );\\n }\\n\\n // **** SWAP ****\\n // requires the initial amount to have already been sent to the first pair\\n function _swap(uint[] memory amounts, address[] memory path, address _to) internal virtual {\\n for (uint i; i \\u003c path.length - 1; i++) {\\n (address input, address output) = (path[i], path[i + 1]);\\n (address token0,) = UniswapV2Library.sortTokens(input, output);\\n uint amountOut = amounts[i + 1];\\n (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOut) : (amountOut, uint(0));\\n address to = i \\u003c path.length - 2 ? UniswapV2Library.pairFor(factory, output, path[i + 2]) : _to;\\n IUniswapV2Pair(UniswapV2Library.pairFor(factory, input, output)).swap(\\n amount0Out, amount1Out, to, new bytes(0)\\n );\\n }\\n }\\n function swapExactTokensForTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external virtual override ensure(deadline) returns (uint[] memory amounts) {\\n amounts = UniswapV2Library.getAmountsOut(factory, amountIn, path);\\n require(amounts[amounts.length - 1] \\u003e= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]\\n );\\n _swap(amounts, path, to);\\n }\\n function swapTokensForExactTokens(\\n uint amountOut,\\n uint amountInMax,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external virtual override ensure(deadline) returns (uint[] memory amounts) {\\n amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);\\n require(amounts[0] \\u003c= amountInMax, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]\\n );\\n _swap(amounts, path, to);\\n }\\n function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline)\\n external\\n virtual\\n override\\n payable\\n ensure(deadline)\\n returns (uint[] memory amounts)\\n {\\n require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');\\n amounts = UniswapV2Library.getAmountsOut(factory, msg.value, path);\\n require(amounts[amounts.length - 1] \\u003e= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');\\n IWETH(WETH).deposit{value: amounts[0]}();\\n assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]));\\n _swap(amounts, path, to);\\n }\\n function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline)\\n external\\n virtual\\n override\\n ensure(deadline)\\n returns (uint[] memory amounts)\\n {\\n require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');\\n amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);\\n require(amounts[0] \\u003c= amountInMax, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]\\n );\\n _swap(amounts, path, address(this));\\n IWETH(WETH).withdraw(amounts[amounts.length - 1]);\\n TransferHelper.safeTransferETH(to, amounts[amounts.length - 1]);\\n }\\n function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline)\\n external\\n virtual\\n override\\n ensure(deadline)\\n returns (uint[] memory amounts)\\n {\\n require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');\\n amounts = UniswapV2Library.getAmountsOut(factory, amountIn, path);\\n require(amounts[amounts.length - 1] \\u003e= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]\\n );\\n _swap(amounts, path, address(this));\\n IWETH(WETH).withdraw(amounts[amounts.length - 1]);\\n TransferHelper.safeTransferETH(to, amounts[amounts.length - 1]);\\n }\\n function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline)\\n external\\n virtual\\n override\\n payable\\n ensure(deadline)\\n returns (uint[] memory amounts)\\n {\\n require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');\\n amounts = UniswapV2Library.getAmountsIn(factory, amountOut, path);\\n require(amounts[0] \\u003c= msg.value, 'UniswapV2Router: EXCESSIVE_INPUT_AMOUNT');\\n IWETH(WETH).deposit{value: amounts[0]}();\\n assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amounts[0]));\\n _swap(amounts, path, to);\\n // refund dust eth, if any\\n if (msg.value \\u003e amounts[0]) TransferHelper.safeTransferETH(msg.sender, msg.value - amounts[0]);\\n }\\n\\n // **** SWAP (supporting fee-on-transfer tokens) ****\\n // requires the initial amount to have already been sent to the first pair\\n function _swapSupportingFeeOnTransferTokens(address[] memory path, address _to) internal virtual {\\n for (uint i; i \\u003c path.length - 1; i++) {\\n (address input, address output) = (path[i], path[i + 1]);\\n (address token0,) = UniswapV2Library.sortTokens(input, output);\\n IUniswapV2Pair pair = IUniswapV2Pair(UniswapV2Library.pairFor(factory, input, output));\\n uint amountInput;\\n uint amountOutput;\\n { // scope to avoid stack too deep errors\\n (uint reserve0, uint reserve1,) = pair.getReserves();\\n (uint reserveInput, uint reserveOutput) = input == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\\n amountInput = IERC20(input).balanceOf(address(pair)).sub(reserveInput);\\n amountOutput = UniswapV2Library.getAmountOut(amountInput, reserveInput, reserveOutput);\\n }\\n (uint amount0Out, uint amount1Out) = input == token0 ? (uint(0), amountOutput) : (amountOutput, uint(0));\\n address to = i \\u003c path.length - 2 ? UniswapV2Library.pairFor(factory, output, path[i + 2]) : _to;\\n pair.swap(amount0Out, amount1Out, to, new bytes(0));\\n }\\n }\\n function swapExactTokensForTokensSupportingFeeOnTransferTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n ) external virtual override ensure(deadline) {\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn\\n );\\n uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);\\n _swapSupportingFeeOnTransferTokens(path, to);\\n require(\\n IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) \\u003e= amountOutMin,\\n 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT'\\n );\\n }\\n function swapExactETHForTokensSupportingFeeOnTransferTokens(\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n )\\n external\\n virtual\\n override\\n payable\\n ensure(deadline)\\n {\\n require(path[0] == WETH, 'UniswapV2Router: INVALID_PATH');\\n uint amountIn = msg.value;\\n IWETH(WETH).deposit{value: amountIn}();\\n assert(IWETH(WETH).transfer(UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn));\\n uint balanceBefore = IERC20(path[path.length - 1]).balanceOf(to);\\n _swapSupportingFeeOnTransferTokens(path, to);\\n require(\\n IERC20(path[path.length - 1]).balanceOf(to).sub(balanceBefore) \\u003e= amountOutMin,\\n 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT'\\n );\\n }\\n function swapExactTokensForETHSupportingFeeOnTransferTokens(\\n uint amountIn,\\n uint amountOutMin,\\n address[] calldata path,\\n address to,\\n uint deadline\\n )\\n external\\n virtual\\n override\\n ensure(deadline)\\n {\\n require(path[path.length - 1] == WETH, 'UniswapV2Router: INVALID_PATH');\\n TransferHelper.safeTransferFrom(\\n path[0], msg.sender, UniswapV2Library.pairFor(factory, path[0], path[1]), amountIn\\n );\\n _swapSupportingFeeOnTransferTokens(path, address(this));\\n uint amountOut = IERC20(WETH).balanceOf(address(this));\\n require(amountOut \\u003e= amountOutMin, 'UniswapV2Router: INSUFFICIENT_OUTPUT_AMOUNT');\\n IWETH(WETH).withdraw(amountOut);\\n TransferHelper.safeTransferETH(to, amountOut);\\n }\\n\\n // **** LIBRARY FUNCTIONS ****\\n function quote(uint amountA, uint reserveA, uint reserveB) public pure virtual override returns (uint amountB) {\\n return UniswapV2Library.quote(amountA, reserveA, reserveB);\\n }\\n\\n function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut)\\n public\\n pure\\n virtual\\n override\\n returns (uint amountOut)\\n {\\n return UniswapV2Library.getAmountOut(amountIn, reserveIn, reserveOut);\\n }\\n\\n function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut)\\n public\\n pure\\n virtual\\n override\\n returns (uint amountIn)\\n {\\n return UniswapV2Library.getAmountIn(amountOut, reserveIn, reserveOut);\\n }\\n\\n function getAmountsOut(uint amountIn, address[] memory path)\\n public\\n view\\n virtual\\n override\\n returns (uint[] memory amounts)\\n {\\n return UniswapV2Library.getAmountsOut(factory, amountIn, path);\\n }\\n\\n function getAmountsIn(uint amountOut, address[] memory path)\\n public\\n view\\n virtual\\n override\\n returns (uint[] memory amounts)\\n {\\n return UniswapV2Library.getAmountsIn(factory, amountOut, path);\\n }\\n}\\n\\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\\n\\nlibrary SafeMath {\\n function add(uint x, uint y) internal pure returns (uint z) {\\n require((z = x + y) \\u003e= x, 'ds-math-add-overflow');\\n }\\n\\n function sub(uint x, uint y) internal pure returns (uint z) {\\n require((z = x - y) \\u003c= x, 'ds-math-sub-underflow');\\n }\\n\\n function mul(uint x, uint y) internal pure returns (uint z) {\\n require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');\\n }\\n}\\n\\nlibrary UniswapV2Library {\\n using SafeMath for uint;\\n\\n // returns sorted token addresses, used to handle return values from pairs sorted in this order\\n function sortTokens(address tokenA, address tokenB) internal pure returns (address token0, address token1) {\\n require(tokenA != tokenB, 'UniswapV2Library: IDENTICAL_ADDRESSES');\\n (token0, token1) = tokenA \\u003c tokenB ? (tokenA, tokenB) : (tokenB, tokenA);\\n require(token0 != address(0), 'UniswapV2Library: ZERO_ADDRESS');\\n }\\n\\n // calculates the CREATE2 address for a pair without making any external calls\\n function pairFor(address factory, address tokenA, address tokenB) internal pure returns (address pair) {\\n (address token0, address token1) = sortTokens(tokenA, tokenB);\\n pair = address(uint(keccak256(abi.encodePacked(\\n hex'ff',\\n factory,\\n keccak256(abi.encodePacked(token0, token1)),\\n hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f' // init code hash\\n ))));\\n }\\n\\n // fetches and sorts the reserves for a pair\\n function getReserves(address factory, address tokenA, address tokenB) internal view returns (uint reserveA, uint reserveB) {\\n (address token0,) = sortTokens(tokenA, tokenB);\\n (uint reserve0, uint reserve1,) = IUniswapV2Pair(pairFor(factory, tokenA, tokenB)).getReserves();\\n (reserveA, reserveB) = tokenA == token0 ? (reserve0, reserve1) : (reserve1, reserve0);\\n }\\n\\n // given some amount of an asset and pair reserves, returns an equivalent amount of the other asset\\n function quote(uint amountA, uint reserveA, uint reserveB) internal pure returns (uint amountB) {\\n require(amountA \\u003e 0, 'UniswapV2Library: INSUFFICIENT_AMOUNT');\\n require(reserveA \\u003e 0 \\u0026\\u0026 reserveB \\u003e 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');\\n amountB = amountA.mul(reserveB) / reserveA;\\n }\\n\\n // given an input amount of an asset and pair reserves, returns the maximum output amount of the other asset\\n function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) internal pure returns (uint amountOut) {\\n require(amountIn \\u003e 0, 'UniswapV2Library: INSUFFICIENT_INPUT_AMOUNT');\\n require(reserveIn \\u003e 0 \\u0026\\u0026 reserveOut \\u003e 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');\\n uint amountInWithFee = amountIn.mul(997);\\n uint numerator = amountInWithFee.mul(reserveOut);\\n uint denominator = reserveIn.mul(1000).add(amountInWithFee);\\n amountOut = numerator / denominator;\\n }\\n\\n // given an output amount of an asset and pair reserves, returns a required input amount of the other asset\\n function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) internal pure returns (uint amountIn) {\\n require(amountOut \\u003e 0, 'UniswapV2Library: INSUFFICIENT_OUTPUT_AMOUNT');\\n require(reserveIn \\u003e 0 \\u0026\\u0026 reserveOut \\u003e 0, 'UniswapV2Library: INSUFFICIENT_LIQUIDITY');\\n uint numerator = reserveIn.mul(amountOut).mul(1000);\\n uint denominator = reserveOut.sub(amountOut).mul(997);\\n amountIn = (numerator / denominator).add(1);\\n }\\n\\n // performs chained getAmountOut calculations on any number of pairs\\n function getAmountsOut(address factory, uint amountIn, address[] memory path) internal view returns (uint[] memory amounts) {\\n require(path.length \\u003e= 2, 'UniswapV2Library: INVALID_PATH');\\n amounts = new uint[](path.length);\\n amounts[0] = amountIn;\\n for (uint i; i \\u003c path.length - 1; i++) {\\n (uint reserveIn, uint reserveOut) = getReserves(factory, path[i], path[i + 1]);\\n amounts[i + 1] = getAmountOut(amounts[i], reserveIn, reserveOut);\\n }\\n }\\n\\n // performs chained getAmountIn calculations on any number of pairs\\n function getAmountsIn(address factory, uint amountOut, address[] memory path) internal view returns (uint[] memory amounts) {\\n require(path.length \\u003e= 2, 'UniswapV2Library: INVALID_PATH');\\n amounts = new uint[](path.length);\\n amounts[amounts.length - 1] = amountOut;\\n for (uint i = path.length - 1; i \\u003e 0; i--) {\\n (uint reserveIn, uint reserveOut) = getReserves(factory, path[i - 1], path[i]);\\n amounts[i - 1] = getAmountIn(amounts[i], reserveIn, reserveOut);\\n }\\n }\\n}\\n\\n// helper methods for interacting with ERC20 tokens and sending ETH that do not consistently return true/false\\nlibrary TransferHelper {\\n function safeApprove(address token, address to, uint value) internal {\\n // bytes4(keccak256(bytes('approve(address,uint256)')));\\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x095ea7b3, to, value));\\n require(success \\u0026\\u0026 (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: APPROVE_FAILED');\\n }\\n\\n function safeTransfer(address token, address to, uint value) internal {\\n // bytes4(keccak256(bytes('transfer(address,uint256)')));\\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0xa9059cbb, to, value));\\n require(success \\u0026\\u0026 (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FAILED');\\n }\\n\\n function safeTransferFrom(address token, address from, address to, uint value) internal {\\n // bytes4(keccak256(bytes('transferFrom(address,address,uint256)')));\\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(0x23b872dd, from, to, value));\\n require(success \\u0026\\u0026 (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: TRANSFER_FROM_FAILED');\\n }\\n\\n function safeTransferETH(address to, uint value) internal {\\n (bool success,) = to.call{value:value}(new bytes(0));\\n require(success, 'TransferHelper: ETH_TRANSFER_FAILED');\\n }\\n}\"}],\"abi\":[{\"type\":\"constructor\",\"name\":\"\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"_factory\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_WETH\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"function\",\"name\":\"removeLiquidityETH\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountTokenMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETHMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountToken\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETH\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"removeLiquidityETHSupportingFeeOnTransferTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountTokenMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETHMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountETH\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"getAmountsOut\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountTokenMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETHMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"approveMax\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"v\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"r\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"s\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[{\"name\":\"amountETH\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"removeLiquidityWithPermit\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountAMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountBMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"approveMax\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"v\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"r\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"s\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[{\"name\":\"amountA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"swapExactTokensForETHSupportingFeeOnTransferTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"getAmountOut\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"pure\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"WETH\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"swapTokensForExactETH\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountInMax\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"swapExactTokensForETH\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"factory\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"swapETHForExactTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"payable\",\"inputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"removeLiquidity\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountAMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountBMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"getAmountsIn\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"swapExactETHForTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"payable\",\"inputs\":[{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"addLiquidity\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"tokenA\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"tokenB\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"amountADesired\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountBDesired\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountAMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountBMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"addLiquidityETH\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"payable\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"amountTokenDesired\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountTokenMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETHMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountToken\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETH\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"swapExactTokensForTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"swapExactETHForTokensSupportingFeeOnTransferTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"payable\",\"inputs\":[{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"removeLiquidityETHWithPermit\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"token\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountTokenMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETHMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"approveMax\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"v\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"r\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"s\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[{\"name\":\"amountToken\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountETH\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"swapTokensForExactTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountInMax\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amounts\",\"type\":\"uint256[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"uint\"}}}]},{\"type\":\"function\",\"name\":\"getAmountIn\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"pure\",\"inputs\":[{\"name\":\"amountOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveOut\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"quote\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"pure\",\"inputs\":[{\"name\":\"amountA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveA\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserveB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"amountB\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"swapExactTokensForTokensSupportingFeeOnTransferTokens\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amountIn\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amountOutMin\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"path\",\"type\":\"address[]\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"slice\",\"nested_type\":{\"type\":\"address\"}}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]}],\"raw_abi\":null},\"creation_block\":0,\"creation_tx\":\"\",\"creator_address\":\"\",\"created_at\":\"2020-06-05T20:21:34Z\",\"number_of_watches\":null,\"language\":\"solidity\",\"in_project\":false,\"number_of_files\":1},{\"id\":\"eth:1:0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"contract_id\":\"eth:1:0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"balance\":\"\",\"network_id\":\"1\",\"public\":true,\"export\":false,\"verified_by\":\"etherscan\",\"verification_date\":null,\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"contract_name\":\"UniswapV2Pair\",\"ens_domain\":null,\"type\":\"contract\",\"evm_version\":\"\",\"compiler_version\":\"v0.5.16+commit.9c3226ce\",\"optimizations_used\":true,\"optimization_runs\":999999,\"libraries\":null,\"data\":{\"main_contract\":0,\"contract_info\":[{\"id\":0,\"path\":\"UniswapV2Pair.sol\",\"name\":\"UniswapV2Pair.sol\",\"source\":\"// File: contracts/interfaces/IUniswapV2Pair.sol\\n\\npragma solidity \\u003e=0.5.0;\\n\\ninterface IUniswapV2Pair {\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n function name() external pure returns (string memory);\\n function symbol() external pure returns (string memory);\\n function decimals() external pure returns (uint8);\\n function totalSupply() external view returns (uint);\\n function balanceOf(address owner) external view returns (uint);\\n function allowance(address owner, address spender) external view returns (uint);\\n\\n function approve(address spender, uint value) external returns (bool);\\n function transfer(address to, uint value) external returns (bool);\\n function transferFrom(address from, address to, uint value) external returns (bool);\\n\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n function PERMIT_TYPEHASH() external pure returns (bytes32);\\n function nonces(address owner) external view returns (uint);\\n\\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\\n\\n event Mint(address indexed sender, uint amount0, uint amount1);\\n event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\\n event Swap(\\n address indexed sender,\\n uint amount0In,\\n uint amount1In,\\n uint amount0Out,\\n uint amount1Out,\\n address indexed to\\n );\\n event Sync(uint112 reserve0, uint112 reserve1);\\n\\n function MINIMUM_LIQUIDITY() external pure returns (uint);\\n function factory() external view returns (address);\\n function token0() external view returns (address);\\n function token1() external view returns (address);\\n function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast);\\n function price0CumulativeLast() external view returns (uint);\\n function price1CumulativeLast() external view returns (uint);\\n function kLast() external view returns (uint);\\n\\n function mint(address to) external returns (uint liquidity);\\n function burn(address to) external returns (uint amount0, uint amount1);\\n function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external;\\n function skim(address to) external;\\n function sync() external;\\n\\n function initialize(address, address) external;\\n}\\n\\n// File: contracts/interfaces/IUniswapV2ERC20.sol\\n\\npragma solidity \\u003e=0.5.0;\\n\\ninterface IUniswapV2ERC20 {\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n function name() external pure returns (string memory);\\n function symbol() external pure returns (string memory);\\n function decimals() external pure returns (uint8);\\n function totalSupply() external view returns (uint);\\n function balanceOf(address owner) external view returns (uint);\\n function allowance(address owner, address spender) external view returns (uint);\\n\\n function approve(address spender, uint value) external returns (bool);\\n function transfer(address to, uint value) external returns (bool);\\n function transferFrom(address from, address to, uint value) external returns (bool);\\n\\n function DOMAIN_SEPARATOR() external view returns (bytes32);\\n function PERMIT_TYPEHASH() external pure returns (bytes32);\\n function nonces(address owner) external view returns (uint);\\n\\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external;\\n}\\n\\n// File: contracts/libraries/SafeMath.sol\\n\\npragma solidity =0.5.16;\\n\\n// a library for performing overflow-safe math, courtesy of DappHub (https://github.com/dapphub/ds-math)\\n\\nlibrary SafeMath {\\n function add(uint x, uint y) internal pure returns (uint z) {\\n require((z = x + y) \\u003e= x, 'ds-math-add-overflow');\\n }\\n\\n function sub(uint x, uint y) internal pure returns (uint z) {\\n require((z = x - y) \\u003c= x, 'ds-math-sub-underflow');\\n }\\n\\n function mul(uint x, uint y) internal pure returns (uint z) {\\n require(y == 0 || (z = x * y) / y == x, 'ds-math-mul-overflow');\\n }\\n}\\n\\n// File: contracts/UniswapV2ERC20.sol\\n\\npragma solidity =0.5.16;\\n\\n\\n\\ncontract UniswapV2ERC20 is IUniswapV2ERC20 {\\n using SafeMath for uint;\\n\\n string public constant name = 'Uniswap V2';\\n string public constant symbol = 'UNI-V2';\\n uint8 public constant decimals = 18;\\n uint public totalSupply;\\n mapping(address =\\u003e uint) public balanceOf;\\n mapping(address =\\u003e mapping(address =\\u003e uint)) public allowance;\\n\\n bytes32 public DOMAIN_SEPARATOR;\\n // keccak256(\\\"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\\\");\\n bytes32 public constant PERMIT_TYPEHASH = 0x6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9;\\n mapping(address =\\u003e uint) public nonces;\\n\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n constructor() public {\\n uint chainId;\\n assembly {\\n chainId := chainid\\n }\\n DOMAIN_SEPARATOR = keccak256(\\n abi.encode(\\n keccak256('EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)'),\\n keccak256(bytes(name)),\\n keccak256(bytes('1')),\\n chainId,\\n address(this)\\n )\\n );\\n }\\n\\n function _mint(address to, uint value) internal {\\n totalSupply = totalSupply.add(value);\\n balanceOf[to] = balanceOf[to].add(value);\\n emit Transfer(address(0), to, value);\\n }\\n\\n function _burn(address from, uint value) internal {\\n balanceOf[from] = balanceOf[from].sub(value);\\n totalSupply = totalSupply.sub(value);\\n emit Transfer(from, address(0), value);\\n }\\n\\n function _approve(address owner, address spender, uint value) private {\\n allowance[owner][spender] = value;\\n emit Approval(owner, spender, value);\\n }\\n\\n function _transfer(address from, address to, uint value) private {\\n balanceOf[from] = balanceOf[from].sub(value);\\n balanceOf[to] = balanceOf[to].add(value);\\n emit Transfer(from, to, value);\\n }\\n\\n function approve(address spender, uint value) external returns (bool) {\\n _approve(msg.sender, spender, value);\\n return true;\\n }\\n\\n function transfer(address to, uint value) external returns (bool) {\\n _transfer(msg.sender, to, value);\\n return true;\\n }\\n\\n function transferFrom(address from, address to, uint value) external returns (bool) {\\n if (allowance[from][msg.sender] != uint(-1)) {\\n allowance[from][msg.sender] = allowance[from][msg.sender].sub(value);\\n }\\n _transfer(from, to, value);\\n return true;\\n }\\n\\n function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external {\\n require(deadline \\u003e= block.timestamp, 'UniswapV2: EXPIRED');\\n bytes32 digest = keccak256(\\n abi.encodePacked(\\n '\\\\x19\\\\x01',\\n DOMAIN_SEPARATOR,\\n keccak256(abi.encode(PERMIT_TYPEHASH, owner, spender, value, nonces[owner]++, deadline))\\n )\\n );\\n address recoveredAddress = ecrecover(digest, v, r, s);\\n require(recoveredAddress != address(0) \\u0026\\u0026 recoveredAddress == owner, 'UniswapV2: INVALID_SIGNATURE');\\n _approve(owner, spender, value);\\n }\\n}\\n\\n// File: contracts/libraries/Math.sol\\n\\npragma solidity =0.5.16;\\n\\n// a library for performing various math operations\\n\\nlibrary Math {\\n function min(uint x, uint y) internal pure returns (uint z) {\\n z = x \\u003c y ? x : y;\\n }\\n\\n // babylonian method (https://en.wikipedia.org/wiki/Methods_of_computing_square_roots#Babylonian_method)\\n function sqrt(uint y) internal pure returns (uint z) {\\n if (y \\u003e 3) {\\n z = y;\\n uint x = y / 2 + 1;\\n while (x \\u003c z) {\\n z = x;\\n x = (y / x + x) / 2;\\n }\\n } else if (y != 0) {\\n z = 1;\\n }\\n }\\n}\\n\\n// File: contracts/libraries/UQ112x112.sol\\n\\npragma solidity =0.5.16;\\n\\n// a library for handling binary fixed point numbers (https://en.wikipedia.org/wiki/Q_(number_format))\\n\\n// range: [0, 2**112 - 1]\\n// resolution: 1 / 2**112\\n\\nlibrary UQ112x112 {\\n uint224 constant Q112 = 2**112;\\n\\n // encode a uint112 as a UQ112x112\\n function encode(uint112 y) internal pure returns (uint224 z) {\\n z = uint224(y) * Q112; // never overflows\\n }\\n\\n // divide a UQ112x112 by a uint112, returning a UQ112x112\\n function uqdiv(uint224 x, uint112 y) internal pure returns (uint224 z) {\\n z = x / uint224(y);\\n }\\n}\\n\\n// File: contracts/interfaces/IERC20.sol\\n\\npragma solidity \\u003e=0.5.0;\\n\\ninterface IERC20 {\\n event Approval(address indexed owner, address indexed spender, uint value);\\n event Transfer(address indexed from, address indexed to, uint value);\\n\\n function name() external view returns (string memory);\\n function symbol() external view returns (string memory);\\n function decimals() external view returns (uint8);\\n function totalSupply() external view returns (uint);\\n function balanceOf(address owner) external view returns (uint);\\n function allowance(address owner, address spender) external view returns (uint);\\n\\n function approve(address spender, uint value) external returns (bool);\\n function transfer(address to, uint value) external returns (bool);\\n function transferFrom(address from, address to, uint value) external returns (bool);\\n}\\n\\n// File: contracts/interfaces/IUniswapV2Factory.sol\\n\\npragma solidity \\u003e=0.5.0;\\n\\ninterface IUniswapV2Factory {\\n event PairCreated(address indexed token0, address indexed token1, address pair, uint);\\n\\n function feeTo() external view returns (address);\\n function feeToSetter() external view returns (address);\\n\\n function getPair(address tokenA, address tokenB) external view returns (address pair);\\n function allPairs(uint) external view returns (address pair);\\n function allPairsLength() external view returns (uint);\\n\\n function createPair(address tokenA, address tokenB) external returns (address pair);\\n\\n function setFeeTo(address) external;\\n function setFeeToSetter(address) external;\\n}\\n\\n// File: contracts/interfaces/IUniswapV2Callee.sol\\n\\npragma solidity \\u003e=0.5.0;\\n\\ninterface IUniswapV2Callee {\\n function uniswapV2Call(address sender, uint amount0, uint amount1, bytes calldata data) external;\\n}\\n\\n// File: contracts/UniswapV2Pair.sol\\n\\npragma solidity =0.5.16;\\n\\n\\n\\n\\n\\n\\n\\n\\ncontract UniswapV2Pair is IUniswapV2Pair, UniswapV2ERC20 {\\n using SafeMath for uint;\\n using UQ112x112 for uint224;\\n\\n uint public constant MINIMUM_LIQUIDITY = 10**3;\\n bytes4 private constant SELECTOR = bytes4(keccak256(bytes('transfer(address,uint256)')));\\n\\n address public factory;\\n address public token0;\\n address public token1;\\n\\n uint112 private reserve0; // uses single storage slot, accessible via getReserves\\n uint112 private reserve1; // uses single storage slot, accessible via getReserves\\n uint32 private blockTimestampLast; // uses single storage slot, accessible via getReserves\\n\\n uint public price0CumulativeLast;\\n uint public price1CumulativeLast;\\n uint public kLast; // reserve0 * reserve1, as of immediately after the most recent liquidity event\\n\\n uint private unlocked = 1;\\n modifier lock() {\\n require(unlocked == 1, 'UniswapV2: LOCKED');\\n unlocked = 0;\\n _;\\n unlocked = 1;\\n }\\n\\n function getReserves() public view returns (uint112 _reserve0, uint112 _reserve1, uint32 _blockTimestampLast) {\\n _reserve0 = reserve0;\\n _reserve1 = reserve1;\\n _blockTimestampLast = blockTimestampLast;\\n }\\n\\n function _safeTransfer(address token, address to, uint value) private {\\n (bool success, bytes memory data) = token.call(abi.encodeWithSelector(SELECTOR, to, value));\\n require(success \\u0026\\u0026 (data.length == 0 || abi.decode(data, (bool))), 'UniswapV2: TRANSFER_FAILED');\\n }\\n\\n event Mint(address indexed sender, uint amount0, uint amount1);\\n event Burn(address indexed sender, uint amount0, uint amount1, address indexed to);\\n event Swap(\\n address indexed sender,\\n uint amount0In,\\n uint amount1In,\\n uint amount0Out,\\n uint amount1Out,\\n address indexed to\\n );\\n event Sync(uint112 reserve0, uint112 reserve1);\\n\\n constructor() public {\\n factory = msg.sender;\\n }\\n\\n // called once by the factory at time of deployment\\n function initialize(address _token0, address _token1) external {\\n require(msg.sender == factory, 'UniswapV2: FORBIDDEN'); // sufficient check\\n token0 = _token0;\\n token1 = _token1;\\n }\\n\\n // update reserves and, on the first call per block, price accumulators\\n function _update(uint balance0, uint balance1, uint112 _reserve0, uint112 _reserve1) private {\\n require(balance0 \\u003c= uint112(-1) \\u0026\\u0026 balance1 \\u003c= uint112(-1), 'UniswapV2: OVERFLOW');\\n uint32 blockTimestamp = uint32(block.timestamp % 2**32);\\n uint32 timeElapsed = blockTimestamp - blockTimestampLast; // overflow is desired\\n if (timeElapsed \\u003e 0 \\u0026\\u0026 _reserve0 != 0 \\u0026\\u0026 _reserve1 != 0) {\\n // * never overflows, and + overflow is desired\\n price0CumulativeLast += uint(UQ112x112.encode(_reserve1).uqdiv(_reserve0)) * timeElapsed;\\n price1CumulativeLast += uint(UQ112x112.encode(_reserve0).uqdiv(_reserve1)) * timeElapsed;\\n }\\n reserve0 = uint112(balance0);\\n reserve1 = uint112(balance1);\\n blockTimestampLast = blockTimestamp;\\n emit Sync(reserve0, reserve1);\\n }\\n\\n // if fee is on, mint liquidity equivalent to 1/6th of the growth in sqrt(k)\\n function _mintFee(uint112 _reserve0, uint112 _reserve1) private returns (bool feeOn) {\\n address feeTo = IUniswapV2Factory(factory).feeTo();\\n feeOn = feeTo != address(0);\\n uint _kLast = kLast; // gas savings\\n if (feeOn) {\\n if (_kLast != 0) {\\n uint rootK = Math.sqrt(uint(_reserve0).mul(_reserve1));\\n uint rootKLast = Math.sqrt(_kLast);\\n if (rootK \\u003e rootKLast) {\\n uint numerator = totalSupply.mul(rootK.sub(rootKLast));\\n uint denominator = rootK.mul(5).add(rootKLast);\\n uint liquidity = numerator / denominator;\\n if (liquidity \\u003e 0) _mint(feeTo, liquidity);\\n }\\n }\\n } else if (_kLast != 0) {\\n kLast = 0;\\n }\\n }\\n\\n // this low-level function should be called from a contract which performs important safety checks\\n function mint(address to) external lock returns (uint liquidity) {\\n (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings\\n uint balance0 = IERC20(token0).balanceOf(address(this));\\n uint balance1 = IERC20(token1).balanceOf(address(this));\\n uint amount0 = balance0.sub(_reserve0);\\n uint amount1 = balance1.sub(_reserve1);\\n\\n bool feeOn = _mintFee(_reserve0, _reserve1);\\n uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\\n if (_totalSupply == 0) {\\n liquidity = Math.sqrt(amount0.mul(amount1)).sub(MINIMUM_LIQUIDITY);\\n _mint(address(0), MINIMUM_LIQUIDITY); // permanently lock the first MINIMUM_LIQUIDITY tokens\\n } else {\\n liquidity = Math.min(amount0.mul(_totalSupply) / _reserve0, amount1.mul(_totalSupply) / _reserve1);\\n }\\n require(liquidity \\u003e 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_MINTED');\\n _mint(to, liquidity);\\n\\n _update(balance0, balance1, _reserve0, _reserve1);\\n if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\\n emit Mint(msg.sender, amount0, amount1);\\n }\\n\\n // this low-level function should be called from a contract which performs important safety checks\\n function burn(address to) external lock returns (uint amount0, uint amount1) {\\n (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings\\n address _token0 = token0; // gas savings\\n address _token1 = token1; // gas savings\\n uint balance0 = IERC20(_token0).balanceOf(address(this));\\n uint balance1 = IERC20(_token1).balanceOf(address(this));\\n uint liquidity = balanceOf[address(this)];\\n\\n bool feeOn = _mintFee(_reserve0, _reserve1);\\n uint _totalSupply = totalSupply; // gas savings, must be defined here since totalSupply can update in _mintFee\\n amount0 = liquidity.mul(balance0) / _totalSupply; // using balances ensures pro-rata distribution\\n amount1 = liquidity.mul(balance1) / _totalSupply; // using balances ensures pro-rata distribution\\n require(amount0 \\u003e 0 \\u0026\\u0026 amount1 \\u003e 0, 'UniswapV2: INSUFFICIENT_LIQUIDITY_BURNED');\\n _burn(address(this), liquidity);\\n _safeTransfer(_token0, to, amount0);\\n _safeTransfer(_token1, to, amount1);\\n balance0 = IERC20(_token0).balanceOf(address(this));\\n balance1 = IERC20(_token1).balanceOf(address(this));\\n\\n _update(balance0, balance1, _reserve0, _reserve1);\\n if (feeOn) kLast = uint(reserve0).mul(reserve1); // reserve0 and reserve1 are up-to-date\\n emit Burn(msg.sender, amount0, amount1, to);\\n }\\n\\n // this low-level function should be called from a contract which performs important safety checks\\n function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external lock {\\n require(amount0Out \\u003e 0 || amount1Out \\u003e 0, 'UniswapV2: INSUFFICIENT_OUTPUT_AMOUNT');\\n (uint112 _reserve0, uint112 _reserve1,) = getReserves(); // gas savings\\n require(amount0Out \\u003c _reserve0 \\u0026\\u0026 amount1Out \\u003c _reserve1, 'UniswapV2: INSUFFICIENT_LIQUIDITY');\\n\\n uint balance0;\\n uint balance1;\\n { // scope for _token{0,1}, avoids stack too deep errors\\n address _token0 = token0;\\n address _token1 = token1;\\n require(to != _token0 \\u0026\\u0026 to != _token1, 'UniswapV2: INVALID_TO');\\n if (amount0Out \\u003e 0) _safeTransfer(_token0, to, amount0Out); // optimistically transfer tokens\\n if (amount1Out \\u003e 0) _safeTransfer(_token1, to, amount1Out); // optimistically transfer tokens\\n if (data.length \\u003e 0) IUniswapV2Callee(to).uniswapV2Call(msg.sender, amount0Out, amount1Out, data);\\n balance0 = IERC20(_token0).balanceOf(address(this));\\n balance1 = IERC20(_token1).balanceOf(address(this));\\n }\\n uint amount0In = balance0 \\u003e _reserve0 - amount0Out ? balance0 - (_reserve0 - amount0Out) : 0;\\n uint amount1In = balance1 \\u003e _reserve1 - amount1Out ? balance1 - (_reserve1 - amount1Out) : 0;\\n require(amount0In \\u003e 0 || amount1In \\u003e 0, 'UniswapV2: INSUFFICIENT_INPUT_AMOUNT');\\n { // scope for reserve{0,1}Adjusted, avoids stack too deep errors\\n uint balance0Adjusted = balance0.mul(1000).sub(amount0In.mul(3));\\n uint balance1Adjusted = balance1.mul(1000).sub(amount1In.mul(3));\\n require(balance0Adjusted.mul(balance1Adjusted) \\u003e= uint(_reserve0).mul(_reserve1).mul(1000**2), 'UniswapV2: K');\\n }\\n\\n _update(balance0, balance1, _reserve0, _reserve1);\\n emit Swap(msg.sender, amount0In, amount1In, amount0Out, amount1Out, to);\\n }\\n\\n // force balances to match reserves\\n function skim(address to) external lock {\\n address _token0 = token0; // gas savings\\n address _token1 = token1; // gas savings\\n _safeTransfer(_token0, to, IERC20(_token0).balanceOf(address(this)).sub(reserve0));\\n _safeTransfer(_token1, to, IERC20(_token1).balanceOf(address(this)).sub(reserve1));\\n }\\n\\n // force reserves to match balances\\n function sync() external lock {\\n _update(IERC20(token0).balanceOf(address(this)), IERC20(token1).balanceOf(address(this)), reserve0, reserve1);\\n }\\n}\"}],\"abi\":[{\"type\":\"constructor\",\"name\":\"\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[],\"outputs\":null},{\"type\":\"function\",\"name\":\"allowance\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"factory\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"symbol\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"name\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"totalSupply\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"token0\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"permit\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"deadline\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"v\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"r\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"s\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"approve\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"kLast\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"token1\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"nonces\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"skim\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"MINIMUM_LIQUIDITY\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"initialize\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_token0\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_token1\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"sync\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[],\"outputs\":[]},{\"type\":\"function\",\"name\":\"price1CumulativeLast\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"burn\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"amount0\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"getReserves\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"_reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"_reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"_blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"transferFrom\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"mint\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"liquidity\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"PERMIT_TYPEHASH\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}]},{\"type\":\"function\",\"name\":\"decimals\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint8\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"DOMAIN_SEPARATOR\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bytes32\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}]},{\"type\":\"function\",\"name\":\"balanceOf\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"swap\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"data\",\"type\":\"bytes\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"price0CumulativeLast\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"event\",\"name\":\"Burn\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"amount0\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Mint\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"amount0\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Swap\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"sender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"amount0In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1In\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount0Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"amount1Out\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Sync\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Approval\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null}],\"raw_abi\":null,\"states\":[{\"name\":\"token0\",\"type\":\"address\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000006\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"DOMAIN_SEPARATOR\",\"type\":\"bytes32\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000003\",\"indexed\":false,\"simple_type\":{\"type\":\"bytes\"}},{\"name\":\"reserve1\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":112,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"blockTimestampLast\",\"type\":\"uint32\",\"storage_location\":\"storage\",\"components\":null,\"offset\":224,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"allowance\",\"type\":\"mapping (address =\\u003e mapping (address =\\u003e uint256))\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},{\"name\":\"totalSupply\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"nonces\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"indexed\":false},{\"name\":\"factory\",\"type\":\"address\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000005\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"token1\",\"type\":\"address\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000007\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"price1CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"unlocked\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000c\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"reserve0\",\"type\":\"uint112\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"price0CumulativeLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"kLast\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000b\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"balanceOf\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"indexed\":false}]},\"creation_block\":0,\"creation_tx\":\"\",\"creator_address\":\"\",\"created_at\":\"2020-09-26T10:25:12Z\",\"number_of_watches\":null,\"language\":\"solidity\",\"in_project\":false,\"number_of_files\":1},{\"id\":\"eth:1:0xdac17f958d2ee523a2206206994597c13d831ec7\",\"contract_id\":\"eth:1:0xdac17f958d2ee523a2206206994597c13d831ec7\",\"balance\":\"\",\"network_id\":\"1\",\"public\":true,\"export\":false,\"verified_by\":\"etherscan\",\"verification_date\":null,\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"contract_name\":\"TetherToken\",\"ens_domain\":null,\"type\":\"contract\",\"standard\":\"erc20\",\"standards\":[\"custom_proxy_function\",\"erc20\"],\"token_data\":{\"symbol\":\"USDT\",\"name\":\"Tether USD\",\"decimals\":6,\"main\":true},\"evm_version\":\"default\",\"compiler_version\":\"v0.4.18+commit.9cf6e910\",\"optimizations_used\":false,\"optimization_runs\":0,\"libraries\":null,\"data\":{\"main_contract\":0,\"contract_info\":[{\"id\":0,\"path\":\"TetherToken.sol\",\"name\":\"TetherToken.sol\",\"source\":\"pragma solidity ^0.4.17;\\n\\n/**\\n * @title SafeMath\\n * @dev Math operations with safety checks that throw on error\\n */\\nlibrary SafeMath {\\n function mul(uint256 a, uint256 b) internal pure returns (uint256) {\\n if (a == 0) {\\n return 0;\\n }\\n uint256 c = a * b;\\n assert(c / a == b);\\n return c;\\n }\\n\\n function div(uint256 a, uint256 b) internal pure returns (uint256) {\\n // assert(b \\u003e 0); // Solidity automatically throws when dividing by 0\\n uint256 c = a / b;\\n // assert(a == b * c + a % b); // There is no case in which this doesn't hold\\n return c;\\n }\\n\\n function sub(uint256 a, uint256 b) internal pure returns (uint256) {\\n assert(b \\u003c= a);\\n return a - b;\\n }\\n\\n function add(uint256 a, uint256 b) internal pure returns (uint256) {\\n uint256 c = a + b;\\n assert(c \\u003e= a);\\n return c;\\n }\\n}\\n\\n/**\\n * @title Ownable\\n * @dev The Ownable contract has an owner address, and provides basic authorization control\\n * functions, this simplifies the implementation of \\\"user permissions\\\".\\n */\\ncontract Ownable {\\n address public owner;\\n\\n /**\\n * @dev The Ownable constructor sets the original `owner` of the contract to the sender\\n * account.\\n */\\n function Ownable() public {\\n owner = msg.sender;\\n }\\n\\n /**\\n * @dev Throws if called by any account other than the owner.\\n */\\n modifier onlyOwner() {\\n require(msg.sender == owner);\\n _;\\n }\\n\\n /**\\n * @dev Allows the current owner to transfer control of the contract to a newOwner.\\n * @param newOwner The address to transfer ownership to.\\n */\\n function transferOwnership(address newOwner) public onlyOwner {\\n if (newOwner != address(0)) {\\n owner = newOwner;\\n }\\n }\\n\\n}\\n\\n/**\\n * @title ERC20Basic\\n * @dev Simpler version of ERC20 interface\\n * @dev see https://github.com/ethereum/EIPs/issues/20\\n */\\ncontract ERC20Basic {\\n uint public _totalSupply;\\n function totalSupply() public constant returns (uint);\\n function balanceOf(address who) public constant returns (uint);\\n function transfer(address to, uint value) public;\\n event Transfer(address indexed from, address indexed to, uint value);\\n}\\n\\n/**\\n * @title ERC20 interface\\n * @dev see https://github.com/ethereum/EIPs/issues/20\\n */\\ncontract ERC20 is ERC20Basic {\\n function allowance(address owner, address spender) public constant returns (uint);\\n function transferFrom(address from, address to, uint value) public;\\n function approve(address spender, uint value) public;\\n event Approval(address indexed owner, address indexed spender, uint value);\\n}\\n\\n/**\\n * @title Basic token\\n * @dev Basic version of StandardToken, with no allowances.\\n */\\ncontract BasicToken is Ownable, ERC20Basic {\\n using SafeMath for uint;\\n\\n mapping(address =\\u003e uint) public balances;\\n\\n // additional variables for use if transaction fees ever became necessary\\n uint public basisPointsRate = 0;\\n uint public maximumFee = 0;\\n\\n /**\\n * @dev Fix for the ERC20 short address attack.\\n */\\n modifier onlyPayloadSize(uint size) {\\n require(!(msg.data.length \\u003c size + 4));\\n _;\\n }\\n\\n /**\\n * @dev transfer token for a specified address\\n * @param _to The address to transfer to.\\n * @param _value The amount to be transferred.\\n */\\n function transfer(address _to, uint _value) public onlyPayloadSize(2 * 32) {\\n uint fee = (_value.mul(basisPointsRate)).div(10000);\\n if (fee \\u003e maximumFee) {\\n fee = maximumFee;\\n }\\n uint sendAmount = _value.sub(fee);\\n balances[msg.sender] = balances[msg.sender].sub(_value);\\n balances[_to] = balances[_to].add(sendAmount);\\n if (fee \\u003e 0) {\\n balances[owner] = balances[owner].add(fee);\\n Transfer(msg.sender, owner, fee);\\n }\\n Transfer(msg.sender, _to, sendAmount);\\n }\\n\\n /**\\n * @dev Gets the balance of the specified address.\\n * @param _owner The address to query the the balance of.\\n * @return An uint representing the amount owned by the passed address.\\n */\\n function balanceOf(address _owner) public constant returns (uint balance) {\\n return balances[_owner];\\n }\\n\\n}\\n\\n/**\\n * @title Standard ERC20 token\\n *\\n * @dev Implementation of the basic standard token.\\n * @dev https://github.com/ethereum/EIPs/issues/20\\n * @dev Based oncode by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol\\n */\\ncontract StandardToken is BasicToken, ERC20 {\\n\\n mapping (address =\\u003e mapping (address =\\u003e uint)) public allowed;\\n\\n uint public constant MAX_UINT = 2**256 - 1;\\n\\n /**\\n * @dev Transfer tokens from one address to another\\n * @param _from address The address which you want to send tokens from\\n * @param _to address The address which you want to transfer to\\n * @param _value uint the amount of tokens to be transferred\\n */\\n function transferFrom(address _from, address _to, uint _value) public onlyPayloadSize(3 * 32) {\\n var _allowance = allowed[_from][msg.sender];\\n\\n // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met\\n // if (_value \\u003e _allowance) throw;\\n\\n uint fee = (_value.mul(basisPointsRate)).div(10000);\\n if (fee \\u003e maximumFee) {\\n fee = maximumFee;\\n }\\n if (_allowance \\u003c MAX_UINT) {\\n allowed[_from][msg.sender] = _allowance.sub(_value);\\n }\\n uint sendAmount = _value.sub(fee);\\n balances[_from] = balances[_from].sub(_value);\\n balances[_to] = balances[_to].add(sendAmount);\\n if (fee \\u003e 0) {\\n balances[owner] = balances[owner].add(fee);\\n Transfer(_from, owner, fee);\\n }\\n Transfer(_from, _to, sendAmount);\\n }\\n\\n /**\\n * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender.\\n * @param _spender The address which will spend the funds.\\n * @param _value The amount of tokens to be spent.\\n */\\n function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {\\n\\n // To change the approve amount you first have to reduce the addresses`\\n // allowance to zero by calling `approve(_spender, 0)` if it is not\\n // already 0 to mitigate the race condition described here:\\n // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\\n require(!((_value != 0) \\u0026\\u0026 (allowed[msg.sender][_spender] != 0)));\\n\\n allowed[msg.sender][_spender] = _value;\\n Approval(msg.sender, _spender, _value);\\n }\\n\\n /**\\n * @dev Function to check the amount of tokens than an owner allowed to a spender.\\n * @param _owner address The address which owns the funds.\\n * @param _spender address The address which will spend the funds.\\n * @return A uint specifying the amount of tokens still available for the spender.\\n */\\n function allowance(address _owner, address _spender) public constant returns (uint remaining) {\\n return allowed[_owner][_spender];\\n }\\n\\n}\\n\\n\\n/**\\n * @title Pausable\\n * @dev Base contract which allows children to implement an emergency stop mechanism.\\n */\\ncontract Pausable is Ownable {\\n event Pause();\\n event Unpause();\\n\\n bool public paused = false;\\n\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is not paused.\\n */\\n modifier whenNotPaused() {\\n require(!paused);\\n _;\\n }\\n\\n /**\\n * @dev Modifier to make a function callable only when the contract is paused.\\n */\\n modifier whenPaused() {\\n require(paused);\\n _;\\n }\\n\\n /**\\n * @dev called by the owner to pause, triggers stopped state\\n */\\n function pause() onlyOwner whenNotPaused public {\\n paused = true;\\n Pause();\\n }\\n\\n /**\\n * @dev called by the owner to unpause, returns to normal state\\n */\\n function unpause() onlyOwner whenPaused public {\\n paused = false;\\n Unpause();\\n }\\n}\\n\\ncontract BlackList is Ownable, BasicToken {\\n\\n /////// Getters to allow the same blacklist to be used also by other contracts (including upgraded Tether) ///////\\n function getBlackListStatus(address _maker) external constant returns (bool) {\\n return isBlackListed[_maker];\\n }\\n\\n function getOwner() external constant returns (address) {\\n return owner;\\n }\\n\\n mapping (address =\\u003e bool) public isBlackListed;\\n \\n function addBlackList (address _evilUser) public onlyOwner {\\n isBlackListed[_evilUser] = true;\\n AddedBlackList(_evilUser);\\n }\\n\\n function removeBlackList (address _clearedUser) public onlyOwner {\\n isBlackListed[_clearedUser] = false;\\n RemovedBlackList(_clearedUser);\\n }\\n\\n function destroyBlackFunds (address _blackListedUser) public onlyOwner {\\n require(isBlackListed[_blackListedUser]);\\n uint dirtyFunds = balanceOf(_blackListedUser);\\n balances[_blackListedUser] = 0;\\n _totalSupply -= dirtyFunds;\\n DestroyedBlackFunds(_blackListedUser, dirtyFunds);\\n }\\n\\n event DestroyedBlackFunds(address _blackListedUser, uint _balance);\\n\\n event AddedBlackList(address _user);\\n\\n event RemovedBlackList(address _user);\\n\\n}\\n\\ncontract UpgradedStandardToken is StandardToken{\\n // those methods are called by the legacy contract\\n // and they must ensure msg.sender to be the contract address\\n function transferByLegacy(address from, address to, uint value) public;\\n function transferFromByLegacy(address sender, address from, address spender, uint value) public;\\n function approveByLegacy(address from, address spender, uint value) public;\\n}\\n\\ncontract TetherToken is Pausable, StandardToken, BlackList {\\n\\n string public name;\\n string public symbol;\\n uint public decimals;\\n address public upgradedAddress;\\n bool public deprecated;\\n\\n // The contract can be initialized with a number of tokens\\n // All the tokens are deposited to the owner address\\n //\\n // @param _balance Initial supply of the contract\\n // @param _name Token Name\\n // @param _symbol Token symbol\\n // @param _decimals Token decimals\\n function TetherToken(uint _initialSupply, string _name, string _symbol, uint _decimals) public {\\n _totalSupply = _initialSupply;\\n name = _name;\\n symbol = _symbol;\\n decimals = _decimals;\\n balances[owner] = _initialSupply;\\n deprecated = false;\\n }\\n\\n // Forward ERC20 methods to upgraded contract if this one is deprecated\\n function transfer(address _to, uint _value) public whenNotPaused {\\n require(!isBlackListed[msg.sender]);\\n if (deprecated) {\\n return UpgradedStandardToken(upgradedAddress).transferByLegacy(msg.sender, _to, _value);\\n } else {\\n return super.transfer(_to, _value);\\n }\\n }\\n\\n // Forward ERC20 methods to upgraded contract if this one is deprecated\\n function transferFrom(address _from, address _to, uint _value) public whenNotPaused {\\n require(!isBlackListed[_from]);\\n if (deprecated) {\\n return UpgradedStandardToken(upgradedAddress).transferFromByLegacy(msg.sender, _from, _to, _value);\\n } else {\\n return super.transferFrom(_from, _to, _value);\\n }\\n }\\n\\n // Forward ERC20 methods to upgraded contract if this one is deprecated\\n function balanceOf(address who) public constant returns (uint) {\\n if (deprecated) {\\n return UpgradedStandardToken(upgradedAddress).balanceOf(who);\\n } else {\\n return super.balanceOf(who);\\n }\\n }\\n\\n // Forward ERC20 methods to upgraded contract if this one is deprecated\\n function approve(address _spender, uint _value) public onlyPayloadSize(2 * 32) {\\n if (deprecated) {\\n return UpgradedStandardToken(upgradedAddress).approveByLegacy(msg.sender, _spender, _value);\\n } else {\\n return super.approve(_spender, _value);\\n }\\n }\\n\\n // Forward ERC20 methods to upgraded contract if this one is deprecated\\n function allowance(address _owner, address _spender) public constant returns (uint remaining) {\\n if (deprecated) {\\n return StandardToken(upgradedAddress).allowance(_owner, _spender);\\n } else {\\n return super.allowance(_owner, _spender);\\n }\\n }\\n\\n // deprecate current contract in favour of a new one\\n function deprecate(address _upgradedAddress) public onlyOwner {\\n deprecated = true;\\n upgradedAddress = _upgradedAddress;\\n Deprecate(_upgradedAddress);\\n }\\n\\n // deprecate current contract if favour of a new one\\n function totalSupply() public constant returns (uint) {\\n if (deprecated) {\\n return StandardToken(upgradedAddress).totalSupply();\\n } else {\\n return _totalSupply;\\n }\\n }\\n\\n // Issue a new amount of tokens\\n // these tokens are deposited into the owner address\\n //\\n // @param _amount Number of tokens to be issued\\n function issue(uint amount) public onlyOwner {\\n require(_totalSupply + amount \\u003e _totalSupply);\\n require(balances[owner] + amount \\u003e balances[owner]);\\n\\n balances[owner] += amount;\\n _totalSupply += amount;\\n Issue(amount);\\n }\\n\\n // Redeem tokens.\\n // These tokens are withdrawn from the owner address\\n // if the balance must be enough to cover the redeem\\n // or the call will fail.\\n // @param _amount Number of tokens to be issued\\n function redeem(uint amount) public onlyOwner {\\n require(_totalSupply \\u003e= amount);\\n require(balances[owner] \\u003e= amount);\\n\\n _totalSupply -= amount;\\n balances[owner] -= amount;\\n Redeem(amount);\\n }\\n\\n function setParams(uint newBasisPoints, uint newMaxFee) public onlyOwner {\\n // Ensure transparency by hardcoding limit beyond which fees can never be added\\n require(newBasisPoints \\u003c 20);\\n require(newMaxFee \\u003c 50);\\n\\n basisPointsRate = newBasisPoints;\\n maximumFee = newMaxFee.mul(10**decimals);\\n\\n Params(basisPointsRate, maximumFee);\\n }\\n\\n // Called when new token are issued\\n event Issue(uint amount);\\n\\n // Called when tokens are redeemed\\n event Redeem(uint amount);\\n\\n // Called when contract is deprecated\\n event Deprecate(address newAddress);\\n\\n // Called if contract ever adds fees\\n event Params(uint feeBasisPoints, uint maxFee);\\n}\"}],\"abi\":[{\"type\":\"constructor\",\"name\":\"\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"_initialSupply\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"_name\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}},{\"name\":\"_symbol\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}},{\"name\":\"_decimals\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"function\",\"name\":\"getOwner\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"addBlackList\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_evilUser\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"transferFrom\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"unpause\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[],\"outputs\":[]},{\"type\":\"function\",\"name\":\"issue\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"_totalSupply\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"transferOwnership\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"newOwner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"removeBlackList\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_clearedUser\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"name\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"setParams\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"newBasisPoints\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"newMaxFee\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"isBlackListed\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"allowed\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"paused\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"approve\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"balances\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"deprecated\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"maximumFee\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"allowance\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"_owner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"remaining\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"destroyBlackFunds\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_blackListedUser\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"owner\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"deprecate\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_upgradedAddress\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"MAX_UINT\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"pause\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[],\"outputs\":[]},{\"type\":\"function\",\"name\":\"totalSupply\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"redeem\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"basisPointsRate\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"getBlackListStatus\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"_maker\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"bool\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}}]},{\"type\":\"function\",\"name\":\"symbol\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"string\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}}]},{\"type\":\"function\",\"name\":\"balanceOf\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[{\"name\":\"who\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"function\",\"name\":\"transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"nonpayable\",\"inputs\":[{\"name\":\"_to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":[]},{\"type\":\"function\",\"name\":\"upgradedAddress\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}]},{\"type\":\"function\",\"name\":\"decimals\",\"constant\":true,\"anonymous\":false,\"stateMutability\":\"view\",\"inputs\":[],\"outputs\":[{\"name\":\"\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},{\"type\":\"event\",\"name\":\"Transfer\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"from\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"to\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"AddedBlackList\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"_user\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Pause\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[],\"outputs\":null},{\"type\":\"event\",\"name\":\"Redeem\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Deprecate\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"newAddress\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"DestroyedBlackFunds\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"_blackListedUser\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_balance\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Unpause\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[],\"outputs\":null},{\"type\":\"event\",\"name\":\"Issue\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"amount\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Params\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"feeBasisPoints\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"maxFee\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"RemovedBlackList\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"_user\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}}],\"outputs\":null},{\"type\":\"event\",\"name\":\"Approval\",\"constant\":false,\"anonymous\":false,\"stateMutability\":\"\",\"inputs\":[{\"name\":\"owner\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"spender\",\"type\":\"address\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":true,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"value\",\"type\":\"uint256\",\"storage_location\":\"default\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}],\"outputs\":null}],\"raw_abi\":null,\"states\":[{\"name\":\"decimals\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"upgradedAddress\",\"type\":\"address\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"deprecated\",\"type\":\"bool\",\"storage_location\":\"storage\",\"components\":null,\"offset\":160,\"index\":\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"balances\",\"type\":\"mapping (address =\\u003e uint256)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000002\",\"indexed\":false},{\"name\":\"maximumFee\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"allowed\",\"type\":\"mapping (address =\\u003e mapping (address =\\u003e uint256))\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000005\",\"indexed\":false},{\"name\":\"paused\",\"type\":\"bool\",\"storage_location\":\"storage\",\"components\":null,\"offset\":160,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"bool\"}},{\"name\":\"isBlackListed\",\"type\":\"mapping (address =\\u003e bool)\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000006\",\"indexed\":false},{\"name\":\"name\",\"type\":\"string\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000007\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}},{\"name\":\"symbol\",\"type\":\"string\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"indexed\":false,\"simple_type\":{\"type\":\"string\"}},{\"name\":\"owner\",\"type\":\"address\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"indexed\":false,\"simple_type\":{\"type\":\"address\"}},{\"name\":\"_totalSupply\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000001\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}},{\"name\":\"basisPointsRate\",\"type\":\"uint256\",\"storage_location\":\"storage\",\"components\":null,\"offset\":0,\"index\":\"0x0000000000000000000000000000000000000000000000000000000000000003\",\"indexed\":false,\"simple_type\":{\"type\":\"uint\"}}]},\"creation_block\":0,\"creation_tx\":\"\",\"creator_address\":\"\",\"created_at\":\"2020-04-16T03:35:23Z\",\"number_of_watches\":null,\"language\":\"solidity\",\"in_project\":false,\"number_of_files\":1}],\"generated_access_list\":[{\"address\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"storage_keys\":[\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\"]},{\"address\":\"0xb20bd5d04be54f870d5c0d3ca85d82b34b836405\",\"storage_keys\":[\"0x0000000000000000000000000000000000000000000000000000000000000007\",\"0x0000000000000000000000000000000000000000000000000000000000000009\",\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"0x0000000000000000000000000000000000000000000000000000000000000008\",\"0x000000000000000000000000000000000000000000000000000000000000000c\",\"0x0000000000000000000000000000000000000000000000000000000000000006\"]},{\"address\":\"0xdac17f958d2ee523a2206206994597c13d831ec7\",\"storage_keys\":[\"0x0e1a3e68653f58cca4abbf215c8b02f7148ffd9efcb3abf0e0ecfbc1d041e37f\",\"0x759ebf061baf585c99e31ae2e878792704a737b70719d1ed8895fe7d10c01bf7\",\"0xb4a11ebc169a33bf87887fd9d60054003ed82498fe7770ecc7973bfc44ef0adc\",\"0xa79e840cda47ccf368ba9809444530e4a89e9944dfbbfebbc10fb2e7368a3a3c\",\"0x78b35599871be95768b2fdfaf9293a4491ecdc8ef25b872ee404fa1e441436e0\",\"0x0000000000000000000000000000000000000000000000000000000000000004\",\"0xc927baa18cea0854ed122a0e71c436fe84c403a5d7d59a74b1cc2023e69b6a05\",\"0xa44a93a291d440b0679e781b189812a788a2941ff5febee8a168678303291965\",\"0x15332800cdb104e314b2a7a1bc7b302a6529e9f3a58b7824de9f5a965f5d0434\",\"0x54adf2f6ab52ba4d436c062105831ebb385686d2b9e56fb37ac35e4fa8ad5383\",\"0x069b2a714c2eae4f4d45ff08fac54b9ddd9f208cad825253e17d5ceb3d16a06b\",\"0x0000000000000000000000000000000000000000000000000000000000000000\",\"0x2f4e85449ae09aa2f6b635f2e3b22de7f758f58fb1880d0745bd49baea09da2f\",\"0xbc1636edea39e9316a270bde15e920c3eb180576ee2e87cc99fb5d771cf8f5d1\",\"0xb390907d2b04c3efe6c20926b3729f8c96079510c8adfbf74830685e89083629\",\"0x7ee0f03816cdacda4871568c3c59b9ebc056b05ac1dd8979614ed83dfc4bd99c\",\"0x5ec3658532355136753137055342f1e240a8f69a1deb797c6b2442ecd8185c27\",\"0xcb644715391f183e7a95db8c1223d24e3a0a87651591c68e5ed0c72785d273de\",\"0x19e302a6c7aa703f9116c49ce9aa95d0a31d4117bcafe3dcfd9d432fe6bf3099\",\"0x1eed5eb40b1306ec786a59bb67496dda4d01a2cf599c216d27905a415b5c5f43\",\"0x5ea7e0328f8a67135d62817007a4dee7ed18f9e142e93fa88f20fca45585dc10\",\"0x47e13e11ae88ca4d204e4fb20d8c403eb1f807c1da6eb3baffa4ccbb5a9dad75\",\"0xa62c3fbd3be035e0fbc429bd343d54bbd3ffa377d3f36de93d1f039f6a64dec4\",\"0x8599509265eed03598f0ebf2a04bc71b795172b73dcc6bdabfb78d31a3af3a01\",\"0x0000000000000000000000000000000000000000000000000000000000000003\",\"0x95aed48a3e299b1bd009cb96e9df36494b58e68acb959025a85a3468dc48bea0\",\"0x17e509ff55219b1cf32862f47f604daf213eee85a4d72ede53560b7159336308\",\"0x29fa5b1a4ac0263f18489504f341410d447d524990124199b732749eb5306e8b\",\"0xbb72be11784f7d834ae7c1358eb6207bdf76105dc06a4fb1e8588cd810d12e3a\",\"0x01d12c8b092d62a156054e5b4e8b7dbe89bbb39781011e1fe677791e57c35440\",\"0x857e0586aa9e3fc4a8f93656f39b02a0dce91455b9770de17aadc659fa3c1b10\",\"0x983df87e753225120fe26cba505bc681a721b5d4445de08a9355b2c584eecde0\",\"0x000000000000000000000000000000000000000000000000000000000000000a\",\"0x1cd6712cb115669952109687868f0ab883294819576ed633fa645e4bcda910a4\"]}]}"
res := &providers.TenderlySimulateRes{}
err := json.Unmarshal([]byte(params), res)
if err != nil {
t.Errorf("parse res error: %s", err)
return
}
t.Logf("res: %v", res.Simulation)
}
func TestBundledSimulations(t *testing.T) {
tests := []testSimulate{
{
name: "normal request",
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "tenderly-cli-test",
tps: 1,
params: "{\"simulations\":[{\"network_id\":\"1\",\"save\":true,\"save_if_fails\":true,\"simulation_type\":\"full\",\"from\":\"0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"input\":\"0x40c10f19000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce10000000000000000000000000000000000000000000000001bc16d674ec80000\",\"state_objects\":{\"0x6b175474e89094c44da98b954eedeac495271d0f\":{\"storage\":{\"0xedd7d04419e9c48ceb6055956cbb4e2091ae310313a4d1fa7cbcfe7561616e03\":\"0x0000000000000000000000000000000000000000000000000000000000000001\"}}}},{\"network_id\":\"1\",\"save\":true,\"save_if_fails\":true,\"simulation_type\":\"full\",\"from\":\"0xe58b9ee93700a616b50509c8292977fa7a0f8ce1\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"input\":\"0x095ea7b3000000000000000000000000f7ddedc66b1d482e5c38e4730b3357d32411e5dd0000000000000000000000000000000000000000000000000de0b6b3a7640000\"},{\"network_id\":\"1\",\"save\":true,\"save_if_fails\":true,\"simulation_type\":\"full\",\"from\":\"0xf7ddedc66b1d482e5c38e4730b3357d32411e5dd\",\"to\":\"0x6b175474e89094c44da98b954eedeac495271d0f\",\"input\":\"0x23b872dd000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce1000000000000000000000000bd8daa414fda8a8a129f7035e7496759c5af8570000000000000000000000000000000000000000000000000006a94d74f430000\"}]}",
},
{
name: "error request: invalid_contract_address",
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "tenderly-cli-test",
tps: 1,
params: `{"simulations":[{"network_id":"1","save":true,"save_if_fails":true,"simulation_type":"full","from":"0xe2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2e2","to":"0x6b175474e89094c44da98b954eedeac495271d0f","input":"0x40c10f19000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce10000000000000000000000000000000000000000000000001bc16d674ec80000","state_objects":{"0x6b175474e89094c44da98b954eedeac495271d0f":{"storage":{"0xedd7d04419e9c48ceb6055956cbb4e2091ae310313a4d1fa7cbcfe7561616e03":"0x0000000000000000000000000000000000000000000000000000000000000001"}}}},{"network_id":"1","save":true,"save_if_fails":true,"simulation_type":"full","from":"0xe58b9ee93700a616b50509c8292977fa7a0f8ce1","to":"0x6b175474e89094c44da98b954eedeac495271d0f","input":"0x095ea7b3000000000000000000000000f7ddedc66b1d482e5c38e4730b3357d32411e5dd0000000000000000000000000000000000000000000000000de0b6b3a7640000"},{"network_id":"1","save":true,"save_if_fails":true,"simulation_type":"full","from":"0xf7ddedc66b1d482e5c38e4730b3357d32411e","to":"0x6b175474e89094c44da98b954eedeac495271d","input":"0x23b872dd000000000000000000000000e58b9ee93700a616b50509c8292977fa7a0f8ce1000000000000000000000000bd8daa414fda8a8a129f7035e7496759c5af8570000000000000000000000000000000000000000000000000006a94d74f430000"}]}`,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
simulator := NewSimulate("", tt.account, tt.project, tt.token, tt.tps).SimulateGetter(SimulateTenderly)
simulations, err := simulator.BundledSimulations(tt.params)
if err != nil {
t.Errorf("req bundled simulations error: %s", err)
return
}
marshal, _ := json.Marshal(simulations)
t.Logf("res: %s", string(marshal))
})
}
}
func TestTenderly(t *testing.T) {
tests := []testSimulate{
{
name: "add project on tenderly",
action: actionAddProject,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "project",
tps: 1,
params: "",
},
{
name: "rename project on tenderly",
action: actionRenameProject,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "project",
tps: 1,
params: "",
},
{
name: "simulate failed for tenderly",
action: actionSimulate,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 1,
params: `{"network_id":"1","block_number":14365389,"transaction_index":0,"from":"0x7da5eacc8628f22d5e56ed0018751a8921942e38","input":"0xf8ca0f85174876e80083030d40947cad06b811b5d9d3ff197c1a046abcbc0efbcbc980b864d675fd260000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c626a0189c5d42fea496685df9488e8c2b761a278a7a6744383a9a6d7927dc11f70c29a02a948c7f03f80a30cf7fe5262c0f95068fa2c111b655d6a73cc223b151b6c0dc","to":"0x7cad06b811b5d9d3ff197c1a046abcbc0efbcbc9","gas":200000,"gas_price":"100000000000","value":"0","access_list":[],"generate_access_list":true,"save":false,"source":"dashboard"}`,
},
{
name: "simulate success for tenderly",
action: actionSimulate,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "tenderly-cli-test",
tps: 1,
params: `{"network_id":"1","block_number":14365440,"transaction_index":0,"from":"0x7da5eacc8628f22d5e56ed0018751a8921942e38","input":"0xd675fd260000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c7","to":"0x7cad06b811b5d9d3ff197c1a046abcbc0efbcbc9","gas":200000,"gas_price":"100000000000","value":"0","access_list":[],"generate_access_list":true,"save":false,"source":"dashboard"}`,
},
{
name: "new simulate success for tenderly",
action: actionSimulate,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "tenderly-cli-test",
tps: 1,
params: `{"save":true,"save_if_fails":true,"simulation_type":"full","network_id":"1","block_number":16527769,"transaction_index":42,"from":"0x1cf5cd427d0a968379bd6b5befce28d8e157ae38","input":"0x8803dbee00000000000000000000000000000000000000000000009df85158cbf910000000000000000000000000000000000000000000000000000000000000c65a511800000000000000000000000000000000000000000000000000000000000000a00000000000000000000000001cf5cd427d0a968379bd6b5befce28d8e157ae380000000000000000000000000000000000000000000000000000000063d9ac890000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec70000000000000000000000006b175474e89094c44da98b954eedeac495271d0f","to":"0x7a250d5630b4cf539739df2c5dacb4c659f2488d","gas":138864,"gas_price":"32909736476","value":"0","access_list":[],"generate_access_list":true}`,
},
{
name: "params error",
action: actionSimulate,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 0,
params: "",
},
{
name: "test add fork env",
action: actionAddEnv,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 1,
},
{
name: "test add fork env, project error",
action: actionAddEnv,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "test-fork",
tps: 1,
},
{
name: "test rename fork env",
action: actionRenameEnv,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 1,
},
{
name: "test delete fork env",
action: actionDeleteEnv,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 1,
},
{
name: "test simulation fork env",
action: actionForkSimulate,
account: os.Getenv("ACCOUNT"),
token: os.Getenv("TOKEN"),
project: "aaa-bbb",
tps: 1,
},
{
name: "test request json rpc",
action: actionJsonRpc,
account: os.Getenv("ACCOUNT"),
token: os.Getenv(""),
project: "",
tps: 1,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
simulator := NewSimulate("", tt.account, tt.project, tt.token, tt.tps).SimulateGetter(SimulateTenderly)
switch tt.action {
case actionAddProject:
tt.testAddProject(simulator)
case actionRenameProject:
tt.testRenameProject(simulator)
case actionSimulate:
tt.testSimulate(simulator)
case actionAddEnv:
tt.testAddEnv(simulator)
case actionRenameEnv:
tt.testRenameEnv(simulator)
case actionDeleteEnv:
tt.testDeleteEnv(simulator)
case actionForkSimulate:
tt.testForkSimulation(simulator)
case actionJsonRpc:
tt.testReqJsonRpc(simulator)
}
})
}
}
func (ts *testSimulate) testReqJsonRpc(simulator ISimulate) {
var p1 []interface{}
account := []string{"0x8b4941915D7E2971E583976c66Da3a84A6E1936b"}
p1 = append(p1, account)
p1 = append(p1, "0x3e8")
var p2 []interface{}
p2 = append(p2, []string{})
p2 = append(p2, "")
var tests = []struct {
name string
rpc string
params *providers.RpcParams
}{
{
name: "normal",
rpc: "https://rpc.tenderly.co/fork/" + os.Getenv("FORKID"),
params: &providers.RpcParams{
Method: "tenderly_addBalance",
Params: p1,
},
},
{
name: "account is null",
rpc: "https://rpc.tenderly.co/fork/" + os.Getenv("FORKID"),
params: &providers.RpcParams{
Method: "tenderly_addBalance",
Params: p2,
},
},
}
for _, tt := range tests {
res, err := simulator.ReqJsonRpc(tt.rpc, tt.params)
if err != nil {
_ = fmt.Errorf("req json rpc for %s error: %s \n", ts.name, err)
return
}
fmt.Printf("req json rpc for %s, result: %s \n", ts.name, res)
}
}
func (ts *testSimulate) testAddProject(simulator ISimulate) {
tests := []struct {
name string
proName string
}{
{
name: "test add project",
proName: "test-project",
},
{
name: "project name is null",
proName: "",
},
}
for _, tt := range tests {
res, err := simulator.AddProject(tt.proName)
if err != nil {
_ = fmt.Errorf("add env for %s error: %s \n", ts.name, err)
return
}
fmt.Printf("add env for %s, result: %s \n", ts.name, res)
}
}
func (ts *testSimulate) testRenameProject(simulator ISimulate) {
tests := []struct {
name string
proName string
}{
{
name: "test add project",
proName: "Project",
},
{
name: "project name is null",
proName: "",
},
}
for _, tt := range tests {
res, err := simulator.RenameProject(tt.proName)
if err != nil {
_ = fmt.Errorf("add env for %s error: %s \n", ts.name, err)
return
}
fmt.Printf("add env for %s, result: %s \n", ts.name, res)
}
}
func (ts *testSimulate) testSimulate(simulator ISimulate) {
res, err := simulator.Simulations(ts.params)
if err != nil {
_ = fmt.Errorf("add env for %s error: %s \n", ts.name, err)
return
}
fmt.Printf("add env for %s, result: %s \n", ts.name, res)
}
func (ts *testSimulate) testAddEnv(simulator ISimulate) {
tests := []struct {
name string
chainId string
envName string
}{
{
name: "test ethereum mainnet",
chainId: "1",
envName: "aaa_ethereum",
},
{
name: "test bsc mainnet",
chainId: "56",
envName: "aaa_bsc",
},
{
name: "test wrong chainId",
chainId: "0",
envName: "aaa_err_chainId",
},
{
name: "one char for name",
chainId: "1",
envName: "aaa_1_char",
},
}
for _, tt := range tests {
res, err := simulator.AddForkEnv(tt.chainId, tt.envName)
if err != nil {
_ = fmt.Errorf("add env for %s error: %s \n", tt.name, err)
continue
}
fmt.Printf("add env for %s, result:%s \n", tt.name, res)
}
}
func (ts *testSimulate) testRenameEnv(simulator ISimulate) {
tests := []struct {
name string
forkId string
chainId string
envName string
}{
{
name: "test ethereum mainnet",
forkId: "5051ee85-1441-47ac-a213-f5054ddcba24",
chainId: "1",
envName: "ethereum",
},
{
name: "test bsc mainnet",
forkId: "b7078201-445b-4c09-b93b-d52f8066bb4f",
chainId: "56",
envName: "bsc",
},
{
name: "test wrong chainId",
forkId: "",
chainId: "0",
envName: "aaa_err_chainId",
},
{
name: "one char for name",
forkId: "c6788c5d-1e12-469b-b1a1-7ec8152a6ad0",
chainId: "1",
envName: "1",
},
}
for _, tt := range tests {
res, err := simulator.RenameForkEnv(tt.forkId, tt.chainId, tt.envName)
if err != nil {
_ = fmt.Errorf("rename env for %s error: %s \n", tt.name, err)
continue
}
fmt.Printf("rename env for %s, result: %s", tt.name, res)
}
}
func (ts *testSimulate) testDeleteEnv(simulator ISimulate) {
test := []struct {
name string
forkId string
}{
{
name: "normal forkId",
forkId: "c6788c5d-1e12-469b-b1a1-7ec8152a6ad0",
},
{
name: "not exists forkId",
forkId: "8a5d135f-447b-4fa3-9ed2-bcb91498d39a",
},
}
for _, tt := range test {
res, err := simulator.DeleteForkEnv(tt.forkId)
if err != nil {
_ = fmt.Errorf("delete env for %s error: %s \n", tt.name, err)
continue
}
fmt.Printf("delete env for %s, result: %s", tt.name, res)
}
}
func (ts *testSimulate) testForkSimulation(simulator ISimulate) {
tests := []struct {
name string
forkId string
params string
}{
{
name: "normal",
forkId: "5051ee85-1441-47ac-a213-f5054ddcba24",
params: "{\"network_id\":\"1\",\"block_number\":14365440,\"transaction_index\":0,\"from\":\"0x7da5eacc8628f22d5e56ed0018751a8921942e38\",\"input\":\"0xd675fd260000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000c7\",\"to\":\"0x7cad06b811b5d9d3ff197c1a046abcbc0efbcbc9\",\"gas\":200000,\"gas_price\":\"100000000000\",\"value\":\"0\",\"access_list\":[],\"generate_access_list\":true,\"save\":true,\"source\":\"dashboard\"}",
},
{
name: "failed",
forkId: "",
params: "",
},
}
for _, tt := range tests {
res, err := simulator.SimulateTxForFork(tt.forkId, tt.params)
if err != nil {
_ = fmt.Errorf("fork simulation env for %s error: %s \n", tt.name, err)
continue
}
fmt.Printf("simulate tx for fork env for %s res:%s \n", tt.name, res)
}
}