diff --git a/storage/sqlite/script_group.go b/storage/sqlite/script_group.go index 3fadaf3..8621a40 100644 --- a/storage/sqlite/script_group.go +++ b/storage/sqlite/script_group.go @@ -2,6 +2,26 @@ package sqlite import "github.com/RaghavSood/btcsupply/types" +func (d *SqliteBackend) GetScriptGroupSummary(group string) (types.ScriptGroupSummary, error) { + query := `SELECT + bs.script_group, + SUM(l.amount) AS total_loss, + count(DISTINCT(bs.script)) AS scripts, + count(DISTINCT(l.tx_id)) AS transactions + FROM + burn_scripts bs + JOIN + losses l ON bs.script = l.burn_script + WHERE + bs.script_group = ? + GROUP BY bs.script_group` + + var summary types.ScriptGroupSummary + err := d.db.QueryRow(query, group).Scan(&summary.ScriptGroup, &summary.TotalLoss, &summary.Scripts, &summary.Transactions) + + return summary, err +} + func (d *SqliteBackend) GetScriptGroupSummaries(limit int) ([]types.ScriptGroupSummary, error) { query := `SELECT bs.script_group, diff --git a/storage/storage.go b/storage/storage.go index dcf897f..e1964fe 100644 --- a/storage/storage.go +++ b/storage/storage.go @@ -40,6 +40,7 @@ type Storage interface { GetBurnScriptSummary(script string) (types.BurnScriptSummary, error) GetScriptGroupSummaries(limit int) ([]types.ScriptGroupSummary, error) + GetScriptGroupSummary(group string) (types.ScriptGroupSummary, error) GetScriptQueue() ([]types.ScriptQueue, error) IncrementScriptQueueTryCount(scriptID int) error diff --git a/templates/scriptgroup.tmpl b/templates/scriptgroup.tmpl index c4aa666..e2d8d1d 100644 --- a/templates/scriptgroup.tmpl +++ b/templates/scriptgroup.tmpl @@ -1,8 +1,10 @@ {{ define "content" }}