dao-treasury 0.0.71__cp311-cp311-win_amd64.whl → 0.1.1__cp311-cp311-win_amd64.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.
- dao_treasury/.grafana/provisioning/dashboards/breakdowns/Expenses.json +89 -73
- dao_treasury/.grafana/provisioning/dashboards/breakdowns/Revenue.json +86 -68
- dao_treasury/.grafana/provisioning/dashboards/streams/LlamaPay.json +5 -12
- dao_treasury/.grafana/provisioning/dashboards/summary/Monthly.json +5 -6
- dao_treasury/.grafana/provisioning/dashboards/transactions/Treasury Transactions.json +220 -195
- dao_treasury/.grafana/provisioning/dashboards/transactions/Unsorted Transactions.json +367 -0
- dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow (Including Unsorted).json +61 -71
- dao_treasury/.grafana/provisioning/dashboards/treasury/Cashflow.json +43 -50
- dao_treasury/.grafana/provisioning/dashboards/treasury/Current Treasury Assets.json +50 -90
- dao_treasury/.grafana/provisioning/dashboards/treasury/Historical Treasury Balances.json +1403 -532
- dao_treasury/.grafana/provisioning/dashboards/treasury/Operating Cashflow.json +31 -36
- dao_treasury/.grafana/provisioning/datasources/datasources.yaml +9 -4
- dao_treasury/__init__.py +0 -4
- dao_treasury/_docker.cp311-win_amd64.pyd +0 -0
- dao_treasury/_docker.py +6 -2
- dao_treasury/_nicknames.cp311-win_amd64.pyd +0 -0
- dao_treasury/_nicknames.py +3 -2
- dao_treasury/_wallet.cp311-win_amd64.pyd +0 -0
- dao_treasury/constants.cp311-win_amd64.pyd +0 -0
- dao_treasury/db.py +340 -120
- dao_treasury/docker-compose.yaml +18 -2
- dao_treasury/main.py +5 -2
- dao_treasury/sorting/__init__.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/__init__.py +38 -21
- dao_treasury/sorting/_matchers.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/_rules.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/factory.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/rule.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/__init__.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/ignore/__init__.cp311-win_amd64.pyd +0 -0
- dao_treasury/sorting/rules/ignore/llamapay.cp311-win_amd64.pyd +0 -0
- dao_treasury/types.cp311-win_amd64.pyd +0 -0
- {dao_treasury-0.0.71.dist-info → dao_treasury-0.1.1.dist-info}/METADATA +3 -2
- dao_treasury-0.1.1.dist-info/RECORD +53 -0
- dao_treasury__mypyc.cp311-win_amd64.pyd +0 -0
- dao_treasury/streams/__init__.cp311-win_amd64.pyd +0 -0
- dao_treasury/streams/llamapay.cp311-win_amd64.pyd +0 -0
- dao_treasury-0.0.71.dist-info/RECORD +0 -54
- {dao_treasury-0.0.71.dist-info → dao_treasury-0.1.1.dist-info}/WHEEL +0 -0
- {dao_treasury-0.0.71.dist-info → dao_treasury-0.1.1.dist-info}/top_level.txt +0 -0
|
@@ -12,39 +12,24 @@
|
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
},
|
|
15
|
-
"description": "Summarizes the DAO's monthly profit and loss, providing a breakdown of sorted and unsorted financial activity for each month. Supports financial reporting and tracking the progress of transaction categorization.",
|
|
16
15
|
"editable": true,
|
|
17
16
|
"fiscalYearStartMonth": 0,
|
|
18
17
|
"graphTooltip": 0,
|
|
19
|
-
"id":
|
|
18
|
+
"id": 9,
|
|
20
19
|
"links": [],
|
|
21
20
|
"panels": [
|
|
22
21
|
{
|
|
23
|
-
"datasource": "
|
|
24
|
-
"description": "Displays a table of monthly profit and loss for the DAO, including Revenue, Cost of Revenue, Expenses, Other Income, Other Expense, Sorted Net, Unsorted Income, Unsorted Expense.\n\nUseful for high-level financial reporting and tracking the progress of transaction categorization.",
|
|
22
|
+
"datasource": "PostgreSQL",
|
|
25
23
|
"fieldConfig": {
|
|
26
24
|
"defaults": {
|
|
27
|
-
"color": {
|
|
28
|
-
"mode": "continuous-RdYlGr"
|
|
29
|
-
},
|
|
30
25
|
"custom": {
|
|
31
26
|
"align": "auto",
|
|
32
27
|
"cellOptions": {
|
|
33
28
|
"type": "auto"
|
|
34
29
|
},
|
|
35
|
-
"
|
|
36
|
-
"reducers": ["sum", "max", "mean", "median"]
|
|
37
|
-
},
|
|
38
|
-
"inspect": true
|
|
30
|
+
"inspect": false
|
|
39
31
|
},
|
|
40
|
-
"
|
|
41
|
-
"links": [
|
|
42
|
-
{
|
|
43
|
-
"targetBlank": true,
|
|
44
|
-
"title": "View ${__field.name} transactions for this period",
|
|
45
|
-
"url": "/d/b21f1092-66a4-4fb0-90ef-ed77d2becaa4/treasury-transactions?var-Top=${__field.name}&from=${__data.fields.month_start}&to=${__data.fields.month_end}"
|
|
46
|
-
}
|
|
47
|
-
],
|
|
32
|
+
"decimals": 8,
|
|
48
33
|
"mappings": [],
|
|
49
34
|
"thresholds": {
|
|
50
35
|
"mode": "absolute",
|
|
@@ -58,244 +43,143 @@
|
|
|
58
43
|
"value": 80
|
|
59
44
|
}
|
|
60
45
|
]
|
|
61
|
-
}
|
|
62
|
-
"unit": "currencyUSD"
|
|
46
|
+
}
|
|
63
47
|
},
|
|
64
48
|
"overrides": [
|
|
65
49
|
{
|
|
66
50
|
"matcher": {
|
|
67
51
|
"id": "byName",
|
|
68
|
-
"options": "
|
|
69
|
-
},
|
|
70
|
-
"properties": [
|
|
71
|
-
{
|
|
72
|
-
"id": "custom.cellOptions",
|
|
73
|
-
"value": {
|
|
74
|
-
"type": "color-text"
|
|
75
|
-
}
|
|
76
|
-
},
|
|
77
|
-
{
|
|
78
|
-
"id": "links"
|
|
79
|
-
}
|
|
80
|
-
]
|
|
81
|
-
},
|
|
82
|
-
{
|
|
83
|
-
"matcher": {
|
|
84
|
-
"id": "byName",
|
|
85
|
-
"options": "Net"
|
|
86
|
-
},
|
|
87
|
-
"properties": [
|
|
88
|
-
{
|
|
89
|
-
"id": "custom.cellOptions",
|
|
90
|
-
"value": {
|
|
91
|
-
"type": "color-text"
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
{
|
|
95
|
-
"id": "links"
|
|
96
|
-
}
|
|
97
|
-
]
|
|
98
|
-
},
|
|
99
|
-
{
|
|
100
|
-
"matcher": {
|
|
101
|
-
"id": "byName",
|
|
102
|
-
"options": "Unsorted Income"
|
|
103
|
-
},
|
|
104
|
-
"properties": [
|
|
105
|
-
{
|
|
106
|
-
"id": "custom.cellOptions",
|
|
107
|
-
"value": {
|
|
108
|
-
"type": "color-text"
|
|
109
|
-
}
|
|
110
|
-
},
|
|
111
|
-
{
|
|
112
|
-
"id": "color",
|
|
113
|
-
"value": {
|
|
114
|
-
"mode": "fixed"
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
]
|
|
118
|
-
},
|
|
119
|
-
{
|
|
120
|
-
"matcher": {
|
|
121
|
-
"id": "byName",
|
|
122
|
-
"options": "Unsorted Expenses"
|
|
123
|
-
},
|
|
124
|
-
"properties": [
|
|
125
|
-
{
|
|
126
|
-
"id": "custom.cellOptions",
|
|
127
|
-
"value": {
|
|
128
|
-
"type": "color-text"
|
|
129
|
-
}
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
"id": "color",
|
|
133
|
-
"value": {
|
|
134
|
-
"mode": "fixed"
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
]
|
|
138
|
-
},
|
|
139
|
-
{
|
|
140
|
-
"matcher": {
|
|
141
|
-
"id": "byName",
|
|
142
|
-
"options": "Other Income"
|
|
52
|
+
"options": "Hash"
|
|
143
53
|
},
|
|
144
54
|
"properties": [
|
|
145
55
|
{
|
|
146
|
-
"id": "
|
|
147
|
-
"value":
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
"mode": "fixed"
|
|
155
|
-
}
|
|
56
|
+
"id": "links",
|
|
57
|
+
"value": [
|
|
58
|
+
{
|
|
59
|
+
"targetBlank": true,
|
|
60
|
+
"title": "View on Etherscan",
|
|
61
|
+
"url": "https://etherscan.io/tx/${__value.raw}"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
156
64
|
}
|
|
157
65
|
]
|
|
158
66
|
},
|
|
159
67
|
{
|
|
160
68
|
"matcher": {
|
|
161
69
|
"id": "byName",
|
|
162
|
-
"options": "
|
|
70
|
+
"options": "Block"
|
|
163
71
|
},
|
|
164
72
|
"properties": [
|
|
165
73
|
{
|
|
166
|
-
"id": "
|
|
167
|
-
"value":
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
"mode": "fixed"
|
|
175
|
-
}
|
|
74
|
+
"id": "links",
|
|
75
|
+
"value": [
|
|
76
|
+
{
|
|
77
|
+
"targetBlank": true,
|
|
78
|
+
"title": "View on Etherscan",
|
|
79
|
+
"url": "https://etherscan.io/block/${__value.raw}"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
176
82
|
}
|
|
177
83
|
]
|
|
178
84
|
},
|
|
179
85
|
{
|
|
180
86
|
"matcher": {
|
|
181
87
|
"id": "byName",
|
|
182
|
-
"options": "
|
|
88
|
+
"options": "To"
|
|
183
89
|
},
|
|
184
90
|
"properties": [
|
|
185
91
|
{
|
|
186
|
-
"id": "
|
|
187
|
-
"value":
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
"mode": "continuous-RdYlGr"
|
|
195
|
-
}
|
|
196
|
-
},
|
|
197
|
-
{
|
|
198
|
-
"id": "links"
|
|
92
|
+
"id": "links",
|
|
93
|
+
"value": [
|
|
94
|
+
{
|
|
95
|
+
"targetBlank": true,
|
|
96
|
+
"title": "View on Etherscan",
|
|
97
|
+
"url": "https://etherscan.io/address/${__value.raw}"
|
|
98
|
+
}
|
|
99
|
+
]
|
|
199
100
|
}
|
|
200
101
|
]
|
|
201
102
|
},
|
|
202
103
|
{
|
|
203
104
|
"matcher": {
|
|
204
105
|
"id": "byName",
|
|
205
|
-
"options": "
|
|
106
|
+
"options": "From"
|
|
206
107
|
},
|
|
207
108
|
"properties": [
|
|
208
109
|
{
|
|
209
|
-
"id": "
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
110
|
+
"id": "links",
|
|
111
|
+
"value": [
|
|
112
|
+
{
|
|
113
|
+
"targetBlank": true,
|
|
114
|
+
"title": "View on Etherscan",
|
|
115
|
+
"url": "https://etherscan.io/address/${__value.raw}"
|
|
116
|
+
}
|
|
117
|
+
]
|
|
214
118
|
}
|
|
215
119
|
]
|
|
216
120
|
},
|
|
217
121
|
{
|
|
218
122
|
"matcher": {
|
|
219
123
|
"id": "byName",
|
|
220
|
-
"options": "
|
|
124
|
+
"options": "From Nickname"
|
|
221
125
|
},
|
|
222
126
|
"properties": [
|
|
223
127
|
{
|
|
224
|
-
"id": "
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
128
|
+
"id": "links",
|
|
129
|
+
"value": [
|
|
130
|
+
{
|
|
131
|
+
"targetBlank": true,
|
|
132
|
+
"title": "View on Etherscan",
|
|
133
|
+
"url": "https://etherscan.io/address/${__data.fields.From}"
|
|
134
|
+
}
|
|
135
|
+
]
|
|
229
136
|
}
|
|
230
137
|
]
|
|
231
138
|
},
|
|
232
139
|
{
|
|
233
140
|
"matcher": {
|
|
234
141
|
"id": "byName",
|
|
235
|
-
"options": "
|
|
142
|
+
"options": "To Nickname"
|
|
236
143
|
},
|
|
237
144
|
"properties": [
|
|
238
145
|
{
|
|
239
|
-
"id": "
|
|
240
|
-
"value":
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
"fixedColor": "#ffffff",
|
|
248
|
-
"mode": "fixed"
|
|
249
|
-
}
|
|
146
|
+
"id": "links",
|
|
147
|
+
"value": [
|
|
148
|
+
{
|
|
149
|
+
"targetBlank": true,
|
|
150
|
+
"title": "View on Etherscan",
|
|
151
|
+
"url": "https://etherscan.io/address/${__data.fields.To}"
|
|
152
|
+
}
|
|
153
|
+
]
|
|
250
154
|
}
|
|
251
155
|
]
|
|
252
156
|
},
|
|
253
157
|
{
|
|
254
158
|
"matcher": {
|
|
255
159
|
"id": "byName",
|
|
256
|
-
"options": "
|
|
160
|
+
"options": "Block"
|
|
257
161
|
},
|
|
258
162
|
"properties": [
|
|
259
163
|
{
|
|
260
|
-
"id": "
|
|
261
|
-
"value": {
|
|
262
|
-
"type": "color-text"
|
|
263
|
-
}
|
|
264
|
-
},
|
|
265
|
-
{
|
|
266
|
-
"id": "color",
|
|
267
|
-
"value": {
|
|
268
|
-
"fixedColor": "#ffffff",
|
|
269
|
-
"mode": "fixed"
|
|
270
|
-
}
|
|
164
|
+
"id": "decimals"
|
|
271
165
|
}
|
|
272
166
|
]
|
|
273
167
|
},
|
|
274
168
|
{
|
|
275
169
|
"matcher": {
|
|
276
170
|
"id": "byName",
|
|
277
|
-
"options": "
|
|
171
|
+
"options": "Log Index"
|
|
278
172
|
},
|
|
279
173
|
"properties": [
|
|
280
174
|
{
|
|
281
|
-
"id": "
|
|
282
|
-
"value": {
|
|
283
|
-
"fixedColor": "#ffffff",
|
|
284
|
-
"mode": "fixed"
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
"id": "custom.cellOptions",
|
|
289
|
-
"value": {
|
|
290
|
-
"type": "color-text"
|
|
291
|
-
}
|
|
175
|
+
"id": "decimals"
|
|
292
176
|
}
|
|
293
177
|
]
|
|
294
178
|
}
|
|
295
179
|
]
|
|
296
180
|
},
|
|
297
181
|
"gridPos": {
|
|
298
|
-
"h":
|
|
182
|
+
"h": 18,
|
|
299
183
|
"w": 24,
|
|
300
184
|
"x": 0,
|
|
301
185
|
"y": 0
|
|
@@ -303,43 +187,184 @@
|
|
|
303
187
|
"id": 1,
|
|
304
188
|
"options": {
|
|
305
189
|
"cellHeight": "sm",
|
|
190
|
+
"footer": {
|
|
191
|
+
"countRows": false,
|
|
192
|
+
"fields": "",
|
|
193
|
+
"reducer": ["sum"],
|
|
194
|
+
"show": false
|
|
195
|
+
},
|
|
306
196
|
"showHeader": true,
|
|
307
197
|
"sortBy": [
|
|
308
198
|
{
|
|
309
199
|
"desc": true,
|
|
310
|
-
"displayName": "
|
|
200
|
+
"displayName": "Timestamp"
|
|
311
201
|
}
|
|
312
202
|
]
|
|
313
203
|
},
|
|
314
|
-
"pluginVersion": "12.
|
|
204
|
+
"pluginVersion": "12.1.1",
|
|
315
205
|
"targets": [
|
|
316
206
|
{
|
|
317
|
-
"datasource": "
|
|
318
|
-
"
|
|
319
|
-
"
|
|
320
|
-
"rawQueryText": "SELECT\n month AS \"Month\",\n SUM(CASE WHEN s.top_category = 'Revenue' THEN value_usd ELSE 0 END) AS \"Revenue\",\n SUM(CASE WHEN s.top_category = 'Cost of Revenue' THEN value_usd ELSE 0 END) AS \"Cost of Revenue\",\n SUM(CASE WHEN s.top_category = 'Expenses' THEN value_usd ELSE 0 END) AS \"Expenses\",\n (\n SUM(CASE WHEN s.top_category = 'Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Cost of Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Expenses' THEN value_usd ELSE 0 END)\n ) AS \"Operating Net\",\n SUM(CASE WHEN s.top_category = 'Other Income' THEN value_usd ELSE 0 END) AS \"Other Income\",\n SUM(CASE WHEN s.top_category = 'Other Expenses' THEN value_usd ELSE 0 END) AS \"Other Expenses\",\n (\n SUM(CASE WHEN s.top_category = 'Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Cost of Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Expenses' THEN value_usd ELSE 0 END)\n + SUM(CASE WHEN s.top_category = 'Other Income' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Other Expenses' THEN value_usd ELSE 0 END)\n ) AS \"Sorted Net\",\n SUM(CASE WHEN s.top_category = 'Sort Me (Inbound)' THEN value_usd ELSE 0 END) AS \"Unsorted Income\",\n SUM(CASE WHEN s.top_category = 'Sort Me (Outbound)' THEN value_usd ELSE 0 END) AS \"Unsorted Expenses\",\n (\n SUM(CASE WHEN s.top_category = 'Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Cost of Revenue' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Expenses' THEN value_usd ELSE 0 END)\n + SUM(CASE WHEN s.top_category = 'Other Income' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Other Expenses' THEN value_usd ELSE 0 END)\n + SUM(CASE WHEN s.top_category = 'Sort Me (Inbound)' THEN value_usd ELSE 0 END)\n - SUM(CASE WHEN s.top_category = 'Sort Me (Outbound)' THEN value_usd ELSE 0 END)\n ) AS \"Net\",\n -- Month Start as UNIX timestamp (midnight on the first day)\n CAST(strftime('%s', month || '-01') * 1000 AS TEXT) AS \"month_start\",\n -- Month End as UNIX timestamp (one millisecond before the next month starts)\n CAST(strftime('%s', date(month || '-01', '+1 month')) * 1000 - 1 AS TEXT) AS \"month_end\"\nFROM (\n SELECT\n strftime('%Y-%m', datetime(t.timestamp, 'unixepoch')) AS month,\n gh.top_category,\n COALESCE(t.value_usd, 0) AS value_usd\n FROM treasury_txs AS t\n JOIN txgroups AS tg ON t.txgroup_id = tg.txgroup_id\n JOIN txgroup_hierarchy AS gh ON tg.txgroup_id = gh.txgroup_id\n WHERE t.timestamp >= strftime('%s', '2025-01-01') AND tg.name <> 'Ignore'\n) AS s\nGROUP BY month;",
|
|
207
|
+
"datasource": "PostgreSQL",
|
|
208
|
+
"format": "table",
|
|
209
|
+
"rawSql": "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",
|
|
321
210
|
"refId": "A",
|
|
322
211
|
"timeColumns": ["time", "ts"]
|
|
323
212
|
}
|
|
324
213
|
],
|
|
325
|
-
"title": "
|
|
326
|
-
"type": "table"
|
|
214
|
+
"title": "Transactions",
|
|
215
|
+
"type": "table",
|
|
216
|
+
"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."
|
|
327
217
|
}
|
|
328
218
|
],
|
|
329
219
|
"preload": false,
|
|
330
220
|
"refresh": "",
|
|
331
|
-
"schemaVersion":
|
|
332
|
-
"tags": [],
|
|
221
|
+
"schemaVersion": 41,
|
|
222
|
+
"tags": ["transactions", "detailed"],
|
|
333
223
|
"templating": {
|
|
334
|
-
"list": [
|
|
224
|
+
"list": [
|
|
225
|
+
{
|
|
226
|
+
"current": {
|
|
227
|
+
"text": "All",
|
|
228
|
+
"value": "$__all"
|
|
229
|
+
},
|
|
230
|
+
"datasource": "PostgreSQL",
|
|
231
|
+
"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;",
|
|
232
|
+
"includeAll": true,
|
|
233
|
+
"label": "Top Level",
|
|
234
|
+
"multi": true,
|
|
235
|
+
"name": "Top",
|
|
236
|
+
"options": [],
|
|
237
|
+
"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;",
|
|
238
|
+
"refresh": 2,
|
|
239
|
+
"regex": "",
|
|
240
|
+
"sort": 5,
|
|
241
|
+
"type": "query",
|
|
242
|
+
"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."
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
"current": {
|
|
246
|
+
"text": "All",
|
|
247
|
+
"value": "$__all"
|
|
248
|
+
},
|
|
249
|
+
"datasource": "PostgreSQL",
|
|
250
|
+
"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",
|
|
251
|
+
"description": "Filter transactions by blockchain network.\n\nSelecting 'All' includes all supported chains.",
|
|
252
|
+
"includeAll": true,
|
|
253
|
+
"label": "Chain",
|
|
254
|
+
"multi": true,
|
|
255
|
+
"name": "Chain",
|
|
256
|
+
"options": [],
|
|
257
|
+
"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",
|
|
258
|
+
"refresh": 2,
|
|
259
|
+
"regex": "",
|
|
260
|
+
"sort": 5,
|
|
261
|
+
"type": "query"
|
|
262
|
+
},
|
|
263
|
+
{
|
|
264
|
+
"current": {
|
|
265
|
+
"text": "All",
|
|
266
|
+
"value": "$__all"
|
|
267
|
+
},
|
|
268
|
+
"datasource": "PostgreSQL",
|
|
269
|
+
"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",
|
|
270
|
+
"description": "Filter transactions by token symbol.\n\nSelecting 'All' includes all tokens.",
|
|
271
|
+
"includeAll": true,
|
|
272
|
+
"label": "Token",
|
|
273
|
+
"multi": true,
|
|
274
|
+
"name": "Token",
|
|
275
|
+
"options": [],
|
|
276
|
+
"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",
|
|
277
|
+
"refresh": 2,
|
|
278
|
+
"regex": "",
|
|
279
|
+
"sort": 5,
|
|
280
|
+
"type": "query"
|
|
281
|
+
},
|
|
282
|
+
{
|
|
283
|
+
"current": {
|
|
284
|
+
"text": "All",
|
|
285
|
+
"value": "$__all"
|
|
286
|
+
},
|
|
287
|
+
"datasource": "PostgreSQL",
|
|
288
|
+
"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",
|
|
289
|
+
"description": "Filter transactions by sender address.\n\nSelecting 'All' includes all sender addresses.",
|
|
290
|
+
"includeAll": true,
|
|
291
|
+
"label": "From Address",
|
|
292
|
+
"multi": true,
|
|
293
|
+
"name": "From",
|
|
294
|
+
"options": [],
|
|
295
|
+
"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",
|
|
296
|
+
"refresh": 2,
|
|
297
|
+
"regex": "",
|
|
298
|
+
"sort": 5,
|
|
299
|
+
"type": "query"
|
|
300
|
+
},
|
|
301
|
+
{
|
|
302
|
+
"current": {
|
|
303
|
+
"text": "All",
|
|
304
|
+
"value": "$__all"
|
|
305
|
+
},
|
|
306
|
+
"datasource": "PostgreSQL",
|
|
307
|
+
"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",
|
|
308
|
+
"description": "Filter transactions by sender nickname.\n\nSelecting 'All' includes all senders.",
|
|
309
|
+
"includeAll": true,
|
|
310
|
+
"label": "From Nickname",
|
|
311
|
+
"multi": true,
|
|
312
|
+
"name": "FromNickname",
|
|
313
|
+
"options": [],
|
|
314
|
+
"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",
|
|
315
|
+
"refresh": 2,
|
|
316
|
+
"regex": "",
|
|
317
|
+
"sort": 5,
|
|
318
|
+
"type": "query"
|
|
319
|
+
},
|
|
320
|
+
{
|
|
321
|
+
"current": {
|
|
322
|
+
"text": "All",
|
|
323
|
+
"value": "$__all"
|
|
324
|
+
},
|
|
325
|
+
"datasource": "PostgreSQL",
|
|
326
|
+
"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",
|
|
327
|
+
"description": "Filter transactions by recipient address.\n\nSelecting 'All' includes all recipient addresses.",
|
|
328
|
+
"includeAll": true,
|
|
329
|
+
"label": "To Address",
|
|
330
|
+
"multi": true,
|
|
331
|
+
"name": "To",
|
|
332
|
+
"options": [],
|
|
333
|
+
"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",
|
|
334
|
+
"refresh": 2,
|
|
335
|
+
"regex": "",
|
|
336
|
+
"sort": 5,
|
|
337
|
+
"type": "query"
|
|
338
|
+
},
|
|
339
|
+
{
|
|
340
|
+
"current": {
|
|
341
|
+
"text": "All",
|
|
342
|
+
"value": "$__all"
|
|
343
|
+
},
|
|
344
|
+
"datasource": "PostgreSQL",
|
|
345
|
+
"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",
|
|
346
|
+
"description": "Filter transactions by recipient nickname.\n\nSelecting 'All' includes all recipients.",
|
|
347
|
+
"includeAll": true,
|
|
348
|
+
"label": "To Nickname",
|
|
349
|
+
"multi": true,
|
|
350
|
+
"name": "ToNickname",
|
|
351
|
+
"options": [],
|
|
352
|
+
"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",
|
|
353
|
+
"refresh": 2,
|
|
354
|
+
"regex": "",
|
|
355
|
+
"sort": 5,
|
|
356
|
+
"type": "query"
|
|
357
|
+
}
|
|
358
|
+
]
|
|
335
359
|
},
|
|
336
360
|
"time": {
|
|
337
|
-
"from": "now
|
|
361
|
+
"from": "now-7d",
|
|
338
362
|
"to": "now"
|
|
339
363
|
},
|
|
340
364
|
"timepicker": {},
|
|
341
365
|
"timezone": "",
|
|
342
|
-
"title": "
|
|
343
|
-
"
|
|
344
|
-
"
|
|
366
|
+
"title": "Treasury Transactions",
|
|
367
|
+
"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.",
|
|
368
|
+
"uid": "b21f1092-66a4-4fb0-90ef-ed77d2becaa4",
|
|
369
|
+
"version": 8
|
|
345
370
|
}
|