mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-03 18:01:39 +00:00
feature/dwn database state (#18)
* refactor: move database, navigator scripts to state package * feat: add Schema config for dwn * test: add unit tests for InitializeDatabase * feat: use templated index.html for the DWN frontend * feat: introduce templ generation for templ * chore(deps): update devbox.json to use latest packages * chore: update devbox to use bun * feat: introduce dwn config generation * feat: add motr.mjs for vault management * refactor: move front end from to (alert) * feat: implement devbox integration and devbox-based process management * feat: embed motr.mjs script for offline demo * refactor: embed motr.mjs data in embed.go * chore: update workflows to use actions/checkout@v4 * refactor: move process-compose.yaml to deploy directory * refactor: remove unnecessary JSON conversion
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
package builder
|
||||
|
||||
import (
|
||||
"github.com/cosmos/cosmos-sdk/types/bech32"
|
||||
"github.com/ipfs/boxo/files"
|
||||
"github.com/onsonr/crypto/mpc"
|
||||
"github.com/onsonr/sonr/pkg/vault"
|
||||
)
|
||||
|
||||
type Vault struct {
|
||||
FS files.Node
|
||||
ValKs mpc.Share
|
||||
}
|
||||
|
||||
func NewVault(subject string, origin string, chainID string) (*Vault, error) {
|
||||
shares, err := mpc.GenerateKeyshares()
|
||||
var (
|
||||
valKs = shares[0]
|
||||
usrKs = shares[1]
|
||||
)
|
||||
usrKsJSON, err := usrKs.Marshal()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
sonrAddr, err := bech32.ConvertAndEncode("idx", valKs.GetPublicKey())
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
cnfg := vault.NewConfig(usrKsJSON, sonrAddr, chainID, DefaultSchema())
|
||||
cnfgFile, err := vault.MarshalConfigFile(cnfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
idxFile, err := vault.IndexHTMLFile(cnfg)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
fileMap := map[string]files.Node{
|
||||
"config.json": cnfgFile,
|
||||
"motr.mjs": vault.MotrMJSFile(),
|
||||
"sw.js": vault.SWJSFile(),
|
||||
"app.wasm": vault.DWNWasmFile(),
|
||||
"index.html": idxFile,
|
||||
}
|
||||
|
||||
return &Vault{
|
||||
FS: files.NewMapDirectory(fileMap),
|
||||
ValKs: valKs,
|
||||
}, nil
|
||||
}
|
||||
Reference in New Issue
Block a user