Versions in this module Expand all Collapse all v0 v0.1.1 May 16, 2026 v0.1.0 Mar 12, 2026 Changes in this version + func ComputeAttestationID(domain Domain, subjectID, commitRoot core.ID, epoch uint64) core.ID + func ComputeMerkleRoot(records []*OracleRecord) core.ID + func ComputeReceiptID(sessionID core.ID, stepIndex uint32, messageHash, senderID, receiverID core.ID) core.ID + func ComputeReceiptsRoot(receipts []*SignedReceipt) core.ID + func DomainSeparator(d Domain) []byte + func ValidateAttestationForStep(step *core.Step, attestation *Attestation) error + func ValidateDomainForStep(domain Domain, kind core.StepKind) bool + func VerifyMerkleProof(root, leaf core.ID, proof *MerkleProof) bool + func VerifyReceiptProof(root core.ID, proof *ReceiptProof) bool + type Attestation struct + CommitRoot core.ID + CreatedAt time.Time + Domain Domain + Epoch uint64 + ID core.ID + Signature []byte + Signers []core.ID + SubjectID core.ID + func NewAttestation(domain Domain, subjectID, commitRoot core.ID, epoch uint64, signers []core.ID, ...) *Attestation + func (a *Attestation) SigningPayload() []byte + type Domain string + const DomainEpochBeacon + const DomainOracleRead + const DomainOracleWrite + const DomainSessionComplete + func DomainForStepKind(kind core.StepKind) Domain + type EpochBeaconAttestation struct + Randomness core.ID + type EquivocationEvidence struct + DetectedAt time.Time + First *Attestation + NodeID core.ID + Second *Attestation + func DetectEquivocation(a1, a2 *Attestation) *EquivocationEvidence + type MerkleProof struct + IsLeft []bool + LeafIndex uint32 + Siblings []core.ID + type OracleCommit struct + CommittedAt time.Time + Epoch uint64 + MerkleRoot core.ID + RecordCount uint32 + RequestID core.ID + type OracleCommitAttestation struct + RequestID core.ID + type OracleRecord struct + CreatedAt time.Time + Data []byte + DataHash core.ID + RecordID core.ID + RequestID core.ID + Signature []byte + SubmitterID core.ID + func NewOracleRecord(requestID, submitterID core.ID, data []byte, signature []byte) *OracleRecord + type OracleRequest struct + AttestationID core.ID + CommitRoot core.ID + CommittedAt time.Time + CreatedAt time.Time + ID core.ID + InputHash core.ID + Kind RequestKind + Records []*OracleRecord + RetryIndex uint32 + ServiceID core.ID + SessionID core.ID + Status RequestStatus + StepIndex uint32 + TxID core.ID + func NewOracleRequest(serviceID, sessionID, txID, inputHash core.ID, step, retry uint32, ...) *OracleRequest + type Receipt struct + ID core.ID + MessageHash core.ID + ReceiverID core.ID + SenderID core.ID + SessionID core.ID + Signature []byte + StepIndex uint32 + Timestamp time.Time + func NewReceipt(sessionID core.ID, stepIndex uint32, messageHash, senderID, receiverID core.ID, ...) *Receipt + type ReceiptCommit struct + CommittedAt time.Time + Epoch uint64 + MerkleRoot core.ID + ReceiptCount uint32 + SessionID core.ID + type ReceiptProof struct + Receipt *SignedReceipt + type RequestKind uint8 + const RequestKindRead + const RequestKindWrite + func (k RequestKind) String() string + type RequestStatus uint8 + const RequestStatusAttested + const RequestStatusCommitted + const RequestStatusPending + func (s RequestStatus) String() string + type SessionCompleteAttestation struct + OracleRoot core.ID + OutputHash core.ID + ReceiptsRoot core.ID + SessionID core.ID + type SignedReceipt struct + RelayNodeID core.ID + RelaySignature []byte