mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-02 17:31:39 +00:00
- **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**
74 lines
1.3 KiB
Go
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
|
|
}
|