Crate ixc_core

source
Expand description

WARNING: This is an API preview! Expect major bugs, glaring omissions, and breaking changes!

This crate defines types and macros for constructing easy to use account and module implementations. It integrates with the encoding layer but does not specify a state management framework.

§Context

The Context struct gets passed to all handler functions that interact with state but what exactly is it? In the Golang Cosmos SDK, Context was never precisely defined and ended up becoming sort of a bag of variables which were passed around everywhere. This made it difficult to understand what was actually being passed around and what was being used.

Context here is defined to have the following purposes:

  • wrap some basic information about the current call, but not the full message header
  • hold a handle to ixc_schema’s bump allocator
  • hold a handle to the function used to send messages

Re-exports§

Modules§

  • Basic functionality for creating and managing account lifecycle.
  • Basic error handling utilities.
  • Handler traits for account and module handlers.
  • Low-level utilities for working with message structs and message packets directly.
  • The Message trait for invoking messages dynamically.
  • Resource module.
  • Standard result types.
  • Routing system for message packets.

Macros§

  • Return an error with a formatted message.
  • Ensure a condition is true, otherwise return an error with a formatted message.
  • Create an error.

Structs§

  • Context wraps a single message request (and possibly response as well) along with the router callbacks necessary for making nested message calls.
  • An event bus that can be used to emit events.