mirror of
https://github.com/sonr-io/sonr.git
synced 2026-08-04 02:11:40 +00:00
(no commit message provided)
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
package orm
|
||||
|
||||
import (
|
||||
"context"
|
||||
"encoding/json"
|
||||
|
||||
"github.com/onsonr/hway/crypto"
|
||||
fs "github.com/onsonr/hway/internal/vfs"
|
||||
"github.com/ipfs/boxo/path"
|
||||
)
|
||||
|
||||
// Metadata represents metadata of a resource
|
||||
type Metadata struct {
|
||||
PublicKey crypto.PublicKey `json:"publicKey"`
|
||||
Path path.Path `json:"path"`
|
||||
Address string `json:"address"`
|
||||
ChainID string `json:"chainId"`
|
||||
ValAddress string `json:"valAddress"`
|
||||
RPCEndpoint string `json:"rpcEndpoint"`
|
||||
APIEndpoint string `json:"apiEndpoint"`
|
||||
IPFSEndpoint string `json:"ipfsEndpoint"`
|
||||
PeerID string `json:"peerId"`
|
||||
SupportedDenominations []string `json:"supportedDenominations"`
|
||||
Number int `json:"number"`
|
||||
}
|
||||
|
||||
// CreateMetadata returns a new Metadata
|
||||
func CreateMetadata(ctx context.Context) *Metadata {
|
||||
return &Metadata{}
|
||||
}
|
||||
|
||||
// Marshal returns the JSON encoding of the Metadata
|
||||
func (i *Metadata) Marshal() ([]byte, error) {
|
||||
return json.Marshal(i)
|
||||
}
|
||||
|
||||
// Unmarshal parses the JSON-encoded data and stores the result in the Metadata
|
||||
func (i *Metadata) Unmarshal(data []byte) error {
|
||||
return json.Unmarshal(data, i)
|
||||
}
|
||||
|
||||
// Save writes the JSON encoding of the Metadata to the provided file
|
||||
func (i *Metadata) Save(file fs.File) error {
|
||||
bz, err := i.Marshal()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return file.Write(bz)
|
||||
}
|
||||
Reference in New Issue
Block a user