From: Alekos Filini Date: Fri, 7 Feb 2020 11:27:10 +0000 (+0100) Subject: Move everything in the root X-Git-Tag: 0.1.0-beta.1~76 X-Git-Url: http://internal-gitweb-vhost/%22https:/parse/scripts/database/-script/enum.FromScriptError.html?a=commitdiff_plain;h=4919ff148bc40970cce94888a4ea27e1a3550c25;p=bdk Move everything in the root --- diff --git a/.gitignore b/.gitignore index 1377554e..8b75e7bb 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ +/target +Cargo.lock + *.swp diff --git a/.travis.yml b/.travis.yml index 24fa6c73..28ec6fc8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,6 @@ rust: before_script: - rustup component add rustfmt script: - - cd $TRAVIS_BUILD_DIR/core/lib/ - cargo fmt -- --check --verbose - cargo build --verbose --all - cargo test --verbose --all @@ -14,6 +13,6 @@ script: notifications: email: false -# before_cache: -# - rm -rf "$TRAVIS_HOME/.cargo/registry/src" -#cache: cargo +before_cache: + - rm -rf "$TRAVIS_HOME/.cargo/registry/src" +cache: cargo diff --git a/Cargo.toml b/Cargo.toml new file mode 100644 index 00000000..81e268f9 --- /dev/null +++ b/Cargo.toml @@ -0,0 +1,22 @@ +[package] +name = "magical-bitcoin-wallet" +version = "0.1.0" +authors = ["Riccardo Casatta ", "Alekos Filini "] + +[dependencies] +log = "^0.4" +bitcoin = { version = "0.23", features = ["use-serde"] } +miniscript = { version = "0.12" } +serde = { version = "^1.0", features = ["derive"] } +serde_json = { version = "^1.0" } +base64 = "^0.11" + +# Optional dependencies +sled = { version = "0.31.0", optional = true } + +[features] +default = ["sled"] +key-value-db = ["sled"] + +[dev-dependencies] +lazy_static = "1.4.0" diff --git a/core/lib/.gitignore b/core/lib/.gitignore deleted file mode 100644 index 96ef6c0b..00000000 --- a/core/lib/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -/target -Cargo.lock diff --git a/core/lib/Cargo.toml b/core/lib/Cargo.toml deleted file mode 100644 index 81e268f9..00000000 --- a/core/lib/Cargo.toml +++ /dev/null @@ -1,22 +0,0 @@ -[package] -name = "magical-bitcoin-wallet" -version = "0.1.0" -authors = ["Riccardo Casatta ", "Alekos Filini "] - -[dependencies] -log = "^0.4" -bitcoin = { version = "0.23", features = ["use-serde"] } -miniscript = { version = "0.12" } -serde = { version = "^1.0", features = ["derive"] } -serde_json = { version = "^1.0" } -base64 = "^0.11" - -# Optional dependencies -sled = { version = "0.31.0", optional = true } - -[features] -default = ["sled"] -key-value-db = ["sled"] - -[dev-dependencies] -lazy_static = "1.4.0" diff --git a/core/lib/examples/parse_descriptor.rs b/core/lib/examples/parse_descriptor.rs deleted file mode 100644 index 2af42b3a..00000000 --- a/core/lib/examples/parse_descriptor.rs +++ /dev/null @@ -1,27 +0,0 @@ -extern crate magical_bitcoin_wallet; - -use std::str::FromStr; - -use magical_bitcoin_wallet::bitcoin::*; -use magical_bitcoin_wallet::descriptor::*; - -fn main() { - let desc = "sh(wsh(or_d(\ - thresh_m(\ - 2,[d34db33f/44'/0'/0']xpub6ERApfZwUNrhLCkDtcHTcxd75RbzS1ed54G1LkBUHQVHQKqhMkhgbmJbZRkrgZw4koxb5JaHWkY4ALHY2grBGRjaDMzQLcgJvLJuZZvRcEL/1/*,tprv8ZgxMBicQKsPduL5QnGihpprdHyypMGi4DhimjtzYemu7se5YQNcZfAPLqXRuGHb5ZX2eTQj62oNqMnyxJ7B7wz54Uzswqw8fFqMVdcmVF7/1/*\ - ),\ - and_v(vc:pk_h(cVt4o7BGAig1UXywgGSmARhxMdzP5qvQsxKkSsc1XEkw3tDTQFpy),older(1000))\ - )))"; - - let extended_desc = ExtendedDescriptor::from_str(desc).unwrap(); - println!("{:?}", extended_desc); - - let derived_desc = extended_desc.derive(42).unwrap(); - println!("{:?}", derived_desc); - - let addr = derived_desc.address(Network::Testnet).unwrap(); - println!("{}", addr); - - let script = derived_desc.witness_script(); - println!("{:?}", script); -} diff --git a/core/lib/examples/psbt.rs b/core/lib/examples/psbt.rs deleted file mode 100644 index ed0281fc..00000000 --- a/core/lib/examples/psbt.rs +++ /dev/null @@ -1,50 +0,0 @@ -extern crate base64; -extern crate magical_bitcoin_wallet; - -use std::str::FromStr; - -use magical_bitcoin_wallet::bitcoin; -use magical_bitcoin_wallet::descriptor::*; -use magical_bitcoin_wallet::psbt::*; -use magical_bitcoin_wallet::signer::Signer; - -use bitcoin::consensus::encode::{deserialize, serialize}; -use bitcoin::util::psbt::PartiallySignedTransaction; -use bitcoin::SigHashType; - -fn main() { - let desc = "pkh(tprv8ZgxMBicQKsPd7Uf69XL1XwhmjHopUGep8GuEiJDZmbQz6o58LninorQAfcKZWARbtRtfnLcJ5MQ2AtHcQJCCRUcMRvmDUjyEmNUWwx8UbK/*)"; - - let extended_desc = ExtendedDescriptor::from_str(desc).unwrap(); - - let psbt_str = "cHNidP8BAFMCAAAAAd9SiQfxXZ+CKjgjRNonWXsnlA84aLvjxtwCmMfRc0ZbAQAAAAD+////ASjS9QUAAAAAF6kUYJR3oB0lS1M0W1RRMMiENSX45IuHAAAAAAABAPUCAAAAA9I7/OqeFeOFdr5VTLnj3UI/CNRw2eWmMPf7qDv6uIF6AAAAABcWABTG+kgr0g44V0sK9/9FN9oG/CxMK/7///+d0ffphPcV6FE9J/3ZPKWu17YxBnWWTJQyRJs3HUo1gwEAAAAA/v///835mYd9DmnjVnUKd2421MDoZmIxvB4XyJluN3SPUV9hAAAAABcWABRfvwFGp+x/yWdXeNgFs9v0duyeS/7///8CFbH+AAAAAAAXqRSEnTOAjJN/X6ZgR9ftKmwisNSZx4cA4fUFAAAAABl2qRTs6pS4x17MSQ4yNs/1GPsfdlv2NIisAAAAACIGApVE9PPtkcqp8Da43yrXGv4nLOotZdyxwJoTWQxuLxIuCAxfmh4JAAAAAAA="; - let psbt_buf = base64::decode(psbt_str).unwrap(); - let mut psbt: PartiallySignedTransaction = deserialize(&psbt_buf).unwrap(); - - let signer = PSBTSigner::from_descriptor(&psbt.global.unsigned_tx, &extended_desc).unwrap(); - - for (index, input) in psbt.inputs.iter_mut().enumerate() { - for (pubkey, (fing, path)) in &input.hd_keypaths { - let sighash = input.sighash_type.unwrap_or(SigHashType::All); - - // Ignore the "witness_utxo" case because we know this psbt is a legacy tx - if let Some(non_wit_utxo) = &input.non_witness_utxo { - let prev_script = &non_wit_utxo.output - [psbt.global.unsigned_tx.input[index].previous_output.vout as usize] - .script_pubkey; - let (signature, sighash) = signer - .sig_legacy_from_fingerprint(index, sighash, fing, path, prev_script) - .unwrap() - .unwrap(); - - let mut concat_sig = Vec::new(); - concat_sig.extend_from_slice(&signature.serialize_der()); - concat_sig.extend_from_slice(&[sighash as u8]); - - input.partial_sigs.insert(*pubkey, concat_sig); - } - } - } - - println!("signed: {}", base64::encode(&serialize(&psbt))); -} diff --git a/core/lib/src/database/keyvalue.rs b/core/lib/src/database/keyvalue.rs deleted file mode 100644 index d34ac9f7..00000000 --- a/core/lib/src/database/keyvalue.rs +++ /dev/null @@ -1,638 +0,0 @@ -use std::convert::{From, TryInto}; - -use sled::{Batch, Tree}; - -use bitcoin::consensus::encode::{deserialize, serialize}; -use bitcoin::hash_types::Txid; -use bitcoin::util::bip32::{ChildNumber, DerivationPath}; -use bitcoin::{OutPoint, Script, Transaction}; - -use crate::database::{BatchDatabase, BatchOperations, Database}; -use crate::error::Error; -use crate::types::*; - -// path -> script p{i,e} -> script -// script -> path s