Skip to content

Commit

Permalink
Add constraints to state models to reflect SlotID uniqueness (#107)
Browse files Browse the repository at this point in the history
  • Loading branch information
seanmcgary authored Nov 13, 2024
2 parents 36fac36 + 081adf5 commit 25ab03a
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ type blockRange struct {
MaxBlockNumber uint64
}

func Test_StakeDelegationsIntegration(t *testing.T) {
func Test_StakerDelegationsIntegration(t *testing.T) {
dbName, grm, l, cfg, err := setup()

if err != nil {
Expand Down
2 changes: 1 addition & 1 deletion pkg/eigenState/stakerDelegations/stakerDelegations_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ func setup() (
cfg.Debug = false
cfg.DatabaseConfig = *tests.GetDbConfigFromEnv()

l, _ := logger.NewLogger(&logger.LoggerConfig{Debug: true})
l, _ := logger.NewLogger(&logger.LoggerConfig{Debug: cfg.Debug})

dbname, _, grm, err := postgres.GetTestPostgresDatabase(cfg.DatabaseConfig, l)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions pkg/eigenState/stakerShares/stakerShares.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ type StakerShareDeltas struct {
WithdrawalRootString string `gorm:"-"`
}

func NewSlotID(staker string, strategy string, strategyIndex uint64, transactionHash string, logIndex uint64) types.SlotID {
func NewSlotID(transactionHash string, logIndex uint64, staker string, strategy string, strategyIndex uint64) types.SlotID {
return base.NewSlotIDWithSuffix(transactionHash, logIndex, fmt.Sprintf("%s_%s_%d", staker, strategy, strategyIndex))
}

Expand Down Expand Up @@ -601,7 +601,7 @@ func (ss *StakerSharesModel) sortValuesForMerkleTree(diffs []*StakerShareDeltas)
inputs := make([]*base.MerkleTreeInput, 0)
for _, diff := range diffs {
inputs = append(inputs, &base.MerkleTreeInput{
SlotID: NewSlotID(diff.Staker, diff.Strategy, diff.StrategyIndex, diff.TransactionHash, diff.LogIndex),
SlotID: NewSlotID(diff.TransactionHash, diff.LogIndex, diff.Staker, diff.Strategy, diff.StrategyIndex),
Value: []byte(diff.Shares),
})
}
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package _202411131200_eigenStateModelConstraints

import (
"database/sql"
"gorm.io/gorm"
)

type Migration struct {
}

func (m *Migration) Up(db *sql.DB, grm *gorm.DB) error {
queries := []string{
`alter table disabled_distribution_roots add constraint uniq_disabled_distribution_root unique (transaction_hash, log_index, block_number)`,
`alter table operator_share_deltas add constraint uniq_operator_share unique (transaction_hash, log_index, block_number, operator, staker, strategy)`,
`alter table reward_submissions add constraint uniq_reward_submission unique (transaction_hash, log_index, block_number, reward_hash, strategy_index)`,
`alter table reward_submissions drop constraint reward_submissions_reward_hash_strategy_block_number_key`,
`alter table staker_delegation_changes add constraint uniq_staker_delegation_change unique (transaction_hash, log_index, block_number)`,
`alter table staker_share_deltas add constraint uniq_staker_share_delta unique (transaction_hash, log_index, block_number, staker, strategy, strategy_index)`,
`alter table submitted_distribution_roots add constraint uniq_submitted_distribution_root unique (transaction_hash, log_index, block_number)`,
}

for _, query := range queries {
if _, err := db.Exec(query); err != nil {
return err
}
}
return nil
}

func (m *Migration) GetName() string {
return "202411131200_eigenStateModelConstraints"
}
2 changes: 2 additions & 0 deletions pkg/postgres/migrations/migrator.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ import (
_202411081039_operatorRestakedStrategiesConstraint "github.com/Layr-Labs/sidecar/pkg/postgres/migrations/202411081039_operatorRestakedStrategiesConstraint"
_202411120947_disabledDistributionRoots "github.com/Layr-Labs/sidecar/pkg/postgres/migrations/202411120947_disabledDistributionRoots"
_202411130953_addHashColumns "github.com/Layr-Labs/sidecar/pkg/postgres/migrations/202411130953_addHashColumns"
_202411131200_eigenStateModelConstraints "github.com/Layr-Labs/sidecar/pkg/postgres/migrations/202411131200_eigenStateModelConstraints"
"go.uber.org/zap"
"gorm.io/gorm"
"time"
Expand Down Expand Up @@ -100,6 +101,7 @@ func (m *Migrator) MigrateAll() error {
&_202411081039_operatorRestakedStrategiesConstraint.Migration{},
&_202411120947_disabledDistributionRoots.Migration{},
&_202411130953_addHashColumns.Migration{},
&_202411131200_eigenStateModelConstraints.Migration{},
}

for _, migration := range migrations {
Expand Down

0 comments on commit 25ab03a

Please sign in to comment.