11[package ]
2- version = " 0.1.0"
32name = " bdk-floresta"
3+ version = " 0.0.0"
44description = " A Floresta-powered chain-source crate for BDK"
55authors = [" Luis Schwab <dev@luisschwab.net" ]
6- repository = " https://github.com/luisschwab/bdk-floresta"
76documentation = " https://docs.rs/bdk-floresta"
7+ repository = " https://github.com/luisschwab/bdk-floresta"
88keywords = [" bdk" , " bitcoin" , " floresta" , " utreexo" ]
9- readme = " README.md"
109license = " MIT OR Apache-2.0"
11- edition = " 2021 "
10+ readme = " README.md "
1211rust-version = " 1.85.0" # MSRV
12+ edition = " 2024"
1313
1414[features ]
1515default = [" logger" ]
@@ -23,9 +23,6 @@ required-features = ["logger"]
2323name = " client_signet"
2424required-features = [" logger" ]
2525
26- [build-dependencies ]
27- toml = { version = " =1.1.2" }
28-
2926[dependencies ]
3027bitcoin = { version = " =0.32.8" }
3128bdk_wallet = { version = " =3.0.0" }
@@ -41,39 +38,27 @@ tracing-appender = { version = "=0.2.5", optional = true }
4138tracing-subscriber = { version = " =0.3.23" , features = [" ansi" , " env-filter" , " time" ], optional = true }
4239time = { version = " =0.3.45" , features = [" macros" , " local-offset" ], optional = true } # time >0.3.45 requires Rust 1.88.0
4340tokio-util = { version = " =0.7.18" }
44-
45- # These pins are needed for `Cargo-minimal.lock`:
41+ # Pinned transitive deps:
4642lazy_static = { version = " =1.5.0" } # blame: sharded-slab@v0.1.7 -> tracing-subscriber@v0.3.23
4743bitcoin-consensus-encoding = { version = " =1.0.0-rc.3" } # blame: bitcoin-io v0.3.0 (Encodable->Encode/Decodable->Decode)
4844
45+ [build-dependencies ]
46+ toml = { version = " =1.1.2" }
47+
4948[dev-dependencies ]
5049halfin = { version = " =0.4.0" }
5150anyhow = { version = " =1.0.102" }
5251tokio = { version = " =1.52.3" , features = [" macros" , " rt-multi-thread" ] }
5352
54- [lints .clippy ]
55- uninlined_format_args = " deny"
56- result_large_err = " allow"
57- use_self = " deny"
58-
5953[package .metadata .docs .rs ]
6054all-features = true
6155rustdoc-args = [" --cfg" , " docsrs" ]
6256
63- [package .metadata .rbmt .test ]
64- sample_strategy = " all"
65-
66- [package .metadata .rbmt .tools ]
67- cargo-audit = " =0.22.2"
68- zizmor = " =1.26.1"
69-
70- [package .metadata .rbmt .toolchains ]
71- stable = " 1.96.0"
72- nightly = " nightly-2026-06-23"
73-
74- # Allow packages of different versions in the dependency tree
75- [package .metadata .rbmt .lint ]
76- allowed_duplicates = [
57+ [package .metadata .rbmt ]
58+ toolchains = { stable = " 1.96.0" , nightly = " nightly-2026-06-23" }
59+ tools = { cargo-audit = " =0.22.2" , zizmor = " =1.26.1" }
60+ test = { sample_strategy = " all" }
61+ lint = { allowed_duplicates = [
7762 " base64" , # blame: bitcoin@v0.32.8 (v0.21) vs floresta-wire@v0.5.0 -> tonic@v0.14.5 (v0.22)
7863 " bitcoin_hashes" , # blame: bitcoin@v0.32.8 (v0.14), floresta-wire@v0.5.0 -> bip324@v0.10.0 (v0.15), floresta-chain@v0.5.0 -> rustreexo@v0.5.0 (v0.20)
7964 " bitcoin-consensus-encoding" , # blame: floresta-chain@v0.5.0 -> rustreexo@v0.5.0 -> bitcoin_hashes@v0.20.0 (v0.1.0) vs bitcoin-io@v0.3.0 / bitcoin_hashes@v1.0.0 (v1.0.0)
@@ -95,4 +80,138 @@ allowed_duplicates = [
9580 " windows_x86_64_gnu" , # blame: cascades from windows-targets versions above
9681 " windows_x86_64_gnullvm" , # blame: cascades from windows-targets versions above
9782 " windows_x86_64_msvc" , # blame: cascades from windows-targets versions above
98- ]
83+ ] }
84+
85+ [lints .rust ]
86+ missing_docs = " warn"
87+
88+ # Copied over from `rust-bitcoin`
89+ [lints .clippy ]
90+ # Exclude lints we don't think are valuable.
91+ needless_question_mark = " allow" # https://github.com/rust-bitcoin/rust-bitcoin/pull/2134
92+ manual_range_contains = " allow" # More readable than clippy's format.
93+ # Exhaustive list of pedantic clippy lints
94+ assigning_clones = " warn"
95+ bool_to_int_with_if = " warn"
96+ borrow_as_ptr = " warn"
97+ case_sensitive_file_extension_comparisons = " warn"
98+ cast_lossless = " warn"
99+ cast_possible_truncation = " allow" # All casts should include a code comment (except test code).
100+ cast_possible_wrap = " allow" # Same as above re code comment.
101+ cast_precision_loss = " warn"
102+ cast_ptr_alignment = " warn"
103+ cast_sign_loss = " allow" # All casts should include a code comment (except in test code).
104+ checked_conversions = " warn"
105+ cloned_instead_of_copied = " warn"
106+ copy_iterator = " warn"
107+ default_trait_access = " warn"
108+ doc_link_with_quotes = " warn"
109+ doc_markdown = " warn"
110+ empty_enums = " warn"
111+ enum_glob_use = " warn"
112+ expl_impl_clone_on_copy = " warn"
113+ explicit_deref_methods = " warn"
114+ explicit_into_iter_loop = " warn"
115+ explicit_iter_loop = " warn"
116+ filter_map_next = " warn"
117+ flat_map_option = " warn"
118+ float_cmp = " allow" # Bitcoin floats are typically limited to 8 decimal places and we want them exact.
119+ fn_params_excessive_bools = " warn"
120+ if_not_else = " warn"
121+ ignored_unit_patterns = " warn"
122+ implicit_clone = " warn"
123+ implicit_hasher = " warn"
124+ inconsistent_struct_constructor = " warn"
125+ index_refutable_slice = " warn"
126+ inefficient_to_string = " warn"
127+ inline_always = " warn"
128+ into_iter_without_iter = " warn"
129+ invalid_upcast_comparisons = " warn"
130+ items_after_statements = " warn"
131+ iter_filter_is_ok = " warn"
132+ iter_filter_is_some = " warn"
133+ iter_not_returning_iterator = " warn"
134+ iter_without_into_iter = " warn"
135+ large_digit_groups = " warn"
136+ large_futures = " warn"
137+ large_stack_arrays = " warn"
138+ large_types_passed_by_value = " warn"
139+ linkedlist = " warn"
140+ macro_use_imports = " warn"
141+ manual_assert = " warn"
142+ manual_instant_elapsed = " warn"
143+ manual_is_power_of_two = " warn"
144+ manual_is_variant_and = " warn"
145+ manual_let_else = " warn"
146+ manual_ok_or = " warn"
147+ manual_string_new = " warn"
148+ many_single_char_names = " warn"
149+ map_unwrap_or = " warn"
150+ match_bool = " allow" # Adds extra indentation and LOC.
151+ match_same_arms = " allow" # Collapses things that are conceptually unrelated to each other.
152+ match_wild_err_arm = " warn"
153+ match_wildcard_for_single_variants = " warn"
154+ maybe_infinite_iter = " warn"
155+ mismatching_type_param_order = " warn"
156+ missing_errors_doc = " warn"
157+ missing_fields_in_debug = " warn"
158+ missing_panics_doc = " warn"
159+ missing_safety_doc = " warn"
160+ missing_docs_in_private_items = " warn"
161+ must_use_candidate = " allow" # Useful for audit but many false positives.
162+ mut_mut = " warn"
163+ naive_bytecount = " warn"
164+ needless_bitwise_bool = " warn"
165+ needless_continue = " warn"
166+ needless_for_each = " warn"
167+ needless_pass_by_value = " warn"
168+ needless_raw_string_hashes = " warn"
169+ no_effect_underscore_binding = " warn"
170+ no_mangle_with_rust_abi = " warn"
171+ option_as_ref_cloned = " warn"
172+ option_option = " warn"
173+ ptr_as_ptr = " warn"
174+ ptr_cast_constness = " warn"
175+ pub_underscore_fields = " warn"
176+ range_minus_one = " warn"
177+ range_plus_one = " warn"
178+ redundant_clone = " warn"
179+ redundant_closure_for_method_calls = " warn"
180+ redundant_else = " warn"
181+ ref_as_ptr = " warn"
182+ ref_binding_to_reference = " warn"
183+ ref_option = " warn"
184+ ref_option_ref = " warn"
185+ return_self_not_must_use = " warn"
186+ same_functions_in_if_condition = " warn"
187+ semicolon_if_nothing_returned = " warn"
188+ should_panic_without_expect = " warn"
189+ similar_names = " allow" # Too many (subjectively) false positives.
190+ single_char_pattern = " warn"
191+ single_match_else = " warn"
192+ stable_sort_primitive = " warn"
193+ str_split_at_newline = " warn"
194+ string_add_assign = " warn"
195+ struct_excessive_bools = " warn"
196+ struct_field_names = " allow" # dumb
197+ too_many_lines = " warn"
198+ transmute_ptr_to_ptr = " warn"
199+ trivially_copy_pass_by_ref = " warn"
200+ unchecked_time_subtraction = " warn"
201+ unicode_not_nfc = " warn"
202+ uninlined_format_args = " allow" # This is a subjective style choice.
203+ unnecessary_box_returns = " warn"
204+ unnecessary_join = " warn"
205+ unnecessary_literal_bound = " warn"
206+ unnecessary_wraps = " warn"
207+ unnested_or_patterns = " warn"
208+ unreadable_literal = " warn"
209+ unsafe_derive_deserialize = " warn"
210+ unused_async = " warn"
211+ unused_self = " warn"
212+ use_self = " warn"
213+ used_underscore_binding = " warn"
214+ used_underscore_items = " warn"
215+ verbose_bit_mask = " warn"
216+ wildcard_imports = " warn"
217+ zero_sized_map_values = " warn"
0 commit comments