Files
next.orly.dev/cmd/policytest/main.go
mleku e0a95ca1cd
Some checks failed
Go / build (push) Has been cancelled
Go / release (push) Has been cancelled
Refactor signer implementation to use p8k package
- Replaced all instances of p256k1signer with the new p8k.Signer across various modules, including event creation, policy handling, and database interactions.
- Updated related test cases and benchmarks to ensure compatibility with the new signer interface.
- Bumped version to v0.25.0 to reflect these significant changes and improvements in cryptographic operations.
2025-11-04 20:05:19 +00:00

65 lines
1.5 KiB
Go

package main
import (
"context"
"flag"
"fmt"
"time"
"lol.mleku.dev/chk"
"lol.mleku.dev/log"
"next.orly.dev/pkg/interfaces/signer/p8k"
"next.orly.dev/pkg/encoders/event"
"next.orly.dev/pkg/encoders/kind"
"next.orly.dev/pkg/encoders/tag"
"next.orly.dev/pkg/protocol/ws"
)
func main() {
var err error
url := flag.String("url", "ws://127.0.0.1:3334", "relay websocket URL")
timeout := flag.Duration("timeout", 20*time.Second, "publish timeout")
flag.Parse()
// Minimal client that publishes a single kind 4678 event and reports OK/err
var rl *ws.Client
if rl, err = ws.RelayConnect(context.Background(), *url); chk.E(err) {
log.E.F("connect error: %v", err)
return
}
defer rl.Close()
var signer *p8k.Signer
if signer, err = p8k.New(); chk.E(err) {
log.E.F("signer create error: %v", err)
return
}
if err = signer.Generate(); chk.E(err) {
log.E.F("signer generate error: %v", err)
return
}
ev := &event.E{
CreatedAt: time.Now().Unix(),
Kind: kind.K{K: 4678}.K, // arbitrary custom kind
Tags: tag.NewS(),
Content: []byte("policy test: expect rejection"),
}
if err = ev.Sign(signer); chk.E(err) {
log.E.F("sign error: %v", err)
return
}
ctx, cancel := context.WithTimeout(context.Background(), *timeout)
defer cancel()
if err = rl.Publish(ctx, ev); err != nil {
// Expected path if policy rejects: client returns error with reason (from OK false)
fmt.Println("policy reject:", err)
return
}
log.I.Ln("publish result: accepted")
fmt.Println("ACCEPT")
}