Files
sonr/x/did/controller/base.go
T
Prad NukalaandGitHub bf94277b0f feature/1110 abstract connected wallet operations (#1166)
- **refactor: refactor DID module types and move to controller package**
- **refactor: move controller creation and resolution logic to keeper**
- **refactor: update imports to reflect controller package move**
- **refactor: update protobuf definitions for DID module**
- **docs: update proto README to reflect changes**
- **refactor: move hway to gateway, update node modules, and refactor
pkl generation**
- **build: update pkl-gen task to use new pkl file paths**
- **refactor: refactor DWN WASM build and deployment process**
- **refactor: refactor DID controller implementation to use
account-based storage**
- **refactor: move DID controller interface to base file and update
implementation**
- **chore: migrate to google protobuf**
- **feat: Add v0.52.0 Interfaces for Acc Abstraction**
- **refactor: replace public_key with public_key_hex in Assertion
message**
- **refactor: remove unused PubKey, JSONWebKey, and RawKey message types
and related code**
2024-11-18 19:04:10 -05:00

74 lines
1.3 KiB
Go

package controller
import (
"github.com/onsonr/crypto/mpc"
commonv1 "github.com/onsonr/sonr/pkg/common/types"
"github.com/onsonr/sonr/x/did/types"
)
type ControllerI interface {
ChainID() string
GetPubKey() *commonv1.PubKey
SonrAddress() string
RawPublicKey() []byte
}
func New(shares []mpc.Share) (ControllerI, error) {
var (
valKs = shares[0]
userKs = shares[1]
)
pb, err := valKs.PublicKey()
if err != nil {
return nil, err
}
sonrAddr, err := types.ComputeSonrAddr(pb)
if err != nil {
return nil, err
}
return &controller{
valKs: valKs,
userKs: userKs,
address: sonrAddr,
publicKey: pb,
}, nil
}
type controller struct {
userKs mpc.Share
valKs mpc.Share
address string
chainID string
publicKey []byte
did string
}
func (c *controller) ChainID() string {
return c.chainID
}
func (c *controller) GetPubKey() *commonv1.PubKey {
return &commonv1.PubKey{
KeyType: "ecdsa",
RawKey: &commonv1.RawKey{
Algorithm: "secp256k1",
Key: c.publicKey,
},
Role: "authentication",
}
}
func (c *controller) RawPublicKey() []byte {
return c.publicKey
}
// func (c *controller) StdPublicKey() cryptotypes.PubKey {
// return c.stdPubKey
// }
func (c *controller) SonrAddress() string {
return c.address
}