Skip to main content

Config

Struct Config 

Source
pub struct Config {
Show 14 fields pub server_address: String, pub esplora_address: Option<String>, pub bitcoind_address: Option<String>, pub bitcoind_cookiefile: Option<PathBuf>, pub bitcoind_user: Option<String>, pub bitcoind_pass: Option<String>, pub vtxo_refresh_expiry_threshold: BlockHeight, pub vtxo_exit_margin: BlockDelta, pub htlc_recv_claim_delta: BlockDelta, pub fallback_fee_rate: Option<FeeRate>, pub round_tx_required_confirmations: BlockHeight, pub offboard_required_confirmations: BlockHeight, pub daemon_fast_sync_interval_secs: u64, pub daemon_slow_sync_interval_secs: u64,
}
Expand description

Configuration of the Bark wallet.

§Example

Configure the wallet using defaults, then override endpoints for public signet:

use bark::Config;

let cfg = Config {
  server_address: "https://ark.signet.2nd.dev".into(),
  esplora_address: Some("https://esplora.signet.2nd.dev".into()),
  ..Config::network_default(bitcoin::Network::Bitcoin)
};
// cfg now has all other fields from the default configuration

Fields§

§server_address: String

The address of your ark server.

§esplora_address: Option<String>

The address of the Esplora HTTP REST server to use.

Either this or the bitcoind_address field has to be provided.

§bitcoind_address: Option<String>

The address of the bitcoind RPC server to use.

Either this or the esplora_address field has to be provided. Either bitcoind_cookiefile or bitcoind_user and bitcoind_pass has to be provided.

§bitcoind_cookiefile: Option<PathBuf>

The path to the bitcoind rpc cookie file.

Only used with bitcoind_address.

§bitcoind_user: Option<String>

The bitcoind RPC username.

Only used with bitcoind_address.

§bitcoind_pass: Option<String>

The bitcoind RPC password.

Only used with bitcoind_address.

§vtxo_refresh_expiry_threshold: BlockHeight

The number of blocks before expiration to refresh vtxos.

Default value: 144 (24h) for mainnet, 12 for testnets

§vtxo_exit_margin: BlockDelta

An upper limit of the number of blocks we expect to need to safely exit the vtxos.

Default value: 12

§htlc_recv_claim_delta: BlockDelta

The number of blocks to claim a HTLC-recv VTXO.

Default value: 18

§fallback_fee_rate: Option<FeeRate>

A fallback fee rate to use in sat/kWu when we fail to retrieve a fee rate from the configured bitcoind/esplora connection.

Example for 1 sat/vB: –fallback-fee-rate 250

§round_tx_required_confirmations: BlockHeight

The number of confirmations required before considering a round tx fully confirmed

Default value: 6 for mainnet, 2 for testnets

§offboard_required_confirmations: BlockHeight

The number of confirmations required before considering an offboard tx confirmed. If set to 0, offboard movements are marked as successful immediately without waiting for confirmation.

Default value: 2 for mainnet

§daemon_fast_sync_interval_secs: u64

Daemon sync interval in seconds for fast tasks (lightning sync).

This should be significantly smaller than the server’s receive_htlc_forward_timeout (default 30s). If the sync interval is too close to the timeout, lightning receives are more likely to fail because the client may not claim the HTLC in time.

Default value: 1

§daemon_slow_sync_interval_secs: u64

Daemon sync interval in seconds for slow tasks (onchain, exits, boards, offboards, maintenance, rounds, mailbox).

Default value: 60

Implementations§

Source§

impl Config

Source

pub fn network_default(network: Network) -> Self

A network-dependent default config that sets some useful defaults

The Default::default provides a sane default for mainnet

Source

pub fn load(network: Network, path: impl AsRef<Path>) -> Result<Config>

Load config from the config file path, filling missing fields from the network default.

Config values are loaded in the following priority order (highest to lowest):

  1. Environment variables with BARK_ prefix (e.g., BARK_ESPLORA_ADDRESS)
  2. Config file values
  3. Network defaults

Trait Implementations§

Source§

impl Clone for Config

Source§

fn clone(&self) -> Config

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Config

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl<'de> Deserialize<'de> for Config

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl Serialize for Config

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoRequest<T> for T

Source§

fn into_request(self) -> Request<T>

Wrap the input message T in a tonic::Request
Source§

impl<L> LayerExt<L> for L

Source§

fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>
where L: Layer<S>,

Applies the layer to a service and wraps it in Layered.
Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> Serialize for T
where T: Serialize + ?Sized,

Source§

fn erased_serialize(&self, serializer: &mut dyn Serializer) -> Result<(), Error>

Source§

fn do_erased_serialize( &self, serializer: &mut dyn Serializer, ) -> Result<(), ErrorImpl>

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,