Crate fedimint_core

source
Expand description

Fedimint Core library

fedimint-core contains commonly used types, utilities and primitives, shared between both client and server code.

Things that are server-side only typically live in fedimint-server, and client-side only in fedimint-client.

§Wasm support

All code in fedimint-core needs to compile on Wasm, and fedimint-core includes helpers and wrappers around non-wasm-safe utitlies.

In particular:

Re-exports§

Modules§

  • Admin (guardian) client types
  • Federation-stored client backups Federation-stored client backups
  • Gradual bitcoin dependency migration helpers
  • Legacy serde encoding for bls12_381
  • Federation configuration
  • Fundamental types Fedimint Core API (common) module interface
  • Database handling Core Fedimint database traits and types
  • Consensus encoding This module defines a binary encoding interface which is more suitable for consensus critical encoding than e.g. bincode. Over time all structs that need to be encoded to binary will be migrated to this interface.
  • Common environment variables
  • Formatting helpers
  • Federation invite code
  • Common macros
  • Extenable module sysystem Fedimint supports modules to allow extending it’s functionality. Some of the standard functionality is implemented in form of modules as well.
  • Peer networking
  • Runtime (wasm32 vs native) differences handling Copyright 2021 The Matrix.org Foundation C.I.C. Abstraction over an executor so we can spawn tasks under WASM the same way we do usually.
  • Atomic BFT unit containing consensus items
  • Task handling, including wasm safe logic
  • Types handling per-denomination values
  • Types handling multiple per-denomination values
  • Time handling, wasm safe functionality
  • Timing helpers
  • Fedimint transaction (inpus + outputs + signature) types
  • Peg-in txo proofs
  • General purpose utilities

Macros§

Structs§

  • Represents an amount of BTC. The base denomination is millisatoshis, which is why the Amount type from rust-bitcoin isn’t used instead.
  • The number of guardians in a federation.
  • OutPoint represents a globally unique output in a transaction
  • A transaction id for peg-ins, peg-outs and reissuances

Enums§

Constants§

Traits§

Functions§

Attribute Macros§