mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 01:41:44 +00:00
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**
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user