Skip to main content

Module prelude

Module prelude 

Source
Expand description

Exports common types and functions according to the Rust prelude pattern.

Re-exports§

pub use crate::capability::create_cap_claim;
pub use crate::capability::create_cap_grant;
pub use crate::capability::delete_cap_grant;
pub use crate::capability::generate_cap_secret;
pub use crate::capability::update_cap_grant;
pub use crate::chain::get_agent_activity;
pub use crate::chain::query;
pub use crate::ed25519::sign;
pub use crate::ed25519::sign_ephemeral;
pub use crate::ed25519::sign_ephemeral_raw;
pub use crate::ed25519::sign_raw;
pub use crate::entry::create;
pub use crate::entry::create_entry;
pub use crate::entry::delete;
pub use crate::entry::delete_entry;
pub use crate::entry::get;
pub use crate::entry::get_details;
pub use crate::entry::update;
pub use crate::entry::update_entry;
pub use crate::hash_path::anchor::anchor;
pub use crate::hash_path::anchor::list_anchor_addresses;
pub use crate::hash_path::anchor::list_anchor_tags;
pub use crate::hash_path::anchor::list_anchor_type_addresses;
pub use crate::hash_path::anchor::TryFromPath;
pub use crate::hash_path::path::HdkPathExt;
pub use crate::info::agent_info;
pub use crate::info::call_info;
pub use crate::link::GetLinksInputBuilder;
pub use crate::map_extern;
pub use crate::map_extern;
pub use crate::p2p::call;
pub use crate::p2p::call_remote;
pub use crate::p2p::emit_signal;
pub use crate::p2p::send_remote_signal;
pub use crate::time::schedule;
pub use crate::time::sys_time;
pub use crate::validation_receipt::get_validation_receipts;
pub use crate::x_salsa20_poly1305::create_x25519_keypair;
pub use crate::x_salsa20_poly1305::ed_25519_x_salsa20_poly1305_encrypt;
pub use crate::x_salsa20_poly1305::x_25519_x_salsa20_poly1305_encrypt;
pub use crate::x_salsa20_poly1305::x_salsa20_poly1305_encrypt;
pub use crate::x_salsa20_poly1305::x_salsa20_poly1305_shared_secret_create_random;
pub use crate::x_salsa20_poly1305::x_salsa20_poly1305_shared_secret_export;
pub use crate::x_salsa20_poly1305::x_salsa20_poly1305_shared_secret_ingest;
pub use hdi;
pub use hdk_derive;
pub use holo_hash;
pub use holochain_zome_types;
pub use tracing;
pub use crate::clone::*;
pub use crate::hash::*;
pub use crate::hdk::*;
pub use crate::random::*;

Modules§

allocation
builder
conversions
data
encode
Include nice string encoding methods and From impls
encrypted_data
genesis
Types related to the genesis process whereby a user commits their initial records and validates them to the best of their ability. Full validation may not be possible if network access is required, so they perform a “self-check” (as in “check yourself before you wreck yourself”) before joining to ensure that they can catch any problems they can before being subject to the scrutiny of their peers and facing possible rejection.
hash_type
Defines the prefixes for the various HashTypes, as well as the traits which unify them
holochain_serialized_bytes
instrument
Attach a span to a std::future::Future.
key_ref
nonce
op
Dht Operations
result
serde_bytes
Wrapper types to enable optimized handling of &[u8] and Vec<u8>.
x25519

Macros§

app_entry
Implements conversion traits to allow a struct to be handled as an app entry. If you have some need to implement custom serialization logic or metadata injection you can do so by implementing these traits manually instead.
assert_length
Helper for ensuring the proper number of bytes is used in various situations
debug
Constructs an event at the debug level.
entry_type
Implements a whole lot of sane defaults for a struct or enum that should behave as an entry. All the entry def fields are available as dedicated methods on the type and matching From impls are provided for each. This allows for both Foo::entry_types() and EntryDef::from(Foo::new()) style logic which are both useful in different scenarios.
error
Constructs an event at the error level.
holochain_serial
unidiomatic way to derive default trait implementations of TryFrom in/out of SerializedBytes
host_externs
impl_hashable_content
A default HashableContent implementation, suitable for content which is already TryInto<SerializedBytes>, and uses a PrimitiveHashType
info
Constructs an event at the info level.
map_extern
Hides away the gross bit where we hook up integer pointers to length-prefixed guest memory to serialization and deserialization, and returning things to the host, and memory allocation and deallocation.
paste
trace
Constructs an event at the trace level.
try_ptr
A simple macro to wrap return_err_ptr in an analogy to the native rust ?.
warn
Constructs an event at the warn level.
wasm_error
Helper macro for returning an error from a WASM.

Structs§

ActionBuilderCommon
AgentActivity
An agent’s status and chain records returned from a hdk::chain::get_agent_activity query.
AgentInfo
The struct containing all information about the executing agent’s identity.
AgentValidationPkg
Action for an agent validation package, used to determine whether an agent is allowed to participate in this DNA
Anchor
An Anchor can only be 1 or 2 levels deep as “type” and “text”.
AppCapGrantInfo
A list which map a cell ID to their capability grant information.
AppEntryBytes
Newtype for the bytes comprising an App entry
AppEntryDef
Information about a class of Entries provided by the DNA
AppEntryDefLocation
The location of an app entry definition.
AppEntryName
Identifier for an entry definition. This may be removed.
AppSignal
A signal emitted by an app via emit_signal
BTreeSet
An ordered set based on a B-Tree.
Block
Represents a block. Also can represent an unblock. NOT serializable and NOT pub fields by design. try_new MUST be the only entrypoint to build a Block as this enforces that the start/end times are valid according to invariants the SQL queries rely on to avoid corrupting the database.
Call
CallInfo
CapAccessInfo
Represents access info for capability grants .
CapClaim
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.
CapGrantInfo
Information about a capability grant.
CapSecret
A CapSecret is used by a caller to prove to a callee access to a committed CapGrant.
CellId
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
ChainFilter
Filter the contiguous chain of actions from an agent’s source chain.
ChainFork
The chain has been forked by these two actions at this point. The ordering of the values in first_action and second_action is undefined, and in cases of three or more actions causing a fork, different peers may report different hash pairs.
ChainHead
A pairing of an action sequence and its corresponding action hash in a chain. This is used for both ChainStatus::Valid, where the given value is the most recent item in a valid and contiguous chain, and ChainStatus::Invalid, where the value is the first invalid item in a previously valid and contiguous chain.
ChainQueryFilter
Specifies arguments to a query of the source chain, including ordering and filtering. This is used by both hdk::chain::query and hdk::chain::get_agent_activity, although the latter function ignores it if ActivityRequest::Status is used.
CloneId
Identifier of a clone cell, composed of the DNA’s role name and the index of the clone, starting at 0.
ClonedCell
Cloned cell that was created from a provisioned cell at runtime.
CloseChain
When migrating to a new version of a DNA, this action is committed to the old chain to declare the migration path taken. This action can also be taken to simply close down a chain with no forward reference to a migration.
CloseChainInput
Input to close a chain.
Component
Each path component is arbitrary bytes to be hashed together in a predictable way when the path is hashed to create something that can be linked and discovered by all DHT participants.
CompositeHashConversionError
Error converting a composite hash into a subset composite hash, due to type mismatch
CoordinatorZomeDef
CounterSigningAgentState
Every countersigning agent must sign against their chain state. The chain must be frozen until each agent decides to sign or exit the session.
CounterSigningSessionData
All the data required for a countersigning session.
CounterSigningSessionTimes
Every countersigning session must complete a full set of actions between the start and end times to be valid.
CrdtType
Create
An action which “speaks” Entry content into being. The same content can be referenced by multiple such actions.
CreateBase
Base data for Create actions.
CreateCloneCellInput
The arguments to create a clone of an existing cell.
CreateInput
Zome input to create an entry.
CreateLink
Declares that a metadata Link should be made between two hashes of anything; could be data or an op or anything that can be hashed.
CreateLinkInput
Zome IO inner type for link creation.
CurryPayloads
Map of zome functions to the payloads to curry into to them
Delete
Declare that a previously published Action should be nullified and considered deleted.
DeleteInput
Zome input for all delete operations.
DeleteLink
Declares that a previously made Link should be nullified and considered removed.
DeleteLinkInput
DesensitizedZomeCallCapGrant
The outbound DTO of a ZomeCall capability grant info request. CapAccess secrets are omitted, Access types and assignees are provided under CapAccessInfo.
DisableCloneCellInput
Arguments to specify the clone cell to be disabled.
Dna
The Dna Action is always the first action in a source chain
DnaDef
The definition of a DNA: the hash of this data is what produces the DnaHash.
DnaInfoV1
Information about the current DNA.
DnaInfoV2
Information about the current DNA.
DnaModifiers
Modifiers of this DNA - the network seed, properties and origin time - as opposed to the actual DNA code. These modifiers are included in the DNA hash computation.
DnaModifiersOpt
DnaModifiers options of which all are optional.
Ed25519XSalsa20Poly1305Decrypt
Ed25519XSalsa20Poly1305Encrypt
EntryDef
EntryDefIndex
EntryDefs
All definitions for all entry types in an integrity zome.
EntryDetails
An Entry with all its metadata.
EntryHashes
A newtype for a collection of EntryHashes, needed for some wasm return types.
EntryRateWeight
Combination of the three main rate limiting data types, for convenience
EphemeralSignatures
The output of ephemeral signing. The private key for this public key has been discarded by this point. The signatures match the public key provided but cannot be reproduced or forged because the private key no longer exists. The signatures match the input items positionally in the vector, it is up to the caller to reconstruct/align/zip them back together.
ExternIO
FunctionName
A single function name.
GenesisSelfCheckDataV1
Data passed into the genesis_self_check callback for verifying the initial chain entries
GenesisSelfCheckDataV2
Data passed into the genesis_self_check callback for verifying the initial chain entries. DnaInfo can be read with a call to dna_info within the self check callback, it is elided here to minimise/stabilise the callback function signature.
GetAgentActivityInput
GetInput
Zome input for get and get_details calls.
GetLinksInput
GetOptions
Options for controlling how get is executed.
GetValidationReceiptsInput
Input for the get_validation_receipts host function.
GrantZomeCallCapabilityPayload
Parameters for granting a zome call capability.
HashConversionError
Error converting a composite hash into a primitive one, due to type mismatch
HashSet
A hash set implemented as a HashMap where the value is ().
HighestObserved
The highest action sequence for an agent’s chain that has been observed, but not necessarily validated and integrated, by this authority. This struct is seen in the AgentActivity response from the hdk::chain::get_agent_activity query. It also includes the hash(es) of the action(s) at this action sequence.
HoloHash
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.
HoloHashB64
A wrapper around HoloHash that Serializes into a base64 string rather than a raw byte array.
HoloHashed
Represents some piece of content along with its hash representation, so that hashes need not be calculated multiple times. Provides an easy constructor which consumes the content.
InclusiveTimestampInterval
It’s an interval bounded by timestamps that are not infinite.
InitZomesComplete
An action which declares that all zome init functions have successfully completed, and the chain is ready for commits. Contains no explicit data.
IntegrityZomeDef
Judged
Data with an optional validation status.
Link
LinkDetails
CreateLinks with and DeleteLinks on them [CreateLink, [DeleteLink]]
LinkQuery
A query for links to be used with host functions that support filtering links
LinkTag
Opaque tag for the link applied at the app layer, used to differentiate between different semantics and validation rules for different links
LinkType
MetadataRequest
Metadata that can be requested on a basis
MustGetActionInput
Zome input for must_get_action.
MustGetAgentActivityInput
Input to the must_get_agent_activity call.
MustGetEntryInput
Zome input for must_get_entry.
MustGetValidRecordInput
Zome input for must_get_valid_record.
OpenChain
When migrating to a new version of a DNA, this action is committed to the new chain to declare the migration path taken.
OpenChainInput
Input to open a chain.
Path
A Path is a vector of Components.
PreflightBytes
Every preflight request can have optional arbitrary bytes that can be agreed to.
PreflightRequest
The same PreflightRequest is sent to every agent. Each agent signs this data as part of their PreflightResponse. Every preflight must be identical and signed by every agent for a session to be valid.
PreflightResponse
Every agent must send back a preflight response. All the preflight response data is signed by each agent and included in the session data.
QueryFilter
Specifies arguments to a query of the source chain, including ordering and filtering. This is used by both hdk::chain::query and hdk::chain::get_agent_activity, although the latter function ignores it if ActivityRequest::Status is used.
RateWeight
Combination of two rate limiting data types, for convenience
Record
a chain record containing the signed action along with the entry if the action type has one.
RecordDetails
A specific Record with any updates and deletes. This is all the metadata available for a record.
RegisterAgentActivity
Registers a new Action on an agent source chain. This is the act of creating any Action and publishing it to the DHT.
RegisterCreateLink
Registers a link between two Entrys. This is the act of creating a Action::CreateLink and publishing it to the DHT. The authority is the entry authority for the base Entry.
RegisterDelete
Registers a deletion of an instance of an Entry in the DHT. This is the act of creating a Action::Delete and publishing it to the DHT.
RegisterDeleteLink
Deletes a link between two Entrys. This is the act of creating a Action::DeleteLink and publishing it to the DHT. The delete always references a specific Action::CreateLink.
RegisterUpdate
Registers an update from an instance of an Entry in the DHT. This is the act of creating a Action::Update and publishing it to the DHT. Note that the Action::Update stores an new instance of an Entry and registers it as an update to the original Entry. This operation is only concerned with registering the update.
RemoteSignal
Remote signal many agents without waiting for responses.
RequiredValidations
The number of validations required for an entry to be considered published.
Role
Agents can have a role specific to each countersigning session. The role is app defined and opaque to the subconscious.
ScheduledFn
A fully qualified scheduled function.
ScopedZomeType
A type with the zome that it is defined in.
ScopedZomeTypes
zome types that are in scope for the calling zome.
ScopedZomeTypesSet
The set of EntryDefIndex and LinkTypes in scope for the calling zome.
SerializedBytes
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.
ShardStrategy
A valid strategy for sharding requires both a width and a depth. At the moment sharding only works well for data that is reliably longer than width/depth. For example, sharding the username foo with width 4 doesn’t make sense. There is no magic padding or extending of the provided data to make up undersized shards.
Sign
Input structure for creating a signature.
SignEphemeral
Ephemerally sign a vector of bytes (i.e. a Vec<Vec<u8>>) Each of the items of the outer vector represents something to sign and will have a corresponding Signature in the output. The public key for the ephemeral operation will be returned in the output. Structurally mirrors/complements the Signature struct as a new type. There we know the key on the input side, here we receive the key on the output.
Signature
The raw bytes of a signature.
Signed
Some data with a signature attached.
SignedHashed
Any content that has been hashed and signed.
StoreEntry
Stores a new Entry in the DHT. This is the act of creating a either a Action::Create or a Action::Update and publishing it to the DHT. These actions create a new instance of an Entry.
StoreRecord
Stores a new Record in the DHT. This is the act of creating a new Action and publishing it to the DHT. Note that not all Actions contain an Entry.
Timestamp
A microsecond-precision UTC timestamp for use in Holochain’s actions.
TraceMsg
Representation of message to be logged via the debug host function
TypedPath
A LinkType applied to a Path.
UnsafeBytes
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.
Update
An action which specifies that some new Entry content is intended to be an update to some old Entry.
UpdateBase
Base data for Update actions.
UpdateInput
Zome input type for all update operations.
ValidationReceiptInfo
Summary information for a validation receipt.
ValidationReceiptSet
A set of validation receipts, grouped by op.
VerifySignature
Mirror struct for Sign that includes a signature to verify against a key and data.
Warrant
A Warrant is an authored, timestamped proof of wrongdoing by another agent.
WasmError
Wraps a WasmErrorInner with a file and line number. The easiest way to generate this is with the wasm_error! macro that will insert the correct file/line and can create strings by forwarding args to the format! macro.
WasmZome
A zome defined by Wasm bytecode
WrongActionError
X25519PubKey
X25519XSalsa20Poly1305Decrypt
X25519XSalsa20Poly1305Encrypt
XSalsa20Poly1305Data
Data that can be encrypted with secretbox.
XSalsa20Poly1305Decrypt
XSalsa20Poly1305Encrypt
XSalsa20Poly1305EncryptedData
XSalsa20Poly1305KeyRef
Key refs represent shared secrets stored in the keystore. They can either be user-specified, or auto-generated at time of secret creation, or ingestion.
XSalsa20Poly1305SharedSecretExport
XSalsa20Poly1305SharedSecretIngest
Zome
A Holochain Zome. Includes the ZomeDef as well as the name of the Zome.
ZomeCallCapGrant
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.
ZomeCallParams
Zome calls need to be signed regardless of how they are called. This defines exactly what needs to be signed.
ZomeDependencyIndex
The index into the ZomeIndex vec.
ZomeIndex
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
ZomeInfo
The properties of the current dna/zome being called.
ZomeName
ZomeName as a String.
ZomeTypesKey
A key to the ScopedZomeTypes container.

Enums§

Action
Action contains variants for each type of action.
ActionBase
Enum to mirror Action for all the shared data required to build session actions. Does NOT hold any agent specific information.
ActionError
ActionType
A unit enum which just maps onto the different Action variants, without containing any extra data
ActivityRequest
When calling hdk::chain::get_agent_activity, specify whether to get either a summary of the chain’s status, or a summary plus the hashes of the chain actions that match the given ChainQueryFilter. See the notes on AgentActivity about the perspective-dependent nature of the agent’s status and valid/rejected activity.
AnyDhtHashPrimitive
The primitive hash types represented by this composite hash
AnyLinkableHashPrimitive
The primitive hash types represented by this composite hash
BlockTarget
Target of a block. Each target type has an ID and associated reason.
BlockTargetId
BlockTargetReason
CallTarget
CallTargetCell
CapAccess
Represents access requirements for capability grants.
CapGrant
Represents a potentially valid access grant to a zome call. Zome call response will be Unauthorized without a valid grant.
CellBlockReason
Reason why we might want to block a cell.
ChainIntegrityWarrant
A warrant which is sent to agent activity authorities.
ChainOpType
This enum is used to encode just the enum variant of ChainOp
ChainQueryFilterRange
Defines several ways that queries can be restricted to a range. Notably hash bounded ranges disambiguate forks whereas action sequences do not as the same position can be found in many forks. The reason that this does NOT use native rust range traits is that the hash bounded queries MUST be inclusive otherwise the integrity and fork disambiguation logic is impossible. An exclusive range bound that does not include the final action tells us nothing about which fork to select between N forks of equal length that proceed it. With an inclusive hash bounded range the final action always points unambiguously at the “correct” fork that the range is over. Start hashes are not needed to provide this property so ranges can be hash terminated with a length of preceding records to return only. Technically the seq bounded ranges do not imply any fork disambiguation and so could be a range but for simplicity we left the API symmetrical in boundedness across all enum variants.
ChainStatus
Status of the agent activity chain, as part of the return value from hdk::chain::get_agent_activity.
ChainTopOrdering
CloneCellId
Ways of specifying a clone cell in the context of an app.
CloneIdError
Errors during conversion from RoleName to CloneId.
CounterSigningError
Errors related to the secure primitive macro.
Details
Return type for get_details calls. ActionHash returns a Record. EntryHash returns an Entry.
Entry
Structure holding the entry portion of a chain record.
EntryCreationAction
Either a Action::Create or a Action::Update. These actions both create a new instance of an Entry.
EntryDefId
EntryDefLocation
Either an EntryDefIndex or one of:
EntryDefsCallbackResult
EntryDhtStatus
The status of an Entry in the Dht
EntryError
Errors involving app entry creation
EntryType
Allows Actions which reference Entries to know what type of Entry it is referencing. Useful for examining Actions without needing to fetch the corresponding Entries.
EntryVisibility
GetStrategy
Set if data should be fetched from the network or only from the local databases.
GrantedFunctions
A collection of zome/function pairs
HashableContentBytes
HashableContent can be expressed as “content”, or “prehashed”, which affects how a HoloHashed type will be constructed from it.
HoloHashError
HoloHash Error Type.
HostFnApiError
Anything that can go wrong while calling a HostFnApi method
HumanTimestamp
A human-readable timestamp which is represented/serialized as an RFC3339 when possible, and a microsecond integer count otherwise. Both representations can be deserialized to this type.
InitCallbackResult
The result of the DNA initialization callback.
IpBlockReason
Reason why we might want to block an IP.
Level
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
LimitConditions
Specify when to stop walking down the chain from the chain_top action.
LinkTypeFilter
Filter on a set of LinkTypes.
MigrationTarget
Description of how to find the previous or next CellId in a migration. In a migration, of the two components of the CellId (dna and agent), always one stays fixed while the other one changes. This enum represents the component that changed.
Op
These are the operations that can be applied to Holochain data. Every Action produces a set of operations. These operations are each sent to an authority for validation.
PreflightRequestAcceptance
A preflight request can be accepted, or invalid, or valid but the local agent cannot accept it.
RecordEntry
Represents the different ways the entry_address reference within an action can be interpreted
Schedule
Defines either a persisted or ephemeral schedule for a schedule function. Persisted schedules survive a conductor reboot, ephemeral will not. Persisted schedules continue beyond irrecoverable errors, ephemeral do not.
ScheduleError
Scheduling errors.
SerializedBytesError
TimestampError
UnitEnumEither
A full UnitEnum, or just the unit type of that UnitEnum
UnresolvedDependencies
Unresolved dependencies that are either a set of hashes or an agent activity query.
ValidateCallbackResult
ValidationStatus
The validation status for an op or record 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
WarrantProof
The self-proving part of a Warrant which demonstrates bad behavior by another agent
WarrantType
The type of warrant.
WasmErrorInner
Enum of all possible ERROR states that wasm can encounter.
ZomeCallAuthorization
ZomeCallResponse
Response to a zome call.
ZomeDef
Just the definition of a Zome, without the name included. This exists mainly for use in HashMaps where ZomeDefs are keyed by ZomeName.
ZomeError
Anything that can go wrong while calling a HostFnApi method

Constants§

CAP_SECRET_BITS
The number of bits we want for a comfy secret.
CAP_SECRET_BYTES
The number of bytes we want for a comfy secret.
CLONE_ID_DELIMITER
Delimiter in a clone id that separates the base cell’s role name from the clone index.
ENTRY_SIZE_LIMIT
Entries larger than this number of bytes cannot be created
HOLO_HASH_CORE_LEN
Length of the core bytes (32)
HOLO_HASH_FULL_LEN
Length of the full HoloHash bytes (39 = 3 + 32 + 4)
HOLO_HASH_LOC_LEN
Length of the location bytes (4)
HOLO_HASH_PREFIX_LEN
Length of the prefix bytes (3)
HOLO_HASH_UNTYPED_LEN
Length of the core bytes + the loc bytes (36 = 32 + 4), i.e. everything except the type prefix
MAX_COUNTERSIGNING_AGENTS
8 seems like a reasonable limit of agents to countersign.
MAX_HASHABLE_CONTENT_LEN
The maximum size to hash synchronously. Anything larger than this will take too long to hash within a single tokio context
MAX_REMOTE_AGENT_COUNT
Maximum number of remote agents that can be queried in parallel. This limit prevents abuse and excessive network load.
MIN_COUNTERSIGNING_AGENTS
Need at least two to countersign.
PERSISTED_TIMEOUT
Expire persisted schedules after this long.
POST_GENESIS_SEQ_THRESHOLD
Any action with a action_seq less than this value is part of a record created during genesis. Anything with this seq or higher was created after genesis.
SCHEDULER_INTERVAL
Tick the scheduler every this many millis.
SESSION_ACTION_TIME_OFFSET
The timestamps on actions for a session use this offset relative to the session start time. This makes it easier for agents to accept a preflight request with actions that are after their current chain top, after network latency.
SESSION_TIME_FUTURE_MAX
Maximum time in the future the session start can be in the opinion of the participating agent. As the action will be SESSION_ACTION_TIME_OFFSET after the session start we include that here.
SIGNATURE_BYTES
Ed25519 signatures are always the same length, 64 bytes.
X25519_PUB_KEY_BYTES

Traits§

ActionBuilder
Builder for non-genesis Actions
ActionExt
ActionHashedContainer
ActionSequenceAndHash
ActionUnweighed
A trait to unify the “inner” parts of an Action, i.e. the structs inside the Action enum’s variants. This trait is used for the “unweighed” version of each struct, i.e. the version with weight information erased.
ActionWeighed
A trait to unify the “inner” parts of an Action, i.e. the structs inside the Action enum’s variants. This trait is used for the “weighed” version of each struct, i.e. the version without weight information erased.
CallbackResult
Deserialize
A data structure that can be deserialized from any data format supported by Serde.
EntryDefRegistration
Trait for binding static EntryDef property access for a type. This trait maps a type to its corresponding EntryDef property at compile time.
EntryTypesHelper
Helper trait for deserializing Entrys to the correct type.
HasHash
Anything which has an owned HoloHashOf.
HasValidationStatus
Data that requires a validation status.
HashType
Every HoloHash is generic over HashType. Additionally, every HashableContent has an associated HashType. The HashType is the glue that binds together HashableContent with its hash.
HashableContent
Any implementor of HashableContent may be used in a HoloHashed to pair data with its HoloHash representation. It also has an associated HashType.
HashableContentExtAsync
Adds convenience methods for constructing HoloHash and HoloHashed from some HashableContent
HashableContentExtSync
Adds convenience methods for constructing HoloHash and HoloHashed from some HashableContent
HostFnApiT
LinkTypeFilterExt
An extension to obtain a link type filter.
LinkTypesHelper
A helper trait for finding the app defined link type from a ZomeIndex and LinkType.
OpHelper
This trait provides a conversion to a convenience type FlatOp for use in the validation call back.
PrimitiveHashType
A PrimitiveHashType is one with a multihash prefix. In contrast, a non-primitive hash type could be one of several primitive types, e.g. an AnyDhtHash can represent one of three primitive types.
Serialize
A data structure that can be serialized into any data format supported by Serde.
TryFrom
Simple and safe type conversions that may fail in a controlled way under some circumstances. It is the reciprocal of TryInto.
TryFromDnaProperties
Trait to convert from dna properties into specified type
TryInto
An attempted conversion that consumes self, which may or may not be expensive.
U8Index
Helper trait for types that are internally represented as u8 but need to be used as indicies into containers.
UnitEnum
A utility trait for associating a data enum with a unit enum that has the same variants.

Functions§

__hc__agent_info_1
__hc__call_1
__hc__call_info_1
__hc__call_remote_1
__hc__capability_claims_1
__hc__capability_grants_1
__hc__capability_info_1
__hc__close_chain_1
__hc__count_links_1
__hc__create_1
__hc__create_clone_cell_1
__hc__create_link_1
__hc__create_x25519_keypair_1
__hc__delete_1
__hc__delete_clone_cell_1
__hc__delete_link_1
__hc__disable_clone_cell_1
__hc__dna_info_1
__hc__ed_25519_x_salsa20_poly1305_decrypt_1
__hc__ed_25519_x_salsa20_poly1305_encrypt_1
__hc__emit_signal_1
__hc__enable_clone_cell_1
__hc__get_1
__hc__get_agent_activity_1
__hc__get_details_1
__hc__get_links_1
__hc__get_links_details_1
__hc__get_validation_receipts_1
__hc__must_get_action_1
__hc__must_get_entry_1
__hc__must_get_valid_record_1
__hc__open_chain_1
__hc__query_1
__hc__random_bytes_1
__hc__schedule_1
__hc__send_remote_signal_1
__hc__sign_1
__hc__sign_ephemeral_1
__hc__sys_time_1
__hc__trace_1
__hc__unreachable_1
__hc__update_1
__hc__verify_signature_1
__hc__x_25519_x_salsa20_poly1305_decrypt_1
__hc__x_25519_x_salsa20_poly1305_encrypt_1
__hc__x_salsa20_poly1305_decrypt_1
__hc__x_salsa20_poly1305_encrypt_1
__hc__x_salsa20_poly1305_shared_secret_create_random_1
__hc__x_salsa20_poly1305_shared_secret_export_1
__hc__x_salsa20_poly1305_shared_secret_ingest_1
__hc__zome_info_1
blake2b_256
internal compute a 32 byte blake2b hash
close_chain
Close your current source chain to indicate that you are planning to migrate to a new DNA.
decode
dna_info
Get the DNA information. There are no inputs to dna_info.
ed_25519_x_salsa20_poly1305_decrypt
Libsodium crypto_box decryption, but converts ed25519 signing keys into x25519 encryption keys. WARNING: Please first understand the downsides of using this function: https://doc.libsodium.org/advanced/ed25519-curve25519
encode
entry_type_matches
Check the entry variant matches the variant in the actions entry type
holo_hash_decode
internal PARSE for holo hash REPR
holo_hash_decode_unchecked
internal PARSE for holo hash REPR
holo_hash_encode
internal REPR for holo hash
host_args
Receive arguments from the host. The guest sets the type O that the host needs to match. If deserialization fails then a GuestPtr to a WasmError::Deserialize is returned. The guest should immediately return an Err back to the host. The WasmError::Deserialize enum contains the bytes that failed to deserialize so the host can unambiguously provide debug information.
host_call
Given an extern that we expect the host to provide:
merge_u32
merge_u64
merge_usize
Given 2x u32, return a DoubleUSize merged. Works via a simple bitwise shift to move the pointer to high bits then OR the length into the low bits.
must_get_action
MUST get a SignedActionHashed at a given ActionHash.
must_get_agent_activity
The chain this filter produces on the given agents chain must be fetched before the validation can be completed. This allows for deterministic validation of chain activity by making a hash bounded range of an agents chain into a dependency for something that is being validated.
must_get_entry
MUST get an EntryHashed at a given EntryHash.
must_get_valid_record
MUST get a VALID Record at a given ActionHash.
open_chain
Indicate the DNA that you have migrated from. This should be committed to the new DNA’s source chain.
return_err_ptr
Convert a WasmError to a GuestPtrLen as best we can. This is not necessarily straightforward as the serialization process can error recursively. In the worst case we can’t even serialize an enum variant, in which case we panic. The casts from usize to u32 are safe as long as the guest code is compiled for wasm32-unknown-unknown target.
return_ptr
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.
sha2_512
Compute a 512-bit SHA2 hash.
split_u64
split_u128
split_usize
Given 2x merged usize, split out two usize. Performs the inverse of merge_usize.
verify_signature
Verify the passed signature and public key against the passed serializable input.
verify_signature_raw
Verify the passed signature and public key against the literal bytes input.
x_25519_x_salsa20_poly1305_decrypt
Libsodium keypair based authenticated encryption: box_open
x_salsa20_poly1305_decrypt
Libsodium secret-key authenticated encryption: secretbox_open
zome_info
Get the zome information. There are no inputs to zome_info.

Type Aliases§

ActionHash
The hash of an action
ActionHashAndSig
Action hash with the signature of the action at that hash.
ActionHashB64
Base64-ready version of ActionHash
ActionHashed
AgentPubKey
An Agent public signing key. Not really a hash, more of an “identity hash”.
AgentPubKeyB64
Base64-ready version of AgentPubKey
AnyDhtHash
The hash of anything referrable in the DHT. This is a composite of either an EntryHash or a ActionHash
AnyDhtHashB64
Base64-ready version of AnyDhtHash
AnyLinkableHash
The hash of anything linkable.
AnyLinkableHashB64
Base64-ready version of AnyLinkableHash
BoxData
Bytes
simply alias whatever serde bytes is already doing for Vec<u8>
CapClaimEntry
The data type written to the source chain to denote a capability claim
CapGrantEntry
The data type written to the source chain when explicitly granting a capability. NB: this is not simply CapGrant, because the CapGrant::ChainAuthor grant is already implied by Entry::Agent, so that should not be committed to a chain. This is a type alias because if we add other capability types in the future, we may want to include them
CapSecretBytes
A fixed size array of bytes that a secret must be.
CoordinatorZome
CoordinatorZomes
Ordered list of coordinator zomes in this DNA.
CounterSigningAgents
Alias for a list of agents and their roles.
DeleteCloneCellInput
Arguments to delete a disabled clone cell of an app.
DhtOpHash
The hash of a DhtOp’s “unique form” representation
DhtOpHashB64
Base64-ready version of DhtOpHash
DnaHash
The hash of a DnaDef
DnaHashB64
Base64-ready version of DnaHash
DnaInfo
Convenience alias to the latest DnaInfoN.
DoubleUSize
EnableCloneCellInput
Arguments to specify the clone cell to be enabled.
EntryHash
The hash of an Entry.
EntryHashB64
Base64-ready version of EntryHash
EntryHashed
An Entry paired with its EntryHash
ExternResult
Every extern must return a WasmError in the case of failure.
ExternalHash
The hash of some external data that can’t or doesn’t exist on the DHT.
ExternalHashB64
Base64-ready version of ExternalHash
GenesisSelfCheckData
Alias to the current version of GenesisSelfCheckData.
GrantedFunction
a single zome/function pair
GuestPtr
A WasmSize that points to a position in wasm linear memory that the host and guest are sharing to communicate across function calls.
GuestPtrLen
Enough bits to fit a pointer and length into so we can return it. The externs defined as “C” don’t support multiple return values (unlike wasm). The native Rust support for wasm externs is not stable at the time of writing.
HoloHashOf
A convenience type, for specifying a hash by HashableContent rather than by its HashType
HoloHashResult
HoloHash Result type
IntegrityZome
IntegrityZomes
Ordered list of integrity zomes in this DNA.
Len
A WasmSize integer that represents the size of bytes to read/write to memory.
MembraneProof
App-specific payload for proving membership in the membrane of the app
NetworkSeed
Placeholder for a real network seed type. See DnaModifiers.
OpBasis
Alias for AnyLinkableHash. This hash forms the notion of the “basis hash” of an op.
RateBucketCapacity
The amount that a bucket is “filled”
RateBucketId
A bucket ID, for rate limiting
RateBytes
The normalized total size of this action, for rate limiting
RateUnits
The weight of this action, for rate limiting
RecordEntryRef
Alias for record with ref entry
RoleName
Identifier for an App Role, a foundational concept in the App manifest.
ScopedEntryDefIndex
An EntryDefIndex within the scope of the zome where it’s defined.
ScopedLinkType
A LinkType within the scope of the zome where it’s defined.
SecretBoxData
SignedAction
A combination of an action and its signature.
SignedActionHashed
The hashed action and the signature that signed it
SignedWarrant
A signed warrant with a timestamp
TimestampResult
WarrantHash
The hash of a Warrant
WasmHash
The hash of some wasm bytecode
WasmHashB64
Base64-ready version of WasmHash
WasmSize
Something like usize for wasm. Wasm has a memory limit of 4GB so offsets and lengths fit in u32.
ZomeCallSigningKey
A public key of a pair of signing keys for signing zome calls.
ZomeEntryTypesKey
A key to the ScopedZomeTypes<EntryDefIndex> container.
ZomeLinkTypesKey
A key to the ScopedZomeTypes<LinkType> container.
ZomeResult

Attribute Macros§

dna_properties
Helper for decoding DNA Properties into a struct.
hdk_dependent_entry_types
hdk_dependent_link_types
hdk_entry_helper
Helper for entry data types.
hdk_entry_types
Declares the integrity zome’s entry types.
hdk_entry_types_conversions
hdk_extern
hdk_link_types
Implements all the required types needed for a LinkTypes enum.
hdk_to_coordinates
instrument
Instruments a function to create and enter a tracing span every time the function is called.

Derive Macros§

Deserialize
EntryDefRegistration
Serialize
SerializedBytes
UnitEnum