Skip to content

Commit 75dd88b

Browse files
committed
v0.1.0-alpha.1
1 parent 5a17598 commit 75dd88b

File tree

9 files changed

+62
-11
lines changed

9 files changed

+62
-11
lines changed

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
[package]
22
name = "bitcoin-pro"
33
description = "Professional bitcoin accounts & assets management"
4-
version = "0.1.0"
4+
version = "0.1.0-alpha.1"
55
authors = ["Dr Maxim Orlovsky <orlovsky@pandoracore.com>"]
66
edition = "2018"
77
license = "AGPL-3.0-only"
88
readme = "README.md"
9+
exclude = ["test"]
910

1011
[[bin]]
1112
name = "bitcoin-pro"
@@ -23,7 +24,7 @@ gtk = { version = "~0.9.2", features = ["v3_24_9"] }
2324
gdk = { version = "~0.13.2", features = ["v3_24"] }
2425
gio = { version = "~0.9.1", features = ["v2_64"] }
2526
glib = { version = "~0.10.3", features = ["v2_64"] }
26-
glade = { git = "git://github.com/dr-orlovsky/rust-glade", branch = "master" }
27+
glade = "~0.1.0-alpha.2"
2728
lnpbp = { version = "~0.2.0-beta.2", features = ["lnp", "rgb", "tor", "url", "keygen", "elgamal"] }
2829
lnpbp_derive = "~0.2.0-beta.2"
2930
# rgb_node = { version = "~0.2.0-beta.3" }

README.md

Lines changed: 51 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,53 @@
11
# Bitcoin Pro
22

3-
Professional bitcoin accounts & assets management.
3+
Professional bitcoin accounts & smart contract management by
4+
[Pandora Cora AG](https://pandoracore.com), Switzerland & Dr. Maxim Orlovsky.
5+
6+
Application is founded on [LNP/BP Core Library](https://github.com/LNP-BP/rust-lnpbp)
7+
and allows [RGB smart contracts](https://rgb-org.github.com) management.
8+
9+
The application **is not a bitcoin wallet**: it does not require access to
10+
private keys or creates any signatures. All operations are saved & exported in
11+
form of PSBTs (partially-signed bitcoin transactions) and for their completion
12+
must be signed and published to bitcoin network outside of the application.
13+
14+
Bitcoin Pro is written exclusively in Rust language with GTK framework and
15+
natively compiles/works on Linux, MacOS and (probably) Windows 10.
16+
17+
NB: This is an ultra-early alpha version; use it at your own risk!
18+
19+
## Features
20+
21+
* Extended public key management [Completed]
22+
* Creation of arbitrary complex descriptors monitoring onchain transactions [WIP]
23+
* Creation and management of RGB fungible assets (RGB-20 standard) [WIP]
24+
- Secondary issuances
25+
- Renominations
26+
- Burn & replacement
27+
* Creation and management of RGB collectibles/non-fungible token contracts
28+
(RGB-21 standard) [Planned]
29+
30+
## Installation
31+
32+
Install rust language and run
33+
34+
```constole
35+
$ cargo install bitcoin-pro
36+
$ bitcoin-pro
37+
```
38+
39+
## Main interface
40+
41+
![Main window](doc/ui/main_app.png)
42+
43+
## Extended public key management
44+
45+
![Extended public key management](doc/ui/xpub_dlg.png)
46+
47+
## Output descriptors
48+
49+
![Output descriptors](doc/ui/descriptors.png)
50+
51+
## RGB-20 assets
52+
53+
![Asset creation](doc/ui/asset_creation.png)

doc/ui/asset_creation.png

167 KB
Loading

doc/ui/descriptors.png

427 KB
Loading

doc/ui/main_app.png

133 KB
Loading

doc/ui/xpub_dlg.png

254 KB
Loading

src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ fn main() {
4343
gtk::Application::new(Some("com.pandoracore.BitcoinPro"), default!())
4444
.expect("BitcoinPro failed to initialize GTK environment");
4545

46-
application.connect_activate(|app| {
46+
application.connect_activate(|_| {
4747
fn new_app(path: Option<PathBuf>) {
4848
if let Ok(app_window) = view::AppWindow::new(path) {
4949
let app_window = app_window.borrow();

src/model/tracking.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ impl Display for DerivationComponents {
297297
.strip_prefix("m")
298298
.unwrap_or(&self.derivation_path().to_string())
299299
)?;
300-
if let Some(ref ranges) = self.index_ranges {
300+
if let Some(_) = self.index_ranges {
301301
f.write_str(&self.index_ranges_string())
302302
} else {
303303
f.write_str("*")

src/view/app_window.rs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ impl AppWindow {
103103
tb.connect_clicked(clone!(@weak me, @strong doc => move |_| {
104104
let meb = me.borrow();
105105
let pubkey_dlg = PubkeyDlg::load_glade().expect("Must load");
106-
if let Some((keyname, model, iter)) = meb.pubkey_selection() {
106+
if let Some((keyname, _, iter)) = meb.pubkey_selection() {
107107
let tracking_account = doc
108108
.borrow()
109109
.tracking_account_by_key(&keyname)
@@ -124,7 +124,7 @@ impl AppWindow {
124124
let tb: gtk::ToolButton = builder.get_object("pubkeyRemove")?;
125125
tb.connect_clicked(clone!(@weak me, @strong doc => move |_| {
126126
let me = me.borrow();
127-
if let Some((keyname, model, iter)) = me.pubkey_selection() {
127+
if let Some((keyname, _, iter)) = me.pubkey_selection() {
128128
let tracking_account = doc
129129
.borrow()
130130
.tracking_account_by_key(&keyname)
@@ -151,9 +151,9 @@ impl AppWindow {
151151
tb.connect_clicked(clone!(@weak me, @strong doc => move |_| {
152152
let descriptor_dlg = DescriptorDlg::load_glade().expect("Must load");
153153
descriptor_dlg.run(doc.clone(), clone!(@weak me, @strong doc =>
154-
move |descriptor_params| {
155-
let me = me.borrow();
154+
move |_descriptor_params| {
156155
/* TODO: Perform assst creation
156+
let me = me.borrow();
157157
me.pubkey_store.insert_with_values(
158158
None,
159159
None,
@@ -175,9 +175,9 @@ impl AppWindow {
175175
tb.connect_clicked(clone!(@weak me, @strong doc => move |_| {
176176
let issue_dlg = IssueDlg::load_glade().expect("Must load");
177177
issue_dlg.run(clone!(@weak me, @strong doc =>
178-
move |asset_genesis| {
179-
let me = me.borrow();
178+
move |_asset_genesis| {
180179
/* TODO: Perform assst creation
180+
let me = me.borrow();
181181
me.pubkey_store.insert_with_values(
182182
None,
183183
None,

0 commit comments

Comments
 (0)