ENC Timeline SDK — TimelineClient
Timeline SDK — pure, in-memory Node, real crypto.
npm install @enc-protocol/timeline --registry https://npm-registry.ocrybit.workers.dev/import { TimelineClient, createIdentity } from "@enc-protocol/timeline"
// Create identity and enclave
const owner = createIdentity("alice")
const client = TimelineClient.create(owner)
// Submit event
const result = client.public({ content: "..." })
console.log(result.ok) // true
// Query events
const events = client.query("public")
// Grant role to another identity
const bob = createIdentity("bob")
client.grant(bob, "Member")
// Use as different identity
const bobClient = client.as(bob)| Field | Type | Key | Ref |
|---|---|---|---|
| content | string |
[ecdh]| Field | Type | Key | Ref |
|---|---|---|---|
| content | string |
Extends AppClient from @enc-protocol/app.
| Method | Params | Returns | Description |
|---|---|---|---|
public(content) | content | { ok, error? } | Submit public event |
private(content) | content | { ok, error? } | Submit private event [ecdh] |
query(type?) | string | Event[] | Query events |
grant(target, role) | Identity, string | { ok, error? } | Grant role |
as(identity) | Identity | TimelineClient | Switch identity |
static create(owner) | Identity | TimelineClient | Create enclave |
| Event | Role | Ops |
|---|---|---|
| * | OWNER | R |
| Grant(dataview) | OWNER | C |
| Revoke(dataview) | OWNER | C |
| Shared(profile) | OWNER | C, U, D |
| Shared(profile) | dataview | P |
| Terminate | OWNER | C |
| public | OWNER | C, U, D |
| public | dataview | P |
| private | OWNER | C, U, D |
All properties proven by Lean native_decide:
(validate config).allPass = true := by native_decideconfig.permits "public" "OWNER" "C" = true ∧ ... := by native_decideconfig.permits "private" "OWNER" "C" = true ∧ ... := by native_decideconfig.canRead "public" "OWNER" = true ∧ ... := by native_decideconfig.permits "public" "dataview" "P" = true := by native_decideconfig.permits "Shared(profile)" "OWNER" "C" = true ∧ ... := by native_decideconfig.permits "Terminate" "OWNER" "C" = true := by native_decideconfig.eventEncrypt "private" = .ecdh := by native_decideconfig.eventEncrypt "public" = .none := by native_decideverifyTestSuite config tests = true := by native_decideverifyStatefulSuite config statefulTests = true := by native_decide@enc-protocol/app