Files
sonr/crypto/mpc/keyset.go
T

62 lines
954 B
Go
Raw Normal View History

package mpc
import (
"fmt"
"github.com/cosmos/cosmos-sdk/types/bech32"
)
type (
ExportedKeyset = []byte
)
type Keyset interface {
2024-12-06 21:31:20 -05:00
Address() string
Val() *ValKeyshare
2024-12-05 20:36:58 -05:00
ValJSON() string
User() *UserKeyshare
2024-12-05 20:36:58 -05:00
UserJSON() string
}
type keyset struct {
val *ValKeyshare
user *UserKeyshare
2024-12-06 21:31:20 -05:00
addr string
}
func (k keyset) Address() string {
return k.addr
}
func (k keyset) Val() *ValKeyshare {
return k.val
}
func (k keyset) User() *UserKeyshare {
return k.user
}
2024-12-05 20:36:58 -05:00
func (k keyset) ValJSON() string {
return k.val.String()
}
func (k keyset) UserJSON() string {
return k.user.String()
}
func ComputeIssuerDID(pk []byte) (string, string, error) {
addr, err := ComputeSonrAddr(pk)
if err != nil {
return "", "", err
}
return fmt.Sprintf("did:sonr:%s", addr), addr, nil
}
func ComputeSonrAddr(pk []byte) (string, error) {
sonrAddr, err := bech32.ConvertAndEncode("idx", pk)
if err != nil {
return "", err
}
return sonrAddr, nil
}