]> Untitled Git - bdk-cli/commitdiff
[blockchain] Simplify the architecture of blockchain traits
authorAlekos Filini <alekos.filini@gmail.com>
Wed, 9 Sep 2020 16:17:49 +0000 (18:17 +0200)
committerAlekos Filini <alekos.filini@gmail.com>
Thu, 10 Sep 2020 08:45:07 +0000 (10:45 +0200)
Instead of having two traits, `Blockchain` and `OnlineBlockchain` that need
to be implemented by the user, only the relevant one (`OnlineBlockchain`, here
renamed to `Blockchain`) will need to be implemented, since we provide a
blanket implementation for the "marker" trait (previously `Blockchain`, here
renamed to `BlockchainMarker`).

Users of the library will probably never need to implement `BlockchainMarker`
by itself, since we expose the `OfflineBlockchain` type that already does
that and should be good for any "offline" wallet. Still, it's exposed since
they might need to import it to define types with generics.

src/cli.rs

index e09fedd4efb8d109f780093aeff5461863e3b106..bf50d961263c01f260ee2d7dd8b3d791af45d180 100644 (file)
@@ -363,7 +363,7 @@ pub fn handle_matches<C, D>(
     matches: ArgMatches<'_>,
 ) -> Result<serde_json::Value, Error>
 where
-    C: crate::blockchain::OnlineBlockchain,
+    C: crate::blockchain::Blockchain,
     D: crate::database::BatchDatabase,
 {
     if let Some(_sub_matches) = matches.subcommand_matches("get_new_address") {