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
  • amount 🔒
    Bitcoin amount types
  • Federation-stored client backups Federation-stored client backups
  • 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 Binary encoding interface suitable for consensus critical encoding.
  • 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
  • peer_id 🔒
    PeerId type
  • 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
  • txid 🔒
  • Peg-in txo proofs
  • General purpose utilities
  • Version

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§