dao-treasury 0.0.68__cp311-cp311-win32.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of dao-treasury might be problematic. Click here for more details.

Files changed (54) hide show
  1. dao_treasury/.grafana/provisioning/dashboards/breakdowns/Expenses.json +452 -0
  2. dao_treasury/.grafana/provisioning/dashboards/breakdowns/Revenue.json +452 -0
  3. dao_treasury/.grafana/provisioning/dashboards/dashboards.yaml +84 -0
  4. dao_treasury/.grafana/provisioning/dashboards/streams/LlamaPay.json +220 -0
  5. dao_treasury/.grafana/provisioning/dashboards/summary/Monthly.json +106 -0
  6. dao_treasury/.grafana/provisioning/dashboards/transactions/Treasury Transactions.json +357 -0
  7. dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow (Including Unsorted).json +803 -0
  8. dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow.json +597 -0
  9. dao_treasury/.grafana/provisioning/dashboards/treasury/Current Treasury Assets.json +981 -0
  10. dao_treasury/.grafana/provisioning/dashboards/treasury/Historical Treasury Balances.json +2961 -0
  11. dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json +475 -0
  12. dao_treasury/.grafana/provisioning/datasources/datasources.yaml +17 -0
  13. dao_treasury/ENVIRONMENT_VARIABLES.py +20 -0
  14. dao_treasury/__init__.py +62 -0
  15. dao_treasury/_docker.cp311-win32.pyd +0 -0
  16. dao_treasury/_docker.py +194 -0
  17. dao_treasury/_nicknames.cp311-win32.pyd +0 -0
  18. dao_treasury/_nicknames.py +32 -0
  19. dao_treasury/_wallet.cp311-win32.pyd +0 -0
  20. dao_treasury/_wallet.py +250 -0
  21. dao_treasury/constants.cp311-win32.pyd +0 -0
  22. dao_treasury/constants.py +39 -0
  23. dao_treasury/db.py +1454 -0
  24. dao_treasury/docker-compose.yaml +41 -0
  25. dao_treasury/main.py +253 -0
  26. dao_treasury/py.typed +0 -0
  27. dao_treasury/sorting/__init__.cp311-win32.pyd +0 -0
  28. dao_treasury/sorting/__init__.py +295 -0
  29. dao_treasury/sorting/_matchers.cp311-win32.pyd +0 -0
  30. dao_treasury/sorting/_matchers.py +387 -0
  31. dao_treasury/sorting/_rules.cp311-win32.pyd +0 -0
  32. dao_treasury/sorting/_rules.py +235 -0
  33. dao_treasury/sorting/factory.cp311-win32.pyd +0 -0
  34. dao_treasury/sorting/factory.py +299 -0
  35. dao_treasury/sorting/rule.cp311-win32.pyd +0 -0
  36. dao_treasury/sorting/rule.py +344 -0
  37. dao_treasury/sorting/rules/__init__.cp311-win32.pyd +0 -0
  38. dao_treasury/sorting/rules/__init__.py +1 -0
  39. dao_treasury/sorting/rules/ignore/__init__.cp311-win32.pyd +0 -0
  40. dao_treasury/sorting/rules/ignore/__init__.py +1 -0
  41. dao_treasury/sorting/rules/ignore/llamapay.cp311-win32.pyd +0 -0
  42. dao_treasury/sorting/rules/ignore/llamapay.py +20 -0
  43. dao_treasury/streams/__init__.cp311-win32.pyd +0 -0
  44. dao_treasury/streams/__init__.py +0 -0
  45. dao_treasury/streams/llamapay.cp311-win32.pyd +0 -0
  46. dao_treasury/streams/llamapay.py +388 -0
  47. dao_treasury/treasury.py +191 -0
  48. dao_treasury/types.cp311-win32.pyd +0 -0
  49. dao_treasury/types.py +133 -0
  50. dao_treasury-0.0.68.dist-info/METADATA +120 -0
  51. dao_treasury-0.0.68.dist-info/RECORD +54 -0
  52. dao_treasury-0.0.68.dist-info/WHEEL +5 -0
  53. dao_treasury-0.0.68.dist-info/top_level.txt +2 -0
  54. dao_treasury__mypyc.cp311-win32.pyd +0 -0
@@ -0,0 +1,597 @@
1
+ {
2
+ "annotations": {
3
+ "list": [
4
+ {
5
+ "builtIn": 1,
6
+ "datasource": {
7
+ "type": "grafana",
8
+ "uid": "-- Grafana --"
9
+ },
10
+ "enable": true,
11
+ "hide": true,
12
+ "iconColor": "rgba(0, 211, 255, 1)",
13
+ "name": "Annotations & Alerts",
14
+ "type": "dashboard"
15
+ }
16
+ ]
17
+ },
18
+ "editable": true,
19
+ "fiscalYearStartMonth": 0,
20
+ "graphTooltip": 1,
21
+ "id": 5,
22
+ "links": [],
23
+ "panels": [
24
+ {
25
+ "datasource": "SQLite",
26
+ "fieldConfig": {
27
+ "unit": "currencyUSD",
28
+ "defaults": {
29
+ "color": {
30
+ "mode": "thresholds"
31
+ },
32
+ "mappings": [],
33
+ "thresholds": {
34
+ "mode": "absolute",
35
+ "steps": [
36
+ {
37
+ "color": "green",
38
+ "value": 0
39
+ },
40
+ {
41
+ "color": "red",
42
+ "value": 80
43
+ }
44
+ ]
45
+ }
46
+ },
47
+ "overrides": []
48
+ },
49
+ "gridPos": {
50
+ "h": 4,
51
+ "w": 4,
52
+ "x": 0,
53
+ "y": 0
54
+ },
55
+ "id": 1,
56
+ "options": {
57
+ "colorMode": "value",
58
+ "graphMode": "area",
59
+ "justifyMode": "auto",
60
+ "orientation": "auto",
61
+ "percentChangeColorMode": "standard",
62
+ "reduceOptions": {
63
+ "calcs": ["lastNotNull"],
64
+ "fields": "",
65
+ "values": false
66
+ },
67
+ "showPercentChange": false,
68
+ "textMode": "auto",
69
+ "wideLayout": true
70
+ },
71
+ "pluginVersion": "12.1.1",
72
+ "targets": [
73
+ {
74
+ "datasource": "SQLite",
75
+ "queryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Revenue' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
76
+ "queryType": "table",
77
+ "rawQueryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Revenue' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
78
+ "refId": "A",
79
+ "timeColumns": ["time", "ts"]
80
+ }
81
+ ],
82
+ "title": "Revenue",
83
+ "type": "stat"
84
+ },
85
+ {
86
+ "datasource": "SQLite",
87
+ "fieldConfig": {
88
+ "unit": "currencyUSD",
89
+ "defaults": {
90
+ "color": {
91
+ "mode": "thresholds"
92
+ },
93
+ "mappings": [],
94
+ "thresholds": {
95
+ "mode": "absolute",
96
+ "steps": [
97
+ {
98
+ "color": "green",
99
+ "value": 0
100
+ },
101
+ {
102
+ "color": "red",
103
+ "value": 80
104
+ }
105
+ ]
106
+ }
107
+ },
108
+ "overrides": []
109
+ },
110
+ "gridPos": {
111
+ "h": 4,
112
+ "w": 4,
113
+ "x": 4,
114
+ "y": 0
115
+ },
116
+ "id": 2,
117
+ "options": {
118
+ "colorMode": "value",
119
+ "graphMode": "area",
120
+ "justifyMode": "auto",
121
+ "orientation": "auto",
122
+ "percentChangeColorMode": "standard",
123
+ "reduceOptions": {
124
+ "calcs": ["lastNotNull"],
125
+ "fields": "",
126
+ "values": false
127
+ },
128
+ "showPercentChange": false,
129
+ "textMode": "auto",
130
+ "wideLayout": true
131
+ },
132
+ "pluginVersion": "12.1.1",
133
+ "targets": [
134
+ {
135
+ "datasource": "SQLite",
136
+ "queryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Expenses' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
137
+ "queryType": "table",
138
+ "rawQueryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Expenses' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
139
+ "refId": "A",
140
+ "timeColumns": ["time", "ts"]
141
+ }
142
+ ],
143
+ "title": "Expenses",
144
+ "type": "stat"
145
+ },
146
+ {
147
+ "datasource": "SQLite",
148
+ "fieldConfig": {
149
+ "unit": "currencyUSD",
150
+ "defaults": {
151
+ "color": {
152
+ "mode": "thresholds"
153
+ },
154
+ "mappings": [],
155
+ "thresholds": {
156
+ "mode": "absolute",
157
+ "steps": [
158
+ {
159
+ "color": "green",
160
+ "value": 0
161
+ },
162
+ {
163
+ "color": "red",
164
+ "value": 80
165
+ }
166
+ ]
167
+ }
168
+ },
169
+ "overrides": []
170
+ },
171
+ "gridPos": {
172
+ "h": 4,
173
+ "w": 4,
174
+ "x": 8,
175
+ "y": 0
176
+ },
177
+ "id": 3,
178
+ "options": {
179
+ "colorMode": "value",
180
+ "graphMode": "area",
181
+ "justifyMode": "auto",
182
+ "orientation": "auto",
183
+ "percentChangeColorMode": "standard",
184
+ "reduceOptions": {
185
+ "calcs": ["lastNotNull"],
186
+ "fields": "",
187
+ "values": false
188
+ },
189
+ "showPercentChange": false,
190
+ "textMode": "auto",
191
+ "wideLayout": true
192
+ },
193
+ "pluginVersion": "12.1.1",
194
+ "targets": [
195
+ {
196
+ "datasource": "SQLite",
197
+ "queryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Cost of Revenue' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
198
+ "queryType": "table",
199
+ "rawQueryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Cost of Revenue' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
200
+ "refId": "A",
201
+ "timeColumns": ["time", "ts"]
202
+ }
203
+ ],
204
+ "title": "Cost of Revenue",
205
+ "type": "stat"
206
+ },
207
+ {
208
+ "datasource": "SQLite",
209
+ "fieldConfig": {
210
+ "unit": "currencyUSD",
211
+ "defaults": {
212
+ "color": {
213
+ "mode": "thresholds"
214
+ },
215
+ "mappings": [],
216
+ "thresholds": {
217
+ "mode": "absolute",
218
+ "steps": [
219
+ {
220
+ "color": "green",
221
+ "value": 0
222
+ },
223
+ {
224
+ "color": "red",
225
+ "value": 80
226
+ }
227
+ ]
228
+ }
229
+ },
230
+ "overrides": []
231
+ },
232
+ "gridPos": {
233
+ "h": 4,
234
+ "w": 4,
235
+ "x": 12,
236
+ "y": 0
237
+ },
238
+ "id": 4,
239
+ "options": {
240
+ "colorMode": "value",
241
+ "graphMode": "area",
242
+ "justifyMode": "auto",
243
+ "orientation": "auto",
244
+ "percentChangeColorMode": "standard",
245
+ "reduceOptions": {
246
+ "calcs": ["lastNotNull"],
247
+ "fields": "",
248
+ "values": false
249
+ },
250
+ "showPercentChange": false,
251
+ "textMode": "auto",
252
+ "wideLayout": true
253
+ },
254
+ "pluginVersion": "12.1.1",
255
+ "targets": [
256
+ {
257
+ "datasource": "SQLite",
258
+ "queryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Other Income' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
259
+ "queryType": "table",
260
+ "rawQueryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Other Income' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
261
+ "refId": "A",
262
+ "timeColumns": ["time", "ts"]
263
+ }
264
+ ],
265
+ "title": "Other Income",
266
+ "type": "stat"
267
+ },
268
+ {
269
+ "datasource": "SQLite",
270
+ "fieldConfig": {
271
+ "unit": "currencyUSD",
272
+ "defaults": {
273
+ "color": {
274
+ "mode": "thresholds"
275
+ },
276
+ "mappings": [],
277
+ "thresholds": {
278
+ "mode": "absolute",
279
+ "steps": [
280
+ {
281
+ "color": "green",
282
+ "value": 0
283
+ },
284
+ {
285
+ "color": "red",
286
+ "value": 80
287
+ }
288
+ ]
289
+ }
290
+ },
291
+ "overrides": []
292
+ },
293
+ "gridPos": {
294
+ "h": 4,
295
+ "w": 4,
296
+ "x": 16,
297
+ "y": 0
298
+ },
299
+ "id": 5,
300
+ "options": {
301
+ "colorMode": "value",
302
+ "graphMode": "area",
303
+ "justifyMode": "auto",
304
+ "orientation": "auto",
305
+ "percentChangeColorMode": "standard",
306
+ "reduceOptions": {
307
+ "calcs": ["lastNotNull"],
308
+ "fields": "",
309
+ "values": false
310
+ },
311
+ "showPercentChange": false,
312
+ "textMode": "auto",
313
+ "wideLayout": true
314
+ },
315
+ "pluginVersion": "12.1.1",
316
+ "targets": [
317
+ {
318
+ "datasource": "SQLite",
319
+ "queryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Other Expenses' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
320
+ "queryType": "table",
321
+ "rawQueryText": "SELECT SUM(t.value_usd) AS total_revenue FROM general_ledger t JOIN txgroup_hierarchy gh USING (txgroup_id) WHERE gh.top_category = 'Other Expenses' AND t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
322
+ "refId": "A",
323
+ "timeColumns": ["time", "ts"]
324
+ }
325
+ ],
326
+ "title": "Other Expenses",
327
+ "type": "stat"
328
+ },
329
+ {
330
+ "datasource": "SQLite",
331
+ "description": "",
332
+ "fieldConfig": {
333
+ "unit": "currencyUSD",
334
+ "defaults": {
335
+ "color": {
336
+ "mode": "thresholds"
337
+ },
338
+ "mappings": [],
339
+ "thresholds": {
340
+ "mode": "absolute",
341
+ "steps": [
342
+ {
343
+ "color": "green",
344
+ "value": 0
345
+ },
346
+ {
347
+ "color": "red",
348
+ "value": 80
349
+ }
350
+ ]
351
+ }
352
+ },
353
+ "overrides": []
354
+ },
355
+ "gridPos": {
356
+ "h": 4,
357
+ "w": 4,
358
+ "x": 20,
359
+ "y": 0
360
+ },
361
+ "id": 10,
362
+ "options": {
363
+ "colorMode": "value",
364
+ "graphMode": "area",
365
+ "justifyMode": "auto",
366
+ "orientation": "auto",
367
+ "percentChangeColorMode": "standard",
368
+ "reduceOptions": {
369
+ "calcs": ["lastNotNull"],
370
+ "fields": "",
371
+ "values": false
372
+ },
373
+ "showPercentChange": false,
374
+ "textMode": "auto",
375
+ "wideLayout": true
376
+ },
377
+ "pluginVersion": "12.1.1",
378
+ "targets": [
379
+ {
380
+ "datasource": "SQLite",
381
+ "queryText": "SELECT (\n SUM(CASE WHEN gh.top_category = 'Revenue' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Cost of Revenue' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Expenses' THEN t.value_usd ELSE 0 END)\n + SUM(CASE WHEN gh.top_category = 'Other Income' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Other Expenses' THEN t.value_usd ELSE 0 END)\n) AS total_net\nFROM general_ledger t\nJOIN txgroup_hierarchy gh USING (txgroup_id)\nWHERE t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
382
+ "queryType": "table",
383
+ "rawQueryText": "SELECT (\n SUM(CASE WHEN gh.top_category = 'Revenue' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Cost of Revenue' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Expenses' THEN t.value_usd ELSE 0 END)\n + SUM(CASE WHEN gh.top_category = 'Other Income' THEN t.value_usd ELSE 0 END)\n - SUM(CASE WHEN gh.top_category = 'Other Expenses' THEN t.value_usd ELSE 0 END)\n) AS total_net\nFROM general_ledger t\nJOIN txgroup_hierarchy gh USING (txgroup_id)\nWHERE t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000",
384
+ "refId": "A",
385
+ "timeColumns": ["time", "ts"]
386
+ }
387
+ ],
388
+ "title": "Sorted Total",
389
+ "type": "stat"
390
+ },
391
+ {
392
+ "datasource": "SQLite",
393
+ "description": "",
394
+ "fieldConfig": {
395
+ "unit": "currencyUSD",
396
+ "defaults": {
397
+ "color": {
398
+ "mode": "palette-classic"
399
+ },
400
+ "custom": {
401
+ "axisBorderShow": false,
402
+ "axisCenteredZero": false,
403
+ "axisColorMode": "text",
404
+ "axisLabel": "",
405
+ "axisPlacement": "auto",
406
+ "barAlignment": 0,
407
+ "barWidthFactor": 0.6,
408
+ "drawStyle": "bars",
409
+ "fillOpacity": 70,
410
+ "gradientMode": "none",
411
+ "hideFrom": {
412
+ "legend": false,
413
+ "tooltip": false,
414
+ "viz": false
415
+ },
416
+ "insertNulls": false,
417
+ "lineInterpolation": "linear",
418
+ "lineWidth": 1,
419
+ "pointSize": 5,
420
+ "scaleDistribution": {
421
+ "type": "linear"
422
+ },
423
+ "showPoints": "auto",
424
+ "spanNulls": false,
425
+ "stacking": {
426
+ "group": "A",
427
+ "mode": "normal"
428
+ },
429
+ "thresholdsStyle": {
430
+ "mode": "off"
431
+ }
432
+ },
433
+ "mappings": [],
434
+ "thresholds": {
435
+ "mode": "absolute",
436
+ "steps": [
437
+ {
438
+ "color": "green",
439
+ "value": 0
440
+ },
441
+ {
442
+ "color": "red",
443
+ "value": 80
444
+ }
445
+ ]
446
+ }
447
+ },
448
+ "overrides": [
449
+ {
450
+ "matcher": {
451
+ "id": "byName",
452
+ "options": "Net (sum)"
453
+ },
454
+ "properties": [
455
+ {
456
+ "id": "custom.drawStyle",
457
+ "value": "line"
458
+ },
459
+ {
460
+ "id": "custom.stacking",
461
+ "value": {
462
+ "group": "A",
463
+ "mode": "none"
464
+ }
465
+ },
466
+ {
467
+ "id": "custom.fillOpacity",
468
+ "value": 19
469
+ }
470
+ ]
471
+ }
472
+ ]
473
+ },
474
+ "gridPos": {
475
+ "h": 12,
476
+ "w": 24,
477
+ "x": 0,
478
+ "y": 4
479
+ },
480
+ "id": 11,
481
+ "options": {
482
+ "legend": {
483
+ "calcs": [],
484
+ "displayMode": "list",
485
+ "placement": "bottom",
486
+ "showLegend": true
487
+ },
488
+ "tooltip": {
489
+ "hideZeros": false,
490
+ "mode": "single",
491
+ "sort": "none"
492
+ }
493
+ },
494
+ "pluginVersion": "12.1.1",
495
+ "targets": [
496
+ {
497
+ "datasource": "SQLite",
498
+ "queryText": "SELECT t.timestamp, SUM(CASE WHEN gh.top_category in ('Revenue', 'Other Income') THEN t.value_usd ELSE 0 END) AS \"Total Revenue\", SUM(CASE WHEN gh.top_category in ('Cost of Revenue','Expenses','Other Expenses') THEN t.value_usd ELSE 0 END) * -1 AS \"Total Expenses\", SUM(CASE WHEN gh.top_category in ('Revenue', 'Other Income') THEN t.value_usd ELSE 0 END) - SUM(CASE WHEN gh.top_category in ('Cost of Revenue','Expenses','Other Expenses') THEN t.value_usd ELSE 0 END) AS \"Net\" FROM general_ledger AS t JOIN txgroup_hierarchy gh ON t.txgroup_id = gh.txgroup_id WHERE t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000 GROUP BY timestamp ORDER BY timestamp;",
499
+ "queryType": "table",
500
+ "rawQueryText": "SELECT t.timestamp, SUM(CASE WHEN gh.top_category in ('Revenue', 'Other Income') THEN t.value_usd ELSE 0 END) AS \"Total Revenue\", SUM(CASE WHEN gh.top_category in ('Cost of Revenue','Expenses','Other Expenses') THEN t.value_usd ELSE 0 END) * -1 AS \"Total Expenses\", SUM(CASE WHEN gh.top_category in ('Revenue', 'Other Income') THEN t.value_usd ELSE 0 END) - SUM(CASE WHEN gh.top_category in ('Cost of Revenue','Expenses','Other Expenses') THEN t.value_usd ELSE 0 END) AS \"Net\" FROM general_ledger AS t JOIN txgroup_hierarchy gh ON t.txgroup_id = gh.txgroup_id WHERE t.timestamp >= $__from/1000 AND t.timestamp <= $__to/1000 GROUP BY timestamp ORDER BY timestamp;",
501
+ "refId": "A",
502
+ "timeColumns": ["timestamp"]
503
+ }
504
+ ],
505
+ "title": "Weekly Cashflow",
506
+ "transformations": [
507
+ {
508
+ "id": "formatTime",
509
+ "options": {
510
+ "outputFormat": "YYYY-WW",
511
+ "timeField": "timestamp",
512
+ "timezone": "browser",
513
+ "useTimezone": true
514
+ }
515
+ },
516
+ {
517
+ "id": "convertFieldType",
518
+ "options": {
519
+ "conversions": [
520
+ {
521
+ "dateFormat": "YYYY-WW",
522
+ "destinationType": "time",
523
+ "targetField": "timestamp"
524
+ }
525
+ ],
526
+ "fields": {}
527
+ }
528
+ },
529
+ {
530
+ "id": "groupBy",
531
+ "options": {
532
+ "fields": {
533
+ "Cost of Revenue": {
534
+ "aggregations": ["sum"],
535
+ "operation": "aggregate"
536
+ },
537
+ "Expenses": {
538
+ "aggregations": ["sum"],
539
+ "operation": "aggregate"
540
+ },
541
+ "Net": {
542
+ "aggregations": ["sum"],
543
+ "operation": "aggregate"
544
+ },
545
+ "Other Expenses": {
546
+ "aggregations": ["sum"],
547
+ "operation": "aggregate"
548
+ },
549
+ "Other Income": {
550
+ "aggregations": ["sum"],
551
+ "operation": "aggregate"
552
+ },
553
+ "Revenue": {
554
+ "aggregations": ["sum"],
555
+ "operation": "aggregate"
556
+ },
557
+ "Timestamp": {
558
+ "aggregations": [],
559
+ "operation": "groupby"
560
+ },
561
+ "Total Expenses": {
562
+ "aggregations": ["sum"],
563
+ "operation": "aggregate"
564
+ },
565
+ "Total Revenue": {
566
+ "aggregations": ["sum"],
567
+ "operation": "aggregate"
568
+ },
569
+ "timestamp": {
570
+ "aggregations": [],
571
+ "operation": "groupby"
572
+ }
573
+ }
574
+ }
575
+ }
576
+ ],
577
+ "type": "timeseries"
578
+ }
579
+ ],
580
+ "preload": false,
581
+ "refresh": "",
582
+ "schemaVersion": 41,
583
+ "tags": [],
584
+ "templating": {
585
+ "list": []
586
+ },
587
+ "time": {
588
+ "from": "now-6M",
589
+ "to": "now"
590
+ },
591
+ "timepicker": {},
592
+ "timezone": "",
593
+ "title": "Total Cashflow Summary",
594
+ "description": "Shows all sorted cashflows, including Revenue, Cost of Revenue, Expenses, Other Income, and Other Expense, but omits transactions pending categorization. Useful for analyzing the DAO's complete sorted financial flows.",
595
+ "uid": "7e2b1c8a-4e2d-4b7a-9c1a-2f8e6b7d9c3f",
596
+ "version": 5
597
+ }