Exports common types and functions according to the Rust prelude pattern.
represent arbitrary bytes (not serialized) e.g. totally random crypto bytes from random_bytes
Capability Grants and Claims
A “Cell” represents a DNA/AgentId pair - a space where one dna/agent can track its source chain and service network requests / responses.
Defines a Element, the basic unit of Holochain data.
An Entry is a unit of data in a Holochain Source Chain.
Fixturators for zome types
Attach a span to a
Metadata types for use in wasm
Types for source chain queries
Types for requesting metadata
Wrapper types to enable optimized handling of
Signature for authenticity of data
Common helpers for writing tests against zome types
Types related to the
Tracking versions between the WASM host and guests and other interfaces.
Types for warrants
Constructs an event at the debug level.
Constructs an event at the error level.
Serialization for fixed arrays is generally not available in a way that can be derived. Being able to wrap fixed size arrays is important e.g. for crypto safety etc. so this is a simple way to implement serialization so that we can send these types between the host/guest.
unidiomatic way to derive default trait implementations of TryFrom in/out of SerializedBytes
Constructs an event at the info level.
Cryptographic secrets are fiddly at the best of times.
Constructs an event at the trace level.
A simple macro to wrap return_err_ptr in an analogy to the native rust
Constructs an event at the warn level.
An agents chain elements returned from a agent_activity_query
The struct containing all information about the executing agent’s identity.
Header for an agent validation package, used to determine whether an agent is allowed to participate in this DNA
a curve to spit out Entry::App values
Newtype for the bytes comprising an App entry
Information about a class of Entries provided by the DNA
A signal emitted by an app via
System entry to hold a capability token claim for use as a caller. Stored by a claimant so they can remember what’s necessary to exercise this capability by sending the secret to the grantor.
A CapSecret is used by a caller to prove to a callee access to a committed CapGrant.
The unique identifier for a Cell. Cells are uniquely determined by this pair - this pair is necessary and sufficient to refer to a cell in a conductor
The chain has been forked by these two headers
The header at the head of the complete chain. This is as far as this authority can see a chain with no gaps.
When migrating to a new version of a DNA, this header is committed to the old chain to declare the migration path taken. Currently unused
A header which “speaks” Entry content into being. The same content can be referenced by multiple such headers.
Declares that a metadata Link should be made between two EntryHashes
Zome IO inner type for link creation.
@todo Ability to forcibly curry payloads into functions that are called with a claim.
Declare that a previously published Header should be nullified and considered deleted.
Placeholder for future when we want to have deletes on headers Not currently in use.
Declares that a previously made Link should be nullified and considered removed.
The Dna Header is always the first header in a source chain
a chain element which is a triple containing the signature of the header along with the entry if the header type has one.
A specific Element with any deletes This is all the metadata available for an element.
An Entry with all it’s metadata.
A newtype for a collection of EntryHashes, needed for some wasm return types.
Data to create an entry.
A single function name.
Zome IO inner for get and get_details calls.
Options for controlling how get works
A hash set implemented as a
The highest header sequence observed by this authority. This also includes the headers at this sequence. If there is more then one then there is a fork.
A HoloHash contains a vector of 36 bytes representing a 32-byte blake2b hash plus 4 bytes representing a DHT location. It also contains a zero-sized type which specifies what it is a hash of.
A header which declares that all zome init functions have successfully completed, and the chain is ready for commits. Contains no explicit data.
CreateLinks with and DeleteLinks on them
Opaque tag for the link applied at the app layer, used to differentiate between different semantics and validation rules for different links
Metadata that can be requested on a basis
When migrating to a new version of a DNA, this header is committed to the new chain to declare the migration path taken. Currently unused
A curve to make headers have public entry types
Remote signal many agents without waiting for responses.
A Canonical Serialized Bytes representation for data If you have a data structure that needs a canonical byte representation use this Always round-trip through SerializedBytes via. a single TryFrom implementation. This ensures that the internal bytes of SerializedBytes are indeed canonical. The corrolary is that if bytes are NOT wrapped in SerializedBytes we can assume they are NOT canonical. Typically we need a canonical serialization when data is to be handled at the byte level by independently implemented and maintained systems.
Input structure for creating a signature.
The raw bytes of a signature.
A combination of a Header and its signature.
The header and the signature that signed it
A UTC timestamp for use in Holochain’s headers. It is assumed to be untrustworthy: it may
contain times offset from the UNIX epoch with the full +/- i64 range. Most of these times are
not representable by a chrono::DateTime
Representation of message to be logged via the
UnsafeBytes the only way to implement a custom round trip through bytes for SerializedBytes It is intended to be an internal implementation in TryFrom implementations The assumption is that any code using UnsafeBytes is NOT valid messagepack data This allows us to enforce that all data round-tripping through SerializedBytes is via TryFrom and also allow for custom non-messagepack canonical representations of data types.
A header which specifies that some new Entry content is intended to be an update to some old Entry.
Placeholder for future when we want to have updates on headers Not currently in use.
Zome IO inner for update.
Mirror struct for Sign that includes a signature to verify against a key and data.
Placeholder for warrant type
Data that can be encrypted with secretbox.
The entry for the ZomeCall capability grant. This data is committed to the callee’s source chain as a private entry. The remote calling agent must provide a secret and we source their pubkey from the active network connection. This must match the strictness of the CapAccess.
this id is an internal reference, which also serves as a canonical ordering for zome initialization. The value should be auto-generated from the Zome Bundle def
The properties of the current dna/zome being called.
ZomeName as a String.
Get either the full activity or just the status of the chain
Represents access requirements for capability grants.
Represents a potentially valid access grant to a zome call. Zome call response will be Unauthorized without a valid grant.
Status of the agent activity chain
Return type for get_details calls. HeaderHash returns an Element. EntryHash returns an Entry.
Represents the different ways the entry_address reference within a Header can be intepreted
Structure holding the entry portion of a chain element.
The status of an Entry in the Dht
Errors involving app entry creation
Allows Headers which reference Entries to know what type of Entry it is referencing. Useful for examining Headers without needing to fetch the corresponding Entries.
Describes the get call and what information the caller is concerned about. This helps the subconscious avoid unnecessary network calls.
Header contains variants for each type of header.
A unit enum which just maps onto the different Header variants, without containing any extra data
Anything that can go wrong while calling a HostFnApi method
Maps directly to the tracing Levels but here to define the interface. See https://docs.rs/tracing-core/0.1.17/tracing_core/struct.Level.html
The level of validation package required by an entry.
Errors related to the secure primitive macro.
The validation status for an op or element much of this happens in the subconscious an entry missing validation dependencies may cycle through Pending many times before finally reaching a final validation state or being abandoned
Enum of all possible ERROR codes that a Zome API Function could return.
Response to a zome call.
The number of bits we want for a comfy secret.
The number of bytes we want for a comfy secret.
Entries larger than this number of bytes cannot be created
Key refs are the same length as the keys themselves. The key ref is just a sha256 of the key. There are no benefits, only downsides, to having either a larger or smaller set of outputs (ref size) vs. the set of inputs (key size).
A data structure that can be deserialized from any data format supported by Serde.
Anything which has an owned HoloHashOf.
Builder for non-genesis Headers
A trait to specify the common parts of a Header
A data structure that can be serialized into any data format supported by Serde.
Simple and safe type conversions that may fail in a controlled
way under some circumstances. It is the reciprocal of
An attempted conversion that consumes
A fixture AgentPubKey for unit testing.
A fixture AgentPubKey for unit testing. NB: This must match up with AgentPubKeyFixturator’s Predictable curve
Another fixture AgentPubKey for unit testing. NB: This must match up with AgentPubKeyFixturator’s Predictable curve
A fixture CapSecret for unit testing.
A fixture example CellId for unit testing.
A fixture DhtOpHash for unit testing.
A fixture DnaHash for unit testing.
A fixture EntryHash for unit testing.
A fixture HeaderHash for unit testing.
Receive arguments from the host.
The guest sets the type O that the host needs to match.
If deserialization fails then a
Convert an Into
Convert any serializable value into a GuestPtr that can be returned to the host. The host is expected to know how to consume and deserialize it.
An Agent public signing key. Not really a hash, more of an “identity hash”.
The hash of anything referrable in the DHT. This is a composite of either an EntryHash or a HeaderHash
simply alias whatever serde bytes is already doing for Vec
The data type written to the source chain to denote a capability claim
The data type written to the source chain when explicitly granting a capability.
NB: this is not simply
A fixed size array of bytes that a secret must be.
The hash of an Entry.
a single zome/function pair
A collection of zome/function pairs
a WasmSize integer that points to a position in wasm linear memory that the host and guest are sharing to communicate across function calls
The hash of a Header
a WasmSize integer that represents the size of bytes to read/write to memory in direct manipulations
A type alias for a Vec
something like usize for wasm wasm has a memory limit of 4GB so offsets and lengths fit in u32
Instruments a function to create and enter a