rwadurian/backend/mpc-system/services/service-party-app/tss-party/debug_partyid.go

61 lines
1.2 KiB
Go

// +build ignore
package main
import (
"fmt"
"math/big"
"github.com/bnb-chain/tss-lib/v2/tss"
)
type Participant struct {
PartyID string
PartyIndex int
}
func main() {
participants := []Participant{
{PartyID: "party-0", PartyIndex: 0},
{PartyID: "party-1", PartyIndex: 1},
{PartyID: "party-2", PartyIndex: 2},
}
tssPartyIDs := make([]*tss.PartyID, len(participants))
for i, p := range participants {
tssPartyIDs[i] = tss.NewPartyID(
p.PartyID,
fmt.Sprintf("party-%d", p.PartyIndex),
big.NewInt(int64(p.PartyIndex+1)),
)
}
fmt.Println("Before sorting:")
for i, p := range tssPartyIDs {
fmt.Printf(" [%d] ID=%s, Key=%v\n", i, p.Id, p.Key)
}
sortedPartyIDs := tss.SortPartyIDs(tssPartyIDs)
fmt.Println("\nAfter sorting:")
for i, p := range sortedPartyIDs {
fmt.Printf(" [%d] ID=%s, Key=%v\n", i, p.Id, p.Key)
}
// Build the buggy map
partyIndexMap := make(map[int]*tss.PartyID)
for _, p := range sortedPartyIDs {
for _, orig := range participants {
if orig.PartyID == p.Id {
partyIndexMap[orig.PartyIndex] = p
break
}
}
}
fmt.Println("\nParty index map (current buggy logic):")
for idx, p := range partyIndexMap {
fmt.Printf(" FromPartyIndex %d -> PartyID %s (Key=%v)\n", idx, p.Id, p.Key)
}
}