Skip to content

Commit 7b61fa7

Browse files
authored
feat: add network kind (MetaMask#71)
1 parent fe8a6f7 commit 7b61fa7

File tree

3 files changed

+48
-6
lines changed

3 files changed

+48
-6
lines changed

.github/workflows/build-lint-test.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,6 @@ jobs:
7171
- name: Install Rust toolchain
7272
uses: dtolnay/rust-toolchain@4f647fc679bcd3b11499ccb42104547c83dabe96
7373
with:
74-
toolchain: stable
7574
components: rustfmt, clippy
7675
- name: Rust Cache
7776
uses: Swatinem/rust-cache@82a92a6e8fbeee089604da2575dc567ae9ddeaab

src/bitcoin/wallet.rs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ use crate::{
99
result::JsResult,
1010
types::{
1111
AddressInfo, Amount, Balance, ChangeSet, CheckPoint, FeeRate, FullScanRequest, KeychainKind, LocalOutput,
12-
Network, OutPoint, Psbt, ScriptBuf, SentAndReceived, SpkIndexed, SyncRequest, Transaction, Txid, Update,
12+
Network, NetworkKind, OutPoint, Psbt, ScriptBuf, SentAndReceived, SpkIndexed, SyncRequest, Transaction, Txid,
13+
Update,
1314
},
1415
};
1516

@@ -79,6 +80,11 @@ impl Wallet {
7980
self.0.borrow().network().into()
8081
}
8182

83+
#[wasm_bindgen(getter)]
84+
pub fn network_kind(&self) -> NetworkKind {
85+
self.0.borrow().network().into()
86+
}
87+
8288
#[wasm_bindgen(getter)]
8389
pub fn balance(&self) -> Balance {
8490
self.0.borrow().balance().into()

src/types/network.rs

Lines changed: 41 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,43 @@
1-
use bdk_wallet::bitcoin::{Network as BdkNetwork, NetworkKind};
1+
use bdk_wallet::bitcoin::{Network as BdkNetwork, NetworkKind as BdkNetworkKind};
22
use wasm_bindgen::prelude::wasm_bindgen;
33

4+
/// What kind of network we are on.
5+
#[wasm_bindgen]
6+
#[derive(Debug, Copy, Clone, PartialEq, Eq, PartialOrd, Ord, Hash)]
7+
pub enum NetworkKind {
8+
/// The Bitcoin mainnet network.
9+
Main,
10+
/// Some kind of testnet network.
11+
Test,
12+
}
13+
14+
impl From<BdkNetworkKind> for NetworkKind {
15+
fn from(network_kind: BdkNetworkKind) -> Self {
16+
match network_kind {
17+
BdkNetworkKind::Main => NetworkKind::Main,
18+
_ => NetworkKind::Test,
19+
}
20+
}
21+
}
22+
23+
impl From<NetworkKind> for BdkNetworkKind {
24+
fn from(network_kind: NetworkKind) -> Self {
25+
match network_kind {
26+
NetworkKind::Main => BdkNetworkKind::Main,
27+
_ => BdkNetworkKind::Test,
28+
}
29+
}
30+
}
31+
32+
impl From<BdkNetwork> for NetworkKind {
33+
fn from(network: BdkNetwork) -> Self {
34+
match network {
35+
BdkNetwork::Bitcoin => NetworkKind::Main,
36+
_ => NetworkKind::Test,
37+
}
38+
}
39+
}
40+
441
/// The cryptocurrency network to act on.
542
#[wasm_bindgen]
643
#[derive(Clone, Copy)]
@@ -42,11 +79,11 @@ impl From<Network> for BdkNetwork {
4279
}
4380
}
4481

45-
impl From<Network> for NetworkKind {
82+
impl From<Network> for BdkNetworkKind {
4683
fn from(network: Network) -> Self {
4784
match network {
48-
Network::Bitcoin => NetworkKind::Main,
49-
_ => NetworkKind::Test,
85+
Network::Bitcoin => BdkNetworkKind::Main,
86+
_ => BdkNetworkKind::Test,
5087
}
5188
}
5289
}

0 commit comments

Comments
 (0)