dao-treasury 0.0.34__cp312-cp312-win32.whl → 0.0.72__cp312-cp312-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 (48) hide show
  1. dao_treasury/.grafana/provisioning/dashboards/breakdowns/Expenses.json +553 -0
  2. dao_treasury/.grafana/provisioning/dashboards/breakdowns/Revenue.json +555 -0
  3. dao_treasury/.grafana/provisioning/dashboards/dashboards.yaml +7 -57
  4. dao_treasury/.grafana/provisioning/dashboards/streams/LlamaPay.json +124 -20
  5. dao_treasury/.grafana/provisioning/dashboards/summary/Monthly.json +284 -22
  6. dao_treasury/.grafana/provisioning/dashboards/transactions/Treasury Transactions.json +47 -63
  7. dao_treasury/.grafana/provisioning/dashboards/transactions/Unsorted Transactions.json +368 -0
  8. dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow (Including Unsorted).json +122 -149
  9. dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow.json +87 -100
  10. dao_treasury/.grafana/provisioning/dashboards/treasury/Current Treasury Assets.json +941 -0
  11. dao_treasury/.grafana/provisioning/dashboards/treasury/Historical Treasury Balances.json +3931 -0
  12. dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json +64 -78
  13. dao_treasury/ENVIRONMENT_VARIABLES.py +12 -0
  14. dao_treasury/__init__.py +14 -0
  15. dao_treasury/_docker.cp312-win32.pyd +0 -0
  16. dao_treasury/_docker.py +38 -21
  17. dao_treasury/_nicknames.cp312-win32.pyd +0 -0
  18. dao_treasury/_nicknames.py +15 -0
  19. dao_treasury/_wallet.cp312-win32.pyd +0 -0
  20. dao_treasury/_wallet.py +14 -10
  21. dao_treasury/constants.cp312-win32.pyd +0 -0
  22. dao_treasury/constants.py +24 -0
  23. dao_treasury/db.py +116 -25
  24. dao_treasury/docker-compose.yaml +1 -5
  25. dao_treasury/main.py +39 -1
  26. dao_treasury/sorting/__init__.cp312-win32.pyd +0 -0
  27. dao_treasury/sorting/_matchers.cp312-win32.pyd +0 -0
  28. dao_treasury/sorting/_rules.cp312-win32.pyd +0 -0
  29. dao_treasury/sorting/factory.cp312-win32.pyd +0 -0
  30. dao_treasury/sorting/rule.cp312-win32.pyd +0 -0
  31. dao_treasury/sorting/rule.py +8 -10
  32. dao_treasury/sorting/rules/__init__.cp312-win32.pyd +0 -0
  33. dao_treasury/sorting/rules/ignore/__init__.cp312-win32.pyd +0 -0
  34. dao_treasury/sorting/rules/ignore/llamapay.cp312-win32.pyd +0 -0
  35. dao_treasury/streams/__init__.cp312-win32.pyd +0 -0
  36. dao_treasury/streams/llamapay.cp312-win32.pyd +0 -0
  37. dao_treasury/streams/llamapay.py +14 -2
  38. dao_treasury/treasury.py +37 -16
  39. dao_treasury/types.cp312-win32.pyd +0 -0
  40. {dao_treasury-0.0.34.dist-info → dao_treasury-0.0.72.dist-info}/METADATA +18 -3
  41. dao_treasury-0.0.72.dist-info/RECORD +55 -0
  42. dao_treasury-0.0.72.dist-info/top_level.txt +2 -0
  43. dao_treasury__mypyc.cp312-win32.pyd +0 -0
  44. bf2b4fe1f86ad2ea158b__mypyc.cp312-win32.pyd +0 -0
  45. dao_treasury/.grafana/provisioning/dashboards/treasury/Treasury.json +0 -2018
  46. dao_treasury-0.0.34.dist-info/RECORD +0 -51
  47. dao_treasury-0.0.34.dist-info/top_level.txt +0 -2
  48. {dao_treasury-0.0.34.dist-info → dao_treasury-0.0.72.dist-info}/WHEEL +0 -0
@@ -15,8 +15,8 @@
15
15
  "editable": true,
16
16
  "fiscalYearStartMonth": 0,
17
17
  "graphTooltip": 0,
18
+ "id": 9,
18
19
  "links": [],
19
- "liveNow": false,
20
20
  "panels": [
21
21
  {
22
22
  "datasource": "SQLite",
@@ -36,7 +36,7 @@
36
36
  "steps": [
37
37
  {
38
38
  "color": "green",
39
- "value": null
39
+ "value": 0
40
40
  },
41
41
  {
42
42
  "color": "red",
@@ -130,7 +130,7 @@
130
130
  {
131
131
  "targetBlank": true,
132
132
  "title": "View on Etherscan",
133
- "url": "https://etherscan.io/address/${__data.fields.from}"
133
+ "url": "https://etherscan.io/address/${__data.fields.From}"
134
134
  }
135
135
  ]
136
136
  }
@@ -148,7 +148,7 @@
148
148
  {
149
149
  "targetBlank": true,
150
150
  "title": "View on Etherscan",
151
- "url": "https://etherscan.io/address/${__data.fields.to}"
151
+ "url": "https://etherscan.io/address/${__data.fields.To}"
152
152
  }
153
153
  ]
154
154
  }
@@ -190,9 +190,7 @@
190
190
  "footer": {
191
191
  "countRows": false,
192
192
  "fields": "",
193
- "reducer": [
194
- "sum"
195
- ],
193
+ "reducer": ["sum"],
196
194
  "show": false
197
195
  },
198
196
  "showHeader": true,
@@ -203,172 +201,158 @@
203
201
  }
204
202
  ]
205
203
  },
206
- "pluginVersion": "10.2.0",
204
+ "pluginVersion": "12.1.1",
207
205
  "targets": [
208
206
  {
209
207
  "datasource": "SQLite",
210
- "queryText": "select timestamp as \"Timestamp\", block as \"Block\", hash as \"Hash\", token as \"Token\", \"from\" as \"From\", from_nickname as \"From Nickname\", \"to\" as \"To\", to_nickname as \"To Nickname\", amount as \"Amount\", price as \"Price\", value_usd as \"Value USD\", txgroup as \"TxGroup\", a.parent_txgroup as \"Parent TxGroup\", log_index as \"Log Index\" from ( SELECT datetime(a.timestamp, 'unixepoch') AS timestamp, a.block, a.hash, c.symbol AS token, d.address AS \"from\", d.nickname as from_nickname, e.address AS \"to\", e.nickname as to_nickname, a.amount, a.price, a.value_usd, f.name AS txgroup, g.name AS parent_txgroup, f.txgroup_id, a.log_index FROM treasury_txs a LEFT JOIN chains b ON a.chain = b.chain_dbid LEFT JOIN tokens c ON a.token_id = c.token_id LEFT JOIN addresses d ON a.\"from\" = d.address_id LEFT JOIN addresses e ON a.\"to\" = e.address_id LEFT JOIN txgroups f ON a.txgroup_id = f.txgroup_id LEFT JOIN txgroups g ON f.parent_txgroup = g.txgroup_id WHERE a.timestamp >= $__from / 1000 and a.timestamp < $__to / 1000 and ('$Chain' like '{%' or b.chain_name = '$Chain') and ('$Token' like '{%' or c.symbol = '$Token') and ('$From' like '{%' or d.address = '$From') and ('$To' like '{%' or e.address = '$To') and ('$FromNickname' like '{%' or d.nickname = '$FromNickname') and ('$ToNickname' like '{%' or e.nickname = '$ToNickname') ) a left join txgroup_hierarchy b on a.txgroup_id = b.txgroup_id WHERE ('$Top' LIKE '{%' OR b.top_category = '$Top') ORDER BY timestamp",
208
+ "queryText": "select timestamp as \"Timestamp\", block as \"Block\", hash as \"Hash\", token as \"Token\", \"from\" as \"From\", from_nickname as \"From Nickname\", \"to\" as \"To\", to_nickname as \"To Nickname\", amount as \"Amount\", price as \"Price\", value_usd as \"Value USD\", txgroup as \"TxGroup\", a.parent_txgroup as \"Parent TxGroup\", log_index as \"Log Index\" from ( SELECT datetime(a.timestamp, 'unixepoch') AS timestamp, a.block, a.hash, c.symbol AS token, d.address AS \"from\", d.nickname as from_nickname, e.address AS \"to\", e.nickname as to_nickname, a.amount, a.price, a.value_usd, f.name AS txgroup, g.name AS parent_txgroup, f.txgroup_id, a.log_index FROM treasury_txs a LEFT JOIN chains b ON a.chain = b.chain_dbid LEFT JOIN tokens c ON a.token_id = c.token_id LEFT JOIN addresses d ON a.\"from\" = d.address_id LEFT JOIN addresses e ON a.\"to\" = e.address_id LEFT JOIN txgroups f ON a.txgroup_id = f.txgroup_id LEFT JOIN txgroups g ON f.parent_txgroup = g.txgroup_id WHERE a.timestamp >= $__from / 1000 and a.timestamp < $__to / 1000 and b.chain_name IN (${Chain:sqlstring}) and c.symbol IN (${Token:sqlstring}) and d.address IN (${From:sqlstring}) and e.address IN (${To:sqlstring}) and d.nickname IN (${FromNickname:sqlstring}) and e.nickname IN (${ToNickname:sqlstring}) ) a left join txgroup_hierarchy b on a.txgroup_id = b.txgroup_id WHERE b.top_category IN (${Top:sqlstring}) ORDER BY timestamp",
211
209
  "queryType": "table",
212
- "rawQueryText": "select timestamp as \"Timestamp\", block as \"Block\", hash as \"Hash\", token as \"Token\", \"from\" as \"From\", from_nickname as \"From Nickname\", \"to\" as \"To\", to_nickname as \"To Nickname\", amount as \"Amount\", price as \"Price\", value_usd as \"Value USD\", txgroup as \"TxGroup\", a.parent_txgroup as \"Parent TxGroup\", log_index as \"Log Index\" from ( SELECT datetime(a.timestamp, 'unixepoch') AS timestamp, a.block, a.hash, c.symbol AS token, d.address AS \"from\", d.nickname as from_nickname, e.address AS \"to\", e.nickname as to_nickname, a.amount, a.price, a.value_usd, f.name AS txgroup, g.name AS parent_txgroup, f.txgroup_id, a.log_index FROM treasury_txs a LEFT JOIN chains b ON a.chain = b.chain_dbid LEFT JOIN tokens c ON a.token_id = c.token_id LEFT JOIN addresses d ON a.\"from\" = d.address_id LEFT JOIN addresses e ON a.\"to\" = e.address_id LEFT JOIN txgroups f ON a.txgroup_id = f.txgroup_id LEFT JOIN txgroups g ON f.parent_txgroup = g.txgroup_id WHERE a.timestamp >= $__from / 1000 and a.timestamp < $__to / 1000 and ('$Chain' like '{%' or b.chain_name = '$Chain') and ('$Token' like '{%' or c.symbol = '$Token') and ('$From' like '{%' or d.address = '$From') and ('$To' like '{%' or e.address = '$To') and ('$FromNickname' like '{%' or d.nickname = '$FromNickname') and ('$ToNickname' like '{%' or e.nickname = '$ToNickname') ) a left join txgroup_hierarchy b on a.txgroup_id = b.txgroup_id WHERE ('$Top' LIKE '{%' OR b.top_category = '$Top') ORDER BY timestamp",
210
+ "rawQueryText": "select timestamp as \"Timestamp\", block as \"Block\", hash as \"Hash\", token as \"Token\", \"from\" as \"From\", from_nickname as \"From Nickname\", \"to\" as \"To\", to_nickname as \"To Nickname\", amount as \"Amount\", price as \"Price\", value_usd as \"Value USD\", txgroup as \"TxGroup\", a.parent_txgroup as \"Parent TxGroup\", log_index as \"Log Index\" from ( SELECT datetime(a.timestamp, 'unixepoch') AS timestamp, a.block, a.hash, c.symbol AS token, d.address AS \"from\", d.nickname as from_nickname, e.address AS \"to\", e.nickname as to_nickname, a.amount, a.price, a.value_usd, f.name AS txgroup, g.name AS parent_txgroup, f.txgroup_id, a.log_index FROM treasury_txs a LEFT JOIN chains b ON a.chain = b.chain_dbid LEFT JOIN tokens c ON a.token_id = c.token_id LEFT JOIN addresses d ON a.\"from\" = d.address_id LEFT JOIN addresses e ON a.\"to\" = e.address_id LEFT JOIN txgroups f ON a.txgroup_id = f.txgroup_id LEFT JOIN txgroups g ON f.parent_txgroup = g.txgroup_id WHERE a.timestamp >= $__from / 1000 and a.timestamp < $__to / 1000 and b.chain_name IN (${Chain:sqlstring}) and c.symbol IN (${Token:sqlstring}) and d.address IN (${From:sqlstring}) and e.address IN (${To:sqlstring}) and d.nickname IN (${FromNickname:sqlstring}) and e.nickname IN (${ToNickname:sqlstring}) ) a left join txgroup_hierarchy b on a.txgroup_id = b.txgroup_id WHERE b.top_category IN (${Top:sqlstring}) ORDER BY timestamp",
213
211
  "refId": "A",
214
- "timeColumns": [
215
- "time",
216
- "ts"
217
- ]
212
+ "timeColumns": ["time", "ts"]
218
213
  }
219
214
  ],
220
215
  "title": "Transactions",
221
- "type": "table"
216
+ "type": "table",
217
+ "description": "Displays all of the DAO's treasury transactions with full details, including timestamp, block, hash, token, sender/recipient address and nickname, amount, price, value in USD, and transaction group.\n\nIncludes direct links to Etherscan for transaction, block, and address fields."
222
218
  }
223
219
  ],
220
+ "preload": false,
224
221
  "refresh": "",
225
- "schemaVersion": 38,
226
- "tags": [],
222
+ "schemaVersion": 41,
223
+ "tags": ["transactions", "detailed"],
227
224
  "templating": {
228
225
  "list": [
229
226
  {
230
227
  "current": {
231
- "selected": false,
232
228
  "text": "All",
233
229
  "value": "$__all"
234
230
  },
235
231
  "datasource": "SQLite",
236
- "definition": "SELECT DISTINCT gh.top_category FROM treasury_txs a INNER JOIN txgroup_hierarchy gh ON a.txgroup_id = gh.txgroup_id;",
237
- "hide": 0,
232
+ "definition": "SELECT DISTINCT gh.top_category FROM treasury_txs a INNER JOIN txgroup_hierarchy gh ON a.txgroup_id = gh.txgroup_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000;",
238
233
  "includeAll": true,
239
234
  "label": "Top Level",
240
- "multi": false,
235
+ "multi": true,
241
236
  "name": "Top",
242
237
  "options": [],
243
- "query": "SELECT DISTINCT gh.top_category FROM treasury_txs a INNER JOIN txgroup_hierarchy gh ON a.txgroup_id = gh.txgroup_id;",
238
+ "query": "SELECT DISTINCT gh.top_category FROM treasury_txs a INNER JOIN txgroup_hierarchy gh ON a.txgroup_id = gh.txgroup_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000;",
244
239
  "refresh": 2,
245
240
  "regex": "",
246
- "skipUrlSync": false,
247
241
  "sort": 5,
248
- "type": "query"
242
+ "type": "query",
243
+ "description": "Filter transactions by top-level category (e.g., Revenue, Cost of Revenue, Expenses, Other Income, Other Expenses, Unsorted Income, Unsorted Expense).\n\nSelecting 'All' includes all categories."
249
244
  },
250
245
  {
251
246
  "current": {
252
- "selected": false,
253
247
  "text": "All",
254
248
  "value": "$__all"
255
249
  },
256
250
  "datasource": "SQLite",
257
- "definition": "select distinct chain_name from treasury_txs a left join chains b on a.chain = b.chain_dbid",
258
- "description": "",
259
- "hide": 0,
251
+ "definition": "select distinct chain_name from treasury_txs a left join chains b on a.chain = b.chain_dbid WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
252
+ "description": "Filter transactions by blockchain network.\n\nSelecting 'All' includes all supported chains.",
260
253
  "includeAll": true,
261
- "multi": false,
254
+ "label": "Chain",
255
+ "multi": true,
262
256
  "name": "Chain",
263
257
  "options": [],
264
- "query": "select distinct chain_name from treasury_txs a left join chains b on a.chain = b.chain_dbid",
258
+ "query": "select distinct chain_name from treasury_txs a left join chains b on a.chain = b.chain_dbid WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
265
259
  "refresh": 2,
266
260
  "regex": "",
267
- "skipUrlSync": false,
268
261
  "sort": 5,
269
262
  "type": "query"
270
263
  },
271
264
  {
272
265
  "current": {
273
- "selected": false,
274
266
  "text": "All",
275
267
  "value": "$__all"
276
268
  },
277
269
  "datasource": "SQLite",
278
- "definition": "select distinct symbol from treasury_txs a left join tokens b on a.token_id = b.token_id",
279
- "hide": 0,
270
+ "definition": "select distinct symbol from treasury_txs a left join tokens b on a.token_id = b.token_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
271
+ "description": "Filter transactions by token symbol.\n\nSelecting 'All' includes all tokens.",
280
272
  "includeAll": true,
281
- "multi": false,
273
+ "label": "Token",
274
+ "multi": true,
282
275
  "name": "Token",
283
276
  "options": [],
284
- "query": "select distinct symbol from treasury_txs a left join tokens b on a.token_id = b.token_id",
277
+ "query": "select distinct symbol from treasury_txs a left join tokens b on a.token_id = b.token_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
285
278
  "refresh": 2,
286
279
  "regex": "",
287
- "skipUrlSync": false,
288
280
  "sort": 5,
289
281
  "type": "query"
290
282
  },
291
283
  {
292
284
  "current": {
293
- "selected": false,
294
285
  "text": "All",
295
286
  "value": "$__all"
296
287
  },
297
288
  "datasource": "SQLite",
298
- "definition": "select distinct address from treasury_txs a left join addresses b on a.\"from\" = b.address_id",
299
- "hide": 0,
289
+ "definition": "select distinct address from treasury_txs a left join addresses b on a.\"from\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
290
+ "description": "Filter transactions by sender address.\n\nSelecting 'All' includes all sender addresses.",
300
291
  "includeAll": true,
301
292
  "label": "From Address",
302
- "multi": false,
293
+ "multi": true,
303
294
  "name": "From",
304
295
  "options": [],
305
- "query": "select distinct address from treasury_txs a left join addresses b on a.\"from\" = b.address_id",
296
+ "query": "select distinct address from treasury_txs a left join addresses b on a.\"from\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
306
297
  "refresh": 2,
307
298
  "regex": "",
308
- "skipUrlSync": false,
309
299
  "sort": 5,
310
300
  "type": "query"
311
301
  },
312
302
  {
313
303
  "current": {
314
- "selected": false,
315
304
  "text": "All",
316
305
  "value": "$__all"
317
306
  },
318
307
  "datasource": "SQLite",
319
- "definition": "select distinct nickname from treasury_txs a inner join addresses b on a.\"from\" = b.address_id",
320
- "hide": 0,
308
+ "definition": "select distinct nickname from treasury_txs a inner join addresses b on a.\"from\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
309
+ "description": "Filter transactions by sender nickname.\n\nSelecting 'All' includes all senders.",
321
310
  "includeAll": true,
322
311
  "label": "From Nickname",
323
- "multi": false,
312
+ "multi": true,
324
313
  "name": "FromNickname",
325
314
  "options": [],
326
- "query": "select distinct nickname from treasury_txs a inner join addresses b on a.\"from\" = b.address_id",
315
+ "query": "select distinct nickname from treasury_txs a inner join addresses b on a.\"from\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
327
316
  "refresh": 2,
328
317
  "regex": "",
329
- "skipUrlSync": false,
330
318
  "sort": 5,
331
319
  "type": "query"
332
320
  },
333
321
  {
334
322
  "current": {
335
- "selected": false,
336
323
  "text": "All",
337
324
  "value": "$__all"
338
325
  },
339
326
  "datasource": "SQLite",
340
- "definition": "select distinct address from treasury_txs a left join addresses b on a.\"to\" = b.address_id",
341
- "hide": 0,
327
+ "definition": "select distinct address from treasury_txs a left join addresses b on a.\"to\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
328
+ "description": "Filter transactions by recipient address.\n\nSelecting 'All' includes all recipient addresses.",
342
329
  "includeAll": true,
343
330
  "label": "To Address",
344
- "multi": false,
331
+ "multi": true,
345
332
  "name": "To",
346
333
  "options": [],
347
- "query": "select distinct address from treasury_txs a left join addresses b on a.\"to\" = b.address_id",
334
+ "query": "select distinct address from treasury_txs a left join addresses b on a.\"to\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
348
335
  "refresh": 2,
349
336
  "regex": "",
350
- "skipUrlSync": false,
351
337
  "sort": 5,
352
338
  "type": "query"
353
339
  },
354
340
  {
355
341
  "current": {
356
- "selected": false,
357
342
  "text": "All",
358
343
  "value": "$__all"
359
344
  },
360
345
  "datasource": "SQLite",
361
- "definition": "select distinct nickname from treasury_txs a inner join addresses b on a.\"to\" = b.address_id",
362
- "hide": 0,
346
+ "definition": "select distinct nickname from treasury_txs a inner join addresses b on a.\"to\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
347
+ "description": "Filter transactions by recipient nickname.\n\nSelecting 'All' includes all recipients.",
363
348
  "includeAll": true,
364
349
  "label": "To Nickname",
365
- "multi": false,
350
+ "multi": true,
366
351
  "name": "ToNickname",
367
352
  "options": [],
368
- "query": "select distinct nickname from treasury_txs a inner join addresses b on a.\"to\" = b.address_id",
353
+ "query": "select distinct nickname from treasury_txs a inner join addresses b on a.\"to\" = b.address_id WHERE a.timestamp >= $__from/1000 AND a.timestamp <= $__to/1000",
369
354
  "refresh": 2,
370
355
  "regex": "",
371
- "skipUrlSync": false,
372
356
  "sort": 5,
373
357
  "type": "query"
374
358
  }
@@ -381,7 +365,7 @@
381
365
  "timepicker": {},
382
366
  "timezone": "",
383
367
  "title": "Treasury Transactions",
368
+ "description": "Provides a real-time, filterable table of all transactions in the DAO treasury database, including timestamp, block, hash, token, addresses, nicknames, amount, price, and value in USD. Enables detailed analysis and monitoring of all value transfers.",
384
369
  "uid": "b21f1092-66a4-4fb0-90ef-ed77d2becaa4",
385
- "version": 1,
386
- "weekStart": ""
370
+ "version": 6
387
371
  }