- ect library: create, verify, DAG validation, ledger interface - In-memory ledger and ECTStore for full ledger mode - Test vectors and unit tests; two-agent demo (cmd/demo) - README: document refimpl scope and usage Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
617 B
Go
35 lines
617 B
Go
package ect
|
|
|
|
import "encoding/json"
|
|
|
|
func marshalJSONString(s string) []byte {
|
|
b, _ := json.Marshal(s)
|
|
return b
|
|
}
|
|
|
|
func marshalJSONStringArray(a []string) []byte {
|
|
b, _ := json.Marshal(a)
|
|
return b
|
|
}
|
|
|
|
func unmarshalAudience(data []byte, a *Audience) error {
|
|
var raw json.RawMessage
|
|
if err := json.Unmarshal(data, &raw); err != nil {
|
|
return err
|
|
}
|
|
if len(raw) > 0 && raw[0] == '[' {
|
|
var arr []string
|
|
if err := json.Unmarshal(raw, &arr); err != nil {
|
|
return err
|
|
}
|
|
*a = arr
|
|
return nil
|
|
}
|
|
var s string
|
|
if err := json.Unmarshal(raw, &s); err != nil {
|
|
return err
|
|
}
|
|
*a = []string{s}
|
|
return nil
|
|
}
|