arshy commited on
Commit
e07cbe2
·
1 Parent(s): 1374326

fith iteration

Browse files
app.py CHANGED
@@ -300,7 +300,11 @@ with demo:
300
  gr.Markdown("This app shows the actual performance of Olas Predict tools on the live market.")
301
 
302
  # Create the scheduler
 
 
 
303
  scheduler = BackgroundScheduler(timezone=utc)
304
- scheduler.add_job(refresh_data, CronTrigger(hour=0, minute=0)) # Runs daily at 12 AM UTC
305
  scheduler.start()
 
306
  demo.queue(default_concurrency_limit=40).launch()
 
300
  gr.Markdown("This app shows the actual performance of Olas Predict tools on the live market.")
301
 
302
  # Create the scheduler
303
+ # scheduler = BackgroundScheduler(timezone=utc)
304
+ # scheduler.add_job(refresh_data, CronTrigger(hour=0, minute=0)) # Runs daily at 12 AM UTC
305
+ # scheduler.start()
306
  scheduler = BackgroundScheduler(timezone=utc)
307
+ scheduler.add_job(refresh_data, CronTrigger(hour='*')) # Runs every hour
308
  scheduler.start()
309
+
310
  demo.queue(default_concurrency_limit=40).launch()
contracts/new_mech_abi.json ADDED
@@ -0,0 +1,718 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address",
6
+ "name": "_token",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "uint256",
11
+ "name": "_tokenId",
12
+ "type": "uint256"
13
+ },
14
+ {
15
+ "internalType": "uint256",
16
+ "name": "_price",
17
+ "type": "uint256"
18
+ }
19
+ ],
20
+ "stateMutability": "nonpayable",
21
+ "type": "constructor"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "uint256",
27
+ "name": "agentId",
28
+ "type": "uint256"
29
+ }
30
+ ],
31
+ "name": "AgentNotFound",
32
+ "type": "error"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "internalType": "uint256",
38
+ "name": "provided",
39
+ "type": "uint256"
40
+ },
41
+ {
42
+ "internalType": "uint256",
43
+ "name": "expected",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "name": "NotEnoughPaid",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [
52
+ {
53
+ "internalType": "uint256",
54
+ "name": "provided",
55
+ "type": "uint256"
56
+ },
57
+ {
58
+ "internalType": "uint256",
59
+ "name": "max",
60
+ "type": "uint256"
61
+ }
62
+ ],
63
+ "name": "Overflow",
64
+ "type": "error"
65
+ },
66
+ {
67
+ "inputs": [
68
+ {
69
+ "internalType": "uint256",
70
+ "name": "requestId",
71
+ "type": "uint256"
72
+ }
73
+ ],
74
+ "name": "RequestIdNotFound",
75
+ "type": "error"
76
+ },
77
+ {
78
+ "inputs": [],
79
+ "name": "ZeroAddress",
80
+ "type": "error"
81
+ },
82
+ {
83
+ "anonymous": false,
84
+ "inputs": [
85
+ {
86
+ "indexed": true,
87
+ "internalType": "address",
88
+ "name": "sender",
89
+ "type": "address"
90
+ },
91
+ {
92
+ "indexed": false,
93
+ "internalType": "uint256",
94
+ "name": "requestId",
95
+ "type": "uint256"
96
+ },
97
+ {
98
+ "indexed": false,
99
+ "internalType": "bytes",
100
+ "name": "data",
101
+ "type": "bytes"
102
+ }
103
+ ],
104
+ "name": "Deliver",
105
+ "type": "event"
106
+ },
107
+ {
108
+ "anonymous": false,
109
+ "inputs": [
110
+ {
111
+ "indexed": false,
112
+ "internalType": "uint256",
113
+ "name": "price",
114
+ "type": "uint256"
115
+ }
116
+ ],
117
+ "name": "PriceUpdated",
118
+ "type": "event"
119
+ },
120
+ {
121
+ "anonymous": false,
122
+ "inputs": [
123
+ {
124
+ "indexed": true,
125
+ "internalType": "address",
126
+ "name": "sender",
127
+ "type": "address"
128
+ },
129
+ {
130
+ "indexed": false,
131
+ "internalType": "uint256",
132
+ "name": "requestId",
133
+ "type": "uint256"
134
+ },
135
+ {
136
+ "indexed": false,
137
+ "internalType": "bytes",
138
+ "name": "data",
139
+ "type": "bytes"
140
+ }
141
+ ],
142
+ "name": "Request",
143
+ "type": "event"
144
+ },
145
+ {
146
+ "inputs": [
147
+ {
148
+ "internalType": "uint256",
149
+ "name": "requestId",
150
+ "type": "uint256"
151
+ },
152
+ {
153
+ "internalType": "bytes",
154
+ "name": "data",
155
+ "type": "bytes"
156
+ }
157
+ ],
158
+ "name": "deliver",
159
+ "outputs": [],
160
+ "stateMutability": "nonpayable",
161
+ "type": "function"
162
+ },
163
+ {
164
+ "inputs": [],
165
+ "name": "entryPoint",
166
+ "outputs": [
167
+ {
168
+ "internalType": "contract IEntryPoint",
169
+ "name": "",
170
+ "type": "address"
171
+ }
172
+ ],
173
+ "stateMutability": "view",
174
+ "type": "function"
175
+ },
176
+ {
177
+ "inputs": [
178
+ {
179
+ "internalType": "address",
180
+ "name": "to",
181
+ "type": "address"
182
+ },
183
+ {
184
+ "internalType": "uint256",
185
+ "name": "value",
186
+ "type": "uint256"
187
+ },
188
+ {
189
+ "internalType": "bytes",
190
+ "name": "data",
191
+ "type": "bytes"
192
+ },
193
+ {
194
+ "internalType": "enum Enum.Operation",
195
+ "name": "operation",
196
+ "type": "uint8"
197
+ },
198
+ {
199
+ "internalType": "uint256",
200
+ "name": "txGas",
201
+ "type": "uint256"
202
+ }
203
+ ],
204
+ "name": "exec",
205
+ "outputs": [
206
+ {
207
+ "internalType": "bytes",
208
+ "name": "returnData",
209
+ "type": "bytes"
210
+ }
211
+ ],
212
+ "stateMutability": "nonpayable",
213
+ "type": "function"
214
+ },
215
+ {
216
+ "inputs": [
217
+ {
218
+ "internalType": "address",
219
+ "name": "account",
220
+ "type": "address"
221
+ },
222
+ {
223
+ "internalType": "bytes",
224
+ "name": "data",
225
+ "type": "bytes"
226
+ }
227
+ ],
228
+ "name": "getRequestId",
229
+ "outputs": [
230
+ {
231
+ "internalType": "uint256",
232
+ "name": "requestId",
233
+ "type": "uint256"
234
+ }
235
+ ],
236
+ "stateMutability": "pure",
237
+ "type": "function"
238
+ },
239
+ {
240
+ "inputs": [
241
+ {
242
+ "internalType": "address",
243
+ "name": "account",
244
+ "type": "address"
245
+ }
246
+ ],
247
+ "name": "getRequestsCount",
248
+ "outputs": [
249
+ {
250
+ "internalType": "uint256",
251
+ "name": "requestsCount",
252
+ "type": "uint256"
253
+ }
254
+ ],
255
+ "stateMutability": "view",
256
+ "type": "function"
257
+ },
258
+ {
259
+ "inputs": [
260
+ {
261
+ "internalType": "uint256",
262
+ "name": "size",
263
+ "type": "uint256"
264
+ },
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "offset",
268
+ "type": "uint256"
269
+ }
270
+ ],
271
+ "name": "getUndeliveredRequestIds",
272
+ "outputs": [
273
+ {
274
+ "internalType": "uint256[]",
275
+ "name": "requestIds",
276
+ "type": "uint256[]"
277
+ }
278
+ ],
279
+ "stateMutability": "view",
280
+ "type": "function"
281
+ },
282
+ {
283
+ "inputs": [
284
+ {
285
+ "internalType": "address",
286
+ "name": "signer",
287
+ "type": "address"
288
+ }
289
+ ],
290
+ "name": "isOperator",
291
+ "outputs": [
292
+ {
293
+ "internalType": "bool",
294
+ "name": "",
295
+ "type": "bool"
296
+ }
297
+ ],
298
+ "stateMutability": "view",
299
+ "type": "function"
300
+ },
301
+ {
302
+ "inputs": [
303
+ {
304
+ "internalType": "bytes32",
305
+ "name": "hash",
306
+ "type": "bytes32"
307
+ },
308
+ {
309
+ "internalType": "bytes",
310
+ "name": "signature",
311
+ "type": "bytes"
312
+ }
313
+ ],
314
+ "name": "isValidSignature",
315
+ "outputs": [
316
+ {
317
+ "internalType": "bytes4",
318
+ "name": "magicValue",
319
+ "type": "bytes4"
320
+ }
321
+ ],
322
+ "stateMutability": "view",
323
+ "type": "function"
324
+ },
325
+ {
326
+ "inputs": [
327
+ {
328
+ "internalType": "uint256",
329
+ "name": "",
330
+ "type": "uint256"
331
+ },
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "",
335
+ "type": "uint256"
336
+ }
337
+ ],
338
+ "name": "mapRequestIds",
339
+ "outputs": [
340
+ {
341
+ "internalType": "uint256",
342
+ "name": "",
343
+ "type": "uint256"
344
+ }
345
+ ],
346
+ "stateMutability": "view",
347
+ "type": "function"
348
+ },
349
+ {
350
+ "inputs": [
351
+ {
352
+ "internalType": "address",
353
+ "name": "",
354
+ "type": "address"
355
+ }
356
+ ],
357
+ "name": "mapRequestsCounts",
358
+ "outputs": [
359
+ {
360
+ "internalType": "uint256",
361
+ "name": "",
362
+ "type": "uint256"
363
+ }
364
+ ],
365
+ "stateMutability": "view",
366
+ "type": "function"
367
+ },
368
+ {
369
+ "inputs": [],
370
+ "name": "nonce",
371
+ "outputs": [
372
+ {
373
+ "internalType": "uint256",
374
+ "name": "",
375
+ "type": "uint256"
376
+ }
377
+ ],
378
+ "stateMutability": "view",
379
+ "type": "function"
380
+ },
381
+ {
382
+ "inputs": [],
383
+ "name": "numUndeliveredRequests",
384
+ "outputs": [
385
+ {
386
+ "internalType": "uint256",
387
+ "name": "",
388
+ "type": "uint256"
389
+ }
390
+ ],
391
+ "stateMutability": "view",
392
+ "type": "function"
393
+ },
394
+ {
395
+ "inputs": [
396
+ {
397
+ "internalType": "address",
398
+ "name": "",
399
+ "type": "address"
400
+ },
401
+ {
402
+ "internalType": "address",
403
+ "name": "",
404
+ "type": "address"
405
+ },
406
+ {
407
+ "internalType": "uint256[]",
408
+ "name": "",
409
+ "type": "uint256[]"
410
+ },
411
+ {
412
+ "internalType": "uint256[]",
413
+ "name": "",
414
+ "type": "uint256[]"
415
+ },
416
+ {
417
+ "internalType": "bytes",
418
+ "name": "",
419
+ "type": "bytes"
420
+ }
421
+ ],
422
+ "name": "onERC1155BatchReceived",
423
+ "outputs": [
424
+ {
425
+ "internalType": "bytes4",
426
+ "name": "",
427
+ "type": "bytes4"
428
+ }
429
+ ],
430
+ "stateMutability": "pure",
431
+ "type": "function"
432
+ },
433
+ {
434
+ "inputs": [
435
+ {
436
+ "internalType": "address",
437
+ "name": "",
438
+ "type": "address"
439
+ },
440
+ {
441
+ "internalType": "address",
442
+ "name": "",
443
+ "type": "address"
444
+ },
445
+ {
446
+ "internalType": "uint256",
447
+ "name": "",
448
+ "type": "uint256"
449
+ },
450
+ {
451
+ "internalType": "uint256",
452
+ "name": "",
453
+ "type": "uint256"
454
+ },
455
+ {
456
+ "internalType": "bytes",
457
+ "name": "",
458
+ "type": "bytes"
459
+ }
460
+ ],
461
+ "name": "onERC1155Received",
462
+ "outputs": [
463
+ {
464
+ "internalType": "bytes4",
465
+ "name": "",
466
+ "type": "bytes4"
467
+ }
468
+ ],
469
+ "stateMutability": "pure",
470
+ "type": "function"
471
+ },
472
+ {
473
+ "inputs": [
474
+ {
475
+ "internalType": "address",
476
+ "name": "",
477
+ "type": "address"
478
+ },
479
+ {
480
+ "internalType": "address",
481
+ "name": "",
482
+ "type": "address"
483
+ },
484
+ {
485
+ "internalType": "uint256",
486
+ "name": "",
487
+ "type": "uint256"
488
+ },
489
+ {
490
+ "internalType": "bytes",
491
+ "name": "",
492
+ "type": "bytes"
493
+ }
494
+ ],
495
+ "name": "onERC721Received",
496
+ "outputs": [
497
+ {
498
+ "internalType": "bytes4",
499
+ "name": "",
500
+ "type": "bytes4"
501
+ }
502
+ ],
503
+ "stateMutability": "pure",
504
+ "type": "function"
505
+ },
506
+ {
507
+ "inputs": [],
508
+ "name": "price",
509
+ "outputs": [
510
+ {
511
+ "internalType": "uint256",
512
+ "name": "",
513
+ "type": "uint256"
514
+ }
515
+ ],
516
+ "stateMutability": "view",
517
+ "type": "function"
518
+ },
519
+ {
520
+ "inputs": [
521
+ {
522
+ "internalType": "bytes",
523
+ "name": "data",
524
+ "type": "bytes"
525
+ }
526
+ ],
527
+ "name": "request",
528
+ "outputs": [
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "requestId",
532
+ "type": "uint256"
533
+ }
534
+ ],
535
+ "stateMutability": "payable",
536
+ "type": "function"
537
+ },
538
+ {
539
+ "inputs": [
540
+ {
541
+ "internalType": "uint256",
542
+ "name": "newPrice",
543
+ "type": "uint256"
544
+ }
545
+ ],
546
+ "name": "setPrice",
547
+ "outputs": [],
548
+ "stateMutability": "nonpayable",
549
+ "type": "function"
550
+ },
551
+ {
552
+ "inputs": [
553
+ {
554
+ "internalType": "bytes",
555
+ "name": "initParams",
556
+ "type": "bytes"
557
+ }
558
+ ],
559
+ "name": "setUp",
560
+ "outputs": [],
561
+ "stateMutability": "nonpayable",
562
+ "type": "function"
563
+ },
564
+ {
565
+ "inputs": [],
566
+ "name": "token",
567
+ "outputs": [
568
+ {
569
+ "internalType": "contract IERC721",
570
+ "name": "",
571
+ "type": "address"
572
+ }
573
+ ],
574
+ "stateMutability": "view",
575
+ "type": "function"
576
+ },
577
+ {
578
+ "inputs": [],
579
+ "name": "tokenId",
580
+ "outputs": [
581
+ {
582
+ "internalType": "uint256",
583
+ "name": "",
584
+ "type": "uint256"
585
+ }
586
+ ],
587
+ "stateMutability": "view",
588
+ "type": "function"
589
+ },
590
+ {
591
+ "inputs": [
592
+ {
593
+ "internalType": "address",
594
+ "name": "",
595
+ "type": "address"
596
+ },
597
+ {
598
+ "internalType": "address",
599
+ "name": "",
600
+ "type": "address"
601
+ },
602
+ {
603
+ "internalType": "address",
604
+ "name": "",
605
+ "type": "address"
606
+ },
607
+ {
608
+ "internalType": "uint256",
609
+ "name": "",
610
+ "type": "uint256"
611
+ },
612
+ {
613
+ "internalType": "bytes",
614
+ "name": "",
615
+ "type": "bytes"
616
+ },
617
+ {
618
+ "internalType": "bytes",
619
+ "name": "",
620
+ "type": "bytes"
621
+ }
622
+ ],
623
+ "name": "tokensReceived",
624
+ "outputs": [],
625
+ "stateMutability": "pure",
626
+ "type": "function"
627
+ },
628
+ {
629
+ "inputs": [
630
+ {
631
+ "components": [
632
+ {
633
+ "internalType": "address",
634
+ "name": "sender",
635
+ "type": "address"
636
+ },
637
+ {
638
+ "internalType": "uint256",
639
+ "name": "nonce",
640
+ "type": "uint256"
641
+ },
642
+ {
643
+ "internalType": "bytes",
644
+ "name": "initCode",
645
+ "type": "bytes"
646
+ },
647
+ {
648
+ "internalType": "bytes",
649
+ "name": "callData",
650
+ "type": "bytes"
651
+ },
652
+ {
653
+ "internalType": "uint256",
654
+ "name": "callGasLimit",
655
+ "type": "uint256"
656
+ },
657
+ {
658
+ "internalType": "uint256",
659
+ "name": "verificationGasLimit",
660
+ "type": "uint256"
661
+ },
662
+ {
663
+ "internalType": "uint256",
664
+ "name": "preVerificationGas",
665
+ "type": "uint256"
666
+ },
667
+ {
668
+ "internalType": "uint256",
669
+ "name": "maxFeePerGas",
670
+ "type": "uint256"
671
+ },
672
+ {
673
+ "internalType": "uint256",
674
+ "name": "maxPriorityFeePerGas",
675
+ "type": "uint256"
676
+ },
677
+ {
678
+ "internalType": "bytes",
679
+ "name": "paymasterAndData",
680
+ "type": "bytes"
681
+ },
682
+ {
683
+ "internalType": "bytes",
684
+ "name": "signature",
685
+ "type": "bytes"
686
+ }
687
+ ],
688
+ "internalType": "struct UserOperation",
689
+ "name": "userOp",
690
+ "type": "tuple"
691
+ },
692
+ {
693
+ "internalType": "bytes32",
694
+ "name": "userOpHash",
695
+ "type": "bytes32"
696
+ },
697
+ {
698
+ "internalType": "uint256",
699
+ "name": "missingAccountFunds",
700
+ "type": "uint256"
701
+ }
702
+ ],
703
+ "name": "validateUserOp",
704
+ "outputs": [
705
+ {
706
+ "internalType": "uint256",
707
+ "name": "validationData",
708
+ "type": "uint256"
709
+ }
710
+ ],
711
+ "stateMutability": "nonpayable",
712
+ "type": "function"
713
+ },
714
+ {
715
+ "stateMutability": "payable",
716
+ "type": "receive"
717
+ }
718
+ ]
contracts/old_mech_abi.json ADDED
@@ -0,0 +1,605 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [
2
+ {
3
+ "inputs": [
4
+ {
5
+ "internalType": "address",
6
+ "name": "_token",
7
+ "type": "address"
8
+ },
9
+ {
10
+ "internalType": "uint256",
11
+ "name": "_tokenId",
12
+ "type": "uint256"
13
+ },
14
+ {
15
+ "internalType": "uint256",
16
+ "name": "_price",
17
+ "type": "uint256"
18
+ }
19
+ ],
20
+ "stateMutability": "nonpayable",
21
+ "type": "constructor"
22
+ },
23
+ {
24
+ "inputs": [
25
+ {
26
+ "internalType": "uint256",
27
+ "name": "agentId",
28
+ "type": "uint256"
29
+ }
30
+ ],
31
+ "name": "AgentNotFound",
32
+ "type": "error"
33
+ },
34
+ {
35
+ "inputs": [
36
+ {
37
+ "internalType": "uint256",
38
+ "name": "provided",
39
+ "type": "uint256"
40
+ },
41
+ {
42
+ "internalType": "uint256",
43
+ "name": "expected",
44
+ "type": "uint256"
45
+ }
46
+ ],
47
+ "name": "NotEnoughPaid",
48
+ "type": "error"
49
+ },
50
+ {
51
+ "inputs": [],
52
+ "name": "ZeroAddress",
53
+ "type": "error"
54
+ },
55
+ {
56
+ "anonymous": false,
57
+ "inputs": [
58
+ {
59
+ "indexed": false,
60
+ "internalType": "uint256",
61
+ "name": "requestId",
62
+ "type": "uint256"
63
+ },
64
+ {
65
+ "indexed": false,
66
+ "internalType": "bytes",
67
+ "name": "data",
68
+ "type": "bytes"
69
+ }
70
+ ],
71
+ "name": "Deliver",
72
+ "type": "event"
73
+ },
74
+ {
75
+ "anonymous": false,
76
+ "inputs": [
77
+ {
78
+ "indexed": true,
79
+ "internalType": "address",
80
+ "name": "sender",
81
+ "type": "address"
82
+ },
83
+ {
84
+ "indexed": false,
85
+ "internalType": "bytes32",
86
+ "name": "taskHash",
87
+ "type": "bytes32"
88
+ }
89
+ ],
90
+ "name": "Perform",
91
+ "type": "event"
92
+ },
93
+ {
94
+ "anonymous": false,
95
+ "inputs": [
96
+ {
97
+ "indexed": false,
98
+ "internalType": "uint256",
99
+ "name": "price",
100
+ "type": "uint256"
101
+ }
102
+ ],
103
+ "name": "PriceUpdated",
104
+ "type": "event"
105
+ },
106
+ {
107
+ "anonymous": false,
108
+ "inputs": [
109
+ {
110
+ "indexed": true,
111
+ "internalType": "address",
112
+ "name": "sender",
113
+ "type": "address"
114
+ },
115
+ {
116
+ "indexed": false,
117
+ "internalType": "uint256",
118
+ "name": "requestId",
119
+ "type": "uint256"
120
+ },
121
+ {
122
+ "indexed": false,
123
+ "internalType": "bytes",
124
+ "name": "data",
125
+ "type": "bytes"
126
+ }
127
+ ],
128
+ "name": "Request",
129
+ "type": "event"
130
+ },
131
+ {
132
+ "inputs": [
133
+ {
134
+ "internalType": "uint256",
135
+ "name": "requestId",
136
+ "type": "uint256"
137
+ },
138
+ {
139
+ "internalType": "bytes",
140
+ "name": "data",
141
+ "type": "bytes"
142
+ }
143
+ ],
144
+ "name": "deliver",
145
+ "outputs": [],
146
+ "stateMutability": "nonpayable",
147
+ "type": "function"
148
+ },
149
+ {
150
+ "inputs": [],
151
+ "name": "entryPoint",
152
+ "outputs": [
153
+ {
154
+ "internalType": "contract IEntryPoint",
155
+ "name": "",
156
+ "type": "address"
157
+ }
158
+ ],
159
+ "stateMutability": "view",
160
+ "type": "function"
161
+ },
162
+ {
163
+ "inputs": [
164
+ {
165
+ "internalType": "address",
166
+ "name": "to",
167
+ "type": "address"
168
+ },
169
+ {
170
+ "internalType": "uint256",
171
+ "name": "value",
172
+ "type": "uint256"
173
+ },
174
+ {
175
+ "internalType": "bytes",
176
+ "name": "data",
177
+ "type": "bytes"
178
+ },
179
+ {
180
+ "internalType": "enum Enum.Operation",
181
+ "name": "operation",
182
+ "type": "uint8"
183
+ },
184
+ {
185
+ "internalType": "uint256",
186
+ "name": "txGas",
187
+ "type": "uint256"
188
+ }
189
+ ],
190
+ "name": "exec",
191
+ "outputs": [
192
+ {
193
+ "internalType": "bytes",
194
+ "name": "returnData",
195
+ "type": "bytes"
196
+ }
197
+ ],
198
+ "stateMutability": "nonpayable",
199
+ "type": "function"
200
+ },
201
+ {
202
+ "inputs": [
203
+ {
204
+ "internalType": "address",
205
+ "name": "account",
206
+ "type": "address"
207
+ },
208
+ {
209
+ "internalType": "bytes",
210
+ "name": "data",
211
+ "type": "bytes"
212
+ }
213
+ ],
214
+ "name": "getRequestId",
215
+ "outputs": [
216
+ {
217
+ "internalType": "uint256",
218
+ "name": "requestId",
219
+ "type": "uint256"
220
+ }
221
+ ],
222
+ "stateMutability": "pure",
223
+ "type": "function"
224
+ },
225
+ {
226
+ "inputs": [
227
+ {
228
+ "internalType": "address",
229
+ "name": "signer",
230
+ "type": "address"
231
+ }
232
+ ],
233
+ "name": "isOperator",
234
+ "outputs": [
235
+ {
236
+ "internalType": "bool",
237
+ "name": "",
238
+ "type": "bool"
239
+ }
240
+ ],
241
+ "stateMutability": "view",
242
+ "type": "function"
243
+ },
244
+ {
245
+ "inputs": [
246
+ {
247
+ "internalType": "bytes32",
248
+ "name": "hash",
249
+ "type": "bytes32"
250
+ },
251
+ {
252
+ "internalType": "bytes",
253
+ "name": "signature",
254
+ "type": "bytes"
255
+ }
256
+ ],
257
+ "name": "isValidSignature",
258
+ "outputs": [
259
+ {
260
+ "internalType": "bytes4",
261
+ "name": "magicValue",
262
+ "type": "bytes4"
263
+ }
264
+ ],
265
+ "stateMutability": "view",
266
+ "type": "function"
267
+ },
268
+ {
269
+ "inputs": [],
270
+ "name": "nonce",
271
+ "outputs": [
272
+ {
273
+ "internalType": "uint256",
274
+ "name": "",
275
+ "type": "uint256"
276
+ }
277
+ ],
278
+ "stateMutability": "view",
279
+ "type": "function"
280
+ },
281
+ {
282
+ "inputs": [
283
+ {
284
+ "internalType": "address",
285
+ "name": "",
286
+ "type": "address"
287
+ },
288
+ {
289
+ "internalType": "address",
290
+ "name": "",
291
+ "type": "address"
292
+ },
293
+ {
294
+ "internalType": "uint256[]",
295
+ "name": "",
296
+ "type": "uint256[]"
297
+ },
298
+ {
299
+ "internalType": "uint256[]",
300
+ "name": "",
301
+ "type": "uint256[]"
302
+ },
303
+ {
304
+ "internalType": "bytes",
305
+ "name": "",
306
+ "type": "bytes"
307
+ }
308
+ ],
309
+ "name": "onERC1155BatchReceived",
310
+ "outputs": [
311
+ {
312
+ "internalType": "bytes4",
313
+ "name": "",
314
+ "type": "bytes4"
315
+ }
316
+ ],
317
+ "stateMutability": "pure",
318
+ "type": "function"
319
+ },
320
+ {
321
+ "inputs": [
322
+ {
323
+ "internalType": "address",
324
+ "name": "",
325
+ "type": "address"
326
+ },
327
+ {
328
+ "internalType": "address",
329
+ "name": "",
330
+ "type": "address"
331
+ },
332
+ {
333
+ "internalType": "uint256",
334
+ "name": "",
335
+ "type": "uint256"
336
+ },
337
+ {
338
+ "internalType": "uint256",
339
+ "name": "",
340
+ "type": "uint256"
341
+ },
342
+ {
343
+ "internalType": "bytes",
344
+ "name": "",
345
+ "type": "bytes"
346
+ }
347
+ ],
348
+ "name": "onERC1155Received",
349
+ "outputs": [
350
+ {
351
+ "internalType": "bytes4",
352
+ "name": "",
353
+ "type": "bytes4"
354
+ }
355
+ ],
356
+ "stateMutability": "pure",
357
+ "type": "function"
358
+ },
359
+ {
360
+ "inputs": [
361
+ {
362
+ "internalType": "address",
363
+ "name": "",
364
+ "type": "address"
365
+ },
366
+ {
367
+ "internalType": "address",
368
+ "name": "",
369
+ "type": "address"
370
+ },
371
+ {
372
+ "internalType": "uint256",
373
+ "name": "",
374
+ "type": "uint256"
375
+ },
376
+ {
377
+ "internalType": "bytes",
378
+ "name": "",
379
+ "type": "bytes"
380
+ }
381
+ ],
382
+ "name": "onERC721Received",
383
+ "outputs": [
384
+ {
385
+ "internalType": "bytes4",
386
+ "name": "",
387
+ "type": "bytes4"
388
+ }
389
+ ],
390
+ "stateMutability": "pure",
391
+ "type": "function"
392
+ },
393
+ {
394
+ "inputs": [],
395
+ "name": "price",
396
+ "outputs": [
397
+ {
398
+ "internalType": "uint256",
399
+ "name": "",
400
+ "type": "uint256"
401
+ }
402
+ ],
403
+ "stateMutability": "view",
404
+ "type": "function"
405
+ },
406
+ {
407
+ "inputs": [
408
+ {
409
+ "internalType": "bytes",
410
+ "name": "data",
411
+ "type": "bytes"
412
+ }
413
+ ],
414
+ "name": "request",
415
+ "outputs": [
416
+ {
417
+ "internalType": "uint256",
418
+ "name": "requestId",
419
+ "type": "uint256"
420
+ }
421
+ ],
422
+ "stateMutability": "payable",
423
+ "type": "function"
424
+ },
425
+ {
426
+ "inputs": [
427
+ {
428
+ "internalType": "uint256",
429
+ "name": "newPrice",
430
+ "type": "uint256"
431
+ }
432
+ ],
433
+ "name": "setPrice",
434
+ "outputs": [],
435
+ "stateMutability": "nonpayable",
436
+ "type": "function"
437
+ },
438
+ {
439
+ "inputs": [
440
+ {
441
+ "internalType": "bytes",
442
+ "name": "initParams",
443
+ "type": "bytes"
444
+ }
445
+ ],
446
+ "name": "setUp",
447
+ "outputs": [],
448
+ "stateMutability": "nonpayable",
449
+ "type": "function"
450
+ },
451
+ {
452
+ "inputs": [],
453
+ "name": "token",
454
+ "outputs": [
455
+ {
456
+ "internalType": "contract IERC721",
457
+ "name": "",
458
+ "type": "address"
459
+ }
460
+ ],
461
+ "stateMutability": "view",
462
+ "type": "function"
463
+ },
464
+ {
465
+ "inputs": [],
466
+ "name": "tokenId",
467
+ "outputs": [
468
+ {
469
+ "internalType": "uint256",
470
+ "name": "",
471
+ "type": "uint256"
472
+ }
473
+ ],
474
+ "stateMutability": "view",
475
+ "type": "function"
476
+ },
477
+ {
478
+ "inputs": [
479
+ {
480
+ "internalType": "address",
481
+ "name": "",
482
+ "type": "address"
483
+ },
484
+ {
485
+ "internalType": "address",
486
+ "name": "",
487
+ "type": "address"
488
+ },
489
+ {
490
+ "internalType": "address",
491
+ "name": "",
492
+ "type": "address"
493
+ },
494
+ {
495
+ "internalType": "uint256",
496
+ "name": "",
497
+ "type": "uint256"
498
+ },
499
+ {
500
+ "internalType": "bytes",
501
+ "name": "",
502
+ "type": "bytes"
503
+ },
504
+ {
505
+ "internalType": "bytes",
506
+ "name": "",
507
+ "type": "bytes"
508
+ }
509
+ ],
510
+ "name": "tokensReceived",
511
+ "outputs": [],
512
+ "stateMutability": "pure",
513
+ "type": "function"
514
+ },
515
+ {
516
+ "inputs": [
517
+ {
518
+ "components": [
519
+ {
520
+ "internalType": "address",
521
+ "name": "sender",
522
+ "type": "address"
523
+ },
524
+ {
525
+ "internalType": "uint256",
526
+ "name": "nonce",
527
+ "type": "uint256"
528
+ },
529
+ {
530
+ "internalType": "bytes",
531
+ "name": "initCode",
532
+ "type": "bytes"
533
+ },
534
+ {
535
+ "internalType": "bytes",
536
+ "name": "callData",
537
+ "type": "bytes"
538
+ },
539
+ {
540
+ "internalType": "uint256",
541
+ "name": "callGasLimit",
542
+ "type": "uint256"
543
+ },
544
+ {
545
+ "internalType": "uint256",
546
+ "name": "verificationGasLimit",
547
+ "type": "uint256"
548
+ },
549
+ {
550
+ "internalType": "uint256",
551
+ "name": "preVerificationGas",
552
+ "type": "uint256"
553
+ },
554
+ {
555
+ "internalType": "uint256",
556
+ "name": "maxFeePerGas",
557
+ "type": "uint256"
558
+ },
559
+ {
560
+ "internalType": "uint256",
561
+ "name": "maxPriorityFeePerGas",
562
+ "type": "uint256"
563
+ },
564
+ {
565
+ "internalType": "bytes",
566
+ "name": "paymasterAndData",
567
+ "type": "bytes"
568
+ },
569
+ {
570
+ "internalType": "bytes",
571
+ "name": "signature",
572
+ "type": "bytes"
573
+ }
574
+ ],
575
+ "internalType": "struct UserOperation",
576
+ "name": "userOp",
577
+ "type": "tuple"
578
+ },
579
+ {
580
+ "internalType": "bytes32",
581
+ "name": "userOpHash",
582
+ "type": "bytes32"
583
+ },
584
+ {
585
+ "internalType": "uint256",
586
+ "name": "missingAccountFunds",
587
+ "type": "uint256"
588
+ }
589
+ ],
590
+ "name": "validateUserOp",
591
+ "outputs": [
592
+ {
593
+ "internalType": "uint256",
594
+ "name": "validationData",
595
+ "type": "uint256"
596
+ }
597
+ ],
598
+ "stateMutability": "nonpayable",
599
+ "type": "function"
600
+ },
601
+ {
602
+ "stateMutability": "payable",
603
+ "type": "receive"
604
+ }
605
+ ]
data/all_trades_profitability.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:866a83eac6c603f435ee960b0da2570ced109438ee73e13a525b06a3d7baa133
3
- size 28938394
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:673fa0489391d068d1e684dcb191adef3f538dd57619a9678109853c9299bf3e
3
+ size 29110990
data/delivers.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:04f73cf0443fc8e91dd4b2e5188aee00f06ccc89d3977bf8e57063076ca91f51
3
- size 1270000369
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d934330b4885b64e95a186dd7297ec038f17eb65f2b907c932cd8ec0fedbcc29
3
+ size 1296906427
data/fpmmTrades.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1e4600c2925a707bc882fda67612d03e28903e11947fe56f3e594f575f437d20
3
- size 64196881
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbd2701ff46c796e550c98498094ad2fbd35c8009a269739e5b3e087e2a0bb2b
3
+ size 64405282
data/fpmms.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:721b874d94ebb1a83456f75b911f79fd654971c2150976911968b27790ed7f84
3
- size 399415
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:41c68412d55769c3a7af556402a34213828f38db7b17e1ed2e08b1184e75d4aa
3
+ size 403398
data/requests.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:db71f7e4cebe1e68eb280615d4331f3fe6a8732d94c29920b7b485f048631b7a
3
- size 129156993
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:111a5eff743b2c59d8e4d3999c5fab6ed77f48277af084c6b833129092db65b3
3
+ size 129516034
data/summary_profitability.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1a999ed3c31ae1ee71da379e0840995584491457db4ca7250ca2e7f9b55c3869
3
- size 48242
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8cd06f7bb27cf3d086973c0fb6a5cf9cfb28089276980f15f090c05e91f17959
3
+ size 48401
data/t_map.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:16ccd7e53595040b7f652be1f931d54e7e6602060f1c646fa580e979ad10b7cf
3
+ size 5951715
data/tools.csv CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:35f76795539604c1c50f70d161c217c32c0fa04bbbd94ee29f5717b782c6863f
3
- size 1363028261
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0aed624524cf7a8bf392a212f79ca422cdaeb66d3399415837ed35bd18a8dc67
3
+ size 1411395869
nbs/test.ipynb ADDED
@@ -0,0 +1,1126 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cells": [
3
+ {
4
+ "cell_type": "code",
5
+ "execution_count": 5,
6
+ "metadata": {},
7
+ "outputs": [
8
+ {
9
+ "name": "stderr",
10
+ "output_type": "stream",
11
+ "text": [
12
+ "/var/folders/l_/g22b1g_n0gn4tmx9lkxqv5x00000gn/T/ipykernel_11113/116209265.py:5: DtypeWarning: Columns (7,10) have mixed types. Specify dtype option on import or set low_memory=False.\n",
13
+ " tools = pd.read_csv(\"../data/tools.csv\")\n"
14
+ ]
15
+ }
16
+ ],
17
+ "source": [
18
+ "import pickle\n",
19
+ "import pandas as pd\n",
20
+ "from pathlib import Path\n",
21
+ "\n",
22
+ "\n",
23
+ "tools = pd.read_csv(\"../data/tools.csv\")"
24
+ ]
25
+ },
26
+ {
27
+ "cell_type": "code",
28
+ "execution_count": 7,
29
+ "metadata": {},
30
+ "outputs": [
31
+ {
32
+ "data": {
33
+ "text/plain": [
34
+ "Index(['request_id', 'request_block', 'prompt_request', 'tool', 'nonce',\n",
35
+ " 'trader_address', 'deliver_block', 'error', 'error_message',\n",
36
+ " 'prompt_response', 'mech_address', 'p_yes', 'p_no', 'confidence',\n",
37
+ " 'info_utility', 'vote', 'win_probability', 'title', 'currentAnswer',\n",
38
+ " 'request_time', 'request_month_year', 'request_month_year_week'],\n",
39
+ " dtype='object')"
40
+ ]
41
+ },
42
+ "execution_count": 7,
43
+ "metadata": {},
44
+ "output_type": "execute_result"
45
+ }
46
+ ],
47
+ "source": [
48
+ "tools.columns"
49
+ ]
50
+ },
51
+ {
52
+ "cell_type": "code",
53
+ "execution_count": 16,
54
+ "metadata": {},
55
+ "outputs": [],
56
+ "source": [
57
+ "import pickle\n",
58
+ "t_map = tools[['request_block', 'request_time']].set_index('request_block').to_dict()['request_time']\n",
59
+ "\n",
60
+ "with open('../data/t_map.pkl', 'wb') as f:\n",
61
+ " pickle.dump(t_map, f)\n",
62
+ "\n"
63
+ ]
64
+ },
65
+ {
66
+ "cell_type": "code",
67
+ "execution_count": 17,
68
+ "metadata": {},
69
+ "outputs": [],
70
+ "source": [
71
+ "with open('../data/t_map.pkl', 'rb') as f:\n",
72
+ " t_map = pickle.load(f)\n",
73
+ "\n"
74
+ ]
75
+ },
76
+ {
77
+ "cell_type": "code",
78
+ "execution_count": 18,
79
+ "metadata": {},
80
+ "outputs": [
81
+ {
82
+ "data": {
83
+ "text/plain": [
84
+ "{29624577: '2023-08-24 16:04:50',\n",
85
+ " 29624616: '2023-08-24 16:08:20',\n",
86
+ " 29624642: '2023-08-24 16:10:35',\n",
87
+ " 29625477: '2023-08-24 17:22:05',\n",
88
+ " 29625975: '2023-08-24 18:05:35',\n",
89
+ " 29626002: '2023-08-24 18:08:00',\n",
90
+ " 29626041: '2023-08-24 18:11:20',\n",
91
+ " 29626042: '2023-08-24 18:11:25',\n",
92
+ " 29626086: '2023-08-24 18:15:05',\n",
93
+ " 29626092: '2023-08-24 18:15:35',\n",
94
+ " 29626132: '2023-08-24 18:19:05',\n",
95
+ " 29626135: '2023-08-24 18:19:20',\n",
96
+ " 29626176: '2023-08-24 18:22:55',\n",
97
+ " 29626180: '2023-08-24 18:23:15',\n",
98
+ " 29626217: '2023-08-24 18:26:35',\n",
99
+ " 29626221: '2023-08-24 18:27:00',\n",
100
+ " 29626255: '2023-08-24 18:29:55',\n",
101
+ " 29626292: '2023-08-24 18:33:00',\n",
102
+ " 29626303: '2023-08-24 18:33:55',\n",
103
+ " 29626334: '2023-08-24 18:36:45',\n",
104
+ " 29626336: '2023-08-24 18:36:55',\n",
105
+ " 29626355: '2023-08-24 18:38:40',\n",
106
+ " 29626403: '2023-08-24 18:42:50',\n",
107
+ " 29626442: '2023-08-24 18:46:20',\n",
108
+ " 29626510: '2023-08-24 18:52:10',\n",
109
+ " 29626546: '2023-08-24 18:55:10',\n",
110
+ " 29626562: '2023-08-24 18:56:30',\n",
111
+ " 29626593: '2023-08-24 18:59:25',\n",
112
+ " 29626595: '2023-08-24 18:59:40',\n",
113
+ " 29626636: '2023-08-24 19:03:15',\n",
114
+ " 29626640: '2023-08-24 19:03:35',\n",
115
+ " 29626674: '2023-08-24 19:06:25',\n",
116
+ " 29626744: '2023-08-24 19:12:30',\n",
117
+ " 29626778: '2023-08-24 19:15:20',\n",
118
+ " 29626781: '2023-08-24 19:15:40',\n",
119
+ " 29626818: '2023-08-24 19:18:45',\n",
120
+ " 29626833: '2023-08-24 19:20:00',\n",
121
+ " 29626866: '2023-08-24 19:23:00',\n",
122
+ " 29626868: '2023-08-24 19:23:10',\n",
123
+ " 29626906: '2023-08-24 19:26:30',\n",
124
+ " 29626911: '2023-08-24 19:26:55',\n",
125
+ " 29626940: '2023-08-24 19:29:25',\n",
126
+ " 29626942: '2023-08-24 19:29:35',\n",
127
+ " 29626988: '2023-08-24 19:33:30',\n",
128
+ " 29627017: '2023-08-24 19:35:55',\n",
129
+ " 29627029: '2023-08-24 19:36:55',\n",
130
+ " 29627061: '2023-08-24 19:39:40',\n",
131
+ " 29627102: '2023-08-24 19:43:15',\n",
132
+ " 29627135: '2023-08-24 19:46:15',\n",
133
+ " 29627143: '2023-08-24 19:46:55',\n",
134
+ " 29627176: '2023-08-24 19:49:50',\n",
135
+ " 29627207: '2023-08-24 19:52:35',\n",
136
+ " 29627238: '2023-08-24 19:55:20',\n",
137
+ " 29627271: '2023-08-24 19:58:15',\n",
138
+ " 29627301: '2023-08-24 20:00:45',\n",
139
+ " 29627333: '2023-08-24 20:03:25',\n",
140
+ " 29627358: '2023-08-24 20:05:35',\n",
141
+ " 29627370: '2023-08-24 20:06:35',\n",
142
+ " 29627401: '2023-08-24 20:09:20',\n",
143
+ " 29627443: '2023-08-24 20:12:50',\n",
144
+ " 29627474: '2023-08-24 20:15:35',\n",
145
+ " 29627477: '2023-08-24 20:15:50',\n",
146
+ " 29627500: '2023-08-24 20:17:55',\n",
147
+ " 29627513: '2023-08-24 20:19:05',\n",
148
+ " 29627544: '2023-08-24 20:21:50',\n",
149
+ " 29627585: '2023-08-24 20:25:25',\n",
150
+ " 29627626: '2023-08-24 20:28:55',\n",
151
+ " 29627648: '2023-08-24 20:30:55',\n",
152
+ " 29627685: '2023-08-24 20:34:00',\n",
153
+ " 29627691: '2023-08-24 20:34:30',\n",
154
+ " 29627727: '2023-08-24 20:37:35',\n",
155
+ " 29627796: '2023-08-24 20:43:35',\n",
156
+ " 29627797: '2023-08-24 20:43:40',\n",
157
+ " 29627840: '2023-08-24 20:47:35',\n",
158
+ " 29627870: '2023-08-24 20:50:10',\n",
159
+ " 29627939: '2023-08-24 20:56:00',\n",
160
+ " 29627996: '2023-08-24 21:01:00',\n",
161
+ " 29627999: '2023-08-24 21:01:15',\n",
162
+ " 29628024: '2023-08-24 21:03:20',\n",
163
+ " 29628037: '2023-08-24 21:04:30',\n",
164
+ " 29628062: '2023-08-24 21:06:45',\n",
165
+ " 29628112: '2023-08-24 21:11:15',\n",
166
+ " 29628144: '2023-08-24 21:13:55',\n",
167
+ " 29628178: '2023-08-24 21:16:45',\n",
168
+ " 29628214: '2023-08-24 21:19:50',\n",
169
+ " 29628340: '2023-08-24 21:31:00',\n",
170
+ " 29628408: '2023-08-24 21:36:55',\n",
171
+ " 29628418: '2023-08-24 21:37:45',\n",
172
+ " 29628618: '2023-08-24 21:54:50',\n",
173
+ " 29628754: '2023-08-24 22:06:40',\n",
174
+ " 29628838: '2023-08-24 22:13:55',\n",
175
+ " 29628872: '2023-08-24 22:16:45',\n",
176
+ " 29628912: '2023-08-24 22:20:05',\n",
177
+ " 29628966: '2023-08-24 22:24:45',\n",
178
+ " 29629109: '2023-08-24 22:37:15',\n",
179
+ " 29629129: '2023-08-24 22:38:55',\n",
180
+ " 29629324: '2023-08-24 22:55:45',\n",
181
+ " 29629465: '2023-08-24 23:07:55',\n",
182
+ " 29629520: '2023-08-24 23:12:40',\n",
183
+ " 29629872: '2023-08-24 23:43:05',\n",
184
+ " 29629885: '2023-08-24 23:44:10',\n",
185
+ " 29630048: '2023-08-24 23:58:15',\n",
186
+ " 29630079: '2023-08-25 00:00:50',\n",
187
+ " 29630177: '2023-08-25 00:09:10',\n",
188
+ " 29630273: '2023-08-25 00:17:40',\n",
189
+ " 29630657: '2023-08-25 00:50:55',\n",
190
+ " 29630798: '2023-08-25 01:03:00',\n",
191
+ " 29630811: '2023-08-25 01:04:05',\n",
192
+ " 29630906: '2023-08-25 01:12:05',\n",
193
+ " 29631197: '2023-08-25 01:36:35',\n",
194
+ " 29631417: '2023-08-25 01:55:15',\n",
195
+ " 29631447: '2023-08-25 01:57:50',\n",
196
+ " 29631625: '2023-08-25 02:13:10',\n",
197
+ " 29631643: '2023-08-25 02:14:40',\n",
198
+ " 29632032: '2023-08-25 02:48:25',\n",
199
+ " 29632230: '2023-08-25 03:06:20',\n",
200
+ " 29632622: '2023-08-25 03:40:05',\n",
201
+ " 29632691: '2023-08-25 03:46:15',\n",
202
+ " 29632761: '2023-08-25 03:52:25',\n",
203
+ " 29632799: '2023-08-25 03:55:35',\n",
204
+ " 29632989: '2023-08-25 04:12:10',\n",
205
+ " 29633174: '2023-08-25 04:28:30',\n",
206
+ " 29633209: '2023-08-25 04:31:30',\n",
207
+ " 29633239: '2023-08-25 04:34:05',\n",
208
+ " 29633274: '2023-08-25 04:37:00',\n",
209
+ " 29633302: '2023-08-25 04:39:35',\n",
210
+ " 29633335: '2023-08-25 04:42:20',\n",
211
+ " 29635428: '2023-08-25 07:43:05',\n",
212
+ " 29635466: '2023-08-25 07:46:20',\n",
213
+ " 29635500: '2023-08-25 07:49:10',\n",
214
+ " 29635534: '2023-08-25 07:52:10',\n",
215
+ " 29637763: '2023-08-25 11:04:55',\n",
216
+ " 29637799: '2023-08-25 11:08:10',\n",
217
+ " 29637831: '2023-08-25 11:10:50',\n",
218
+ " 29637862: '2023-08-25 11:13:40',\n",
219
+ " 29637894: '2023-08-25 11:16:25',\n",
220
+ " 29637927: '2023-08-25 11:19:15',\n",
221
+ " 29637957: '2023-08-25 11:21:50',\n",
222
+ " 29637990: '2023-08-25 11:24:40',\n",
223
+ " 29638022: '2023-08-25 11:27:20',\n",
224
+ " 29638094: '2023-08-25 11:33:45',\n",
225
+ " 29638128: '2023-08-25 11:36:40',\n",
226
+ " 29638170: '2023-08-25 11:40:15',\n",
227
+ " 29638211: '2023-08-25 11:43:50',\n",
228
+ " 29638244: '2023-08-25 11:46:35',\n",
229
+ " 29638268: '2023-08-25 11:48:45',\n",
230
+ " 29638303: '2023-08-25 11:51:45',\n",
231
+ " 29638332: '2023-08-25 11:54:15',\n",
232
+ " 29638362: '2023-08-25 11:57:00',\n",
233
+ " 29638392: '2023-08-25 11:59:40',\n",
234
+ " 29638428: '2023-08-25 12:02:40',\n",
235
+ " 29638458: '2023-08-25 12:05:15',\n",
236
+ " 29638490: '2023-08-25 12:08:10',\n",
237
+ " 29638520: '2023-08-25 12:10:40',\n",
238
+ " 29638545: '2023-08-25 12:12:50',\n",
239
+ " 29638582: '2023-08-25 12:15:55',\n",
240
+ " 29638615: '2023-08-25 12:18:40',\n",
241
+ " 29638645: '2023-08-25 12:21:10',\n",
242
+ " 29638705: '2023-08-25 12:26:25',\n",
243
+ " 29638765: '2023-08-25 12:31:50',\n",
244
+ " 29638797: '2023-08-25 12:34:40',\n",
245
+ " 29638828: '2023-08-25 12:37:20',\n",
246
+ " 29638860: '2023-08-25 12:40:00',\n",
247
+ " 29638892: '2023-08-25 12:42:40',\n",
248
+ " 29638925: '2023-08-25 12:45:25',\n",
249
+ " 29638962: '2023-08-25 12:48:35',\n",
250
+ " 29638998: '2023-08-25 12:51:45',\n",
251
+ " 29639024: '2023-08-25 12:54:05',\n",
252
+ " 29639057: '2023-08-25 12:56:55',\n",
253
+ " 29639243: '2023-08-25 13:12:45',\n",
254
+ " 29641337: '2023-08-25 16:13:15',\n",
255
+ " 29641399: '2023-08-25 16:18:30',\n",
256
+ " 29641453: '2023-08-25 16:23:15',\n",
257
+ " 29641509: '2023-08-25 16:28:00',\n",
258
+ " 29641563: '2023-08-25 16:32:35',\n",
259
+ " 29641616: '2023-08-25 16:37:15',\n",
260
+ " 29642258: '2023-08-25 17:32:40',\n",
261
+ " 29643215: '2023-08-25 18:55:00',\n",
262
+ " 29643255: '2023-08-25 18:58:25',\n",
263
+ " 29643260: '2023-08-25 18:58:50',\n",
264
+ " 29643298: '2023-08-25 19:02:00',\n",
265
+ " 29643327: '2023-08-25 19:04:40',\n",
266
+ " 29644232: '2023-08-25 20:22:45',\n",
267
+ " 29644848: '2023-08-25 21:15:45',\n",
268
+ " 29654744: '2023-08-26 11:28:55',\n",
269
+ " 29655483: '2023-08-26 12:33:05',\n",
270
+ " 29655554: '2023-08-26 12:39:05',\n",
271
+ " 29655584: '2023-08-26 12:41:40',\n",
272
+ " 29655604: '2023-08-26 12:43:30',\n",
273
+ " 29655606: '2023-08-26 12:43:40',\n",
274
+ " 29655615: '2023-08-26 12:44:25',\n",
275
+ " 29655642: '2023-08-26 12:46:40',\n",
276
+ " 29655661: '2023-08-26 12:48:20',\n",
277
+ " 29655675: '2023-08-26 12:49:30',\n",
278
+ " 29655703: '2023-08-26 12:51:55',\n",
279
+ " 29655715: '2023-08-26 12:52:55',\n",
280
+ " 29655725: '2023-08-26 12:53:50',\n",
281
+ " 29655758: '2023-08-26 12:56:35',\n",
282
+ " 29655769: '2023-08-26 12:57:30',\n",
283
+ " 29655778: '2023-08-26 12:58:15',\n",
284
+ " 29655807: '2023-08-26 13:00:45',\n",
285
+ " 29655829: '2023-08-26 13:02:35',\n",
286
+ " 29655834: '2023-08-26 13:03:00',\n",
287
+ " 29655862: '2023-08-26 13:05:30',\n",
288
+ " 29655878: '2023-08-26 13:06:50',\n",
289
+ " 29655888: '2023-08-26 13:07:40',\n",
290
+ " 29655948: '2023-08-26 13:12:50',\n",
291
+ " 29655956: '2023-08-26 13:13:35',\n",
292
+ " 29656024: '2023-08-26 13:19:20',\n",
293
+ " 29656074: '2023-08-26 13:23:40',\n",
294
+ " 29656114: '2023-08-26 13:27:05',\n",
295
+ " 29656116: '2023-08-26 13:27:15',\n",
296
+ " 29656126: '2023-08-26 13:28:05',\n",
297
+ " 29656157: '2023-08-26 13:30:45',\n",
298
+ " 29656163: '2023-08-26 13:31:25',\n",
299
+ " 29656175: '2023-08-26 13:32:25',\n",
300
+ " 29656197: '2023-08-26 13:34:15',\n",
301
+ " 29656210: '2023-08-26 13:35:20',\n",
302
+ " 29656221: '2023-08-26 13:36:15',\n",
303
+ " 29656251: '2023-08-26 13:38:50',\n",
304
+ " 29656258: '2023-08-26 13:39:30',\n",
305
+ " 29656268: '2023-08-26 13:40:20',\n",
306
+ " 29656298: '2023-08-26 13:42:50',\n",
307
+ " 29656306: '2023-08-26 13:43:35',\n",
308
+ " 29656317: '2023-08-26 13:44:30',\n",
309
+ " 29656345: '2023-08-26 13:47:05',\n",
310
+ " 29656356: '2023-08-26 13:48:00',\n",
311
+ " 29656363: '2023-08-26 13:48:40',\n",
312
+ " 29656394: '2023-08-26 13:51:20',\n",
313
+ " 29656403: '2023-08-26 13:52:10',\n",
314
+ " 29656413: '2023-08-26 13:53:00',\n",
315
+ " 29656454: '2023-08-26 13:56:35',\n",
316
+ " 29656464: '2023-08-26 13:57:35',\n",
317
+ " 29656489: '2023-08-26 13:59:40',\n",
318
+ " 29656746: '2023-08-26 14:21:55',\n",
319
+ " 29656779: '2023-08-26 14:24:40',\n",
320
+ " 29656812: '2023-08-26 14:27:25',\n",
321
+ " 29656843: '2023-08-26 14:30:05',\n",
322
+ " 29656876: '2023-08-26 14:32:50',\n",
323
+ " 29656901: '2023-08-26 14:35:05',\n",
324
+ " 29656935: '2023-08-26 14:38:05',\n",
325
+ " 29656967: '2023-08-26 14:40:55',\n",
326
+ " 29657014: '2023-08-26 14:44:55',\n",
327
+ " 29657045: '2023-08-26 14:47:30',\n",
328
+ " 29657065: '2023-08-26 14:49:10',\n",
329
+ " 29657095: '2023-08-26 14:51:40',\n",
330
+ " 29657135: '2023-08-26 14:55:00',\n",
331
+ " 29657165: '2023-08-26 14:57:30',\n",
332
+ " 29657198: '2023-08-26 15:00:15',\n",
333
+ " 29657232: '2023-08-26 15:03:15',\n",
334
+ " 29657265: '2023-08-26 15:06:05',\n",
335
+ " 29657294: '2023-08-26 15:08:40',\n",
336
+ " 29657321: '2023-08-26 15:10:55',\n",
337
+ " 29657358: '2023-08-26 15:14:00',\n",
338
+ " 29657391: '2023-08-26 15:16:45',\n",
339
+ " 29657422: '2023-08-26 15:19:25',\n",
340
+ " 29657451: '2023-08-26 15:22:00',\n",
341
+ " 29657484: '2023-08-26 15:24:45',\n",
342
+ " 29657522: '2023-08-26 15:28:00',\n",
343
+ " 29657553: '2023-08-26 15:30:45',\n",
344
+ " 29657581: '2023-08-26 15:33:10',\n",
345
+ " 29657613: '2023-08-26 15:35:55',\n",
346
+ " 29657647: '2023-08-26 15:38:45',\n",
347
+ " 29657739: '2023-08-26 15:46:40',\n",
348
+ " 29657771: '2023-08-26 15:49:30',\n",
349
+ " 29657799: '2023-08-26 15:51:50',\n",
350
+ " 29657840: '2023-08-26 15:55:20',\n",
351
+ " 29657868: '2023-08-26 15:57:55',\n",
352
+ " 29657902: '2023-08-26 16:00:45',\n",
353
+ " 29657934: '2023-08-26 16:03:30',\n",
354
+ " 29657966: '2023-08-26 16:06:20',\n",
355
+ " 29658006: '2023-08-26 16:09:50',\n",
356
+ " 29658038: '2023-08-26 16:12:35',\n",
357
+ " 29658074: '2023-08-26 16:15:35',\n",
358
+ " 29658108: '2023-08-26 16:18:25',\n",
359
+ " 29658138: '2023-08-26 16:21:10',\n",
360
+ " 29658169: '2023-08-26 16:23:50',\n",
361
+ " 29658195: '2023-08-26 16:26:05',\n",
362
+ " 29658231: '2023-08-26 16:29:15',\n",
363
+ " 29658261: '2023-08-26 16:31:55',\n",
364
+ " 29658294: '2023-08-26 16:34:45',\n",
365
+ " 29658323: '2023-08-26 16:37:20',\n",
366
+ " 29658361: '2023-08-26 16:40:30',\n",
367
+ " 29658391: '2023-08-26 16:43:05',\n",
368
+ " 29658422: '2023-08-26 16:45:55',\n",
369
+ " 29658454: '2023-08-26 16:48:35',\n",
370
+ " 29658488: '2023-08-26 16:51:25',\n",
371
+ " 29658518: '2023-08-26 16:54:05',\n",
372
+ " 29658552: '2023-08-26 16:56:55',\n",
373
+ " 29658583: '2023-08-26 16:59:30',\n",
374
+ " 29658614: '2023-08-26 17:02:15',\n",
375
+ " 29658646: '2023-08-26 17:04:55',\n",
376
+ " 29658648: '2023-08-26 17:05:05',\n",
377
+ " 29658678: '2023-08-26 17:07:35',\n",
378
+ " 29658688: '2023-08-26 17:08:25',\n",
379
+ " 29658717: '2023-08-26 17:11:00',\n",
380
+ " 29658728: '2023-08-26 17:11:55',\n",
381
+ " 29658761: '2023-08-26 17:14:40',\n",
382
+ " 29658768: '2023-08-26 17:15:20',\n",
383
+ " 29658801: '2023-08-26 17:18:05',\n",
384
+ " 29658813: '2023-08-26 17:19:05',\n",
385
+ " 29658845: '2023-08-26 17:21:45',\n",
386
+ " 29658887: '2023-08-26 17:25:15',\n",
387
+ " 29658897: '2023-08-26 17:26:05',\n",
388
+ " 29658938: '2023-08-26 17:29:40',\n",
389
+ " 29658969: '2023-08-26 17:32:15',\n",
390
+ " 29658996: '2023-08-26 17:34:35',\n",
391
+ " 29659039: '2023-08-26 17:38:10',\n",
392
+ " 29659068: '2023-08-26 17:40:45',\n",
393
+ " 29659115: '2023-08-26 17:44:50',\n",
394
+ " 29659148: '2023-08-26 17:47:45',\n",
395
+ " 29659177: '2023-08-26 17:50:15',\n",
396
+ " 29659213: '2023-08-26 17:53:15',\n",
397
+ " 29659239: '2023-08-26 17:55:30',\n",
398
+ " 29659281: '2023-08-26 17:59:05',\n",
399
+ " 29659312: '2023-08-26 18:01:45',\n",
400
+ " 29659343: '2023-08-26 18:04:25',\n",
401
+ " 29659374: '2023-08-26 18:07:00',\n",
402
+ " 29659409: '2023-08-26 18:09:55',\n",
403
+ " 29659442: '2023-08-26 18:12:40',\n",
404
+ " 29659474: '2023-08-26 18:15:30',\n",
405
+ " 29659505: '2023-08-26 18:18:05',\n",
406
+ " 29659536: '2023-08-26 18:20:50',\n",
407
+ " 29659566: '2023-08-26 18:23:25',\n",
408
+ " 29659595: '2023-08-26 18:26:00',\n",
409
+ " 29659627: '2023-08-26 18:28:45',\n",
410
+ " 29659658: '2023-08-26 18:31:25',\n",
411
+ " 29659697: '2023-08-26 18:35:00',\n",
412
+ " 29659736: '2023-08-26 18:38:20',\n",
413
+ " 29659769: '2023-08-26 18:41:05',\n",
414
+ " 29659800: '2023-08-26 18:43:45',\n",
415
+ " 29659831: '2023-08-26 18:46:30',\n",
416
+ " 29661153: '2023-08-26 20:41:00',\n",
417
+ " 29661197: '2023-08-26 20:44:45',\n",
418
+ " 29661425: '2023-08-26 21:04:20',\n",
419
+ " 29669486: '2023-08-27 08:40:20',\n",
420
+ " 29669540: '2023-08-27 08:44:50',\n",
421
+ " 29669570: '2023-08-27 08:47:20',\n",
422
+ " 29669605: '2023-08-27 08:50:20',\n",
423
+ " 29669633: '2023-08-27 08:52:45',\n",
424
+ " 29669676: '2023-08-27 08:56:35',\n",
425
+ " 29669707: '2023-08-27 08:59:15',\n",
426
+ " 29669744: '2023-08-27 09:02:20',\n",
427
+ " 29669775: '2023-08-27 09:05:00',\n",
428
+ " 29669808: '2023-08-27 09:07:50',\n",
429
+ " 29669842: '2023-08-27 09:10:40',\n",
430
+ " 29669876: '2023-08-27 09:13:40',\n",
431
+ " 29669907: '2023-08-27 09:16:30',\n",
432
+ " 29669936: '2023-08-27 09:19:15',\n",
433
+ " 29669968: '2023-08-27 09:22:05',\n",
434
+ " 29669998: '2023-08-27 09:24:45',\n",
435
+ " 29670030: '2023-08-27 09:27:25',\n",
436
+ " 29670060: '2023-08-27 09:29:55',\n",
437
+ " 29670094: '2023-08-27 09:32:45',\n",
438
+ " 29670125: '2023-08-27 09:35:35',\n",
439
+ " 29670154: '2023-08-27 09:38:05',\n",
440
+ " 29670185: '2023-08-27 09:41:00',\n",
441
+ " 29670217: '2023-08-27 09:43:40',\n",
442
+ " 29670247: '2023-08-27 09:46:15',\n",
443
+ " 29670280: '2023-08-27 09:49:15',\n",
444
+ " 29670311: '2023-08-27 09:51:50',\n",
445
+ " 29670342: '2023-08-27 09:54:35',\n",
446
+ " 29670376: '2023-08-27 09:57:30',\n",
447
+ " 29670407: '2023-08-27 10:00:20',\n",
448
+ " 29670437: '2023-08-27 10:02:55',\n",
449
+ " 29670466: '2023-08-27 10:05:30',\n",
450
+ " 29670499: '2023-08-27 10:08:30',\n",
451
+ " 29670529: '2023-08-27 10:11:05',\n",
452
+ " 29670561: '2023-08-27 10:13:50',\n",
453
+ " 29670599: '2023-08-27 10:17:00',\n",
454
+ " 29670633: '2023-08-27 10:19:55',\n",
455
+ " 29670664: '2023-08-27 10:22:40',\n",
456
+ " 29670695: '2023-08-27 10:25:25',\n",
457
+ " 29670730: '2023-08-27 10:28:30',\n",
458
+ " 29670772: '2023-08-27 10:32:05',\n",
459
+ " 29670808: '2023-08-27 10:35:15',\n",
460
+ " 29672920: '2023-08-27 13:38:05',\n",
461
+ " 29673574: '2023-08-27 14:34:20',\n",
462
+ " 29673602: '2023-08-27 14:36:45',\n",
463
+ " 29673633: '2023-08-27 14:39:20',\n",
464
+ " 29673665: '2023-08-27 14:42:10',\n",
465
+ " 29677021: '2023-08-27 19:31:50',\n",
466
+ " 29677040: '2023-08-27 19:33:35',\n",
467
+ " 29677073: '2023-08-27 19:36:25',\n",
468
+ " 29677101: '2023-08-27 19:39:05',\n",
469
+ " 29677134: '2023-08-27 19:42:00',\n",
470
+ " 29677161: '2023-08-27 19:44:20',\n",
471
+ " 29677233: '2023-08-27 19:50:25',\n",
472
+ " 29677266: '2023-08-27 19:53:20',\n",
473
+ " 29677291: '2023-08-27 19:55:30',\n",
474
+ " 29677320: '2023-08-27 19:58:10',\n",
475
+ " 29677357: '2023-08-27 20:01:20',\n",
476
+ " 29677387: '2023-08-27 20:03:55',\n",
477
+ " 29677480: '2023-08-27 20:11:50',\n",
478
+ " 29677497: '2023-08-27 20:13:15',\n",
479
+ " 29677540: '2023-08-27 20:17:05',\n",
480
+ " 29677569: '2023-08-27 20:19:40',\n",
481
+ " 29677628: '2023-08-27 20:24:55',\n",
482
+ " 29677686: '2023-08-27 20:30:00',\n",
483
+ " 29677716: '2023-08-27 20:32:40',\n",
484
+ " 29677748: '2023-08-27 20:35:20',\n",
485
+ " 29677780: '2023-08-27 20:38:05',\n",
486
+ " 29677811: '2023-08-27 20:40:45',\n",
487
+ " 29677844: '2023-08-27 20:43:35',\n",
488
+ " 29677875: '2023-08-27 20:46:15',\n",
489
+ " 29677906: '2023-08-27 20:48:55',\n",
490
+ " 29677948: '2023-08-27 20:52:35',\n",
491
+ " 29677981: '2023-08-27 20:55:30',\n",
492
+ " 29678012: '2023-08-27 20:58:05',\n",
493
+ " 29678042: '2023-08-27 21:00:45',\n",
494
+ " 29678076: '2023-08-27 21:03:50',\n",
495
+ " 29678109: '2023-08-27 21:06:45',\n",
496
+ " 29678143: '2023-08-27 21:09:40',\n",
497
+ " 29678176: '2023-08-27 21:12:35',\n",
498
+ " 29678207: '2023-08-27 21:15:15',\n",
499
+ " 29678240: '2023-08-27 21:18:05',\n",
500
+ " 29678274: '2023-08-27 21:20:55',\n",
501
+ " 29678309: '2023-08-27 21:23:55',\n",
502
+ " 29678339: '2023-08-27 21:26:30',\n",
503
+ " 29678373: '2023-08-27 21:29:25',\n",
504
+ " 29678404: '2023-08-27 21:32:05',\n",
505
+ " 29678435: '2023-08-27 21:34:50',\n",
506
+ " 29678468: '2023-08-27 21:37:45',\n",
507
+ " 29678506: '2023-08-27 21:41:05',\n",
508
+ " 29678536: '2023-08-27 21:43:45',\n",
509
+ " 29678568: '2023-08-27 21:46:30',\n",
510
+ " 29678598: '2023-08-27 21:49:05',\n",
511
+ " 29678628: '2023-08-27 21:51:45',\n",
512
+ " 29678655: '2023-08-27 21:54:25',\n",
513
+ " 29678686: '2023-08-27 21:57:05',\n",
514
+ " 29678715: '2023-08-27 21:59:40',\n",
515
+ " 29678748: '2023-08-27 22:02:35',\n",
516
+ " 29678778: '2023-08-27 22:05:15',\n",
517
+ " 29678807: '2023-08-27 22:07:55',\n",
518
+ " 29678839: '2023-08-27 22:10:40',\n",
519
+ " 29678870: '2023-08-27 22:13:20',\n",
520
+ " 29678908: '2023-08-27 22:16:45',\n",
521
+ " 29678938: '2023-08-27 22:19:20',\n",
522
+ " 29678972: '2023-08-27 22:22:15',\n",
523
+ " 29679068: '2023-08-27 22:30:35',\n",
524
+ " 29679115: '2023-08-27 22:34:35',\n",
525
+ " 29683326: '2023-08-28 04:45:25',\n",
526
+ " 29685845: '2023-08-28 08:29:10',\n",
527
+ " 29686310: '2023-08-28 09:10:45',\n",
528
+ " 29686343: '2023-08-28 09:13:45',\n",
529
+ " 29686366: '2023-08-28 09:15:40',\n",
530
+ " 29686396: '2023-08-28 09:18:25',\n",
531
+ " 29686421: '2023-08-28 09:20:40',\n",
532
+ " 29686444: '2023-08-28 09:22:50',\n",
533
+ " 29686466: '2023-08-28 09:24:55',\n",
534
+ " 29686505: '2023-08-28 09:28:20',\n",
535
+ " 29686537: '2023-08-28 09:31:10',\n",
536
+ " 29686564: '2023-08-28 09:33:35',\n",
537
+ " 29686593: '2023-08-28 09:36:10',\n",
538
+ " 29686634: '2023-08-28 09:39:45',\n",
539
+ " 29686665: '2023-08-28 09:42:25',\n",
540
+ " 29686697: '2023-08-28 09:45:10',\n",
541
+ " 29686727: '2023-08-28 09:47:50',\n",
542
+ " 29686756: '2023-08-28 09:50:30',\n",
543
+ " 29686777: '2023-08-28 09:52:35',\n",
544
+ " 29686803: '2023-08-28 09:55:10',\n",
545
+ " 29686828: '2023-08-28 09:57:25',\n",
546
+ " 29686859: '2023-08-28 10:00:10',\n",
547
+ " 29686886: '2023-08-28 10:02:40',\n",
548
+ " 29686926: '2023-08-28 10:06:10',\n",
549
+ " 29686947: '2023-08-28 10:08:00',\n",
550
+ " 29686973: '2023-08-28 10:10:20',\n",
551
+ " 29687013: '2023-08-28 10:13:45',\n",
552
+ " 29687047: '2023-08-28 10:16:50',\n",
553
+ " 29687081: '2023-08-28 10:19:50',\n",
554
+ " 29687119: '2023-08-28 10:23:35',\n",
555
+ " 29687146: '2023-08-28 10:25:55',\n",
556
+ " 29687175: '2023-08-28 10:28:50',\n",
557
+ " 29687211: '2023-08-28 10:32:10',\n",
558
+ " 29687234: '2023-08-28 10:34:15',\n",
559
+ " 29687270: '2023-08-28 10:37:30',\n",
560
+ " 29687295: '2023-08-28 10:39:40',\n",
561
+ " 29687326: '2023-08-28 10:42:25',\n",
562
+ " 29687358: '2023-08-28 10:45:10',\n",
563
+ " 29687376: '2023-08-28 10:47:00',\n",
564
+ " 29687398: '2023-08-28 10:49:10',\n",
565
+ " 29687433: '2023-08-28 10:52:20',\n",
566
+ " 29687455: '2023-08-28 10:54:20',\n",
567
+ " 29687477: '2023-08-28 10:56:15',\n",
568
+ " 29687509: '2023-08-28 10:59:10',\n",
569
+ " 29687529: '2023-08-28 11:01:05',\n",
570
+ " 29687554: '2023-08-28 11:03:15',\n",
571
+ " 29687584: '2023-08-28 11:05:55',\n",
572
+ " 29687605: '2023-08-28 11:07:55',\n",
573
+ " 29687636: '2023-08-28 11:10:30',\n",
574
+ " 29687668: '2023-08-28 11:13:35',\n",
575
+ " 29697030: '2023-08-29 00:50:50',\n",
576
+ " 29697993: '2023-08-29 02:12:55',\n",
577
+ " 29698024: '2023-08-29 02:15:40',\n",
578
+ " 29698056: '2023-08-29 02:18:30',\n",
579
+ " 29698089: '2023-08-29 02:21:20',\n",
580
+ " 29698124: '2023-08-29 02:24:20',\n",
581
+ " 29700107: '2023-08-29 05:15:25',\n",
582
+ " 29700134: '2023-08-29 05:17:40',\n",
583
+ " 29700166: '2023-08-29 05:20:20',\n",
584
+ " 29700198: '2023-08-29 05:23:00',\n",
585
+ " 29700227: '2023-08-29 05:25:40',\n",
586
+ " 29700258: '2023-08-29 05:28:15',\n",
587
+ " 29700287: '2023-08-29 05:30:50',\n",
588
+ " 29700318: '2023-08-29 05:33:35',\n",
589
+ " 29700346: '2023-08-29 05:35:55',\n",
590
+ " 29700379: '2023-08-29 05:38:45',\n",
591
+ " 29700417: '2023-08-29 05:41:55',\n",
592
+ " 29700449: '2023-08-29 05:44:45',\n",
593
+ " 29700478: '2023-08-29 05:47:15',\n",
594
+ " 29700513: '2023-08-29 05:50:10',\n",
595
+ " 29700544: '2023-08-29 05:52:55',\n",
596
+ " 29700575: '2023-08-29 05:55:30',\n",
597
+ " 29700608: '2023-08-29 05:58:15',\n",
598
+ " 29700636: '2023-08-29 06:00:45',\n",
599
+ " 29700667: '2023-08-29 06:03:40',\n",
600
+ " 29700701: '2023-08-29 06:06:35',\n",
601
+ " 29700732: '2023-08-29 06:09:15',\n",
602
+ " 29700763: '2023-08-29 06:12:00',\n",
603
+ " 29700794: '2023-08-29 06:14:45',\n",
604
+ " 29700829: '2023-08-29 06:17:40',\n",
605
+ " 29700863: '2023-08-29 06:20:30',\n",
606
+ " 29700895: '2023-08-29 06:23:15',\n",
607
+ " 29700924: '2023-08-29 06:25:40',\n",
608
+ " 29700958: '2023-08-29 06:28:35',\n",
609
+ " 29700989: '2023-08-29 06:31:15',\n",
610
+ " 29701023: '2023-08-29 06:34:05',\n",
611
+ " 29701059: '2023-08-29 06:37:05',\n",
612
+ " 29701090: '2023-08-29 06:39:55',\n",
613
+ " 29701121: '2023-08-29 06:42:45',\n",
614
+ " 29701935: '2023-08-29 07:54:20',\n",
615
+ " 29702276: '2023-08-29 08:23:45',\n",
616
+ " 29702318: '2023-08-29 08:27:25',\n",
617
+ " 29702351: '2023-08-29 08:30:15',\n",
618
+ " 29702389: '2023-08-29 08:33:30',\n",
619
+ " 29702424: '2023-08-29 08:36:25',\n",
620
+ " 29702454: '2023-08-29 08:38:55',\n",
621
+ " 29702490: '2023-08-29 08:41:55',\n",
622
+ " 29702525: '2023-08-29 08:44:55',\n",
623
+ " 29702557: '2023-08-29 08:47:45',\n",
624
+ " 29702590: '2023-08-29 08:50:30',\n",
625
+ " 29702623: '2023-08-29 08:53:20',\n",
626
+ " 29702684: '2023-08-29 08:58:35',\n",
627
+ " 29702709: '2023-08-29 09:00:45',\n",
628
+ " 29702748: '2023-08-29 09:04:05',\n",
629
+ " 29702782: '2023-08-29 09:06:55',\n",
630
+ " 29702811: '2023-08-29 09:09:25',\n",
631
+ " 29702842: '2023-08-29 09:12:10',\n",
632
+ " 29702875: '2023-08-29 09:14:55',\n",
633
+ " 29702908: '2023-08-29 09:17:40',\n",
634
+ " 29702937: '2023-08-29 09:20:10',\n",
635
+ " 29702971: '2023-08-29 09:23:00',\n",
636
+ " 29703003: '2023-08-29 09:25:55',\n",
637
+ " 29703039: '2023-08-29 09:29:00',\n",
638
+ " 29703070: '2023-08-29 09:31:40',\n",
639
+ " 29703104: '2023-08-29 09:34:30',\n",
640
+ " 29703135: '2023-08-29 09:37:05',\n",
641
+ " 29703168: '2023-08-29 09:39:50',\n",
642
+ " 29703202: '2023-08-29 09:42:40',\n",
643
+ " 29703237: '2023-08-29 09:45:35',\n",
644
+ " 29703279: '2023-08-29 09:49:05',\n",
645
+ " 29703315: '2023-08-29 09:52:05',\n",
646
+ " 29703413: '2023-08-29 10:00:35',\n",
647
+ " 29703698: '2023-08-29 10:25:00',\n",
648
+ " 29703740: '2023-08-29 10:28:35',\n",
649
+ " 29703771: '2023-08-29 10:31:20',\n",
650
+ " 29703808: '2023-08-29 10:34:30',\n",
651
+ " 29703845: '2023-08-29 10:37:40',\n",
652
+ " 29703859: '2023-08-29 10:38:50',\n",
653
+ " 29703883: '2023-08-29 10:40:50',\n",
654
+ " 29703891: '2023-08-29 10:41:30',\n",
655
+ " 29703924: '2023-08-29 10:44:25',\n",
656
+ " 29703931: '2023-08-29 10:45:00',\n",
657
+ " 29703968: '2023-08-29 10:48:05',\n",
658
+ " 29703975: '2023-08-29 10:48:40',\n",
659
+ " 29704007: '2023-08-29 10:51:20',\n",
660
+ " 29704015: '2023-08-29 10:52:00',\n",
661
+ " 29704052: '2023-08-29 10:55:05',\n",
662
+ " 29704059: '2023-08-29 10:55:45',\n",
663
+ " 29704096: '2023-08-29 10:59:00',\n",
664
+ " 29704104: '2023-08-29 10:59:45',\n",
665
+ " 29704139: '2023-08-29 11:02:40',\n",
666
+ " 29704146: '2023-08-29 11:03:15',\n",
667
+ " 29704179: '2023-08-29 11:06:05',\n",
668
+ " 29704188: '2023-08-29 11:06:50',\n",
669
+ " 29704219: '2023-08-29 11:09:30',\n",
670
+ " 29704227: '2023-08-29 11:10:10',\n",
671
+ " 29704259: '2023-08-29 11:13:00',\n",
672
+ " 29704266: '2023-08-29 11:13:35',\n",
673
+ " 29704302: '2023-08-29 11:16:40',\n",
674
+ " 29704310: '2023-08-29 11:17:20',\n",
675
+ " 29704344: '2023-08-29 11:20:10',\n",
676
+ " 29704345: '2023-08-29 11:20:15',\n",
677
+ " 29704387: '2023-08-29 11:23:55',\n",
678
+ " 29704396: '2023-08-29 11:24:40',\n",
679
+ " 29704428: '2023-08-29 11:27:20',\n",
680
+ " 29704437: '2023-08-29 11:28:05',\n",
681
+ " 29704471: '2023-08-29 11:31:00',\n",
682
+ " 29704478: '2023-08-29 11:31:35',\n",
683
+ " 29704518: '2023-08-29 11:34:55',\n",
684
+ " 29704520: '2023-08-29 11:35:05',\n",
685
+ " 29704561: '2023-08-29 11:38:30',\n",
686
+ " 29704571: '2023-08-29 11:39:20',\n",
687
+ " 29704603: '2023-08-29 11:42:00',\n",
688
+ " 29704612: '2023-08-29 11:42:50',\n",
689
+ " 29704642: '2023-08-29 11:45:20',\n",
690
+ " 29704650: '2023-08-29 11:46:05',\n",
691
+ " 29704683: '2023-08-29 11:48:55',\n",
692
+ " 29704691: '2023-08-29 11:49:35',\n",
693
+ " 29704727: '2023-08-29 11:52:35',\n",
694
+ " 29704732: '2023-08-29 11:53:05',\n",
695
+ " 29704767: '2023-08-29 11:56:05',\n",
696
+ " 29704775: '2023-08-29 11:56:45',\n",
697
+ " 29704808: '2023-08-29 11:59:45',\n",
698
+ " 29704814: '2023-08-29 12:00:15',\n",
699
+ " 29704828: '2023-08-29 12:01:25',\n",
700
+ " 29704854: '2023-08-29 12:03:40',\n",
701
+ " 29704860: '2023-08-29 12:04:10',\n",
702
+ " 29704897: '2023-08-29 12:07:15',\n",
703
+ " 29704926: '2023-08-29 12:10:00',\n",
704
+ " 29704934: '2023-08-29 12:10:40',\n",
705
+ " 29704967: '2023-08-29 12:13:25',\n",
706
+ " 29705009: '2023-08-29 12:16:55',\n",
707
+ " 29705044: '2023-08-29 12:20:10',\n",
708
+ " 29705077: '2023-08-29 12:23:00',\n",
709
+ " 29705106: '2023-08-29 12:25:45',\n",
710
+ " 29705138: '2023-08-29 12:28:30',\n",
711
+ " 29705170: '2023-08-29 12:31:10',\n",
712
+ " 29705203: '2023-08-29 12:33:55',\n",
713
+ " 29705242: '2023-08-29 12:37:10',\n",
714
+ " 29705275: '2023-08-29 12:39:55',\n",
715
+ " 29705307: '2023-08-29 12:42:45',\n",
716
+ " 29705337: '2023-08-29 12:45:20',\n",
717
+ " 29705371: '2023-08-29 12:48:10',\n",
718
+ " 29705399: '2023-08-29 12:50:35',\n",
719
+ " 29705490: '2023-08-29 12:58:20',\n",
720
+ " 29705518: '2023-08-29 13:00:40',\n",
721
+ " 29705547: '2023-08-29 13:03:05',\n",
722
+ " 29705571: '2023-08-29 13:05:20',\n",
723
+ " 29705719: '2023-08-29 13:18:00',\n",
724
+ " 29705832: '2023-08-29 13:27:40',\n",
725
+ " 29705884: '2023-08-29 13:32:05',\n",
726
+ " 29706109: '2023-08-29 13:51:20',\n",
727
+ " 29706171: '2023-08-29 13:56:40',\n",
728
+ " 29706223: '2023-08-29 14:01:00',\n",
729
+ " 29706253: '2023-08-29 14:03:30',\n",
730
+ " 29706280: '2023-08-29 14:05:50',\n",
731
+ " 29706310: '2023-08-29 14:08:30',\n",
732
+ " 29706336: '2023-08-29 14:10:45',\n",
733
+ " 29706367: '2023-08-29 14:13:25',\n",
734
+ " 29706395: '2023-08-29 14:15:50',\n",
735
+ " 29706422: '2023-08-29 14:18:10',\n",
736
+ " 29706448: '2023-08-29 14:20:35',\n",
737
+ " 29706476: '2023-08-29 14:23:00',\n",
738
+ " 29706503: '2023-08-29 14:25:20',\n",
739
+ " 29706531: '2023-08-29 14:27:45',\n",
740
+ " 29706560: '2023-08-29 14:30:20',\n",
741
+ " 29706585: '2023-08-29 14:32:45',\n",
742
+ " 29706612: '2023-08-29 14:35:10',\n",
743
+ " 29706639: '2023-08-29 14:37:45',\n",
744
+ " 29706667: '2023-08-29 14:40:10',\n",
745
+ " 29706695: '2023-08-29 14:42:35',\n",
746
+ " 29706699: '2023-08-29 14:42:55',\n",
747
+ " 29706731: '2023-08-29 14:46:00',\n",
748
+ " 29706734: '2023-08-29 14:46:15',\n",
749
+ " 29706749: '2023-08-29 14:47:30',\n",
750
+ " 29706785: '2023-08-29 14:50:30',\n",
751
+ " 29706789: '2023-08-29 14:50:50',\n",
752
+ " 29706844: '2023-08-29 14:55:40',\n",
753
+ " 29706889: '2023-08-29 14:59:40',\n",
754
+ " 29706891: '2023-08-29 14:59:50',\n",
755
+ " 29707157: '2023-08-29 15:22:55',\n",
756
+ " 29707158: '2023-08-29 15:23:00',\n",
757
+ " 29707835: '2023-08-29 16:20:40',\n",
758
+ " 29707838: '2023-08-29 16:20:55',\n",
759
+ " 29708554: '2023-08-29 17:21:55',\n",
760
+ " 29709464: '2023-08-29 18:39:50',\n",
761
+ " 29709481: '2023-08-29 18:41:15',\n",
762
+ " 29709486: '2023-08-29 18:41:40',\n",
763
+ " 29709555: '2023-08-29 18:47:25',\n",
764
+ " 29709575: '2023-08-29 18:49:20',\n",
765
+ " 29709605: '2023-08-29 18:51:50',\n",
766
+ " 29709789: '2023-08-29 19:07:50',\n",
767
+ " 29709837: '2023-08-29 19:12:05',\n",
768
+ " 29710456: '2023-08-29 20:05:40',\n",
769
+ " 29710587: '2023-08-29 20:16:45',\n",
770
+ " 29711420: '2023-08-29 21:29:00',\n",
771
+ " 29211965: '2023-07-30 14:46:45',\n",
772
+ " 29212040: '2023-07-30 14:53:15',\n",
773
+ " 29212116: '2023-07-30 14:59:50',\n",
774
+ " 29212192: '2023-07-30 15:06:25',\n",
775
+ " 29212263: '2023-07-30 15:12:50',\n",
776
+ " 29212341: '2023-07-30 15:19:25',\n",
777
+ " 29212413: '2023-07-30 15:25:50',\n",
778
+ " 29212485: '2023-07-30 15:32:15',\n",
779
+ " 29212559: '2023-07-30 15:38:40',\n",
780
+ " 29225523: '2023-07-31 10:17:10',\n",
781
+ " 29228605: '2023-07-31 14:49:00',\n",
782
+ " 29228631: '2023-07-31 14:51:25',\n",
783
+ " 29228660: '2023-07-31 14:54:00',\n",
784
+ " 29228711: '2023-07-31 14:58:45',\n",
785
+ " 29228726: '2023-07-31 15:00:40',\n",
786
+ " 29228728: '2023-07-31 15:00:50',\n",
787
+ " 29228787: '2023-07-31 15:06:05',\n",
788
+ " 29228809: '2023-07-31 15:08:05',\n",
789
+ " 29228837: '2023-07-31 15:10:25',\n",
790
+ " 29228895: '2023-07-31 15:15:35',\n",
791
+ " 29228924: '2023-07-31 15:18:20',\n",
792
+ " 29228951: '2023-07-31 15:20:50',\n",
793
+ " 29228975: '2023-07-31 15:22:55',\n",
794
+ " 29229307: '2023-07-31 15:52:00',\n",
795
+ " 29229488: '2023-07-31 16:07:40',\n",
796
+ " 29229574: '2023-07-31 16:15:30',\n",
797
+ " 29230004: '2023-07-31 16:52:50',\n",
798
+ " 29230280: '2023-07-31 17:16:40',\n",
799
+ " 29230472: '2023-07-31 17:33:50',\n",
800
+ " 29230571: '2023-07-31 17:42:15',\n",
801
+ " 29230702: '2023-07-31 17:53:45',\n",
802
+ " 29230977: '2023-07-31 18:17:35',\n",
803
+ " 29231150: '2023-07-31 18:33:10',\n",
804
+ " 29231175: '2023-07-31 18:35:15',\n",
805
+ " 29231228: '2023-07-31 18:39:45',\n",
806
+ " 29231273: '2023-07-31 18:43:40',\n",
807
+ " 29231303: '2023-07-31 18:46:20',\n",
808
+ " 29231357: '2023-07-31 18:51:05',\n",
809
+ " 29231378: '2023-07-31 18:52:50',\n",
810
+ " 29231444: '2023-07-31 18:58:25',\n",
811
+ " 29231454: '2023-07-31 18:59:20',\n",
812
+ " 29231527: '2023-07-31 19:05:40',\n",
813
+ " 29231530: '2023-07-31 19:05:55',\n",
814
+ " 29231606: '2023-07-31 19:12:30',\n",
815
+ " 29231613: '2023-07-31 19:13:05',\n",
816
+ " 29231682: '2023-07-31 19:19:10',\n",
817
+ " 29231697: '2023-07-31 19:20:25',\n",
818
+ " 29231758: '2023-07-31 19:25:45',\n",
819
+ " 29231780: '2023-07-31 19:27:40',\n",
820
+ " 29231832: '2023-07-31 19:32:20',\n",
821
+ " 29231862: '2023-07-31 19:35:10',\n",
822
+ " 29231904: '2023-07-31 19:38:50',\n",
823
+ " 29231948: '2023-07-31 19:42:45',\n",
824
+ " 29231978: '2023-07-31 19:45:20',\n",
825
+ " 29232034: '2023-07-31 19:50:05',\n",
826
+ " 29232055: '2023-07-31 19:51:55',\n",
827
+ " 29232118: '2023-07-31 19:57:20',\n",
828
+ " 29232131: '2023-07-31 19:58:30',\n",
829
+ " 29232204: '2023-07-31 20:04:45',\n",
830
+ " 29232208: '2023-07-31 20:05:05',\n",
831
+ " 29232283: '2023-07-31 20:11:40',\n",
832
+ " 29232289: '2023-07-31 20:12:10',\n",
833
+ " 29232358: '2023-07-31 20:18:10',\n",
834
+ " 29232374: '2023-07-31 20:19:35',\n",
835
+ " 29232430: '2023-07-31 20:24:45',\n",
836
+ " 29232457: '2023-07-31 20:27:00',\n",
837
+ " 29232509: '2023-07-31 20:31:20',\n",
838
+ " 29232545: '2023-07-31 20:34:25',\n",
839
+ " 29232587: '2023-07-31 20:37:55',\n",
840
+ " 29232632: '2023-07-31 20:41:45',\n",
841
+ " 29232664: '2023-07-31 20:44:25',\n",
842
+ " 29232718: '2023-07-31 20:49:00',\n",
843
+ " 29232741: '2023-07-31 20:51:00',\n",
844
+ " 29232803: '2023-07-31 20:56:25',\n",
845
+ " 29232817: '2023-07-31 20:57:35',\n",
846
+ " 29232887: '2023-07-31 21:03:50',\n",
847
+ " 29232890: '2023-07-31 21:04:10',\n",
848
+ " 29232963: '2023-07-31 21:10:40',\n",
849
+ " 29232969: '2023-07-31 21:11:10',\n",
850
+ " 29233041: '2023-07-31 21:17:15',\n",
851
+ " 29233056: '2023-07-31 21:18:30',\n",
852
+ " 29233116: '2023-07-31 21:23:45',\n",
853
+ " 29233141: '2023-07-31 21:25:50',\n",
854
+ " 29233193: '2023-07-31 21:30:20',\n",
855
+ " 29233225: '2023-07-31 21:33:05',\n",
856
+ " 29233268: '2023-07-31 21:36:50',\n",
857
+ " 29233308: '2023-07-31 21:40:20',\n",
858
+ " 29233343: '2023-07-31 21:43:15',\n",
859
+ " 29233393: '2023-07-31 21:47:35',\n",
860
+ " 29233416: '2023-07-31 21:49:40',\n",
861
+ " 29233474: '2023-07-31 21:54:50',\n",
862
+ " 29233491: '2023-07-31 21:56:15',\n",
863
+ " 29233561: '2023-07-31 22:02:15',\n",
864
+ " 29233568: '2023-07-31 22:02:50',\n",
865
+ " 29233644: '2023-07-31 22:09:20',\n",
866
+ " 29233648: '2023-07-31 22:09:40',\n",
867
+ " 29233719: '2023-07-31 22:15:50',\n",
868
+ " 29233734: '2023-07-31 22:17:05',\n",
869
+ " 29233795: '2023-07-31 22:22:25',\n",
870
+ " 29233820: '2023-07-31 22:24:30',\n",
871
+ " 29233873: '2023-07-31 22:28:55',\n",
872
+ " 29233907: '2023-07-31 22:31:55',\n",
873
+ " 29233947: '2023-07-31 22:35:30',\n",
874
+ " 29233969: '2023-07-31 22:37:25',\n",
875
+ " 29233973: '2023-07-31 22:37:45',\n",
876
+ " 29233982: '2023-07-31 22:38:30',\n",
877
+ " 29233997: '2023-07-31 22:39:50',\n",
878
+ " 29233998: '2023-07-31 22:40:00',\n",
879
+ " 29234017: '2023-07-31 22:41:35',\n",
880
+ " 29234021: '2023-07-31 22:41:55',\n",
881
+ " 29234029: '2023-07-31 22:42:35',\n",
882
+ " 29234045: '2023-07-31 22:44:00',\n",
883
+ " 29234046: '2023-07-31 22:44:05',\n",
884
+ " 29234065: '2023-07-31 22:45:40',\n",
885
+ " 29234069: '2023-07-31 22:46:00',\n",
886
+ " 29234077: '2023-07-31 22:46:40',\n",
887
+ " 29234097: '2023-07-31 22:48:20',\n",
888
+ " 29234100: '2023-07-31 22:48:35',\n",
889
+ " 29234110: '2023-07-31 22:49:25',\n",
890
+ " 29234126: '2023-07-31 22:50:45',\n",
891
+ " 29234128: '2023-07-31 22:51:00',\n",
892
+ " 29234148: '2023-07-31 22:52:40',\n",
893
+ " 29234151: '2023-07-31 22:52:55',\n",
894
+ " 29234159: '2023-07-31 22:53:40',\n",
895
+ " 29234174: '2023-07-31 22:54:55',\n",
896
+ " 29234175: '2023-07-31 22:55:05',\n",
897
+ " 29234193: '2023-07-31 22:56:35',\n",
898
+ " 29234197: '2023-07-31 22:57:00',\n",
899
+ " 29234201: '2023-07-31 22:57:30',\n",
900
+ " 29234269: '2023-07-31 23:03:25',\n",
901
+ " 29234270: '2023-07-31 23:03:30',\n",
902
+ " 29234347: '2023-07-31 23:10:00',\n",
903
+ " 29234352: '2023-07-31 23:10:25',\n",
904
+ " 29234422: '2023-07-31 23:16:30',\n",
905
+ " 29234445: '2023-07-31 23:18:35',\n",
906
+ " 29234497: '2023-07-31 23:23:00',\n",
907
+ " 29234530: '2023-07-31 23:25:45',\n",
908
+ " 29234571: '2023-07-31 23:29:35',\n",
909
+ " 29234659: '2023-07-31 23:37:25',\n",
910
+ " 29234662: '2023-07-31 23:37:40',\n",
911
+ " 29234672: '2023-07-31 23:38:30',\n",
912
+ " 29234687: '2023-07-31 23:39:45',\n",
913
+ " 29234688: '2023-07-31 23:39:50',\n",
914
+ " 29234708: '2023-07-31 23:41:30',\n",
915
+ " 29234709: '2023-07-31 23:41:35',\n",
916
+ " 29234720: '2023-07-31 23:42:30',\n",
917
+ " 29234735: '2023-07-31 23:43:45',\n",
918
+ " 29234738: '2023-07-31 23:44:00',\n",
919
+ " 29234758: '2023-07-31 23:45:40',\n",
920
+ " 29234759: '2023-07-31 23:45:45',\n",
921
+ " 29234769: '2023-07-31 23:46:35',\n",
922
+ " 29234785: '2023-07-31 23:47:55',\n",
923
+ " 29234787: '2023-07-31 23:48:10',\n",
924
+ " 29234806: '2023-07-31 23:50:00',\n",
925
+ " 29234807: '2023-07-31 23:50:05',\n",
926
+ " 29234819: '2023-07-31 23:51:05',\n",
927
+ " 29234835: '2023-07-31 23:52:30',\n",
928
+ " 29234838: '2023-07-31 23:52:45',\n",
929
+ " 29234857: '2023-07-31 23:54:25',\n",
930
+ " 29234860: '2023-07-31 23:54:40',\n",
931
+ " 29234870: '2023-07-31 23:55:30',\n",
932
+ " 29234885: '2023-07-31 23:56:55',\n",
933
+ " 29234887: '2023-07-31 23:57:05',\n",
934
+ " 29234908: '2023-07-31 23:58:50',\n",
935
+ " 29234913: '2023-07-31 23:59:15',\n",
936
+ " 29234921: '2023-07-31 23:59:55',\n",
937
+ " 29234975: '2023-08-01 00:04:50',\n",
938
+ " 29234977: '2023-08-01 00:05:00',\n",
939
+ " 29235044: '2023-08-01 00:10:50',\n",
940
+ " 29235065: '2023-08-01 00:12:40',\n",
941
+ " 29235123: '2023-08-01 00:17:35',\n",
942
+ " 29235148: '2023-08-01 00:19:45',\n",
943
+ " 29235197: '2023-08-01 00:23:50',\n",
944
+ " 29235231: '2023-08-01 00:26:45',\n",
945
+ " 29235273: '2023-08-01 00:30:20',\n",
946
+ " 29235367: '2023-08-01 00:38:30',\n",
947
+ " 29235381: '2023-08-01 00:39:40',\n",
948
+ " 29235385: '2023-08-01 00:40:05',\n",
949
+ " 29235403: '2023-08-01 00:41:45',\n",
950
+ " 29235406: '2023-08-01 00:42:00',\n",
951
+ " 29235415: '2023-08-01 00:42:45',\n",
952
+ " 29235431: '2023-08-01 00:44:10',\n",
953
+ " 29235432: '2023-08-01 00:44:15',\n",
954
+ " 29235449: '2023-08-01 00:45:40',\n",
955
+ " 29235453: '2023-08-01 00:46:00',\n",
956
+ " 29235461: '2023-08-01 00:46:40',\n",
957
+ " 29235477: '2023-08-01 00:48:10',\n",
958
+ " 29235482: '2023-08-01 00:48:40',\n",
959
+ " 29235495: '2023-08-01 00:49:50',\n",
960
+ " 29235508: '2023-08-01 00:51:00',\n",
961
+ " 29235511: '2023-08-01 00:51:15',\n",
962
+ " 29235530: '2023-08-01 00:52:55',\n",
963
+ " 29235533: '2023-08-01 00:53:10',\n",
964
+ " 29235548: '2023-08-01 00:54:25',\n",
965
+ " 29235560: '2023-08-01 00:55:25',\n",
966
+ " 29235563: '2023-08-01 00:55:40',\n",
967
+ " 29235583: '2023-08-01 00:57:20',\n",
968
+ " 29235586: '2023-08-01 00:57:35',\n",
969
+ " 29235601: '2023-08-01 00:58:50',\n",
970
+ " 29235613: '2023-08-01 00:59:50',\n",
971
+ " 29235614: '2023-08-01 00:59:55',\n",
972
+ " 29235633: '2023-08-01 01:01:30',\n",
973
+ " 29235635: '2023-08-01 01:01:45',\n",
974
+ " 29235680: '2023-08-01 01:05:35',\n",
975
+ " 29235700: '2023-08-01 01:07:20',\n",
976
+ " 29235750: '2023-08-01 01:11:40',\n",
977
+ " 29235784: '2023-08-01 01:14:30',\n",
978
+ " 29235828: '2023-08-01 01:18:25',\n",
979
+ " 29235864: '2023-08-01 01:21:25',\n",
980
+ " 29235905: '2023-08-01 01:24:50',\n",
981
+ " 29235943: '2023-08-01 01:28:15',\n",
982
+ " 29235975: '2023-08-01 01:31:00',\n",
983
+ " 29236080: '2023-08-01 01:40:00',\n",
984
+ " 29236093: '2023-08-01 01:41:05',\n",
985
+ " 29236099: '2023-08-01 01:41:40',\n",
986
+ " 29236116: '2023-08-01 01:43:10',\n",
987
+ " 29236126: '2023-08-01 01:44:00',\n",
988
+ " 29236128: '2023-08-01 01:44:10',\n",
989
+ " 29236148: '2023-08-01 01:45:50',\n",
990
+ " 29236151: '2023-08-01 01:46:05',\n",
991
+ " 29236159: '2023-08-01 01:46:50',\n",
992
+ " 29236175: '2023-08-01 01:48:10',\n",
993
+ " 29236193: '2023-08-01 01:50:00',\n",
994
+ " 29236195: '2023-08-01 01:50:10',\n",
995
+ " 29236208: '2023-08-01 01:51:15',\n",
996
+ " 29236220: '2023-08-01 01:52:15',\n",
997
+ " 29236227: '2023-08-01 01:52:50',\n",
998
+ " 29236244: '2023-08-01 01:54:20',\n",
999
+ " 29236254: '2023-08-01 01:55:10',\n",
1000
+ " 29236259: '2023-08-01 01:55:40',\n",
1001
+ " 29236277: '2023-08-01 01:57:10',\n",
1002
+ " 29236279: '2023-08-01 01:57:20',\n",
1003
+ " 29236291: '2023-08-01 01:58:20',\n",
1004
+ " 29236309: '2023-08-01 01:59:50',\n",
1005
+ " 29236310: '2023-08-01 01:59:55',\n",
1006
+ " 29236327: '2023-08-01 02:01:30',\n",
1007
+ " 29236329: '2023-08-01 02:01:40',\n",
1008
+ " 29236338: '2023-08-01 02:02:30',\n",
1009
+ " 29236355: '2023-08-01 02:03:55',\n",
1010
+ " 29236383: '2023-08-01 02:06:30',\n",
1011
+ " 29236412: '2023-08-01 02:09:00',\n",
1012
+ " 29236458: '2023-08-01 02:12:50',\n",
1013
+ " 29236492: '2023-08-01 02:15:45',\n",
1014
+ " 29236538: '2023-08-01 02:19:35',\n",
1015
+ " 29236610: '2023-08-01 02:25:40',\n",
1016
+ " 29236622: '2023-08-01 02:26:45',\n",
1017
+ " 29236661: '2023-08-01 02:30:05',\n",
1018
+ " 29236682: '2023-08-01 02:31:50',\n",
1019
+ " 29236789: '2023-08-01 02:41:10',\n",
1020
+ " 29236804: '2023-08-01 02:42:25',\n",
1021
+ " 29236812: '2023-08-01 02:43:05',\n",
1022
+ " 29236830: '2023-08-01 02:44:45',\n",
1023
+ " 29236838: '2023-08-01 02:45:25',\n",
1024
+ " 29236844: '2023-08-01 02:45:55',\n",
1025
+ " 29236860: '2023-08-01 02:47:20',\n",
1026
+ " 29236864: '2023-08-01 02:47:40',\n",
1027
+ " 29236872: '2023-08-01 02:48:20',\n",
1028
+ " 29236888: '2023-08-01 02:49:40',\n",
1029
+ " 29236894: '2023-08-01 02:50:10',\n",
1030
+ " 29236903: '2023-08-01 02:50:55',\n",
1031
+ " 29236919: '2023-08-01 02:52:20',\n",
1032
+ " 29236922: '2023-08-01 02:52:35',\n",
1033
+ " 29236940: '2023-08-01 02:54:15',\n",
1034
+ " 29236944: '2023-08-01 02:54:35',\n",
1035
+ " 29236953: '2023-08-01 02:55:20',\n",
1036
+ " 29236967: '2023-08-01 02:56:45',\n",
1037
+ " 29236971: '2023-08-01 02:57:05',\n",
1038
+ " 29236987: '2023-08-01 02:58:25',\n",
1039
+ " 29236992: '2023-08-01 02:58:50',\n",
1040
+ " 29237005: '2023-08-01 02:59:55',\n",
1041
+ " 29237019: '2023-08-01 03:01:10',\n",
1042
+ " 29237022: '2023-08-01 03:01:25',\n",
1043
+ " 29237042: '2023-08-01 03:03:05',\n",
1044
+ " 29237045: '2023-08-01 03:03:20',\n",
1045
+ " 29237054: '2023-08-01 03:04:10',\n",
1046
+ " 29237071: '2023-08-01 03:05:35',\n",
1047
+ " 29237087: '2023-08-01 03:07:10',\n",
1048
+ " 29237127: '2023-08-01 03:10:35',\n",
1049
+ " 29237166: '2023-08-01 03:13:55',\n",
1050
+ " 29237198: '2023-08-01 03:16:40',\n",
1051
+ " 29237247: '2023-08-01 03:20:45',\n",
1052
+ " 29237330: '2023-08-01 03:28:00',\n",
1053
+ " 29237332: '2023-08-01 03:28:10',\n",
1054
+ " 29237418: '2023-08-01 03:35:25',\n",
1055
+ " 29237518: '2023-08-01 03:43:50',\n",
1056
+ " 29237602: '2023-08-01 03:51:05',\n",
1057
+ " 29237690: '2023-08-01 03:58:30',\n",
1058
+ " 29237776: '2023-08-01 04:05:55',\n",
1059
+ " 29237860: '2023-08-01 04:13:20',\n",
1060
+ " 29237944: '2023-08-01 04:20:45',\n",
1061
+ " 29238027: '2023-08-01 04:28:10',\n",
1062
+ " 29238111: '2023-08-01 04:35:35',\n",
1063
+ " 29238193: '2023-08-01 04:42:55',\n",
1064
+ " 29238275: '2023-08-01 04:50:15',\n",
1065
+ " 29238359: '2023-08-01 04:57:40',\n",
1066
+ " 29238448: '2023-08-01 05:05:05',\n",
1067
+ " 29238535: '2023-08-01 05:12:30',\n",
1068
+ " 29238620: '2023-08-01 05:19:55',\n",
1069
+ " 29238706: '2023-08-01 05:27:25',\n",
1070
+ " 29238794: '2023-08-01 05:34:55',\n",
1071
+ " 29238879: '2023-08-01 05:42:15',\n",
1072
+ " 29238967: '2023-08-01 05:49:40',\n",
1073
+ " 29239052: '2023-08-01 05:57:05',\n",
1074
+ " 29239136: '2023-08-01 06:04:05',\n",
1075
+ " 29239223: '2023-08-01 06:11:30',\n",
1076
+ " 29239305: '2023-08-01 06:18:55',\n",
1077
+ " 29239390: '2023-08-01 06:26:20',\n",
1078
+ " 29239469: '2023-08-01 06:33:40',\n",
1079
+ " 29239554: '2023-08-01 06:41:00',\n",
1080
+ " 29239832: '2023-08-01 07:05:10',\n",
1081
+ " 29242515: '2023-08-01 10:58:05',\n",
1082
+ " 29555470: '2023-08-20 12:41:30',\n",
1083
+ " 29555477: '2023-08-20 12:42:05',\n",
1084
+ " ...}"
1085
+ ]
1086
+ },
1087
+ "execution_count": 18,
1088
+ "metadata": {},
1089
+ "output_type": "execute_result"
1090
+ }
1091
+ ],
1092
+ "source": [
1093
+ "t_map\n",
1094
+ "\n"
1095
+ ]
1096
+ },
1097
+ {
1098
+ "cell_type": "code",
1099
+ "execution_count": null,
1100
+ "metadata": {},
1101
+ "outputs": [],
1102
+ "source": []
1103
+ }
1104
+ ],
1105
+ "metadata": {
1106
+ "kernelspec": {
1107
+ "display_name": "autogen",
1108
+ "language": "python",
1109
+ "name": "python3"
1110
+ },
1111
+ "language_info": {
1112
+ "codemirror_mode": {
1113
+ "name": "ipython",
1114
+ "version": 3
1115
+ },
1116
+ "file_extension": ".py",
1117
+ "mimetype": "text/x-python",
1118
+ "name": "python",
1119
+ "nbconvert_exporter": "python",
1120
+ "pygments_lexer": "ipython3",
1121
+ "version": "3.10.13"
1122
+ }
1123
+ },
1124
+ "nbformat": 4,
1125
+ "nbformat_minor": 2
1126
+ }
scripts/__pycache__/markets.cpython-310.pyc ADDED
Binary file (6.25 kB). View file
 
scripts/__pycache__/profitability.cpython-310.pyc ADDED
Binary file (14.5 kB). View file
 
scripts/__pycache__/tools.cpython-310.pyc ADDED
Binary file (19.6 kB). View file
 
scripts/profitability.py CHANGED
@@ -396,7 +396,7 @@ def prepare_profitalibity_data(rpc: str):
396
  # Check if tools.py is in the same directory
397
  try:
398
  # load tools.csv
399
- tools = pd.read_csv("tools.csv")
400
 
401
  # make sure creator_address is in the columns
402
  assert "trader_address" in tools.columns, "trader_address column not found"
@@ -415,7 +415,7 @@ def prepare_profitalibity_data(rpc: str):
415
  # Check if fpmmTrades.csv is in the same directory
416
  try:
417
  # load fpmmTrades.csv
418
- fpmmTrades = pd.read_csv("fpmmTrades.csv")
419
  print("fpmmTrades.csv loaded")
420
  except FileNotFoundError:
421
  print("fpmmTrades.csv not found. Creating fpmmTrades.csv...")
 
396
  # Check if tools.py is in the same directory
397
  try:
398
  # load tools.csv
399
+ tools = pd.read_csv(DATA_DIR / "tools.csv")
400
 
401
  # make sure creator_address is in the columns
402
  assert "trader_address" in tools.columns, "trader_address column not found"
 
415
  # Check if fpmmTrades.csv is in the same directory
416
  try:
417
  # load fpmmTrades.csv
418
+ fpmmTrades = pd.read_csv(DATA_DIR / "fpmmTrades.csv")
419
  print("fpmmTrades.csv loaded")
420
  except FileNotFoundError:
421
  print("fpmmTrades.csv not found. Creating fpmmTrades.csv...")
scripts/pull_data.py CHANGED
@@ -1,6 +1,7 @@
1
  import logging
2
  import re
3
  import os
 
4
  from datetime import datetime
5
  from concurrent.futures import ThreadPoolExecutor
6
  from tqdm import tqdm
@@ -84,16 +85,16 @@ def weekly_analysis():
84
 
85
  # Run profitability analysis
86
  logging.info("Running profitability analysis")
87
- if os.path.exists("fpmmTrades.csv"):
88
- os.remove("fpmmTrades.csv")
89
  run_profitability_analysis(
90
  rpc=rpc,
91
  )
92
  logging.info("Profitability analysis completed")
93
 
94
  # Get currentAnswer from FPMMS
95
- fpmms = pd.read_csv(MARKETS_FILENAME)
96
- tools = pd.read_csv(TOOLS_FILENAME)
97
 
98
  # Get the question from the tools
99
  logging.info("Getting the question and current answer for the tools")
@@ -105,16 +106,30 @@ def weekly_analysis():
105
 
106
  # Convert block number to timestamp
107
  logging.info("Converting block number to timestamp")
 
 
 
 
 
108
 
109
  partial_block_number_to_timestamp = partial(block_number_to_timestamp, web3=web3)
110
- missing_timestamps = parallelize_timestamp_conversion(tools, partial_block_number_to_timestamp)
111
- tools['request_time'] = missing_timestamps
 
 
 
112
  tools['request_month_year'] = pd.to_datetime(tools['request_time']).dt.strftime('%Y-%m')
113
  tools['request_month_year_week'] = pd.to_datetime(tools['request_time']).dt.to_period('W').astype(str)
114
 
115
  # Save the tools
116
  tools.to_csv(DATA_DIR / TOOLS_FILENAME, index=False)
117
 
 
 
 
 
 
 
118
  logging.info("Weekly analysis files generated and saved")
119
 
120
 
 
1
  import logging
2
  import re
3
  import os
4
+ import pickle
5
  from datetime import datetime
6
  from concurrent.futures import ThreadPoolExecutor
7
  from tqdm import tqdm
 
85
 
86
  # Run profitability analysis
87
  logging.info("Running profitability analysis")
88
+ if os.path.exists(DATA_DIR / "fpmmTrades.csv"):
89
+ os.remove(DATA_DIR / "fpmmTrades.csv")
90
  run_profitability_analysis(
91
  rpc=rpc,
92
  )
93
  logging.info("Profitability analysis completed")
94
 
95
  # Get currentAnswer from FPMMS
96
+ fpmms = pd.read_csv(DATA_DIR / MARKETS_FILENAME)
97
+ tools = pd.read_csv(DATA_DIR / TOOLS_FILENAME)
98
 
99
  # Get the question from the tools
100
  logging.info("Getting the question and current answer for the tools")
 
106
 
107
  # Convert block number to timestamp
108
  logging.info("Converting block number to timestamp")
109
+ t_map = pickle.load(open(DATA_DIR / "t_map.pkl", "rb"))
110
+ tools['request_time'] = tools['request_block'].map(t_map)
111
+
112
+ # tools with missing request_time
113
+ tools_missing_time = tools[tools['request_time'].isna()]
114
 
115
  partial_block_number_to_timestamp = partial(block_number_to_timestamp, web3=web3)
116
+ missing_timestamps = parallelize_timestamp_conversion(tools_missing_time, partial_block_number_to_timestamp)
117
+ tools_missing_time['request_time'] = missing_timestamps
118
+
119
+ # merge tools with missing request_time
120
+ tools = pd.concat([tools, tools_missing_time])
121
  tools['request_month_year'] = pd.to_datetime(tools['request_time']).dt.strftime('%Y-%m')
122
  tools['request_month_year_week'] = pd.to_datetime(tools['request_time']).dt.to_period('W').astype(str)
123
 
124
  # Save the tools
125
  tools.to_csv(DATA_DIR / TOOLS_FILENAME, index=False)
126
 
127
+ # Update t_map
128
+ t_map.update(tools[['request_block', 'request_time']].set_index('request_block').to_dict()['request_time'])
129
+
130
+ with open(DATA_DIR / "t_map.pkl", "wb") as f:
131
+ pickle.dump(t_map, f)
132
+
133
  logging.info("Weekly analysis files generated and saved")
134
 
135
 
scripts/tools.py CHANGED
@@ -602,11 +602,11 @@ def read_n_last_lines(filename: str, n: int = 1) -> str:
602
  def get_earliest_block(event_name: MechEventName) -> int:
603
  """Get the earliest block number to use when filtering for events."""
604
  filename = gen_event_filename(event_name)
605
- if not os.path.exists(filename):
606
  return 0
607
 
608
- cols = pd.read_csv(filename, index_col=0, nrows=0).columns.tolist()
609
- last_line_buff = StringIO(read_n_last_lines(filename))
610
  last_line_series = pd.read_csv(last_line_buff, names=cols)
611
  block_field = f"{event_name.value.lower()}_{BLOCK_FIELD}"
612
  return int(last_line_series[block_field].values[0])
@@ -735,8 +735,8 @@ def etl(
735
 
736
  events_filename = gen_event_filename(event_name)
737
 
738
- if os.path.exists(events_filename):
739
- old = pd.read_csv(events_filename)
740
 
741
  # Reset index to avoid index conflicts
742
  old.reset_index(drop=True, inplace=True)
 
602
  def get_earliest_block(event_name: MechEventName) -> int:
603
  """Get the earliest block number to use when filtering for events."""
604
  filename = gen_event_filename(event_name)
605
+ if not os.path.exists(DATA_DIR / filename):
606
  return 0
607
 
608
+ cols = pd.read_csv(DATA_DIR / filename, index_col=0, nrows=0).columns.tolist()
609
+ last_line_buff = StringIO(read_n_last_lines(DATA_DIR/filename))
610
  last_line_series = pd.read_csv(last_line_buff, names=cols)
611
  block_field = f"{event_name.value.lower()}_{BLOCK_FIELD}"
612
  return int(last_line_series[block_field].values[0])
 
735
 
736
  events_filename = gen_event_filename(event_name)
737
 
738
+ if os.path.exists(DATA_DIR / events_filename):
739
+ old = pd.read_csv(DATA_DIR / events_filename)
740
 
741
  # Reset index to avoid index conflicts
742
  old.reset_index(drop=True, inplace=True)