2024-09-07 18:12:58 -04:00
|
|
|
package vfs
|
|
|
|
|
|
|
|
import (
|
|
|
|
_ "embed"
|
2024-09-18 02:22:17 -04:00
|
|
|
"encoding/json"
|
2024-09-07 18:12:58 -04:00
|
|
|
|
|
|
|
"github.com/ipfs/boxo/files"
|
2024-09-18 02:22:17 -04:00
|
|
|
"github.com/onsonr/sonr/config/dwn"
|
2024-09-07 18:12:58 -04:00
|
|
|
)
|
|
|
|
|
2024-09-18 02:22:17 -04:00
|
|
|
//go:embed app.wasm
|
2024-09-07 18:12:58 -04:00
|
|
|
var dwnWasmData []byte
|
|
|
|
|
2024-09-18 02:22:17 -04:00
|
|
|
//go:embed index.html
|
|
|
|
var indexData []byte
|
|
|
|
|
2024-09-11 15:10:54 -04:00
|
|
|
//go:embed sw.js
|
|
|
|
var swJSData []byte
|
|
|
|
|
2024-09-18 02:22:17 -04:00
|
|
|
// NewDWNConfigFile uses the config template to generate the dwn config file
|
2024-09-19 02:04:22 -04:00
|
|
|
func NewDWNConfigFile(keyshareJSON string, adddress string, chainID string) (files.Node, error) {
|
2024-09-18 02:22:17 -04:00
|
|
|
dwnCfg := &dwn.Config{
|
2024-09-19 02:04:22 -04:00
|
|
|
Motr: createMotrConfig(keyshareJSON, adddress, "sonr.id"),
|
|
|
|
Ipfs: defaultIPFSConfig(),
|
|
|
|
Sonr: defaultSonrConfig(chainID),
|
2024-09-18 02:22:17 -04:00
|
|
|
}
|
|
|
|
dwnConfigData, err := json.Marshal(dwnCfg)
|
|
|
|
if err != nil {
|
|
|
|
return nil, err
|
|
|
|
}
|
|
|
|
return files.NewBytesFile(dwnConfigData), nil
|
|
|
|
}
|
|
|
|
|
|
|
|
// Use DWNWasm template to generate the dwn wasm file
|
2024-09-07 18:12:58 -04:00
|
|
|
func DWNWasmFile() files.Node {
|
|
|
|
return files.NewBytesFile(dwnWasmData)
|
|
|
|
}
|
|
|
|
|
2024-09-18 02:22:17 -04:00
|
|
|
// Use IndexHTML template to generate the index file
|
|
|
|
func IndexFile() files.Node {
|
|
|
|
return files.NewBytesFile(indexData)
|
|
|
|
}
|
|
|
|
|
2024-09-11 15:10:54 -04:00
|
|
|
// Use ServiceWorkerJS template to generate the service worker file
|
2024-09-07 18:12:58 -04:00
|
|
|
func SWJSFile() files.Node {
|
|
|
|
return files.NewBytesFile(swJSData)
|
|
|
|
}
|
2024-09-18 02:22:17 -04:00
|
|
|
|
2024-09-19 02:04:22 -04:00
|
|
|
func createMotrConfig(keyshareJSON string, adddress string, origin string) *dwn.Motr {
|
|
|
|
return &dwn.Motr{
|
|
|
|
Keyshare: keyshareJSON,
|
|
|
|
Address: adddress,
|
|
|
|
Origin: origin,
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-09-18 02:22:17 -04:00
|
|
|
func defaultIPFSConfig() *dwn.IPFS {
|
|
|
|
return &dwn.IPFS{
|
|
|
|
ApiUrl: "https://api.sonr-ipfs.land",
|
|
|
|
GatewayUrl: "https://ipfs.sonr.land",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2024-09-19 02:04:22 -04:00
|
|
|
func defaultSonrConfig(chainID string) *dwn.Sonr {
|
2024-09-18 02:22:17 -04:00
|
|
|
return &dwn.Sonr{
|
|
|
|
ApiUrl: "https://api.sonr.land",
|
|
|
|
GrpcUrl: "https://grpc.sonr.land",
|
|
|
|
RpcUrl: "https://rpc.sonr.land",
|
|
|
|
WebSocketUrl: "wss://rpc.sonr.land/ws",
|
2024-09-19 02:04:22 -04:00
|
|
|
ChainId: chainID,
|
2024-09-18 02:22:17 -04:00
|
|
|
}
|
|
|
|
}
|