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.
- Config::esplora_address or Config::bitcoind_address must be provided.
- If you use Config::bitcoind_address, you must also provide:
- Other optional fields can be omitted.
§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 configurationFields§
§server_address: StringThe 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.
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: BlockHeightThe number of blocks before expiration to refresh vtxos.
Default value: 144 (24h) for mainnet, 12 for testnets
vtxo_exit_margin: BlockDeltaAn upper limit of the number of blocks we expect to need to safely exit the vtxos.
Default value: 12
htlc_recv_claim_delta: BlockDeltaThe 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: BlockHeightThe number of confirmations required before considering a round tx fully confirmed
Default value: 6 for mainnet, 2 for testnets
offboard_required_confirmations: BlockHeightThe 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: u64Daemon 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: u64Daemon sync interval in seconds for slow tasks (onchain, exits, boards, offboards, maintenance, rounds, mailbox).
Default value: 60
Implementations§
Source§impl Config
impl Config
Sourcepub fn network_default(network: Network) -> Self
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
Sourcepub fn load(network: Network, path: impl AsRef<Path>) -> Result<Config>
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):
- Environment variables with
BARK_prefix (e.g.,BARK_ESPLORA_ADDRESS) - Config file values
- Network defaults
Trait Implementations§
Source§impl<'de> Deserialize<'de> for Config
impl<'de> Deserialize<'de> for Config
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Auto Trait Implementations§
impl Freeze for Config
impl RefUnwindSafe for Config
impl Send for Config
impl Sync for Config
impl Unpin for Config
impl UnsafeUnpin for Config
impl UnwindSafe for Config
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request