From bd3f5291a1f0f311f919de86d008a61b1788a004 Mon Sep 17 00:00:00 2001 From: Gurjot Singh <111540954+gusin13@users.noreply.github.com> Date: Thu, 12 Dec 2024 17:21:08 +0530 Subject: [PATCH] fix: stats and queues (#180) --- docs/docs.go | 15 --------------- docs/swagger.json | 15 --------------- docs/swagger.yaml | 10 ---------- go.mod | 4 ++-- go.sum | 6 ++++-- internal/v2/db/client/stats.go | 22 ---------------------- internal/v2/db/model/stats.go | 19 ------------------- internal/v2/service/stats.go | 10 ---------- tests/mocks/mock_db_client.go | 2 +- tests/mocks/mock_ordinal_client.go | 2 +- tests/mocks/mock_v1_db_client.go | 2 +- tests/mocks/mock_v2_db_client.go | 2 +- 12 files changed, 10 insertions(+), 99 deletions(-) diff --git a/docs/docs.go b/docs/docs.go index 9932b4f4..70d597e7 100644 --- a/docs/docs.go +++ b/docs/docs.go @@ -1297,17 +1297,8 @@ const docTemplate = `{ "active_tvl": { "type": "integer" }, - "total_delegations": { - "type": "integer" - }, "total_finality_providers": { "type": "integer" - }, - "total_stakers": { - "type": "integer" - }, - "total_tvl": { - "type": "integer" } } }, @@ -1339,12 +1330,6 @@ const docTemplate = `{ }, "staker_pk_hex": { "type": "string" - }, - "total_delegations": { - "type": "integer" - }, - "total_tvl": { - "type": "integer" } } }, diff --git a/docs/swagger.json b/docs/swagger.json index 099a417a..90b0080f 100644 --- a/docs/swagger.json +++ b/docs/swagger.json @@ -1289,17 +1289,8 @@ "active_tvl": { "type": "integer" }, - "total_delegations": { - "type": "integer" - }, "total_finality_providers": { "type": "integer" - }, - "total_stakers": { - "type": "integer" - }, - "total_tvl": { - "type": "integer" } } }, @@ -1331,12 +1322,6 @@ }, "staker_pk_hex": { "type": "string" - }, - "total_delegations": { - "type": "integer" - }, - "total_tvl": { - "type": "integer" } } }, diff --git a/docs/swagger.yaml b/docs/swagger.yaml index 2f7b5e27..d428961d 100644 --- a/docs/swagger.yaml +++ b/docs/swagger.yaml @@ -434,14 +434,8 @@ definitions: type: integer active_tvl: type: integer - total_delegations: - type: integer total_finality_providers: type: integer - total_stakers: - type: integer - total_tvl: - type: integer type: object v2service.ParamsPublic: properties: @@ -462,10 +456,6 @@ definitions: type: integer staker_pk_hex: type: string - total_delegations: - type: integer - total_tvl: - type: integer type: object v2service.StakingStatusPublic: properties: diff --git a/go.mod b/go.mod index c8349234..ea704fdc 100644 --- a/go.mod +++ b/go.mod @@ -7,7 +7,7 @@ toolchain go1.23.3 require ( github.com/babylonlabs-io/babylon v0.18.0 github.com/babylonlabs-io/networks/parameters v0.2.2 - github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241203052145-e50972fc19c9 + github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241212112557-9ac7de686075 github.com/btcsuite/btcd v0.24.2 github.com/btcsuite/btcd/btcec/v2 v2.3.2 github.com/btcsuite/btcd/btcutil v1.1.6 @@ -174,7 +174,7 @@ require ( github.com/spf13/cast v1.7.0 // indirect github.com/spf13/cobra v1.8.1 github.com/spf13/pflag v1.0.5 // indirect - github.com/stretchr/testify v1.9.0 // indirect + github.com/stretchr/testify v1.9.0 github.com/subosito/gotenv v1.6.0 // indirect github.com/swaggo/http-swagger v1.3.4 go.mongodb.org/mongo-driver v1.14.0 diff --git a/go.sum b/go.sum index a6d5c73e..9b9670f1 100644 --- a/go.sum +++ b/go.sum @@ -87,8 +87,10 @@ github.com/babylonlabs-io/babylon v0.18.0 h1:phMY/GiR9N5MpD3XCmvyPpZkc1I3kTM9yX+ github.com/babylonlabs-io/babylon v0.18.0/go.mod h1:sT+KG2U+M0tDMNZZ2L5CwlXX0OpagGEs56BiWXqaZFw= github.com/babylonlabs-io/networks/parameters v0.2.2 h1:TCu39fZvjX5f6ZZrjhYe54M6wWxglNewuKu56yE+zrc= github.com/babylonlabs-io/networks/parameters v0.2.2/go.mod h1:iEJVOzaLsE33vpP7J4u+CRGfkSIfErUAwRmgCFCBpyI= -github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241203052145-e50972fc19c9 h1:4UGpRPm5oxj3P8QNrGrkiQtlQYTAgsWzXJFi8oD7zpY= -github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241203052145-e50972fc19c9/go.mod h1:n3fr3c+9LNiJlyETmcrVk94Zn76rAADhGZKxX+rVf+Q= +github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241212104643-06828f6e25d5 h1:b89cYr2MuW8bzKDVIHT8kPKD1dQygCERYpTtR8eGmcY= +github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241212104643-06828f6e25d5/go.mod h1:n3fr3c+9LNiJlyETmcrVk94Zn76rAADhGZKxX+rVf+Q= +github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241212112557-9ac7de686075 h1:gB+jslBkK5/ror4sn9NHldKjLu4nE88jgD43d2L3osc= +github.com/babylonlabs-io/staking-queue-client v0.4.7-0.20241212112557-9ac7de686075/go.mod h1:n3fr3c+9LNiJlyETmcrVk94Zn76rAADhGZKxX+rVf+Q= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= diff --git a/internal/v2/db/client/stats.go b/internal/v2/db/client/stats.go index c0ac33c7..604886ff 100644 --- a/internal/v2/db/client/stats.go +++ b/internal/v2/db/client/stats.go @@ -51,7 +51,6 @@ func (v2dbclient *V2Database) IncrementOverallStats( ctx context.Context, stakingTxHashHex, stakerPkHex string, amount uint64, ) error { overallStatsClient := v2dbclient.Client.Database(v2dbclient.DbName).Collection(dbmodel.V2OverallStatsCollection) - stakerStatsClient := v2dbclient.Client.Database(v2dbclient.DbName).Collection(dbmodel.V2StakerStatsCollection) // Start a session session, sessionErr := v2dbclient.Client.StartSession() @@ -63,9 +62,7 @@ func (v2dbclient *V2Database) IncrementOverallStats( upsertUpdate := bson.M{ "$inc": bson.M{ "active_tvl": int64(amount), - "total_tvl": int64(amount), "active_delegations": 1, - "total_delegations": 1, }, } // Define the work to be done in the transaction @@ -75,18 +72,6 @@ func (v2dbclient *V2Database) IncrementOverallStats( return nil, err } - // The order of the overall stats and staker stats update is important. - // The staker stats colleciton will need to be processed first to determine if the staker is new - // If the staker stats is the first delegation for the staker, we need to increment the total stakers - var stakerStats v2dbmodel.V2StakerStatsDocument - stakerStatsFilter := bson.M{"_id": stakerPkHex} - stakerErr := stakerStatsClient.FindOne(ctx, stakerStatsFilter).Decode(&stakerStats) - if stakerErr != nil { - return nil, stakerErr - } - if stakerStats.TotalDelegations == 1 { - upsertUpdate["$inc"].(bson.M)["total_stakers"] = 1 - } shardId, err := v2dbclient.generateOverallStatsId() if err != nil { return nil, err @@ -184,10 +169,7 @@ func (v2dbclient *V2Database) GetOverallStats(ctx context.Context) (*v2dbmodel.V var result v2dbmodel.V2OverallStatsDocument for _, stats := range overallStats { result.ActiveTvl += stats.ActiveTvl - result.TotalTvl += stats.TotalTvl result.ActiveDelegations += stats.ActiveDelegations - result.TotalDelegations += stats.TotalDelegations - result.TotalStakers += stats.TotalStakers } return &result, nil @@ -236,9 +218,7 @@ func (v2dbclient *V2Database) IncrementStakerStats( upsertUpdate := bson.M{ "$inc": bson.M{ "active_tvl": int64(amount), - "total_tvl": int64(amount), "active_delegations": 1, - "total_delegations": 1, }, } return v2dbclient.updateStakerStats(ctx, types.Active.ToString(), stakingTxHashHex, stakerPkHex, upsertUpdate) @@ -341,9 +321,7 @@ func (v2dbclient *V2Database) IncrementFinalityProviderStats( SetUpdate(bson.M{ "$inc": bson.M{ "active_tvl": int64(amount), - "total_tvl": int64(amount), "active_delegations": 1, - "total_delegations": 1, }, }). SetUpsert(true) diff --git a/internal/v2/db/model/stats.go b/internal/v2/db/model/stats.go index 9e3555bd..16b645cc 100644 --- a/internal/v2/db/model/stats.go +++ b/internal/v2/db/model/stats.go @@ -25,36 +25,17 @@ func NewV2StatsLockDocument( type V2OverallStatsDocument struct { Id string `bson:"_id"` ActiveTvl int64 `bson:"active_tvl"` - TotalTvl int64 `bson:"total_tvl"` ActiveDelegations int64 `bson:"active_delegations"` - TotalDelegations int64 `bson:"total_delegations"` - TotalStakers uint64 `bson:"total_stakers"` } type V2StakerStatsDocument struct { StakerPkHex string `bson:"_id"` ActiveTvl int64 `bson:"active_tvl"` - TotalTvl int64 `bson:"total_tvl"` ActiveDelegations int64 `bson:"active_delegations"` - TotalDelegations int64 `bson:"total_delegations"` } type V2FinalityProviderStatsDocument struct { FinalityProviderPkHex string `bson:"_id"` ActiveTvl int64 `bson:"active_tvl"` - TotalTvl int64 `bson:"total_tvl"` ActiveDelegations int64 `bson:"active_delegations"` - TotalDelegations int64 `bson:"total_delegations"` -} - -type V2FpSlashingLockDocument struct { - FinalityProviderPkHex string `bson:"_id"` // - IsProcessed bool `bson:"is_processed"` // true when processing is complete -} - -func NewV2FpSlashingLockDocument(fpBtcPkHex string) *V2FpSlashingLockDocument { - return &V2FpSlashingLockDocument{ - FinalityProviderPkHex: fpBtcPkHex, - IsProcessed: false, - } } diff --git a/internal/v2/service/stats.go b/internal/v2/service/stats.go index 9ea17bf4..b1832da2 100644 --- a/internal/v2/service/stats.go +++ b/internal/v2/service/stats.go @@ -11,11 +11,8 @@ import ( type OverallStatsPublic struct { ActiveTvl int64 `json:"active_tvl"` - TotalTvl int64 `json:"total_tvl"` ActiveDelegations int64 `json:"active_delegations"` - TotalDelegations int64 `json:"total_delegations"` ActiveStakers uint64 `json:"active_stakers"` - TotalStakers uint64 `json:"total_stakers"` ActiveFinalityProviders uint64 `json:"active_finality_providers"` TotalFinalityProviders uint64 `json:"total_finality_providers"` } @@ -23,9 +20,7 @@ type OverallStatsPublic struct { type StakerStatsPublic struct { StakerPkHex string `json:"staker_pk_hex"` ActiveTvl int64 `json:"active_tvl"` - TotalTvl int64 `json:"total_tvl"` ActiveDelegations int64 `json:"active_delegations"` - TotalDelegations int64 `json:"total_delegations"` } func (s *V2Service) GetOverallStats(ctx context.Context) (*OverallStatsPublic, *types.Error) { @@ -58,11 +53,8 @@ func (s *V2Service) GetOverallStats(ctx context.Context) (*OverallStatsPublic, * return &OverallStatsPublic{ ActiveTvl: overallStats.ActiveTvl, - TotalTvl: overallStats.TotalTvl, ActiveDelegations: overallStats.ActiveDelegations, - TotalDelegations: overallStats.TotalDelegations, ActiveStakers: uint64(activeStakersCount), - TotalStakers: overallStats.TotalStakers, ActiveFinalityProviders: uint64(activeFinalityProvidersCount), TotalFinalityProviders: uint64(len(finalityProviders)), }, nil @@ -78,9 +70,7 @@ func (s *V2Service) GetStakerStats(ctx context.Context, stakerPKHex string) (*St return &StakerStatsPublic{ StakerPkHex: stakerStats.StakerPkHex, ActiveTvl: stakerStats.ActiveTvl, - TotalTvl: stakerStats.TotalTvl, ActiveDelegations: stakerStats.ActiveDelegations, - TotalDelegations: stakerStats.TotalDelegations, }, nil } diff --git a/tests/mocks/mock_db_client.go b/tests/mocks/mock_db_client.go index b247612e..2911d21c 100644 --- a/tests/mocks/mock_db_client.go +++ b/tests/mocks/mock_db_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.41.0. DO NOT EDIT. +// Code generated by mockery v2.44.1. DO NOT EDIT. package mocks diff --git a/tests/mocks/mock_ordinal_client.go b/tests/mocks/mock_ordinal_client.go index 95dff743..1c21cfef 100644 --- a/tests/mocks/mock_ordinal_client.go +++ b/tests/mocks/mock_ordinal_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.41.0. DO NOT EDIT. +// Code generated by mockery v2.44.1. DO NOT EDIT. package mocks diff --git a/tests/mocks/mock_v1_db_client.go b/tests/mocks/mock_v1_db_client.go index 6cd0a26c..9b0f5334 100644 --- a/tests/mocks/mock_v1_db_client.go +++ b/tests/mocks/mock_v1_db_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.41.0. DO NOT EDIT. +// Code generated by mockery v2.44.1. DO NOT EDIT. package mocks diff --git a/tests/mocks/mock_v2_db_client.go b/tests/mocks/mock_v2_db_client.go index b37d8ed6..3a92b646 100644 --- a/tests/mocks/mock_v2_db_client.go +++ b/tests/mocks/mock_v2_db_client.go @@ -1,4 +1,4 @@ -// Code generated by mockery v2.41.0. DO NOT EDIT. +// Code generated by mockery v2.44.1. DO NOT EDIT. package mocks