Docs.rs
  • fedimint-core-0.2.0-rc5
    • fedimint-core 0.2.0-rc5
    • Docs.rs crate page
    • MIT
    • Links
    • Repository
    • crates.io
    • Source
    • Owners
    • dpc
    • elsirion
    • bradleystachurski
    • Dependencies
      • anyhow ^1.0.65 normal
      • async-recursion ^1.0.4 normal
      • async-trait ^0.1.73 normal
      • backtrace ^0.3.67 normal
      • bech32 ^0.9.1 normal
      • bincode ^1.3.1 normal
      • bitcoin ^0.29.2 normal
      • bitcoin ^0.30.0 normal
      • bitcoin_hashes ^0.11 normal
      • bitvec ^1.0.1 normal
      • erased-serde ^0.3 normal
      • fedimint-derive ^0.2.0-rc5 normal
      • fedimint-logging ^0.2.0-rc5 normal
      • futures ^0.3.24 normal
      • hex ^0.4.3 normal
      • itertools ^0.10.5 normal
      • jsonrpsee-core ^0.20.0 normal
      • jsonrpsee-types ^0.20.0 normal
      • lightning ^0.0.118 normal
      • lightning-invoice ^0.26.0 normal
      • macro_rules_attribute ^0.1.3 normal
      • miniscript ^9.0.2 normal
      • parity-scale-codec ^3.5.0 normal
      • rand ^0.8.5 normal
      • secp256k1-zkp ^0.7.0 normal
      • serde ^1.0.149 normal
      • serde_json ^1.0.91 normal
      • sha3 ^0.10.5 normal
      • strum ^0.24 normal
      • strum_macros ^0.24 normal
      • fedimint-tbs ^0.2.0-rc5 normal
      • thiserror ^1.0.39 normal
      • fedimint-threshold-crypto ^0.1 normal
      • tokio ^1.26.0 normal
      • tracing ^0.1.37 normal
      • url ^2.3.1 normal
      • once_cell ^1.16.0 dev
      • test-log ^0.2 dev
      • tracing-subscriber ^0.3.16 dev
      • jsonrpsee-ws-client ^0.20.0 normal
      • tokio ^1.25.0 normal
      • tokio-rustls ^0.23.4 normal
      • async-lock ^2.7 normal
      • getrandom ^0.2.8 normal
      • gloo-timers ^0.2.6 normal
      • js-sys ^0.3.61 normal
      • jsonrpsee-wasm-client ^0.20.0 normal
      • wasm-bindgen-futures ^0.4.33 normal
    • Versions
    • 40.85% of the crate is documented
  • Go to latest stable release
  • Platform
    • i686-unknown-linux-gnu
    • x86_64-unknown-linux-gnu
  • Feature flags
  • Rust
    • About docs.rs
    • Privacy policy
    • Rust website
    • The Book
    • Standard Library API Reference
    • Rust by Example
    • The Cargo Guide
    • Clippy Documentation

Crate fedimint_core

fedimint_core0.2.0-rc5

  • All Items
  • Re-exports
  • Modules
  • Macros
  • Structs
  • Enums
  • Traits
  • Functions
  • Attribute Macros

Crates

  • fedimint_core
?
Change settings

Crate fedimint_core

source ·

Re-exports

  • pub use module::ServerModule;
  • pub use tiered::Tiered;
  • pub use crate::core::server;
  • pub use tiered_multi::*;

Modules

  • admin_client
  • api
  • backup
  • bitcoinrpc
  • cancellable
  • config
  • core
    Fedimint Core API (common) module interface
  • db
    Core Fedimint database traits and types
  • 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.
  • endpoint_constants
  • epoch
  • fmt_utils
  • hex
  • macros
  • module
  • net
  • query
  • session_outcome
    Atomic BFT unit containing consensus items
  • task
  • tiered
  • tiered_multi
  • time
  • timing
  • transaction
  • txoproof
  • util

Macros

  • __api_endpoint
    Example
  • _dyn_newtype_define_inner
  • _dyn_newtype_define_with_instance_id_inner
  • _dyn_newtype_impl_deref_mut
  • async_trait_maybe_send
    async trait that use MaybeSend
  • deserialize_as_encodable_hex
  • dyn_newtype_define
    Define “dyn newtype” (a newtype over dyn Trait)
  • dyn_newtype_display_passthrough
    Implements the Display trait for dyn newtypes whose traits implement Display
  • dyn_newtype_impl_dyn_clone_passthrough
    Implement Clone on a “dyn newtype”
  • erased_eq_no_instance_id
  • extensible_associated_module_type
    Wraps a type into an enum with a default variant, this allows to add new versions of the type in the future. Depending on context unknown versions may be ignored or lead to errors. E.g. the client might just ignore an unknown input version since it cannot originate from itself while the server would reject it for not being able to validate its correctness.
  • impl_db_lookup
  • impl_db_record
    This is a helper macro that generates the implementations of DatabaseRecord necessary for reading/writing to the database and fetching by prefix.
  • maybe_add_send
    MaybeSync can not be used in dyn $Trait + MaybeSend
  • maybe_add_send_sync
    See maybe_add_send
  • module_plugin_dyn_newtype_clone_passthrough
  • module_plugin_dyn_newtype_define
    Define a “module plugin dyn-newtype” which is like a standard “dyn newtype”, but with associated “module_instance_id”.
  • module_plugin_dyn_newtype_display_passthrough
  • module_plugin_dyn_newtype_encode_decode
    Implement Encodable and Decodable for a “module dyn newtype”
  • module_plugin_dyn_newtype_eq_passthrough
  • module_plugin_static_trait_define
    Define a “plugin” trait
  • module_plugin_static_trait_define_config
    A copy of module_lugin_static_trait_define but for ClientConfig, which is a snowflake that requires : Serialize and conditional implementation for DynUnknown. The macro is getting gnarly, so seems easier to copy-paste-modify, than pile up conditional argument.
  • plugin_types_trait_impl_common
    Implements the necessary traits for all associated types of a FederationServer module.
  • plugin_types_trait_impl_config
    Implements the necessary traits for all configuration related types of a FederationServer module.
  • push_db_key_items
  • push_db_pair_items
  • push_db_pair_items_no_serde
  • serde_as_encodable_hex
  • serialize_as_encodable_hex

Structs

  • Amount
    Represents an amount of BTC inside the system. The base denomination is milli satoshi for now, this is also why the amount type from rust-bitcoin isn’t used instead.
  • Feerate
  • OutPoint
    OutPoint represents a globally unique output in a transaction
  • PeerId
  • TransactionId
    A transaction id for peg-ins, peg-outs and reissuances

Enums

  • BitcoinAmountOrAll
    Amount of bitcoin to send, or “all” to send all available funds
  • CoreError
  • ParseAmountError

Traits

  • BitcoinHash
    Trait which applies to hashes of all types.
  • NumPeers
    for consensus-related calculations given the number of peers

Functions

  • msats
    Shorthand for Amount::from_msats
  • sats
    Shorthand for Amount::from_sats
  • weight_to_vbytes
    Converts weight to virtual bytes, defined in BIP-141 as weight / 4 (rounded up to the next integer).

Attribute Macros

  • apply

Results

re-export
fedimint_core::ServerModule
trait
fedimint_core::module::ServerModule
trait
fedimint_core::module::ServerModuleInit
Module Generation trait with associated types
struct
fedimint_core::config::ServerModuleConfig
Config for the server-side of a particular Federation …
struct
fedimint_core::module::ServerModuleInitArgs
type alias
fedimint_core::module::registry::ServerModuleRegistry
Collection of server modules
type alias
fedimint_core::config::ServerModuleInitRegistry
struct
fedimint_core::config::ServerModuleConsensusConfig
type alias
fedimint_core::config::ServerModuleConfigGenParamsRegistry
Registry that contains the config gen params for all …
trait
fedimint_core::core::server::IServerModule
Backend side module interface
trait
fedimint_core::module::IServerModuleInit
Interface for Module Generation
struct
fedimint_core::core::server::DynServerModule
struct
fedimint_core::module::DynServerModuleInit
trait
fedimint_core::config::TypedServerModuleConfig
Module (server side) config, typed
trait
fedimint_core::config::TypedServerModuleConsensusConfig
Consensus-critical part of a server side module config
trait method
fedimint_core::module::ServerModule::audit
Queries the database and returns all assets and …
trait method
fedimint_core::module::ServerModule::api_endpoints
Returns a list of custom API endpoints defined by the …
trait method
fedimint_core::module::ServerModule::output_status
Retrieve the current status of the output. Depending on …
trait method
fedimint_core::module::ServerModule::process_input
Try to spend a transaction input. On success all necessary …
trait method
fedimint_core::module::ServerModule::process_output
Try to create an output (e.g. issue notes, peg-out BTC, …
trait method
fedimint_core::module::ServerModule::consensus_proposal
This module’s contribution to the next consensus proposal
trait method
fedimint_core::module::ServerModule::process_consensus_item
This function is called once for every consensus item. The …
trait method
fedimint_core::module::ServerModule::api_endpoints
Returns a list of custom API endpoints defined by the …